pptp安装过程和步骤

这里的场景为PPTP的单网卡模式,即旁挂旁路部署,主要在出口防火墙做1723的端口映射,原因PPTP*** 拨号纽盾设备体验不好。

系统为最小化安装,centos 6.8 ,仅仅安装了PPTP 的和必要的服务。

1、验证ppp

用cat命令检查是否开启ppp,一般服务器都是开启的,除了特殊的VPS主机之外。

[root@localhost1 /]# cat /dev/ppp

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

cat出现上面结果,则说明ppp是开启的,可以正常的配置pptp了。

2 安装PPP 

先安装epel的扩展源,否则不能进行pptpd的安装和配置文件的更改。

[root@localhost1 /]# yum -y install pptpd  

iptables一般情况默认都是系统装好后就已经有了,安装iptables是为了做NAT,让PPTP客户端能够通过PPTP服务器上外网。

3、配置pptp

[root@localhost1 /]# vi /etc/pptpd.conf

在最底下添加下面两行,localip是pptp服务器端IP,remoteip是客户端获取的IP地址范围

localip 172.17.0.100  拨号成功后再*** 客户端详细信息可以查看。

remoteip 172.17.0-30

4 修改options.pptpd文件

[root@localhost1 /]# vi /etc/ppp/options.pptpd

打开后,找到下面字段,并修改成你想要为***用户分配的dns服务器

ms-dns 114.114.114.114

ms-dns 172.17.9.16  我内网的dns服务器

5  添加***的帐号和密码

[root@localhost1 /]# vi /etc/ppp/chap-secrets

一行添加一个账号,每个帐号需要添加的4个字段,分别为:用户名、服务、密码、分配的ip地址(如果IP为*,则表示随机分配,分配范围采用pptp.conf中的设置)

# client server secret IP addresses

hmj pptpd hmj123 *

#kefubu

test  pptpd test2017 *

lili  pptpd 2017xt  *

6、开启ip转发

[root@localhost1 /]# vi /etc/sysctl.conf

把net.ipv4.ip_forward的值改为1,追加即可。找到net.ipv4.ip_forward = 0 改为 net.ipv4.ip_forward = 1

net.ipv4.ip_forward = 1

保存退出,并执行下面命令使内核配置生效:

[root@localhost1 /]# sysctl -p

7、配置iptables转发

[root@localhost1 /]# iptables -t nat -A POSTROUTING -s 172.17.12.0/24 -j SNAT --to-source 172.17.0.100

这条命令是让192.168.100.0这个段的ip地址,可以通过58.33.244.126这个公网IP访问外网。

你需要将192.168.100.0/24替换成你在pptp.conf中设置的ip段和子网掩码,将58.33.244.126替换成你服务器自己的公网ip地址,否则拨上来的用户只能访问内网。

8、启动服务

[root@localhost1 /]# /etc/init.d/pptpd restart \status\stop

将服务配置为开机自动启动

[root@localhost1 /]# chkconfig pptpd on

[root@localhost1 /]# chkconfig iptables on

/etc/init.d/pptpd start

chkconfig --level 35 pptpd on

9 拨号成功后可以看到ppp的隧道口UP.

: ppp0: mtu 1396 qdisc pfifo_fast state UNKNOWN qlen 3

    link/ppp 

    inet 172.17.0.100 peer 172.17.12.1/32 scope global ppp0

10 #######查看拨号的用户有哪些##pptpd ***查看当前在线用户################################################

 last | grep still | grep ppp

 23.iptables -A INPUT -p tcp -m tcp -d 123.123.123.123 --dport 80 -j ACCEPT24.iptables -A INPUT -p tcp -m tcp -d 123.123.123.123 --dport 443 -j ACCEPT25.iptables -A INPUT -p tcp -m tcp -d 123.123.123.124 --dport 1723 -j ACCEPT26.iptables -A INPUT -p icmp -m icmp --icmp-type any -j ACCEPT27.iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEP

 [root@nginx ~]# ip ad |grep mtu

1: lo: mtu 65536 qdisc noqueue state UNKNOWN 

2: eth0: mtu 1500 qdisc pfifo_fast state UP qlen 1000

50: ppp0: mtu 1396 qdisc pfifo_fast state UNKNOWN qlen 3

