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:
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:
2: eth0:
50: ppp0:
[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:
2: eth0:
254: gre0:
# 可以查看到所有网卡的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 拨号成功的主机