1. 程式人生 > >基於centos7.4搭建openvpn伺服器(親測有效)

基於centos7.4搭建openvpn伺服器(親測有效)

參考:

https://blog.rj-bai.com/post/132.html https://blog.rj-bai.com/post/136.html https://blog.rj-bai.com/post/132.html#menu_index_11 https://blog.rj-bai.com/post/78.html#menu_index_9 https://cloud.tencent.com/info/6b9903d7a58208ae633f757fc99385df.html 一、第一個里程碑 1.1、服務軟體包下載 https://swupdate.openvpn.org/community/releases/openvpn-2.4.1.tar.gz
http://www.oberhumer.com/opensource/lzo/download/lzo-2.09.tar.gz http://swupdate.openvpn.org/community/releases/easy-rsa-2.2.0_master.tar.gz 1.2、客戶端軟體包下載地址: https://swupdate.openvpn.org/community/releases/openvpn-install-2.4.1-I601.exe 二、第二個里程碑 2.1、安裝lzo cd /usr/src tar zxf lzo-2.09.tar.gz cd lzo-2.09
./configure make && make install 2.2、安裝openvpn yum -y install openssl pam openssl-devel pam-devel cd /usr/src tar xf openvpn-2.4.1.tar.gz cd openvpn-2.4.1 ./configure --with-lzo-lib=/usr/local/lib --with-lzo-headers=/usr/local/include make && make install 3.3、安裝easy-rsa-2.2.0
cd /usr/src tar xf easy-rsa-2.2.0_master.tar.gz cd easy-rsa-2.2.0_master/ cp -a easy-rsa/ /etc/openvpn/easy-rsa cd /etc/openvpn/easy-rsa rm -rf 1.0/ Windows/ cd 2.0 pwd /etc/openvpn/easy-rsa/2.0 vim vars export KEY_COUNTRY="CN" export KEY_PROVINCE="BJ" export KEY_CITY="BeiJing" export KEY_ORG="test" export KEY_EMAIL="[email protected]" export [email protected] export KEY_CN=test export KEY_NAME=test export KEY_OU=test export PKCS11_MODULE_PATH=changeme export PKCS11_PIN=1234 #生效配置 source vars ./clean-all (第一次會提示初始化配置,按提示操作,後續正常使用時不可執行此操作,它會清空keys目錄,並初始化序列) #建立服務端證書: ./build-ca #建立根證書 ./build-key-server server(一路回車,輸入兩個y即可) 注意點: A challenge password []:test An optional company name []:test #建立客戶端證書: ./build-key test(一路回車,輸入兩個y即可) 注意點: A challenge password []:test An optional company name []:test #生成密碼協議 ./build-dh ---過程稍慢,不要中斷 #生成防攻擊的key檔案--防DDos和udp淹沒 openvpn --genkey --secret keys/ta.key ls keys/ 三、第三個里程碑 3.1、建立配置檔案目錄,拷貝祕鑰檔案 cp -a /etc/openvpn/easy-rsa/2.0/keys/ /etc/openvpn 3.2、拷貝服務端配置檔案並備份 cp /usr/src/openvpn-2.4.1/sample/sample-config-files/{client,server}.conf /etc/openvpn cd /etc/openvpn cp client.conf{,.ori} cp server.conf{,.ori} 3.3、server配置檔案詳解: port 1194 # 預設埠1194 proto tcp # udp不太穩定,這裡改為tcp協議 dev tun # 採用隧道協議傳輸 ca /etc/openvpn/ca.crt # 根證書檔案 cert /etc/openvpn/server.crt # 服務端證書檔案 key /etc/openvpn/server.key # 服務端祕鑰檔案 dh /etc/openvpn/dh1024.pem #密碼協議交換檔案由./build-dh 生產 server 10.8.0.0 255.255.255.0 #預設虛擬區域網網段,不要和實際的區域網衝突即可 push "route 188.188.8.0 255.255.252.0" # VPN伺服器 所在的內網的網段,讀者應該根據自身實際情況進行修改 client-to-client # 可以讓客戶端之間相互訪問直接通過openvpn程式轉發,根據需要設定 ifconfig-pool-persist ipp.txt #伺服器自動給客戶端分配IP後,客戶端下次連線時,仍然採用上次的IP地址(第一次分配的IP儲存在ipp.txt中,下一次分配其中儲存的IP)。 keepalive 10 120 #每10秒ping一次,連線超時時間設為120秒 tls-auth ta.key 0 #開啟TLS-auth,使用ta.key防禦攻擊。伺服器端的第二個引數值為0,客戶端的為1。 cipher AES-256-CBC persist-key persist-tun #持久化選項可以儘量避免訪問在重啟時由於使用者許可權降低而無法訪問的某些資源。 duplicate-cn # 如果客戶端都使用相同的證書和金鑰連線VPN,一定要開啟這個選項,否則每個證書只允許一個人連線VPN comp-lzo # 開啟 VPN連線 壓縮,如果伺服器端開啟,客戶端也必須開啟 status openvpn-status.log #指定記錄OpenVPN狀態的日誌檔案路徑 log-append openvpn.log #追加生成日誌檔案 verb 5 #指定日誌檔案的記錄詳細級別,可選0-9,等級越高日誌內容越詳細 3.4、開啟核心轉發 vim /etc/sysctl.conf net.ipv4.ip_forward = 1 sysctl -p 3.5、配置防火牆 #先停止firewalld systemctl stop firewalld systemctl disable firewalld yum install -y iptables iptables-services #啟動iptables service iptables start iptables -F ---清空之前所有策略 iptables -X  iptable -Z iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE #閘道器不在vpnserver上,在vpnserver上新增一條NAT地址轉換,將所有的10.8.0.0/24網段的IP都轉成eth0的IP /etc/init.d/iptables save #儲存配置 chkconfig iptables on #開機啟動防火牆 3.6、啟動openvpn並設定開機自啟 /usr/local/sbin/openvpn --config /etc/openvpn/server.conf & echo "#startup openvpn" >>/etc/rc.local echo "/usr/local/sbin/openvpn --config /etc/openvpn/server.conf &" >>/etc/rc.local ps -ef|grep openvpn #檢視程序是否存在 netstat -nlput | grep 1194 #檢視埠是否正確 lsof -i :1194 #檢視tcp埠監聽 tail -f /etc/openvpn/openvpn.log #檢視啟動日誌 ifconfig #檢視啟動後網絡卡 四、第四個里程碑 4.1安裝windows客戶端 OpenVPN 2.4.1 Windows 64位 安裝檔案:(安裝過程全部預設) https://swupdate.openvpn.org/community/releases/openvpn-install-2.4.1-I601.exe 修改客戶端配置檔案,下面為修改內容,其他預設 [[email protected]/etc/openvpn]#egrep '^[^#;]' client.conf client配置檔案: client dev tun proto tcp remote 188.188.10.60 1194 resolv-retry infinite nobind persist-key persist-tun ca ca.crt cert test.crt key test.key comp-lzo remote-cert-tls server tls-auth ta.key 1 cipher AES-256-CBC verb 3 4.2上傳客戶端所需檔案 先將client.conf修改為client.ovpn,然後將OpenVPN伺服器上的client.ovpn、ca.crt、test.crt、test.key、ta.key上傳到Windows客戶端安裝目錄下的config資料夾(C:\Program Files\OpenVPN\config) 第5章啟動啟動OpenVPN GUI 5.1啟動客戶端 在電腦右下角的openvpn圖示上右擊,選擇“Connect”。正常情況下應該能夠連線成功(圖示變為綠色),分配正常的IP。 5.2檢視狀態日誌 [[email protected]/etc/openvpn]#cat openvpn-status.log  OpenVPN CLIENT LIST Updated,Mon Mar 12 22:27:24 2018 Common Name,Real Address,Bytes Received,Bytes Sent,Connected Since test,10.0.0.253:56299,97694,57321,Mon Mar 12 19:36:52 2018 ROUTING TABLE Virtual Address,Common Name,Real Address,Last Ref 10.8.0.10,test,10.0.0.253:56299,Mon Mar 12 19:40:57 2018 GLOBAL STATS Max bcast/mcast queue length,0 END