Centos 6 部署PPTP服务
前言:PPTP使用一个TCP连接对隧道进行维护,使用通用路由封装(GRE)技术把数据封装成PPP数据桢通过隧道传送。可以对封装PPP桢中的负载数据进行加密或压缩。
注意:PPTP协议已经被IOS系统所弃用,所以该协议不支持再IOS系统设备连接VPN,IOS系统需要安装L2TP协议的VPN,L2TP安装配置放在下一篇,谢谢大家关注!
-
环境检查
# 如果你的linux内核版本 等于或高于 2.6.15 ,内核集成了MPPE,如果打印ok,则说明集成了MPPE modprobe ppp-compress-18 && echo ok # 检测是否能安装PPP,打印cat: /dev/net/tun: File descriptor in bad state则说明可安装,否则只能考虑openvpn cat /dev/net/tun
-
软件安装
(1) 安装PPP和PPTP服务
yum -y install ppp pptpd # 如果yum无法安装pptpd,可下载离线rpm包 http://poptop.sourceforge.net/yum/stable/rhel6/x86_64/pptpd-1.4.0-1.el6.x86_64.rpm
-
配置pptpd
(1) 配置IP地址,编辑配置文件/etc/pptpd.conf
vi /etc/pptpd.conf # 找到下面两行 # localip 192.168.0.234-238,192.168.0.245 # remoteip 192.168.1.234-238,192.168.1.245 # localip为本机的内网地址或网段 # remoteip为客户端拨号后分配的地址,可根据实际需求修改
(2) 配置DNS,编辑配置文件/etc/ppp/options.pptpd
vi /etc/ppp/options.pptpd # 找到下面两行dns # ms-dns 10.0.0.2 将dns修改为自己网关或者8.8.8.8
(3) 添加账号密码,编辑配置文件/etc/ppp/chap-secrets
vi /etc/ppp/chap-secrets # client为账号;server为服务名(/etc/ppp/options.pptpd里named字段) # secret为密码;IP addresses为限制哪些IP访问,*表示没有任何限制
(4) 配置iptables转发规则(此配置适用于有公网和私网的服务器)
iptables -t nat -A POSTROUTING -s 192.168.11.0/24 -j SNAT --to-source 101.207.125.93 # 101.207.125.93这个IP为你网卡的地址或者公网IP,切勿照搬 # 以上规则含义为客户端拨号上来的数据都是通过101.207.125.93这个IP出去 # 保存规则 service iptables save
(5) 配置内核使其支持转发和添加模块
vi /etc/sysctl.conf # 配置内核让其支持转发 # 将 net.ipv4.ip_forward = 0 改成 net.ipv4.ip_forward = 1 sysctl - p # 使配置文件生效
(6) 添加防火墙规则(此步骤决定成败哟!!!)
iptables --flush POSTROUTING --table nat iptables --flush FORWARD iptables -I INPUT -p tcp -m tcp --dport 1723 -j ACCEPT iptables -I INPUT -p gre -j ACCEPT iptables -t nat -A POSTROUTING -s 192.168.11.0/24 -o eth0 -j MASQUERADE # 上述的规则就是创建一个192.168.11.*的网段给连上服务器的vpn用户使用,通过服务器上的网卡传出去上网的封包为pptp的GRE封包通过端口1723进行传送,并且还要设定VPN的网段是由哪个网路面传送封包 service iptables save service iptables restart # 使规则生效并重启iptables service start pptpd # 启动pptpd服务 chkconfig pptpd on # 设置pptpd开机启动
-
日志报错及解决办法
# 通过客户端拨号连接上后,查看系统日志,发现一直打印ppp:compressor dropped pkt的错,原因是因为pptp不兼容windows的客户端造成的。Windows客户端mtu值为1400以上,Linux pptp服务器默认mtu为1396。所以此时虽然VPN连接了,一般的ssh流量小的可以访问内网,但是windows上无法访问外网,故需要将1396的mtu值改为1400. # 编辑文件/etc/ppp/ip-up.local,没有则创建。 # 写入以下脚本内容 #!/bin/sh CURRENT_MTU="`ifconfig $1 | grep -Po '(?<=MTU:)([0-9]+)' | tail -1`" FIXED_MTU="`expr $CURRENT_MTU + 4`" for network in `ifconfig | grep -E "ppp" | awk '{print $1}'` do /sbin/ifconfig $network mtu $FIXED_MTU done exit 0 # 脚本含义为当ppp拨号成功后,会一直去检查ppp的mtu值,此时mtu为1396.通过循环将mtu值加4改为1400,就能在windows上兼容了。 # 然后重启pptpd服务即可
-
windows上进行测试
在系统设置里面找到VPN设置,输入服务器IP地址,账号密码。
然后点保存,返回进行连接即可。
显示已连接,并且能访问外网网页和内网服务器,此时VPN搭建成功。
本文来自博客园,作者:谭咏麟,转载请注明原文链接:https://www.cnblogs.com/Merbleue/p/16707454.html