Step 1.
首先,請先安裝mysqld
然後請確定是否安裝 pam_mysql及libsasl2-2,沒有的話就安裝:
pam_mysql:
ubuntu: apt-get isntall libpam-mysql
gentoo: emerge pam_mysql
libsasl2:
ubuntu: apt-get isntall libsasl2-2
gentoo: emerge cyrus-sasl
Step 2.
安裝好以後,我們先要建立一個DB供openvpn登入用;這個DB至少要有三個欄位:帳號、密碼、active。
active這個欄位是用來標記帳號是否啟用,有這欄位的話你隨時可以啟用/停用特定帳號,在管理上的彈性會更大。
以下就先來進行資料庫部份的工作:
DB Server:localhost
DB名稱:openvpn
Table名稱:vpmauth
欄位名稱:account,password,active
DBUSER: vpnadm
DBPASSWORD: 093nVPN
以上部份都可以隨個人喜好自訂
CREATE DATABASE openvpn;
use openvpn;
CREATE TABLE `vpnauth` (
`account` char(20) NOT NULL,
`password` char(41) default NULL,
`active` int(10) NOT NULL default '1',
PRIMARY KEY (`account`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
GRANT all ON openvpn.* TO vpnadm@'localhost' IDENTIFIED BY '093nVPN';
flush privileges;
將以上部份複製存檔後,直接匯入mysqld就會建立資料庫及新增vpnadm這個DB帳號了。不要忘了要建立帳號以後才能用......
Step 3.
再來設定pam.d,建立一個openvpn 的 pam 對應檔:
vi /etc/pam.d/openvpn
然後輸入以下內容,記得紅字部份一樣要依你的設定進行修改:
auth sufficient pam_mysql.so user=vpnadm passwd=093nVPN host=localhost db=openvpn table=vpnauth usercolumn=account passwdcolumn=password where=active=1 sqllog=0 crypt=2
account required pam_mysql.so user=vpnadm passwd=093nVPN host=localhost db=openvpn table=vpnauth usercolumn=account passwdcolumn=password where=active=1 sqllog=0 crypt=2
註:crypt=2代表密碼是使用 mysqld的 password函式加密,所以建帳號時密碼欄位也請記得加密
Step 4.
最後,在openvpn.conf中加入以下兩行:
plugin /usr/lib/openvpn/openvpn-auth-pam.so openvpn
username-as-common-name
接下來,就可以進行client端測試了;當需要登入時自己會跳出登入訊息,要求輸入帳號跟密碼。
最後有兩點:
1. 帳號/密碼登入跟使用user key本身不衝突,可以兩者都開啟
2. 如果crypt=2無法登入,又確定DB資料無誤的話,可以把它改成crypt=1;關掉密密碼加密來試試。
==下一篇是 client-config-dir和learn-address的用法 ==
hi~看了你的openvpn的相關文章
但我安裝依然失敗,不曉得能不能加個msn幫幫忙
先說一下你失敗的log 吧~~
:O: :O~: :~~: :sigh: :shake: :pop: :photo: :stealthy: :orz: :orz: 😳 :muyu: :loser: :laugh: :hot: :fight: 😥 😎 :cookacman: :clap: :addoil: :PP :O~: :O: ❓ 😡
想請問一下,OPenVPN client 端要登入 Server 會問要求輸入 Username & Password 每次登入都要敲一次,有沒有辦法先設定好存在 openvpn.ovpn 內?或有其它方式設定? 謝謝!
to Andrew:
如果你是使用 ip/password 的話, openvpn client 端應該是沒有辦法自動登入
除非你使用其它可以連接 openvpn server 的 client端
或是認證方式捨棄 id/password, 改用 key
這樣就不會問你了
請教一下OPENVPN連線成功後Client端是否能透過網路芳鄰存取Server端...
目前連線成功建立通道,兩端都是使用winxp,但是我不知道該如何傳遞資料
不好意思再問一
64位元的安裝路徑一樣是C:\Program Files(x86)\Openvpn
還是C:\Program Files\Openvpn?
連線建立後的網芳是否能通.....
理論上當vpn server的那台可以使用網芳的話,vpn client應該就可以
64位元安裝路徑應該就沒有x86了
windows我已經不熟很久了,主要要注意的有兩點:
1. 請抓新版的程式,且64位元就裝64位元的
2. 需要 administrator 權限
感謝大大回覆
目前打算考取RHCE.如果遇到瓶頸
透過E-mail提問請教可以嗎 😳