这篇文章适合于Centos 6和7两个版本。

所需软件
» ppp, pptpd ( PPTP VPN )
» iptables ( NAT转发)

这次部署PPTP VPN服务器大致分为4个步骤
» 检查是否符合pptp的搭建环境
» 安装配置ppp和pptpd
» 配置iptables
» 建立用户和测试

» 检查是否符合pptp的搭建环境
步骤 1 » 检查内核是否支持ppp。
[root@eryige ~]# modprobe ppp-compress-18 && echo ok
如果返回结果是ok,则表明通过。

步骤 2 » 检查是否支持tun。
[root@eryige ~]# cat /dev/net/tun
如果结果是cat: /dev/net/tun: File descriptor in bad state,则表明通过。

步骤 3 » 检查是否安装了ppp。
[root@eryige ~]# rpm -q ppp

步骤 4 » 检查是否支持MPPE。
[root@eryige ~]# strings ‘/usr/sbin/pppd’ |grep -i mppe | wc –lines
如果结果大于30,则表明通过。

» 安装配置ppp和pptpd
步骤 1 » 安装ppp和pptpd。
[root@eryige ~]# rpm -Uvh http://poptop.sourceforge.net/yum/stable/rhel6/pptp-release-current.noarch.rpm
[root@eryige ~]# yum install -y perl ppp pptpd

步骤 2 » 配置pptpd。
打开/etc/ppp/options.pptpd
设置require-mppe-128,否则mac连不上。我打开了如下验证方法。
require-mschap-v2
require-mppe-128
require-mppe

在最后面添加。
ms-dns 8.8.8.8
ms-dns 8.8.4.4
nopcomp
noaccomp

打开/etc/pptpd.conf
注释掉stimeout 10,否则xp连不上。
#stimeout 10
在最后面添加VPN的IP信息(文件末尾需保留空一行)。
localip 192.168.6.1
remoteip 192.168.6.11-110

步骤 3 » 配置ppp。
打开/etc/ppp/chap-secrets,添加用户名和密码,格式如下。
这里用户名和密码是pptp登陆用的,*号是运行任意IP登陆。
用户名 pptpd 密码 *
举例来说
yzy9952 pptpd yzy9952 *

步骤 4 » 配置ipv4转发。
打开/etc/sysctl.conf,将net.ipv4.ip_forward = 0 改成 net.ipv4.ip_forward = 1
net.ipv4.ip_forward = 1

步骤 5 » 使转发生效和启动pptpd。
Centos 6
[root@eryige ~]# sysctl -p
[root@eryige ~]# service pptpd start

Centos 7
[root@eryige ~]# sysctl -p
[root@eryige ~]# systemctl start pptpd

步骤 6 » 设置pptpd开机启动。
Centos 6
[root@eryige ~]#  chkconfig –level 235 pptpd on

Centos 7
[root@eryige ~]# systemctl enable pptpd

» 配置iptables
步骤 1 » 设置NAT。
这里的eth0是服务器通向外网的网卡,source的IP是本机IP地址。
[root@eryige ~]# iptables -t nat -A POSTROUTING -o eth0 -s 192.168.6.0/24 -j SNAT –to-source 118.193.133.159

如果是动态IP。
[root@eryige ~]# iptables -t nat -A POSTROUTING -o eth0 -s 192.168.6.0/24 -j MASQUERADE

步骤 2 » 打开必要的端口。
[root@eryige ~]# iptables -A INPUT -p tcp -m tcp –dport 1723 -j ACCEPT
[root@eryige ~]# iptables -A INPUT -p gre -j ACCEPT
[root@eryige ~]# iptables -A INPUT -i ppp+ -j ACCEPT
[root@eryige ~]# iptables -A FORWARD -i eth0 -o ppp+ -j ACCEPT
[root@eryige ~]# iptables -A OUTPUT -p gre -j ACCEPT
[root@eryige ~]# iptables -A OUTPUT -p tcp -m tcp –sport 1723 -j ACCEPT

步骤 3 » 增加这些iptables到现有的iptables里面使下次重启还能使用。
[root@eryige ~]# service iptables save

步骤 4 » 重启iptables,重启pptpd。
[root@eryige ~]# service iptables restart
[root@eryige ~]# service pptpd restart

» 建立用户和测试
步骤 1 » 建立用户。
打开/etc/ppp/chap-secrets,添加用户名和密码,格式如下。
这里用户名和密码是pptp登陆用的,*号是运行任意IP登陆。
用户名 pptpd 密码 *
举例来说
yzy9952 pptpd yzy9952 *
然后重启一下pptpd
[root@eryige ~]# service pptpd restart

步骤 2 » 测试连接。
设置如图