wKiom1Mz1oHTREluAADXWM0f3pw915.jpg

大家可以看到我这里的网络拓扑结构

×××服务器配置:

操作系统:CentOS 6.5 64位

eth1(WAN):192.168.1.207

eth0(LAN):192.168.100.207


1.安裝ppp

yum -y install ppp perl

2.下载及安装pptpd

wget http://poptop.sourceforge.net/yum/stable/rhel6/x86_64/pptpd-1.4.0-1.el6.x86_64.rpm
rpm -ivh pptpd-1.4.0-1.el6.x86_64.rpm

3.配置×××的DNS

vim /etc/ppp/options.pptpd
#加入以下2行,主要是设置DNS
ms-dns 114.114.114.114
ms-dns 8.8.4.4

4.配置ppp的客户端IP

vim /etc/pptpd.conf
#加入以下2行,主要是本地IP,及远程×××客户端使用的IP,不建议使用内部网段
localip 172.16.0.1
remoteip 172.16.0.2-245

5.设置×××账户及密码

vim /etc/ppp/chap-secrets
#增加以下1行,来源如果没限制的话就写*即可
# 账户   服务器  密码    来源
  test   pptpd   test     *

6.设置转发

vim /etc/sysctl.conf
#将net.ipv4.ip_forward的值改成1
net.ipv4.ip_forward = 1
#使修改生效
sysctl -p

7.设置防火墙

iptables -F
iptables -X
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 1723 -j ACCEPT
#对DNS端口进行开放,否则无法使用域名上网
iptables -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j ACCEPT
#允许建立×××隧道,否则无法验证用户名及密码.
iptables -A INPUT -p gre -j ACCEPT
#对IP进行转发
iptables -t nat -A POSTROUTING -o eth0 -s 172.16.0.0/24 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.0/24 -j MASQUERADE
service iptables save
service iptables restart

8.使得开机生效

chkcconfig --level 345 pptpd on
chkcconfig --level 345 iptables on

9.查看×××服务器的日志

pptpd的日志是存放在/var/log/message


tail -F /var/log/messages
Mar 28 13:13:38 NFSServer pptpd[916]: CTRL: Client 192.168.100.103 control connection started
Mar 28 13:13:38 NFSServer pptpd[916]: CTRL: Starting call (launching pppd, opening GRE)
Mar 28 13:13:38 NFSServer pppd[917]: Plugin /usr/lib64/pptpd/pptpd-logwtmp.so loaded.
Mar 28 13:13:38 NFSServer kernel: PPP generic driver version 2.4.2
Mar 28 13:13:38 NFSServer pppd[917]: pppd 2.4.5 started by root, uid 0
Mar 28 13:13:38 NFSServer pppd[917]: Using interface ppp0
Mar 28 13:13:38 NFSServer pppd[917]: Connect: ppp0 <--> /dev/pts/1
Mar 28 13:13:38 NFSServer pppd[917]: peer from calling number 192.168.100.103 authorized
Mar 28 13:13:38 NFSServer kernel: PPP MPPE Compression module registered
Mar 28 13:13:38 NFSServer pppd[917]: MPPE 128-bit stateless compression enabled
Mar 28 13:13:40 NFSServer pppd[917]: Cannot determine ethernet address for proxy ARP
Mar 28 13:13:40 NFSServer pppd[917]: local  IP address 172.16.0.1
Mar 28 13:13:40 NFSServer pppd[917]: remote IP address 172.16.0.234

从以上可以看到,我在使用192.168.100.103登录×××,获取的IP是172.16.0.234

10.查看pptpd端口情况

netstat -ntlup |grep pptpd
tcp        0      0 0.0.0.0:1723                0.0.0.0:*                   LISTEN      990/pptpd

可以看到使用的是TCP的1723端口,因此只需要在路由器上将该端口映射出去即可


11.如果有遇到部门网站无法打开的问题,有可能就是MTU的设置有问题了,造成链路上部分设备堵塞。可以使用如下几种方法修改

  a.通过iptables修改MTU值

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

 b.修改/etc/ppp/ip-up文件,

#在 /etc/ppp/ip-up 中,exit 0行前添加
ifconfig $1 mtu 1356

   或者新建/etc/ppp/ip-up.local,文件内容如下

#!/bin/bash
PATH=/sbin:/usr/sbin:/bin:/usr/bin
export PATH
ifconfig $1 mtu 1356

  添加文件的运行权限

chmod +x /etc/ppp/ip-up.local

 c.修改/etc/ppp/options.pptpd,在文件最后添加

mtu 1356

ps:具体的MTU需要自己去测试,