因爲原先VPN服務器報廢了(Server2003),現在重新配置一臺Linux的VPN服務。
找了一些資料,命令也就那麼幾行,步履維艱,到處是坑。花了兩天時間終於打通。
說明一下我做的步驟。
一、設置VPN機器的靜態IP地址
1.先查看機器的網卡名稱
ifconfig2.修改配置
sudo vim /etc/network/interfacesauto enp0s25
iface enp0s25 inet static
address 192.168.150.21
gateway 192.168.150.1
netmask 255.255.255.0
dns-nameservers 192.168.150.1
3.重啓網絡服務,沒有效果的話,重啓機器。
sudo /etc/init.d/network restart二、配置路由器的端口映射
1.映射1723到VPN機器上2.映射gre協議到VPN機器上
至此從外網到局域網VPN服務器的路已經通了,接下來配置VPN服務。
三、配置VPN服務
1.第一步需要安裝VPN軟件pptpd
sudo apt-get install pptpd提示找不到archive等信息的話,先執行sudo apt-get update,sudo apt-get upgrade,再安裝pptpd。
2.安裝後配置Ubuntu本地IP地址和通過VPN連接後分配的IP地址(IP地址範圍).
sudo vi /etc/pptpd.conf
修改這兩項
localip 192.168.150.1
remoteip 192.168.150.200-250,192.168.150.199
範圍用“-”連接,分段的話用“,”分割。
3.配置pptpd的選項
sudo vi /etc/ppp/pptpd-options
#設置DNS,我是用路由器的地址192.168.150.1
ms-dns 192.168.150.1註釋掉nologfd,不輸入運行信息到stderr。否則log文件太多,不利於查找pptpd的信息。
#nologfd
#配置pptpd的log文件路徑
logfile /var/log/pptpd.log #存放pptpd服務運行的的日誌
4.設置VPN的賬號.
sudo vi /etc/ppp/chap-secrets"username" * "password" *
5.開啓內核IP轉發
sudo vi /etc/sysctl.confnet.ipv4.ip_forward=1
修改立即生效
sudo sysctrl -p
6.安裝iptables,實現請求的NAT轉發
如果沒有iptables的話,先安裝sudo apt-get install iptables
開啓NAT轉發
sudo iptables -t nat -A POSTROUTING -s 192.168.150.0/24 -o enp0s25 -j MASQUERADE
enp0s25是網卡名稱
192.168.150.0/24是你在上面設置的IP段,讓這個段轉發
7.重啓服務,讓配置生效
sudo service pptpd restart8.自動啓動pptpd和NAT轉發
修改/etc/rc.local,在exit 0前面添加NAT轉發和啓動命令iptables -t nat -A POSTROUTING -s 192.168.150.0/24 -o enp0s25 -j MASQUERADE
exit 0
9.開啓防火牆
防火牆開啓後,連接VPN後不能訪問網絡。
因爲ufw的轉發規則默認是DROP的,需要改爲ACCEPT
DEFAULT_FORWARD_POLICY="DROP"
改爲
DEFAULT_FORWARD_POLICY="ACCEPT"
調試錯誤
1.ubuntu discarded non-LCP packet when LCP not open
是因爲沒有配置NAT轉發2.ubuntu gre: read(fd=6,buffer=611660
是因爲路由器沒有銀色gre協議3.mppe required but peer negotiation failed
是因爲客戶端連接時沒有選擇ppp加密DEFAULT_FORWARD_POLICY="DROP"