[root@nginx ~]# cat /sys/class/net/ppp0/mtu   *** 客户端拨号正常后发现某些网页不能打开,mtu 问题,

1396

[root@nginx ~]# echo "1472" > /sys/class/net/ppp0/mtu

[root@nginx ~]# 

[root@nginx ~]# cat /sys/class/net/ppp0/mtu 

1472

[root@nginx ~]# 

手动修改后网页可以正常打开,但是重启又要重新修改,需要些脚本。下面的链接参考。

http://www.cnblogs.com/kevingrace/p/6329722.html?utm_source=itdadao&utm_medium=referral

1、查看mtu: 

# ip a | grep mtu 

1: lo: mtu 16436 qdisc noqueue state UNKNOWN  

2: eth0: mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000

254: gre0: mtu 1472 qdisc noop state DOWN  

# 可以查看到所有网卡的mtu值,此处可以看到eth0的是1500,gre0的是1472 

2、 查看某个网卡的MTU,ppp0的需要连接***后才能查看 

# cat /sys/class/net/ppp0/mtu

# 更改其值 

# echo "1472" > /sys/class/net/ppp0/mtu 

# 改完以后测试立即就能访问百度了。看来真的是这个问题。于是把它添加到连接自动设置其值。

3、配置***连接自动设置MTU的值 

# 2. 写到/etc/ppp/ip-up中 

# vim /etc/ppp/ip-up 

#!/bin/bash 

# This file should not be modified -- make local changes to 

# /etc/ppp/ip-up.local instead 

PATH=/sbin:/usr/sbin:/bin:/usr/bin

export PATH 

LOGDEVICE=$6

REALDEVICE=$1 

[ -f /etc/sysconfig/network-scripts/ifcfg-${LOGDEVICE} ] && /etc/sysconfig/network-scripts/ifup-post --realdevice ${REALDEVICE} ifcfg-${LOGDEVICE}  

/etc/ppp/ip-up.ipv6to4 ${LOGDEVICE} 

[ -x /etc/ppp/ip-up.local ] && /etc/ppp/ip-up.local "$@"

/sbin/ifconfig ppp0 mtu 1472        # 添加到这里 

exit 0

# 断开***后重新测试连接,发现一切正(http://www.linuxidc.com/Linux/2015-02/113178.htm)参考链接

注意点:.启动pptpd 

/sbin/service pptpd start

注:重新启动pptpd

Shutting down pptpd: [ OK ]

Starting pptpd: [ OK ]

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

iptables -A INPUT -p tcp --dport 1723 -j ACCEPT

iptables -A INPUT -p tcp --dport 47 -j ACCEPT

iptables -A INPUT -p gre -j ACCEPT

iptables -A INPUT -p UDP --dport 53 -j ACCEPT

在安装的时候又出现没有/etc/pptpd.conf 文件,于是安装epel 的扩展源问题yun install -y pptpd 解决。

处理PPTP 的各种问题,619  错误


[root@pptp ~]# vim snat.sh 防火墙添加转发规则和放行pptpd端口流量
#/bin/bash
modprobe iptable_nat
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
iptables -F
iptables -X
iptables -Z
iptables -A INPUT -p gre -j ACCEPT
iptables -A INPUT -p tcp --dport 1723 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 1723 -j ACCEPT
iptables -A INPUT -p tcp --dport 47 -j ACCEPT
iptables -t nat -A POSTROUTING -s 172.17.9.0/24 -j SNAT --to-source 172.17.9.201
#修改一下tcp包每次传输数据的最大分段大小,不然会非常卡顿
iptables -A FORWARD -p tcp --syn -s 192.168.0.0/24 -j TCPMSS --set-mss 1356

iptables -I FORWARD -p tcp --syn -i ppp0 -j TCPMSS --set-mss 1356  这一步最关键上面的1356 在打开某些网页时还是不行。参考连接
http://www.361way.com/pptp-mtu-mss/5173.html

查看登录的用户:
last |grep ppp  即可。这是在Ubuntu16.04中。


注意点:如果在客户端添加IP时不能拨号成功,(虽然也分配了隧道地址,但表现为不通,大多是公网地址ping 测试不通,可以看日志,/var/log/PPTP 相关的日志),可以尝试更换具有能解析域名地址,比如填写WWW.XXX.ORG

通了以后,可以在服务器上用隧道地址ping 拨号成功的主机