Linux系统上PPTP协议VPN服务器架设方法 |
本文标签:Linux,PPTP,VPN VPN服务常用的协议一般有两种: L2TP——附带IPsec(IP安全)的L2TP(第2层隧道协议)是非常安全的协议,其内置于多种桌面和移动设备 。L2TP/IPsec采用256位加密, 但额外的安全开销比PPTP需要更多的CPU使用率 。 我们在这篇文章中要讲的便是PPTP的VPN架设,点对点隧道协议 (PPTP) 是由包括微软和3Com等公司组成的PPTP论坛开发的一种点对点隧道协,基于拨号使用的PPP协议使用PAP或CHAP之类的加密算法,或者使用 Microsoft的点对点加密算法MPPE 。其通过跨越基于 TCP/IP 的数据网络创建 VPN 实现了从远程客户端到专用企业服务器之间数据的安全传输 。PPTP 支持通过公共网络(例如 Internet)建立按需的、多协议的、虚拟专用网络 。PPTP 允许加密 IP 通讯,然后在要跨越公司 IP 网络或公共 IP 网络(如 Internet)发送的 IP 头中对其进行封装 。 PPTP是一个比较简单的VPN构建方式,但是很难找到比较全的说明文档 。因此,记录一篇说明文档,详细记录架设VPN服务器以及总结一些其他比较容易遇到的问题 。 安装PPTP 复制代码 代码如下:rpm -i http://poptop.sourceforge.net/yum/stable/rhel6/pptp-release-current.noarch.rpm yum -y install pptpd 如果是Ubuntu的话,更加简单了: 复制代码 代码如下:apt-get install pptpd
复制代码 代码如下:localip 10.0.0.1 remoteip 10.0.0.100-200 上面的IP地址是可以随便填的,ABC三类的内网地址都可以,主要兼顾其他地方的IP配置,不要出现IP冲突就可以了,后面的remoteip,默认从第一个10.0.0.100开始分配给客户,localip表示分配给服务器的内部网关地址 。 配置客户端DNS 在配置文件中加上: 复制代码 代码如下:ms-dns 202.96.128.86 ms-dns 202.96.128.166 这里配置成客户端所在地的DNS就好了 。 配置VPN账号 这里的ip地址如果明文表示静态分配,如果填*就表示动态分配 。 启动服务 复制代码 代码如下:service pptpd restart chkconfig pptpd on 查看一下服务器是否在1723上面监听了 ![]() 配置系统转发 复制代码 代码如下:net.ipv4.ip_forward = 1 如果未来ipv6普及了,估计应该就是改ipv6了,修改完毕之后要马上生效,使用命令 复制代码 代码如下:sysctl -p 配置防火墙转发 复制代码 代码如下:iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE 或 复制代码 代码如下:iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o eth0 -j SNAT --to 115.115.115.115 其中第一种比较简单,自动伪装ip,第二种的10.0.0.0/24指的是VPN虚拟内网,而115.115.115.115代表外网地址,进行NAT 。如果VPN服务器是用来代理上网的,仅有上面的配置会出现访问网站缓慢的情况,需要手动修改一下转发包的mss 复制代码 代码如下:iptables -A FORWARD -p tcp --syn -s 10.0.0.0/24 -j TCPMSS --set-mss 1356 这样就不会出现打不开网页的问题了,最后可以保存一下防火墙 。 复制代码 代码如下:iptables-save
复制代码 代码如下:LCP: timeout sending Config-Requests 下面是双方加解密不一致的: 复制代码 代码如下:LCP terminated by peer (^O^XH-^@<M-Mt^@^@^@^@) pptp需要用到的端口 pptp使用到的端口只有一个,那就是1723,网上有很多误人子弟的文章还说要开47端口,真是坑爹,因为GRE协议号是47,并不代表需要开47端口,因此如果是要映射端口的话,1723就完全够了,不要信网上的某些教程,如果使用了iptable来作为防火墙,需要加入规则 复制代码 代码如下:iptables -A INPUT -p tcp --dport 1723 -j ACCEPT iptables -A INPUT -p 47 -j ACCEPT 如果是在内网中,需要网关转发,那么网关需要如下配置: 复制代码 代码如下:iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 1723 -j DNAT --to SERVER_IP iptables -t nat -A PREROUTING -i eth0 -p 47 -j DNAT --to SERVER_IP |