由於各式各樣的原因,VPN這種東西在某個國家的需求其實是特別大的。那怎樣在VPS或者獨立服務器上搭建適用範圍比較大的OpenVPN服務器呢?
首先當然是要準備安裝程序的安裝包。接下來我們要安裝三樣東西,一是lzo,二是OpenVPN,三是證書文件。現在lzo的版本是2.06,OpenVPN的版本是2.3.2,那麼接下來就動手吧。以下是用root來登錄,為了省卻很多麻煩。
cd /usr/local/src wget http://www.oberhumer.com/opensource/lzo/download/lzo-2.06.tar.gz wget http://swupdate.openvpn.org/community/releases/openvpn-2.3.2.tar.gz wget https://github.com/OpenVPN/easy-rsa/archive/master.zip tar xzf lzo-2.06.tar.gz tar xzf openvpn-2.3.2.tar.gz cd lzo-2.06 ./configure make && make install cd .. cd openvpn-2.3.2 ./configure make && make install
如無意外,這樣軟件就安裝完成了,如果出錯就自己看哪裡報錯吧。然後把下載下來的證書文件解壓縮,複製到相應的位置,再往下就是配置設置了。
複製文件、生成證書
cd /usr/local/src unzip master.zip mkdir /etc/openvpn ls -ld /etc/openvpn cp -ip /usr/local/src/openvpn/sample-config-files/server.conf /etc/openvpn/ cp -ip /usr/local/src/easy-rsa-master/easy-rsa /etc/openvpn/easy-rsa cd /etc/openvpn/easy-rsa/2.0 . ./vars ./clean-all ./build-ca 中途會讓你填寫證書的一些內容,就根據自己的需要更改就好 ./build-key-server server 跟上面一樣,只是其中一項 A challenge password []: 這裡建議留空 ./build-key client1 ./build-key client2 這樣就生成了2個用戶使用證書 ./build-dh 這個要等些少時間的 /usr/local/sbin/openvpn --genkey --secret /etc/openvpn/easy-rsa/2.0/keys/ta.key
配置服務器
vi /etc/openvpn/server.conf
根據下面更改 port 1194 proto udp dev tun ca /etc/openvpn/easy-rsa/2.0/keys/ca.crt cert /etc/openvpn/easy-rsa/2.0/keys/server.crt key /etc/openvpn/easy-rsa/2.0/keys/server.key # This file should be kept secret dh /etc/openvpn/easy-rsa/2.0/keys/dh2048.pem server 10.8.0.0 255.255.255.0 ifconfig-pool-persist ipp.txt push "redirect-gateway def1" push "dhcp-option DNS 8.8.8.8" push "dhcp-option DNS 8.8.4.4" client-to-client keepalive 10 120 tls-auth /etc/openvpn/easy-rsa/2.0/keys/ta.key 0 # This file is secret comp-lzo persist-key persist-tun status openvpn-status.log verb 3
添加OpenVPN自啟動並啟動
vi /etc/rc.local 添加 openvpn --daemon --config /etc/openvpn/server.conf 保存並退出 然後先手動啟動一下 openvpn --daemon --config /etc/openvpn/server.conf
如果使用了防火牆,則在防火牆添加規則
iptables -A INPUT -p udp --dport 1194 -j ACCEPT iptables -A INPUT -i tun+ -j ACCEPT iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -i tun+ -j ACCEPT iptables -A FORWARD -m state --state NEW -o eth0 -j ACCEPT iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A OUTPUT -m state --state NEW -o eth0 -j ACCEPT iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE service iptables save service iptables restart
這樣OpenVPN服務器端應該就已經正常運作。然後自己想辦法把之前生成的證書下載到本地先。然後自己新建一個文本文件
client tls-auth ta.key 1 dev tun proto udp remote [你的服務器IP] 1194 ca ca.crt cert client1.crt key client1.key resolv-retry infinite nobind persist-key persist-tun comp-lzo verb 3
另存為client.ovpn。然後吧客戶端需要用到的文件保存到一個文件夾內,就是
client.ovpn ca.crt client1.crt client1.key ta.key
然後就自己用客戶端去連自己的OpenVPN去做這樣或那樣的事情吧。