Linux架设PPTP VPN

PPTP(点到点隧道协议)是一种用于让远程用户拨号连接到本地的ISP,通过因特网安全远程访问公司资源的新型技术。它能将PPP(点到点协议)帧封装成IP数据包,以便能够在基于IP的互联网上进行传输。PPTP使用TCP(传输控制协议)连接的创建,维护,与终止隧道,并使用GRE(通用路由封装)将PPP帧封装成隧道数据。被封装后的PPP帧的有效载荷可以被加密或者压缩或者同时被加密与压缩。我们常见的PPTP都是在路由器上配置的,不过linux下也可以实现PPTP服务器的功能。

我现在配置的是在Centos 6.4 x86_64下进行的,centos 6.4内核版本在2.6.15以上,都默认集成了MPPE和PPP,因此下面检查可以忽略,如果是2.6.15以下的需要检测如下:

#rpm -q  ppp      //查询当前系统的ppp是否默认集成了,以及ppp的版本

检查PPP是否支持MPPE

用以下命令检查PPP是否支持MPPE:

#strings‘/usr/sbin/pppd’|grep -i mppe | wc–lines

如果以上命令输出为“0”则表示不支持;输出为“30”或更大的数字就表示支持,MPPE(Microsoft Point to Point Encryption,微软点对点加密)。

安装ppp

yum –y install ppp

安装pptpd

下载pptpd:http://pan.baidu.com/s/1gd42CYB

rpm -ivh pptpd-1.3.4-2.el6.x86_64.rpm

配置

编辑 /etc/ppp/options.pptpd文件/etc/ppp/options.pptpd    —-pptp加密选项文件路径

pptpd是服务器的名字

默认拒绝使用pap、chap和mschap认证,而采用mschap-v2进行认证,加密采用128位的mppe方式加密。

ms-dns配置的是VPN client连接上VPN服务器之后获得的DNS,需要配置自己所在地的运营商的DNS也可以是第三方的DNS。

编辑配置文件 /etc/pptpd.conf ,内容如下:

option/etc/ppp/options.pptpd

stimeout 120 —-开始PPTP控制连接的超时时间,以秒计;debug —-把所有debug信息记入系统日志/var/log/messages;

localip —-服务器VPN虚拟接口将分配的IP地址,可设置为与VPN服务器内网地址相同网段的IP,也可以设置为另一网段的IP;remoteip —-客户端VPN连接成功后将分配的IP地址段,同样可设置为与VPN服务器内网地址相同网段的IP地址段,也可以设置为另一网段的IP地址段;

.对用户认证文件/etc/ppp/chap-secrets 进行配置,内容如下:# client     server   secret     IP addressestest       pptpd     test            *client对应客户端登录用户名,secret为密码,ip下的*为随机分配刚才remoteip池中的地址,也可以自己指定用户连接VPN之后获取的IP地址,pptpd则为服务名。

设置防火墙,iptables的pptp VPN策略:

iptables -A INPUT -p 47  -j ACCEPT

iptables -A OUTPUT -p 47 -j ACCEPT

iptables -A INPUT -p tcp –dport 1723 -j ACCEPT

iptables -A OUTPUT -p tcp –sport 1723 -j ACCEPT

启用nat转发

iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT–to-source *.*.*.* (如*.*.*.*为vpn服务器的公网IP地址,或者配置了VPN client获取的是不同网段的IP)

保存iptables转发规则:

service iptables save

重启iptables:

service iptables restart

设置linux内核,支持ip转发

配置 /etc/sysctl.conf 文件

net.ipv4.ip_forward = 1将值改为1,即为启用

保存退出,执行sysctl -p 使之生效

重启pptp服务:

service pptpd restart

设置开机自动运行pptp服务:

chkconfig pptpd on

设置开机自动运行iptables服务:

chkconfig iptables on

至此,centos架设VPN完成。