centos6.5配置 pptpd 搭建VPN服务

一、检查:


1、检查系统内核是否支持MPPE补丁

modprobe ppp-compress-18 &&echo success

显示success说明系统支持MPPE补丁,如果不支持,需要先安装kernel-devel

yum install kernel-devel

2、检查系统是否开启TUN/TAP支持

cat /dev/net/tun

如果这条指令显示结果为下面的文本,则表明通过:

cat: /dev/net/tun: File descriptor in bad state

3、检查系统是否开启ppp支持

cat /dev/ppp

如果这条指令显示结果为下面的文本,则表明通过:

cat: /dev/ppp: No such device or address

上面三条必须同时满足,否则不能安装pptp vpn

 

二、安装:

系统环境:centos 6.5 x64  双网卡  外网IP:210.xxxxx    内网IP:172.16.7.10


安装 ppp 以及所需 

yum -y install make libpcap iptables gcc-c++ logrotate tar cpio perl pam tcp_wrappers dkms kernel_ppp_mppe ppp

 

下载PPTPd,需对应系统的ppp版本,本系统的版本是ppp-2.4.5

Wget http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.4.0-1.el6.`uname -m`

.rpm

 

rpm -Uvh pptpd-1.4.0-*

 


三、配置:

vim  /etc/pptpd.conf


找到“locapip”和“remoteip”这两个配置项

localip 172.16.7.10       # 服务器IP
remoteip 172.16.7.11-15  (最大限制4个连接)  #vpn客户端的ip

 


配置DNS:

#vim /etc/ppp/options.pptpd


ms-dns 202.106.0.20
ms-dns 8.8.8.8

debug       开启pptpd日志,默认日志在/var/log/messages里     


创建帐号:

编辑/etc/ppp/chap-secrets
格式“用户名“ 服务器名 密码 允许IP多个账号就写多行,一行一个:

"hitman"  *  "fuckyou"  *

 

四、网络配置:

 

开转发:

vim  /etc/sysctl.conf


net.ipv4.ip_forward=1

 

开防火墙:

 

iptables -t filter -A INPUT  -p tcp -m multiport --dport 22,1723  -j ACCEPT;  

iptables -A FORWARD -p tcp --syn -s 172.16.7.0/24 -j TCPMSS --set-mss 1356; #解决上网慢的问题,修改MTU值

 

iptables -t nat -A POSTROUTING -o eth1 -s 172.16.7.0/24 -j MASQUERADE;  #地址伪装,使client内网能通

iptables -t nat -A POSTROUTING -o eth0 -s 172.16.7.0/24 -j SNAT --to-source 外网ip;   #SNAT,使client能上网

 

启动:  

service pptpd  start 

./iptables.sh

 

chkconfig pptpd on   开机启动

chkconfig iptables on   

 

问题汇总:

 

如果出现你的vpn安装好拨号时候提示错误619则输入命令:

mknod /dev/ppp c 108 0
在安装完毕之后也出现了619,执行完毕上面命令后,不知道为什么没有生效,只有重启了vps,重启后拨号上网成功!

如果提示“Warning: a pptpd restart does not terminate existing
connections, so new connections may be assigned the same IP
address and cause unexpected results. Use restart-kill to
destroy existing connections during a restart.”错误信息,则执行一下命令:

service pptpd restart-kill
service pptpd start
解决pptp搭建的vpn代理上网很慢
pptp搭建了linux平台的vpn服务器,拨入后访问内网ftp,下载文件极慢;用其作网关上网,除了baidu外,大部分网站访问速度极慢,几乎 无法访问。 解决pptp所在的linux服务的iptables*filter表中加入
-I FORWARD -p tcp syn -i ppp+ -j TCPMSS set-mss 1356
或:
/sbin/iptables -I FORWARD -p tcp syn -i ppp+ -j TCPMSS set-mss 1356 原因分析
=====在断开vpn链接的情况下:
windowsXP下用ping -f -l XXXXXX 192.168.0.1一步一步测试(XXXXXXXMTU大小,可以从1500开始,逐渐减小,知道可以ping通)
我们可以得到可以ping通的MTU最大为1426
=====在连接vpn的前提下
windowsXP下用ping -f -l XXXXXX 192.168.0.1一步一步测试(XXXXXXXMTU大小,可以从1500开始,逐渐减小,知道可以ping通)
我们可以得到可以ping通的MTU最大为1372; 超过这个数则不能通,
====拨通vpn,在服务器上用netstat i查看接口,得到
Iface   MTU Met    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0   1500   0 102528561      0      0      0 194391413      0      0      0 BRU
eth1   1500   0 519820535    954 11553    924 208798037      0      0      0 BRU
lo    16436   0   151062      0      0      0   151062      0      0      0 LRU
ppp0   1396   0       19      0      0      0        8      0      0      0 OPRU 可知ppp的最大mtu1396,当然,对应的mss应为(mtu-20字节的IP头部+20字节的TCP 头部=1356 【小知识1】计算机网络中的MSS
MSS: Maximum Segment Size 最大分段大小
MSS最大传输大小的缩写,是TCP协议里面的一个概念。
MSS就是TCP数据包每次能够传输的最大数据分段。为了达到最佳的传输效能,TCP协议在建立连接的时候通常要协商双方的MSS值,这个值TCP协议在 实现的时候往往用MTU值代替(需要减去IP数据包包头的大小20BytesTCP数据段的包头20Bytes)所以往往MSS1460。通讯双方会 根据双方提供的MSS值得最小值确定为这次连接的最大MSS值。
备注:

ip服务器转发指定规则

iptables -t nat -A POSTROUTING -s 192.168.8.0/24 -j SNAT to-source 192.168.8.1

or

iptables -t nat -A POSTROUTING -s 192.168.8.0/24 -j SNAT to-source 服务器外网ip

如果iphone之类的设备能连上,访问网页或者youtube特别慢,需要做如下修改:


vim /etc/ppp/ip-up

增加一行

/sbin/ifconfig $1 mtu 1400

或者修改iptables规则

iptables -A FORWARD -p tcp syn -s 192.168.8.0/24 -j TCPMSS set-mss 1356

1356的值可能需要自己调整,调节到能保证网络正常使用情况下的最大值。

 

本文出自 “Fate” 博客,请务必保留此出处http://yyzll.blog.51cto.com/4283444/1654005

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。