OpenVPN 使用“用户名/密码”登录验证

使用这种方法在客户端需要”ca.crt、ta.key”和配置文件。 服务端需要”dh1024.pem、openvpn-auth-pam.so、ca.crt”服务端的证书和私钥以及配置文件。 服务端也并不需要ca.key,生成证书时需要。 openvpn-auth-pam.so由OpenVPN的plugin/auth-pam/目录下的文件生成。 ta.key使用OpenVPN生成:openvpn –genkey –secret keys/ta.key。是为了防止恶意攻击(如DoS、UDP port flooding),生成的一个”HMAC firewall”。 别的文件都是由easy-rsa目录下的脚本生成的(都是使用openssl生成的)。 dh1024.pem:Diffie-Hellman文件,SSL/TLS server需要使用的一个文件。脚本:build-dh。 证书的有效期我的试验是最长30年。 ./build-key-server 设100年出来的是1970年,设50年出来的是”Bad time value”设40年,出来的是13年,设20年,正确;30年正确;35年13年 Server端配置 首先检查pam-devel包是否安装,否则从系统盘安装改软件包 [root@vpn ~]# rpm -qa | grep pam pam_smb-1.1.7-3.1 pam-0.77-40 pam_krb5-2.0.10-1 pam-devel-0.77-40 [root@vpn ~]# 检查Mysql是否安装,确认mysql-devel包已经安装,否则从系统盘安装改软件包 [root@vpn ~]# rpm -qa | grep mysql mysql-3.23.58-9 mysql-server-3.23.58-9 mysql-devel-3.23.58-9 [root@vpn ~]# 安装 在”添加或删除软件包”中选上”SQL数据库服务器”的全部内容,安装,用rpm -qa | grep mysql查询,无mysql-devel包。 mysql-devel包在RedHat 9.0第二张光盘上,RedHat/RPMS/mysql-devel-3.23.54a-11.i386.rpm。 为了能使用OpenVPN的PAM验证插件,,我们安装pam_mysql使用MySQL数据库存储用户数据,其它数据库可以找相应的PAM验证模块 [root@vpn ~]# wget [root@vpn ~]# tar -zxvf pam_mysql-0.5.tar.gz [root@vpn ~]# cd pam_mysql [root@vpn ~]# ./configure [root@vpn ~]# make [root@vpn ~]# cp pam_mysql.so /lib/security/ 我下载的是pam_mysql-0.7RC1.tar.gz。 make时md5.h报错。 解决方法是 ./configure –with-openssl pam_mysql.so在.libs目录下,.libs为隐藏目录。 配置数据库 以管理员身份登录数据库: mysql> create database vpn; 创建数据库vpn。 mysql> GRANT ALL ON vpn.* TO vpn@localhost IDENTIFIED BY ‘vpn123’; 授权localhost上的用户vpn(密码vpn123)有对数据库vpn的所有操作权限。 mysql> flush privileges; 更新sql数据库的权限设置。 mysql> use vpn; 使用刚创建的的vpn数据库。 mysql> CREATE TABLE vpnuser ( -> name char(20) NOT NULL, -> password char(128) default NULL, -> active int(10) NOT NULL DEFAULT 1, -> PRIMARY KEY (name) -> ); mysql> insert into vpnuser (name,password) values(‘elm’,password(‘elm’)); 命令解释: #创建vpn用户,对vpn这个database有所有操作权限,密码为vpn123 #active不为1,无权使用VPN #增加用户 用户名:elm 密码:elm 输入mysql报: ERROR 2002: Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2) /etc/rc.d/init.d/mysqld status会告诉mysql的运行状态,如果没有运行,执行下列命令: /ect/rc.d/init.d/mysqld start 测试: mysql 如果成功,屏幕显示 >mysql 上面两条命令也可以是: service mysqld status service mysqld start /etc/init.d/是指向/etc/rc.d/init.d的符号链接。 这一目录下的文件是脚本文件。 也可以使用”系统设置/服务器设置/服务”来设置。 自动启动mysqld,运行chkconfig把MySQL添加到系统的启动服务组里面去。 # /sbin/chkconfig –del mysqld # /sbin/chkconfig –add mysqld 都可以使用可视化界面来配置。

理想的路总是为有信心的人预备着

OpenVPN 使用“用户名/密码”登录验证

相关文章:

你感兴趣的文章:

标签云: