使用MySQL验证Open***用户登录访问
一、预览
要查看下面的配置,请预览查看我的上一篇Open***用户名密码配置的博文
二、安装部署
环境准备
[code=bash;toolbar:false">#关闭SELinux #setenforce 0 开启路由转发 sysctl -w net.ipv4.ip_forward=1 #添加策略 iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE1、安装数据库
按照上篇文章部署好Open***之后,我们首先安装一下MySQL数据库。yum install mysql-server -y2、创建mysql表
我们需要两个表,一个是用于存储Open***用户的表,另一个就是记录Open***用户登录的表,在用户表我们设计了三个字段,第一列是Name,及***用户的名称,第二列是password,即用户的密码,第三列是设定用户是否可以登陆***。mysql> create database open***;
mysql> use open***;
#创建用户表
mysql> create table ***user (
name char (100) not null,
password char (255) default null,
active int (10) not null default 1,
primary key (name)
);
Query OK, 0 rows affected (0.06 sec)
mysql> desc ***user;
+----------+-----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+-----------+------+-----+---------+-------+
| name | char(100) | NO | PRI | NULL | |
| password | char(255) | YES | | NULL | |
| active | int(10) | NO | | 1 | |
+----------+-----------+------+-----+---------+-------+
3 rows in set (0.00 sec) 创建***用户登录表,以及插入一条用户账号密码。#创建登录表
mysql> create table logtable (
msg char (254),
user char (100),
pid char (100),
host char (100),
rhost char (100),
time char (100)
);
Query OK, 0 rows affected (0.06 sec)
mysql> desc logtable;
+-------+-----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-----------+------+-----+---------+-------+
| msg | char(254) | YES | | NULL | |
| u
4000
ser | char(100) | YES | | NULL | |
| pid | char(100) | YES | | NULL | |
| host | char(100) | YES | | NULL | |
| rhost | char(100) | YES | | NULL | |
| time | char(100) | YES | | NULL | |
+-------+-----------+------+-----+---------+-------+
6 rows in set (0.00 sec)
#插入一条用户数据
mysql> insert into ***user (name,password) values ('test1',password('test1'));
mysql> grant all on open***.* to ***@'localhost' identified by '***';
mysql> flush privileges;
3、安装pam_mysql模块
使用MySQL数据库来验证Open***服务器登陆需要使用pam_mysql模块,因此我们需要安装这个模块,直接使用yum安装即可。yum install pam_mysql -y4、配置pam_mysql模块
下面的一些参数都是从文档里面摘抄出来的,文档是我们安装pam_mysql带来的,按照我们目前的办理来看,文档的路径是/usr/share/doc/pam_mysql-0.7/README。
# vim /etc/pam.d/open***auth sufficient pam_mysql.so user=*** passwd=*** host=localhost db=open*** table=***user usercolumn=name passwdcolumn=password [where=***user.active=1] sqllog=0 crypt=2 sqllog=true logtable=logtable logmsgcolumn=msg logusercolumn=user logpidcolumn=pid loghostcolumn=host logrhostcolumn=rhost logtimecolumn=time
account required pam_mysql.so user=*** passwd=*** host=localhost db=open*** table=***user usercolumn=name passwdcolumn=password [where=***user.active=1] sqllog=0 crypt=2 sqllog=true logtable=logtable logmsgcolumn=msg logusercolumn=user logpidcolumn=pid loghostcolumn=host logrhostcolumn=rhost logtimecolumn=time 使用testsaslauthd验证登录情况,如果出现下面的情况,说明我们的配置是正确的。
[root@ios*** ~]# saslauthd -a pam
[root@ios*** ~]# testsaslauthd -u test1 -p test1 -s open***
0: OK "Success."5、安装Open***服务器auth-pam插件
本来我们rpm包安装的Open***里面是带有我们需要的模块open***-auth-pam.so,但是我试过了,有问题,认证无法通过,因为2.1以上的Open***的open***-auth-pam.so都会出现验证错误的问题,这里需要我们重新编译一个低版本的,我这里用2.0.7的,我附近里面有,编译依赖pam_devel包。yum install pam_devel -y wget http://pkgs.fedoraproject.org/repo/pkgs/open***/open***-2.0.7.tar.gz/93528233f1f6d02fc18e2c00f82e0aca/open***-2.0.7.tar.gz tar xf open***-2.0.7.tar.gz cd open***-2.0.7/plugin/auth-pam/ make 把模块拷贝到Open***的配置目录下cp open***-auth-pam.so /etc/open***/6、Open***服务端配置文件
配置好之后我们要使用这个模块,加到服务器端的配置文件最后,最后的配置文件是:
# cat /etc/open***/server.conf port 1194
proto tcp
dev tun
ca /usr/share/doc/open***-2.3.7/sample/sample-keys/ca.crt
cert /usr/share/doc/open***-2.3.7/sample/sample-keys/server.crt
key /usr/share/doc/open***-2.3.7/sample/sample-keys/server.key
dh /usr/share/doc/open***-2.3.7/sample/sample-keys/dh2048.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "route 10.0.0.0 255.255.255.0"
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 114.114.114.114"
topology subnet
client-to-client
duplicate-cn
keepalive 10 120
comp-lzo
persist-key
persist-tun
status /var/log/open***/open***-status.log
log-append /var/log/open***/open***.log
verb 3
script-security 3 system
plugin /etc/open***/open***-auth-pam.so open***
client-cert-not-required
username-as-common-name7、客户端配置文件
- Vsftpd使用虚拟用户登录调用mysql验证
- 在jsp页面使用session来验证未经登录的访问 并完成直接跳转
- ASP.NET jQuery 实例11 通过使用jQuery validation插件简单实现用户登录页面验证功能
- 使用AjaxPro框架实现无刷新用户登录验证【原创】
- 使用jquery1.2.6验证用户登录和注册总结
- 允许远程用户登录访问mysql
- mysql远程登录 错误2003 及root用户授权访问方法(树莓派装MySQL)
- ASP.NET jQuery 食谱11 (通过使用jQuery validation插件简单实现用户登录页面验证功能)
- 使用break与cont实现验证用户登录信息
- 使用session验证的用户登录界面(简写)
- 设置Microsoft SQL Server Management Studio Express--使用SQL验证登录(如使用sa用户登录)
- 获取MySQL加密密码并验证用户输入(登录界面),retrieve hashpwd from mysql and compare with input password on login
- 允许远程用户登录访问mysql的方法
- 使用CAS登录模块连接数据库验证用户合法性
- Android中使用webservice验证用户登录的示例
- PHP和mysql做用户登录验证 .