ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 使用MySQL验证OpenVPN用户登录访问

使用MySQL验证OpenVPN用户登录访问

原创 Linux操作系统 作者:nginx_web 时间:2012-06-08 07:22:49 0 删除 编辑

 

 

使用MySQL数据库来验证OpenVPN服务器登录需要使用pam_mysql模块,因此我们首先要下载并且编译这个模块,然后在配置,而在OpenVPN服务器端还要使用一个auth_pam插件,下面我们来分别实现。

 

5.4.1 下载pam_mysql模块

 

    模块pam_mysql的官方地址为:http://pam-mysql.sourceforge.net/,如下图:

 

 

 

    下载这个模块:

 

[root@slave ~]# wget http://cdnetworks-kr-2.dl.sourceforge.net  \

> /project/pam-mysql/pam-mysql/0.7RC1/pam_mysql-0.7RC1.tar.gz

--2012-01-21 13:20:40--  http://cdnetworks-kr-2.dl.sourceforge.net/project/pam-mysql/pam-mysql/0.7RC1/pam_mysql-0.7RC1.tar.gz

Resolving cdnetworks-kr-2.dl.sourceforge.net... 211.39.135.163

Connecting to cdnetworks-kr-2.dl.sourceforge.net|211.39.135.163|:80... connected.

HTTP request sent, awaiting response... 200 OK

Length: 335240 (327K) [application/x-gzip]

Saving to: `pam_mysql-0.7RC1.tar.gz'

 

100%[====================>] 335,240     94.2K/s   in 3.5s   

 

2012-01-21 13:20:46 (94.2 KB/s) - `pam_mysql-0.7RC1.tar.gz' saved [335240/335240]

 

5.4.2 安装pam_mysql模块

 

[root@slave ~]# tar -zxvf pam_mysql-0.7RC1.tar.gz

   

    解压缩后查看一下INSTALL这个文件,在执行 "configure" 脚本时它接受的选项

 

5.4.3 认识configure选项

 

    在执行"configure" 脚本之前,我们首先来认识以下它的可配置选项。

 

选项名称--with-pam=[PAM_INSTALLATION_PREFIX]

    能:指定PAM headers路径,如果没有指定,那么会自动查找

 

选项名称:--with-pam-mods-dir=[MODULE_DIRECTORY]

    能:指定安装pam_mysql.so的位置,也可以忽略这个选项。

 

选项名称:--with-mysql=[MYSQL_INSTALLATION_PREFIX]

    能:该选项用于指定所需要MySQL的头和库文件,如果没有同该选项指定,那么configure将会搜索,它会在以下的顺序中搜索:

 

        . /usr

        . /usr/local

        . /usr/mysql

        . /opt/mysql

 

选项名称:--with-openssl=[OPENSSL_INSTALLATION_PREFIX]

    能:该选项用于指定OpenSSL的头文件和库文件,如果使用了该选项但是又没有明确的指定相应的值,那么configure将会按照以下的顺序查找:

 

        . /usr

        . /usr/local

        . /opt/openssl

        . /usr/ssl

        . /usr/local/ssl

 

选项名称--with-cyrus-sasl=[CYRUS_SASL_INSTALLATION_PREFIX]

          --with-cyrus-sasl2=[CYRUS_SASL2_INSTALLATION_PREFIX]

    能:指定Cyrus SASL头和库文件,MD5会使用。需要注意的是,这两个选项不能一起指定。如果指定了这个选项,但是有没有明确的指定值,那么configure将会按照下面的顺序查找:

 

        . /usr

        . /usr/local

        . /opt/cyrus-sasl

 

5.4.4 安装pam_mysql

 

    在执行configure脚本之前,我们首先要确定opensslsaslmysql

   

[root@slave auth-pam]# rpm -qa | grep sasl

cyrus-sasl-2.1.22-5.el5_4.3

cyrus-sasl-lib-2.1.22-5.el5_4.3

cyrus-sasl-plain-2.1.22-5.el5_4.3

cyrus-sasl-devel-2.1.22-5.el5_4.3

[root@slave auth-pam]# rpm -qa | grep mysql

[root@slave auth-pam]# rpm -qa | grep openssl

 

    我们看到opensslmysql 都没有安装,因此需要首先安装这些软件,这里我们就不再写出安装过程了。

 

    执行"configure" 脚本:

 

[root@slave pam_mysql-0.7RC1]# ./configure \

> --with-mysql=/usr/local/mysql/  \

> --with-openssl=/usr/local/openssl-0.9.7a/

   

    对于 --with-mysql --with-openssl 具体的安装位置要根据实际情况而设置,如果在执行configure时出现以下错误:

 

checking if md5.h is derived from Cyrus SASL Version 1... no

checking md5.h usability... no

checking md5.h presence... no

checking for md5.h... no

checking if md5.h is Solaris's... no

checking for md5.h... (cached) no

checking for MD5Data... no

   

    那么执行以下链接:

 

ln -s /usr/include/openssl/md5.h /usr/include/md5.h

   

直到出现以下配置:

   

checking if md5.h is derived from Cyrus SASL Version 1... no

checking md5.h usability... yes

checking md5.h presence... yes

checking for md5.h... yes

checking if md5.h is Solaris's... no

checking for md5.h... (cached) yes

checking for MD5Data... no

checking for crypt in -lcrypt... yes

checking for crypt... yes

 

    当然,如果要是不使用MD5加密也就没必要这么费事了。

 

   安装pam_mysql

 

 [root@slave pam_mysql-0.7RC1]# make

[root@slave pam_mysql-0.7RC1]# make install

 

……

make[1]: Entering directory `/root/pam_mysql-0.7RC1'

/bin/sh ./mkinstalldirs /usr/lib/security

/bin/sh ./libtool  --mode=install /usr/bin/install -c pam_mysql.la /usr/lib/security/pam_mysql.la

/usr/bin/install -c .libs/pam_mysql.so /usr/lib/security/pam_mysql.so

/usr/bin/install -c .libs/pam_mysql.lai /usr/lib/security/pam_mysql.la

PATH="$PATH:/sbin" ldconfig -n /usr/lib/security

----------------------------------------------------------------------

Libraries have been installed in:

   /usr/lib/security

 

If you ever happen to want to link against installed libraries

in a given directory, LIBDIR, you must either use libtool, and

specify the full pathname of the library, or use the `-LLIBDIR'

flag during linking and do at least one of the following:

   - add LIBDIR to the `LD_LIBRARY_PATH' environment variable

     during execution

   - add LIBDIR to the `LD_RUN_PATH' environment variable

     during linking

   - use the `-Wl,--rpath -Wl,LIBDIR' linker flag

   - have your system administrator add LIBDIR to `/etc/ld.so.conf'

 

See any operating system documentation about shared libraries for

more information, such as the ld(1) and ld.so(8) manual pages.

----------------------------------------------------------------------

……

 

   

    注意,这个pam_mysql.so模块安装的位置,找到它再把它拷贝到以下的位置:

 

[root@slave security]# pwd

/lib/security

   

    当然,如果不将这个pam_mysql.so文件拷贝到这个目录下也是可以的,不过需要在以下文件中使用绝对的路径。

 

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/27043155/viewspace-732231/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 安装virtualenv 2
下一篇: Nginx和Perl的结合
请登录后发表评论 登录
全部评论

注册时间:2012-06-06

  • 博文量
    54
  • 访问量
    410239