VPN === 虛擬私人網路(英語:Virtual Private Network,縮寫:VPN)是一種常用於連接中、大型企業或團體與團體間的私人網路的通訊方法。它利用隧道協定(Tunneling Protocol)來達到保密、傳送端認證、訊息準確性等私人訊息安全效果,這種技術可以用不安全的網路(例如:網際網路)來傳送可靠、安全的訊息。需要注意的是,加密訊息與否是可以控制的,如果是沒有加密的虛擬私人網路訊息依然有被竊取的危險。 ## pptpd ### 安裝 ``` sudo apt install pptpd sudo vi /etc/pptpd.conf //文件修改處 localip 192.168.226.130 vpn listen ip remoteip 172.16.2.30-100 vpn pool ``` ### 設定 ``` sudo vi /etc/ppp/pptpd-options name s15115127 //辨識的名稱 ms-dns 120.119.29.1 ms-dns 8.8.8.8 ``` ``` sudo vim /etc/ppp/chap-secrets pooleasee s15115127 123456 * or pooleasee s15115127 123456 120.119.77.54 ``` ``` sudo vi /etc/sysctl.conf net.ipv4.ip_forward=1 //確認是否設定正確 sudo sysctl -p ``` PPTPD-防火牆(對內) ``` sudo vim /etc/rc.local sudo iptables -t nat -A POSTROUTING -s 172.16.2.0/24 -o ens160 -j MASQUERADE 直接用sudo下就可以生效 sudo iptables -t nat --list ``` PPTPD-防火牆(對外) ``` sudo ufw allow 1723/tcp ``` ### 重啟 ``` sudo /etc/init.d/pptpd restart sudo systemctl restart pptpd.service //監聽連線紀錄 sudo tail -f /var/log/syslog Debug ``` ## L2TP/IPSec ### 安裝 ``` cd /etc/ sudo mkdir l2tp cd l2tp sudo wget https://git.io/vpnsetup -O vpnsetup.sh sudo vi vpnsetup.sh YOUR_IPSEC_PSK='{共享KEY}' YOUR_USERNAME='{s15115127}' YOUR_PASSWORD='{123456}' L2TP_NET=${VPN_L2TP_NET:-'172.16.1.0/24'} L2TP_LOCAL=${VPN_L2TP_LOCAL:-'192.168.226.195'} L2TP_POOL=${VPN_L2TP_POOL:-'172.16.1.30-172.16.1.200'} ``` ### 共享金鑰 ``` openssl rand -hex 30 //ce9f4f90bdd433d145e28dc5e40f16406ba4f5906c08ef1ea63573dfb947 sudo vim /etc/ipsec.secrets %any %any: PSK "ce9f4f90bdd433d145e28dc5e40f16406ba4f5906c08ef1ea63573dfb947" ``` ### 服務重啟 ``` sudo systemctl restart ipsec sudo systemctl restart xl2tpd //監聽除錯 sudo tail -f /var/log/syslog ```