1.先看看你的主机是否支持pptp,返回结果为yes就表示通过。
1 |
modprobe ppp-compress-18 && echo yes |
2 .是否开启了TUN,有的虚拟机主机需要开启,返回结果为cat: /dev/net/tun: File descriptor in bad state。就表示通过。
1 |
cat /dev/net/tun |
3.安装ppp , pptpd 和 iptables。
a.安装ppp和pptpd
1 |
yum -y install ppp pptpd |
b.安装iptables。这是自带的,如果没有的话就安装。
1 |
yum -y install iptables |
4.配置pptpd.conf。
1 2 3 4 5 |
vi /etc/pptpd.conf #找到localip localip 172.16.195.1 remoteip 172.16.195.101-200 #Localip这行是给vpn服务器设置一个隧道ip #Remoteip是自动分配给客户端的ip地址范围。 |
5.配置options.pptpd
1 2 3 4 5 |
vi /etc/ppp/options.pptpd #在末尾添加dns #先去掉debug前面的#,开启日志记录 ms-dns 8.8.8.8 #这是谷歌的,你也可以改成阿里巴巴的或者其它 ms-dns 8.8.4.4 logfile /var/log/pptpd.log |
6.配置连接VPN客户端要用到的帐号密码。
1 2 3 4 5 |
vi /etc/ppp/chap-secrets #格式很通俗易懂。 # client为帐号,server是pptpd服务,secret是密码,*表示是分配任意的ip # Secrets for authentication using CHAP # client server secret IP addresses user pptpd pwd * |
7.配置sysctl.conf
1 2 3 |
vi /etc/sysctl.conf #添加一行 net.ipv4.ip_forward = 1 #到末尾即可,然后保存,这个很重要,系统路由模式功能。 sysctl -p #运行这个命令会输出上面添加的那一行信息,意思是使内核修改生效 |
8.这个时候把iptables关闭的话是可以连接VPN了,之所以要把iptables关闭是因为没有开放VPN的端口,客户如果直接连接的话是不允许的。这里还需要设置iptables的转发规则,让你的客户端连接上之后能访问外网。
1 2 3 |
/sbin/iptables -t nat -A POSTROUTING -s 172.16.195.0/24 -o eth0 -j SNAT --to-source 10.175.249.241 /sbin/iptables -t nat -A POSTROUTING -s 10.175.249.0/24 -o eth1 -j SNAT --to-source 58.96.183.250 /sbin/iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE |
目标网络vpn的内部网络为10.175.249.0/24,vpn服务器有2个网卡,其中一个网卡连私有网络(eth0),ip是10.175.249.241,另外一个连接公网(eth1),ip地址是58.96.183.250。这样就能正常地路由所涉及的网络了。
9.这个时候还是连接不上的,因为iptables把客户的VPN连接拦截了,不允许连接,所以得开放相应的端口。
具体是哪个端口可以自己查下,我的是默认的,如果你没有更改过的话也会是默认的。
1 2 3 |
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服务生效。
1 2 |
systemctl restart iptables systemctl restart pptpd |
11.VPN服务器搭建完成。
12.VPN客户端搭建请看我前面写的一篇win7 vpn客户端搭建图文教程
来源:老K营(微信公众号:lkycn_com),欢迎分享本文,转载请保留出处!
Pingback: CentOS 7 按照VPN Server 和 Client - IT大道