pptp安装过程和步骤
这里的场景为PPTP的单网卡模式,即旁挂旁路部署,主要在出口防火墙做1723的端口映射,原因PPTPVPN 拨号纽盾设备体验不好。
系统为最小化安装,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服务器上外网。
4、配置pptp
[root@localhost1 /]# vi /etc/pptpd.conf
在最底下添加下面两行,localip是pptp服务器端IP,remoteip是客户端获取的IP地址范围
localip 172.17.0.100 拨号成功后再VPN 客户端详细信息可以查看。
remoteip 172.17.0-30
[root@localhost1 /]# vi /etc/ppp/options.pptpd
打开后,找到下面字段,并修改成你想要为VPN用户分配的dns服务器
name pptpd
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
proxyarp
lock
nobsdcomp
novj
novjccomp
nologfd
ms-dns 114.114.114.114
ms-dns 172.17.9.16 我内网的dns服务器
6 添加vpn的帐号和密码
[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: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> 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 vpn查看当前在线用户################################################
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 ACCEPT
[root@Nginx ~]# ip ad |grep mtu
1: lo: <LOOPBACK,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
2: eth0: <BROADCAST,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
50: ppp0: <POINTOPOINT,LOWER_UP> mtu 1396 qdisc pfifo_fast state UNKNOWN qlen 3
[root@Nginx ~]# cat /sys/class/net/ppp0/mtu vpn 客户端拨号正常后发现某些网页不能打开,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: <LOOPBACK,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
2: eth0: <BROADCAST,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
254: gre0: <NOARP> mtu 1472 qdisc noop state DOWN
# 可以查看到所有网卡的mtu值,此处可以看到eth0的是1500,gre0的是1472
2、 查看某个网卡的MTU,ppp0的需要连接VPN后才能查看
# cat /sys/class/net/ppp0/mtu
#
# 更改其值
# echo "1472" > /sys/class/net/ppp0/mtu
# 改完以后测试立即就能访问百度了。看来真的是这个问题。于是把它添加到连接自动设置其值。
3、配置VPN连接自动设置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
# 断开VPN后重新测试连接,发现一切正(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 错误