歡迎您光臨本站 註冊首頁

【VPN】linux下搭建Openvpn服務環境

←手機掃碼閱讀     火星人 @ 2014-03-08 , reply:0

在安裝之前請使用cat /dev/net/tun 進行檢查是否開啟tun/tap
[root@lx_web_s1 ~]# cat /dev/net/tun
cat: /dev/net/tun: File descriptor in bad state
說明tun/tap已經開啟,可以進行openVPN的安裝配置了

VPN服務端
1、安裝準備
yum -y install gcc gcc-c
分別下載lzo、openssl、openvpn

2、軟體安裝
# cd /data/software
# wget http://www.oberhumer.com/opensource/lzo/download/lzo-2.03.tar.gz
# tar -xvzf lzo-2.03.tar.gz
# cd lzo-2.03
# ./configure -prefix=/usr/local/lzo && make && make install

# tar -xvzf openssl-0.9.8.tar.gz
# cd openssl-0.9.8
# ./config -prefix=/usr/local/openssl && make && make install

# tar -xvzf openvpn-2.2.2.tar.gz
# cd openvpn-2.2.2
# ./configure --prefix=/usr/local/openvpn --with-lzo-headers=/usr/local/lzo/include --with-lzo-lib=/usr/local/lzo/lib --with-ssl-headers=/usr/local/openssl/include/ --with-ssl-lib=/usr/local/openssl/lib/
# make && make install

3、配置
mkdir /etc/openvpn
cp -R /data/software/openvpn-2.2.2/easy-rsa/ /etc/openvpn
cd /etc/openvpn/easy-rsa/2.0/

這下面的文件做簡單介紹:
vars 腳本,是用來創建環境變數,設置所需要的變數的腳本
clean-all 腳本,是創建生成CA證書及密鑰 文件所需要的文件和目錄
build-ca 腳本,生成CA證書(交互)
build-dh 腳本,生成Diffie-Hellman文件(交互)
build-key-server 腳本,生成伺服器端密鑰(交互)
build-key 腳本,生成客戶端密鑰(交互)
pkitool 腳本,直接使用vars的環境變數設置直接生成證書(非交互)

1、生成CA證書及密鑰
調整vars文件
export KEY_COUNTRY="CN"
export KEY_PROVINCE="BJ"
export KEY_CITY="beijing"


export KEY_ORG="SHEN"
export KEY_EMAIL="ymshen83@163.com"
export KEY_CN=shen
export KEY_NAME=shen
export KEY_OU=shen
export PKCS11_MODULE_PATH=shen
export PKCS11_PIN=123456

初始化keys文件
#. ./vars (注意有兩個點,兩個點之間有空格)
# ./clean-all
# ./build-ca (一路按回車就可以)
......
Country Name (2 letter code) [CN]:
State or Province Name (full name) [BJ]:
Locality Name (eg, city) [beijing]:
Organization Name (eg, company) [SHEN]:
Organizational Unit Name (eg, section) [shen]:
Common Name (eg, your name or your server's hostname) [shen]:
Name [shen]:
Email Address [ymshen83@163.com]:
[root@lx_web_s1 2.0]# cd keys
在keys目錄下就可以看到ca.crt ca.key文件

2、生成Diffie-Hellman文件
# cd ..
# ./build-dh #[注:Generating DH parameters, 1024 bit long safe prime]
# ls keys
ca.crt ca.key dh1024.pem index.txt serial

3.生成VPN server ca證書

# ./build-key-server lxsym #其中lxsym是CA證書的一個名字

一路回車,Sign the certificate? [y/n]:y 選擇y
Certificate is to be certified until Jan 31 02:46:02 2022 GMT (3650 days)
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated
然後把剛生成的CA證書和密鑰copy到/etc/openvpn/下
# cd keys
# cp ca.crt ca.key lxsym.crt lxsym.key dh1024.pem /etc/openvpn/

4.生成客戶端CA證書及密鑰
# ./build-key client-lxsym
一路回車,Sign the certificate? [y/n]:y 選擇y

在keys目錄下生成了client-lxsym.crt client-lxsym.csr client-lxsym.key三個客戶端證書,和ca.crt ca.key client-lxsym.crt client-lxsym.csr client-lxsym.key 五個文件打包,以便客戶端vpn使用.


# cd keys
# tar zcvf userkey.tar.gz ca.crt ca.key client-lxsym.crt client-lxsym.csr client-lxsym.key /data/software/openvpn-2.2.2/sample-config-files/client.conf
# sz userkey.tar.gz #下載到windows客戶端

5.openvpn配置文件
# cp /data/software/openvpn-2.2.2/sample-config-files/server.conf /etc/openvpn/openvpn.conf
cat /etc/openvpn/openvpn.conf
port 1194
proto tcp
dev tun
ca /etc/openvpn/ca.crt
cert /etc/openvpn/lxsym.crt
key /etc/openvpn/lxsym.key
dh /etc/openvpn/dh1024.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "route 192.168.0.0 255.255.255.0"
client-to-client
duplicate-cn
keepalive 10 120
comp-lzo
user nobody
group nobody
persist-key
persist-tun
status /data/logs/openvpn-status.log
log /data/logs/openvpn.log
log-append /data/logs/openvpn.log
verb 3

6.啟動OpenVPN

修改完畢后,即可以啟動vpn,--daemon為後台守護進程模型啟動
/usr/local/openvpn/sbin/openvpn --daemon --config /etc/openvpn/openvpn.conf
[root@lx_web_s1 2.0]# netstat -tunlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:10888 0.0.0.0:* LISTEN 2353/ss5
tcp 0 0 0.0.0.0:1194 0.0.0.0:* LISTEN 16659/openvpn


二.win客戶端的安裝和配置
安裝目錄為D:\Program Files (x86)\OpenVPN
下載openvpn客戶端並進行安裝,完成後把剛剛打包的userkey.tar.gz下載解壓到OpenVPN的config 目錄下
cat client.conf
client
dev tun
proto udp
remote 192.168.52.199 1194


resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert lxsym.crt
key lxsym.key
ns-cert-type server
comp-lzo
verb 3
redirect-gateway def1

確保與服務端的配置對應,然後將client.conf修改文件名為client.ovpn,右鍵點擊client.ovpn,選擇"Start OpenVPN on this config file" 也可以創建桌面快捷鍵,方便以後連接.
可以看到連接已經成功,或者啟動openvpn-gui,雙擊後會在任務欄里有個小連接圖標,變成綠色的話就表明你連接成功.

更多應用敬請關注~

本文出自 「Richard Shen 運維/架構」 博客,請務必保留此出處http://lxsym.blog.51cto.com/1364623/772075


[火星人 ] 【VPN】linux下搭建Openvpn服務環境已經有512次圍觀

http://coctec.com/docs/linux/show-post-46949.html