centos6.5配置pptpd搭建VPN服务

分类:CentOS运维 阅读:10195 次

一、检查:

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

modprobeppp-compress-18&&echosuccess

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

yuminstallkernel-devel

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

cat/dev/net/tun

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

cat:/dev/net/tun:Filedescriptorinbadstate

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

cat/dev/ppp

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

cat:/dev/ppp:Nosuchdeviceoraddress

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

二、安装:

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

安装ppp以及所需

yum-yinstallmakelibpcapiptablesgcc-c++logrotatetarcpioperlpamtcp_wrappersdkmskernel_ppp_mppeppp

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

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

.rpm

rpm-Uvhpptpd-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-dns202.106.0.20
ms-dns8.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-tfilter-AINPUT-ptcp-mmultiport--dport22,1723-jACCEPT;

iptables-AFORWARD-ptcp--syn-s172.16.7.0/24-jTCPMSS--set-mss1356;#解决上网慢的问题,修改MTU值

iptables-tnat-APOSTROUTING-oeth1-s172.16.7.0/24-jMASQUERADE;#地址伪装,使client内网能通

iptables-tnat-APOSTROUTING-oeth0-s172.16.7.0/24-jSNAT--to-source外网ip;#SNAT,使client能上网

启动:

servicepptpdstart

./iptables.sh

chkconfigpptpdon开机启动

chkconfigiptableson

问题汇总:

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

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

如果提示“Warning:apptpdrestartdoesnotterminateexisting
connections,sonewconnectionsmaybeassignedthesameIP
addressandcauseunexpectedresults.Userestart-killto
destroyexistingconnectionsduringarestart.”错误信息,则执行一下命令:

servicepptpdrestart-kill
servicepptpdstart
解决pptp搭建的vpn代理上网很慢
用pptp搭建了linux平台的vpn服务器,拨入后访问内网ftp,下载文件极慢;用其作网关上网,除了baidu外,大部分网站访问速度极慢,几乎无法访问。解决:在pptp所在的linux服务的iptables的*filter表中加入
-IFORWARD-ptcp–syn-ippp+-jTCPMSS–set-mss1356
或:
/sbin/iptables-IFORWARD-ptcp–syn-ippp+-jTCPMSS–set-mss1356原因分析
=====在断开vpn链接的情况下:
在windowsXP下用ping-f-lXXXXXX192.168.0.1一步一步测试(XXXXXXX为MTU大小,可以从1500开始,逐渐减小,知道可以ping通)
我们可以得到可以ping通的MTU最大为1426;
=====在连接vpn的前提下
在windowsXP下用ping-f-lXXXXXX192.168.0.1一步一步测试(XXXXXXX为MTU大小,可以从1500开始,逐渐减小,知道可以ping通)
我们可以得到可以ping通的MTU最大为1372;超过这个数则不能通,
====拨通vpn,在服务器上用netstat–i查看接口,得到
IfaceMTUMetRX-OKRX-ERRRX-DRPRX-OVRTX-OKTX-ERRTX-DRPTX-OVRFlg
eth015000102528561000194391413000BRU
eth11500051982053595411553924208798037000BRU
lo164360151062000151062000LRU
ppp013960190008000OPRU可知ppp的最大mtu为1396,当然,对应的mss应为(mtu-20字节的IP头部+20字节的TCP头部=)1356【小知识1】计算机网络中的MSS:
MSS:MaximumSegmentSize最大分段大小
MSS最大传输大小的缩写,是TCP协议里面的一个概念。
MSS就是TCP数据包每次能够传输的最大数据分段。为了达到最佳的传输效能,TCP协议在建立连接的时候通常要协商双方的MSS值,这个值TCP协议在实现的时候往往用MTU值代替(需要减去IP数据包包头的大小20Bytes和TCP数据段的包头20Bytes)所以往往MSS为1460。通讯双方会根据双方提供的MSS值得最小值确定为这次连接的最大MSS值。
备注:

多ip服务器转发指定规则

iptables-tnat-APOSTROUTING-s192.168.8.0/24-jSNAT–to-source192.168.8.1

or

iptables-tnat-APOSTROUTING-s192.168.8.0/24-jSNAT–to-source服务器外网ip

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

vim /etc/ppp/ip-up

增加一行

/sbin/ifconfig$1mtu1400

或者修改iptables规则

iptables-AFORWARD-ptcp–syn-s192.168.8.0/24-jTCPMSS–set-mss1356

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