用vpn已經有很多年,然而一直因為懶惰原因,所以一直都沒有寫關於如何搭建vpn伺服器的文章,今年興緻所致,分享一下個人搭建vpn server的過程,寫的簡陋,請勿拍磚。vpn的使用非常廣泛,可謂大多網蟲和技術股都需要用到的東西,不過看下文之前請先看看自己的伺服器是否支援pptp方式的vpn伺服器,具體請執行命令
modprobe ppp-compress-18 && echo ok
假如輸出ok請繼續, 假如不ok,說明伺服器不支援。下面的文章可能對你沒啥用。
第一步:安裝pptpd
通常情況下可以通過yum直接安裝pptpd,執行
yum list pptpd
假如有則執行
yum install pptpd
如果沒有需要到sf.net下載,執行如下命令進行安裝
cd /usr/local/src
#For 64bit OS
wget http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.4.0-1.el6.x86_64.rpm
rpm -Uhv pptpd-1.4.0-1.el6.x86_64.rpm
#For 32bit os
wget http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.4.0-1.el6.i686.rpm
rmp -Uhv pptpd-1.4.0-1.el6.i686.rpm
到此pptpd vpn 伺服器安裝完畢
pptp vpn伺服器配置
配置pptp vpn ip地址
編輯/etc/pptpd.conf設定:
vim /etc/pptpd.conf
找到39行logwtmp處前面加上#號注釋(詳細見:解決VPN伺服器出現PTY read or GRE write failed問題);並且設定本地ip(localip)和用戶端ip(remoteid)分配ip大約在102行
#logwtmp
localip 192.168.0.1
remoteip 192.168.0.234-238,192.168.0.245
這樣在pptp vpn 伺服器上面ip為192.168.0.1進行轉寄,用戶端可以分配ip號段為remoteip,根據自己的數量需要設定ip號段。
添加pptp vpn賬戶和密碼
編輯/etc/ppp/chap-secrets,添加格式為:
使用者名稱 pptpd的名稱(預設為pptpd)密碼 ip地址
這裡需要注意:位置一定不能弄錯,最後一個ip地址隨機分配請填寫*,但是一定要加上,否則在驗證的時候會出錯具體樣本如下:
# client server secret IP addresses
vpnuser0 pptpd vpnpass1 *
配置pptp vpn dns伺服器
通常情況下使用google的DNS伺服器,編輯/etc/ppp/options.pptpd檔案
vim /etc/ppp/options.pptpd
#把ms-dns處修改為:
ms-dns 8.8.8.8
ms-dns 4.2.2.2
#推薦把偵錯模式開啟,取消以下文字前面的#號取消注釋
debug
開啟網路轉寄功能
#開啟 /etc/sysctl.conf
vim /etc/sysctl.conf
#添加(如果有則去掉前面的#號取消注釋)
net.ipv4.ip_forward = 1
#執行如下命令使剛剛操作在系統生效
sysctl -p
pptp vpn防火牆配置
通過以上步驟基本上可以串連到重啟後的vpn伺服器,但是要讓外部使用者能串連PPTP VPN,還需要在防火牆中將Linux伺服器的1723連接埠和47連接埠開啟,並開啟GRE協議:
#注意下面的eth1為網卡,通常有一張內網卡和外網卡,請通過ifconfig命令查看
#請選擇顯示為外網ip的網卡
iptables -A INPUT -i eth1 -p tcp --dport 1723 -j ACCEPT
iptables -A INPUT -i eth1 -p gre -j ACCEPT
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
#儲存防火牆設定並重啟防火牆
service iptables save
service iptables restart
如果出現”Failed to restart iptables.service: Unit iptables.service failed to load: No such file or directory.” 請查看解決 RHEL 7/ CentOS 7/Fedora 找不到iptables service
調試pptp vpn伺服器
#開啟pptpd
service pptpd restart
#設定開機啟動pptpd
chkconfig pptpd on
到以上步驟,基本上配置已經完成。接下來串連用戶端並執行如下命令查看pptp vpn伺服器日誌
tail -f /var/log/messages
假如正常,便可收工,如果有問題,請根據日誌提示自動爬文