Open*** 秘钥+用户名密码双重验证登录
Open××× 秘钥+用户名密码双重验证登录
为什么需要用户名密码验证登录
我们已经使用了CA证书、迪菲赫尔曼交换**、TLS-auth**这几种方式进行加密了,
可以说已经很安全了,为什么还要需要用户名秘密呢,一个×××而已,搞得这么安全有什么用呢。
首先安全还是很重要的,其次就是管理这些秘钥和证书还是比较麻烦的,因为用户量比较多。
我不可能为每个用户都创建一套加密吧,每个用户创建一个秘钥比较麻烦,
多人使用一个秘钥又不具有唯一性,比如说有用户不在需要×××的时候,我们就只能吊销证书。
但是如果多人使用一个秘钥的情况下,吊销证书了,其他的用户也登录不了。
所以我们就需要秘钥加用户名密码,这样就可以多个用户使用同一个证书,使用不同的用户名和密码。
新用户加入的时候,只需要创建一个用户名和密码,如果有人不需要×××的时候,直接删除用户名和密码就可以。
1.搭建OPen×××
http://xmomo.blog.51cto.com/5994484/1953077
2. 配置open***使用 秘钥+用户名密码 验证登录
1).修改Server端配置文件,添加以下三行代码。
auth-user-pass-verify /etc/open***/checkpsw.sh via-env
username-as-common-name
script-security 3
注:如果加上client-cert-not-required则代表只使用用户名密码方式验证登录,
如果不加,则代表需要证书和用户名密码双重验证登录!
2).checkpsw.sh下载地址:http://open***.se/files/other/checkpsw.sh
wget http://open***.se/files/other/checkpsw.sh -P /etc/open***/
或者创建checkpsw.sh文件,直接复制粘贴以下代码也可以。
PASSFILE和LOG_FILE是密码文件和日志文件的路径,这里我们默认就好,不用修改。
#!/bin/sh ########################################################### # checkpsw.sh (C) 2004 Mathias Sundman <[email protected]***.se> # # This script will authenticate Open××× users against # a plain text file. The passfile should simply contain # one row per user with the username first followed by # one or more space(s) or tab(s) and then the password. PASSFILE="/etc/open***/psw-file" LOG_FILE="/var/log/open***-password.log" TIME_STAMP=`date "+%Y-%m-%d %T"` ########################################################### if [ ! -r "${PASSFILE}" ]; then echo "${TIME_STAMP}: Could not open password file \"${PASSFILE}\" for reading." >> ${LOG_FILE} exit 1 fi CORRECT_PASSWORD=`awk '!/^;/&&!/^#/&&$1=="'${username}'"{print $2;exit}' ${PASSFILE}` if [ "${CORRECT_PASSWORD}" = "" ]; then echo "${TIME_STAMP}: User does not exist: username=\"${username}\", password=\"${password}\"." >> ${LOG_FILE} exit 1 fi if [ "${password}" = "${CORRECT_PASSWORD}" ]; then echo "${TIME_STAMP}: Successful authentication: username=\"${username}\"." >> ${LOG_FILE} exit 0 fi echo "${TIME_STAMP}: Incorrect password: username=\"${username}\", password=\"${password}\"." >> ${LOG_FILE} exit 1
添加执行权限
chmod +x /etc/open***/checkpsw.sh
3). 创建用户和密码认证文件
vim /etc/open***/psw-file
admin 123456 (前面是用户 后面是密码)
注:这里 psw-file的权限
chmod 400 /etc/open***/psw-file
chown nobody.nobody /etc/open***/psw-file
4). 修改客户端配置文件:client.o***
再添加这一行,就会提示输入用户名和密码
auth-user-pass
5).重启Open×××服务,测试客户端登录。
输入用户名密码就可以登录啦
转载于:https://blog.51cto.com/xmomo/1959412