CentOS 5.5上安裝openvpn全過程
OpenVPN是一個用于創(chuàng)建虛擬專用網(wǎng)絡(luò)加密通道的軟件包,允許參與建立VPN的單點(diǎn)使用公開密鑰、電子證書、或者用戶名/密碼來進(jìn)行身份驗證,能在Solaris、Linux、OpenBSD、FreeBSD、NetBSD、Mac OS X與Windows上運(yùn)行,並包含了許多安全性的功能。本文一步一步介紹了在CentOS 5.5上安裝openvpn的過程。
一、 下載軟件包
# cd /opt # wget http://www.oberhumer.com/opensource/lzo/download/lzo-2.04.tar.gz # wget http://openvpn.net/release/openvpn-2.1_rc22.tar.gz
二、解壓及安裝
# tar zxvf lzo* # tar zxvf openvpn*
進(jìn)入相應(yīng)文件夾下,執(zhí)行以下命令編譯安裝:
# ./configure && make && make install
三、服務(wù)器端設(shè)置:
1. 用easy-rsa生成服務(wù)器證書客戶端證書
# cp /opt/openvpn-2.1_rc22/easy-rsa/2.0 -r /etc/openvpn # cd /etc/openvpn/2.0
編輯所需的參數(shù)再調(diào)用之
# vim vars # source ./vars
下面這個命令在第一次安裝時可以運(yùn)行,以后在添加客戶端時千萬別運(yùn)行,這個命令會清除所有已經(jīng)生成的
證書密鑰。
# ./clean-all
生成服務(wù)器端ca證書
# ./build-ca
生成服務(wù)器端密鑰證書, 后面這個server-name就是服務(wù)器名,可以自定義。
# ./build-server-key server-name
一路Enter之后證書生成。
再依次生成所需客戶端證書密鑰文件:
# ./build-key client-name1 # ./build-key client-name2
再生成 diffie hellman 參數(shù)
# ./build-dh
創(chuàng)建并編輯服務(wù)器端配置文件
cp /opt/openvpn-2.1_rc22/sample-config-files/server.conf /etc/openvpn/ vi /etc/openvpn/server.conf
修改完成之后,以下面這個命令啟動openvpn server
# /usr/local/sbin/openvpn --config /etc/openvpn/server.conf &
每次都運(yùn)行上面這個命令有點(diǎn)麻煩,這里有一個script,把它復(fù)制到 /etc/init.d 文件夾下,可以實現(xiàn)啟動,狀態(tài)查詢,重啟等。該文件適應(yīng)于CentOS 5.5, 如果密鑰及配置文件位置不一樣,也許要作一些小的修改。
再在rcX.d文件夾下作幾個軟鏈接就可以實現(xiàn)開機(jī)自動啟動了。
也可以修改 /etc/rc.local文件實現(xiàn)開機(jī)啟動。
密鑰分發(fā)
把ca.crt 及相應(yīng)client 的三個密鑰證書文件一共四個分別分發(fā)出去就可以了。注意不需要將ca.key分發(fā)出去,
ca.key應(yīng)該保密。
四、客戶端配置
1. Linux
相應(yīng)比較簡單,安裝好openvpn后,把收到的ca及l(fā)ient文件放到相應(yīng)的位置,配置好client.conf就可以了。
2. Windows
到openvpn官方網(wǎng)站下載windows安裝包進(jìn)行安裝,在安裝文件夾下有下個config文件夾,把你的ca及client文件放到該文件夾下,從sample-config下拷貝一個client.ovpn并作相應(yīng)修改即可。
五、固定IP地址分配
在服務(wù)器端配置文件(server.conf)里取消下面行的注釋:
;client-config-dir ccd ;route 10.8.0.0 255.255.255.252
在 /etc/openvpn文件夾下新建名為ccd文件夾,在ccd 文件夾里以客戶名為名新建文件,內(nèi)容格式如下:
ifconfig-push 10.8.0.20 10.8.0.120
客戶端啟動后即獲得IP地: 10.8.0.20
但要注意上面格式只對linux有效,如果客戶端為windows,則客戶端會連接不成功。因為openvpn在windows下時,
其local IP 與 remote IP 必須在網(wǎng)址掩碼為255.255.255.252的同一網(wǎng)段內(nèi),而且不能取頭尾兩端的IP,因此
一個openvpn連接在windows下最少要占用4個ip地址。
windows 下的 客戶端IP配置必須為如下形式:
ifconfig-push 10.8.0.30 10.8.0.29
因為10.8.0.28/30網(wǎng)段包含以下IP: 10.8.0.28-31, 去除頭尾,只有29與30可用。其他類推。
六、訪問外網(wǎng)設(shè)置
開啟服務(wù)器端路由轉(zhuǎn)發(fā)功能
# echo 1 > /proc/sys/net/ipv4/ip_forward #為了使CentOS重啟后仍然開啟路由轉(zhuǎn)發(fā)功能我們需要再執(zhí)行下列命令 # sysctl -w net.ipv4.ip_forward=1
添加iptables轉(zhuǎn)發(fā)規(guī)則
#因為我的CentOS是ADSL撥號上網(wǎng),所以把出口設(shè)置成ppp0,請根據(jù)實際情況設(shè)置, 如eth0 iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o ppp0 -j MASQUERADE
必須保證server.conf配置中,有下面三個配置
push "dhcp-option DNS 10.8.0.1"
push "dhcp-option DNS 202.103.44.150" #客戶端獲得的DNS地址
push "dhcp-option DNS 202.103.24.68" #客戶端獲得的DNS地址
【編輯推薦】