CentOS7搭建VPN伺服器教程
阿新 • • 發佈:2019-02-01
遇到好多人說搭建VPN伺服器出錯的,今天正好搞了個Centos7的伺服器,搭建了個VPN耍耍。
1.先看看你的主機是否支援pptp,返回結果為yes就表示通過。
modprobe ppp-compress-18 && echo yes
2 .是否開啟了TUN,有的虛擬機器主機需要開啟,返回結果為cat: /dev/net/tun: File descriptor in bad state。就表示通過。
cat /dev/net/tun
3.安裝ppp , pptpd 和 iptables。
a.先更新一下再安裝。
yum install update
b.安裝ppp和pptpd
yum -y install ppp pptpd
c.安裝iptables。
這是自帶的,如果沒有的話就安裝。
yum install iptables
4.配置pptpd.conf。
vi /etc/pptpd.conf #找到localip,去掉開始的那個#符號 localip 192.168.0.1 remoteip 192.168.0.234-238,192.168.0.245 #這些是預設的,一般不需要去修改,分配給客戶端的ip就是234到238之間,你也可以往大了寫,看你的客戶端有多少。
5.配置options.pptpd
vi /etc/ppp/options.pptpd #在末尾新增dns ms-dns 8.8.8.8 #這是谷歌的,你也可以改成阿里巴巴的或者其它 ms-dns 8.8.4.4
6.配置連線VPN客戶端要用到的帳號密碼。
vi /etc/ppp/chap-secrets #格式很通俗易懂。 # client為帳號,server是pptpd服務,secret是密碼,*表示是分配任意的ip # Secrets for authentication using CHAP # client server secret IP addresses count pptpd 771297972 *
7.配置sysctl.conf
vi /etc/sysctl.conf #新增一行 net.ipv4.ip_forward = 1 到末尾即可,然後儲存 sysctl -p #執行這個命令會輸出上面新增的那一行資訊,意思是使核心修改生效
8.這個時候把iptables關閉的話是可以連線VPN了,之所以要把iptables關閉是因為沒有開放VPN的埠,客戶如果直接連線的話是不允許的。這裡還需要設定iptables的轉發規則,讓你的客戶端連線上之後能訪問外網。
iptables -t nat -F iptables -t nat -A POSTROUTING -s 192.168.0.234/24 -j SNAT --to 你的伺服器的公網IP #192.168.0.234/24是你分配給客戶的ip,後面的那個是你的伺服器的公網IP
9.這個時候還是連線不上的,因為iptables把客戶的VPN連線攔截了,不允許連線,所以得開放相應的埠。
具體是哪個埠可以自己查下,我的是預設的,如果你沒有更改過的話也會是預設的。
iptables -I INPUT -p tcp --dport 1723 -j ACCEPT iptables -I INPUT -p tcp --dport 47 -j ACCEPT iptables -I INPUT -p gre -j ACCEPT
10.保險起見,到了這裡應該重啟一下pptpd服務和iptables服務生效。
systemctl restart iptables systemctl restart pptpd