點對點隧道協議(PPTP)是VPN服務的一種最簡單的實現協議,其它常見的VPN類型還有:使用IPsec的第2層隧道協議(L2TP/IPsec)、安全套接字隧道協議(SSL VPN)。本文主要討論PPTP VPN服務在Ubuntu上的安裝和配置。
A. 使用apt源服務來安裝PPTPD服務
sudo apt-get update sudo apt-get install pptpd
B.安裝完成之后編輯pptpd.conf配置文件
sudo vi /etc/pptpd.conf #確保如下選項的配置 option /etc/ppp/pptpd-option #指定PPP選項文件的位置 debug #啟用調試模式 localip 192.168.0.1 #VPN服務器的虛擬ip remoteip 192.168.0.200-238,192.168.0.245 #分配給VPN客戶端的虛擬ip
C.編輯PPP選項配置文件
sudo vi /etc/ppp/pptpd-options #確保如下選項的配置 name pptpd #pptpd服務的名稱 refuse-pap #拒絕pap身份認證模式 refuse-chap #拒絕chap身份認證模式 refuse-mschap #拒絕mschap身份認證模式 require-mschap-v2 #允許mschap-v2身份認證模式 require-mppe-128 #允許mppe 128位加密身份認證模式 ms-dns 8.8.8.8 #使用Google DNS ms-dns 8.8.4.4 #使用Google DNS proxyarp #arp代理 debug #調試模式 dump #服務啟動時打印出所有配置信息 lock #鎖定TTY設備 nobsdcomp #禁用BSD壓縮模式 logfile /var/log/pptpd.log #輸出日志文件位置
D.編輯用戶配置文件來添加用戶
sudo vi /etc/ppp/chap-secrets #格式:用戶名 服務類型 密碼 分配的ip地址 test * 1234 * #第一個*代表服務可以是PPTPD也可以是L2TPD,第二個*代表隨機分配ip
E.重啟PPTPD服務
sudo service pptpd restart
F.配置網絡和路由規則 設置ipv4轉發
sudo sed -i 's/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/g' /etc/sysctl.conf sudo sysctl -p
G.設置iptables NAT轉發
#注意這里eth0代表你的外網網卡,請用ifconfig查看或者咨詢網絡管理員 sudo iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE #如果上面的命令報錯,那么可以嘗試以下的命令,其中xxx.xxx.xxx.xxx代表你的VPS外網ip地址 sudo iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j SNAT --to-source xxx.xxx.xxx.xxx
H. 設置MTU來確保過大的包不會被丟棄(這個可以不做)
sudo iptables -I FORWARD -s 192.168.0.0/24 -p tcp --syn -i ppp+ -j TCPMSS --set-mss 1300
檢查VPN服務器的連接情況
ps -aux | grep pptpd root 2711 0.0 0.0 10680 752 ? Ss 07:50 0:00 /usr/sbin/pptpd ubuntu 2882 0.0 0.0 10460 936 pts/0 S+ 08:20 0:00 grep --color=auto pptpd ubuntu@ip-172-31-26-143:~$ ps -aux | grep pptpd root 2711 0.0 0.0 10680 756 ? Ss 07:50 0:00 /usr/sbin/pptpd root 2883 0.0 0.0 14884 892 ? S 08:21 0:00 pptpd [221.194.176.15:12E3 - 0100] root 2884 0.0 0.2 34840 2240 pts/4 Ss+ 08:21 0:00 /usr/sbin/pppd local file /etc/ppp/pptpd-options 115200 172.31.26.143:172.31.26.100 ipparam 221.194.176.15 plugin /usr/lib/pptpd/pptpd-logwtmp.so pptpd-original-ip 221.194.176.15 remotenumber 221.194.176.15 ubuntu 2895 0.0 0.0 10464 932 pts/0 S+ 08:21 0:00 grep --color=auto pptpd