2016年2月15日 星期一

OpenVPN 結合 LDAP 帳密登入驗證

一、修改 OpenVPN Server 設定檔,在最後加入這兩行
# vi /etc/openvpn/server.conf
script-security 3
auth-user-pass-verify openldap-auth.sh via-env
存檔後記得重新啟動 openvpn 服務
# systemctl restart openvpn@server
二、不管是 OpenLDAP 或 Windows AD,請在帳戶資料庫內建立一個群組 vpnusers,爾後只有
加入此群組的帳戶可以 sslvpn 連線。
三、設計認證 shell script
# vi /etc/openvpn/openldap-auth.sh
內容如下:
#!/bin/sh
# LDAP Server ip 位址
LDAP_Server=192.168.11.131
Domain_DN=dc=clpes,dc=tc,dc=edu,dc=tw
# OpenLDAP
#檢查是否為 vpnusers 群組成員
#ldapsearch -x -h $LDAP_Server -b $Domain_DN -LLL "(cn=vpnusers)" memberuid|cut -c 12-
|grep -x $username
#if [ "$?" == "1" ]; then
#exit 1
#fi
# 取得 Account's dn
dn=$(ldapsearch -x -h $LDAP_Server -b $Domain_DN -LLL "(cn=$username)" dn|cut -c 5-)
#驗證密碼
ldapwhoami -x -h $LDAP_Server -D $dn -w $password
if [ "$?" == "0" ]; then
exit 0
else
exit 1
fi
存檔後給予執行權限
# chmod +x openldap-auth.sh
第 180 頁
四、修改用戶端 xxxx.ovpn 設定檔,在最後加入這一行
auth-user-pass
若爾後只採用帳密認證,不需憑證金鑰,則以下兩行請取消
cert xxx.crt
Key xxx.key
並修改 Server 端的/etc/openvpn/server.conf
加入這一行
client-cert-not-required
再重新啟動服務
五、現在連線,會要求帳密登入
六、如果要用 W

沒有留言:

張貼留言