环境介绍:
由于公司项目处于内网,有几台服务器是有公网IP的。为了方便操作,搭建vpn可以进行远程连接。操作内网。
一、 yum安装ppp和pptpd
[root@vpn ~]# yum -y install ppp pptpd
二、 配置相关参数
1. 配置/etc/pptpd.conf
找到下面两行,去掉注释,并修改IP
[root@vpn ~]# vim /etc/pptpd.conf
localip 218.25.116.***
\#此为公网IP地址(拨入vpn后的网。会在pptpd服务器的ppp0网卡产生)
remoteip 192.168.205.36-45
\#此为vpn分配和客户端的地址池
2. 配置/etc/ppp/options.pptpd
[root@cxm ~]# vim /etc/ppp/options.pptpd
ms-dns 8.8.8.8
ms-dns 114.114.114.114
\#去掉上两行注释并写入当地DNS
3配置VPN账号和密码/etc/ppp/chap-secrets文件
[root@vpn ~]# vim /etc/ppp/chap-secrets
username pptpd password *
#格式
#username为拨号时的用户名
#pptpd为pptpd服务
#password为拨号时的密码
#*为任意分配IP地址
三、 开启服务器内核转发
1. 临时生效
[root@vpn ~]# echo "1" > /proc/sys/net/ipv4/ip_forward
2.永久生效
[root@vpn ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
[root@vpn ~]# sysctl -p
net.ipv4.ip_forward = 1
四、 启动并设置开机自启动
[root@vpn ~]# service pptpd start
[root@vpn ~]# chkconfig pptpd on
*五、iptables规则
如果开启iptables规则
[root@vpn ~]# vi /etc/sysconfig/iptables
nat表里面添加:
#-s 后面是pptpd.conf里面localip那个网段
#-o 后面是外网网卡设备名
#–to-source 后面是外网网卡地址
-A POSTROUTING -s 192.168.2.0/24 -o eth2 -j SNAT –to-source 192.168.1.42
filter表里面配置:
#pptpd的端口是1723
-A INPUT -p tcp -m state –state NEW -m tcp –dport 1723 -j ACCEPT
# pptp协议需要放开gre协议
-A INPUT -p gre -j ACCEPT
#修改mss为1356,-s后面是pptp客户端地址段,以免有些网站上不去
-A FORWARD -p tcp –syn -s 192.168.2.0/24 -j TCPMSS –set-mss 1356
#注释掉下面这个选项,vpn服务器就可以转发数据包,需要转发链默认规则是允许
#-A FORWARD -j REJECT –reject-with icmp-host-prohibited
保存后重启iptables
service iptables restart
五、 windows连接vpn
六、 Linux(centos)连接vpn
1.安装和连接
pptp-setup 是一个设置脚本,通过该脚本可以使用方便地进行初始化设置,生成配置文件
[root@zabbix ~]# yum install -y ppp pptp pptp-setup
[root@zabbix ~]# pptpsetup --create vpn --server VPN_IP --username VPN用户名--password VPN密码 --start
#其中--create是一个别名,自己可以随便起。
#最后一个参数--start意思是配置完后立刻启动。
连接报错
- LCP terminated by peer (MPPE required but peer refused)
#服务端不支持MPPE
解决方法:添加--encrypt
pptpsetup --create xxxx --server x.x.x.x --username xxx --password XXXXXX --encrypt --start
2.CHAP authentication succeeded
MPPE required but peer negotiation failed
Connection terminated.
#不支持加密
解决方法:说明服务端不支持MPPE加密,pptpsetup时不需要使--encrypt选项
3. FATAL: Module ppp_mppe not found.
/usr/sbin/pptpsetup: couldn't find MPPE support in kernel.
#缺少模块
解决方法:
modprobe ppp_mppe ##向内核注册ppp_mppe模块
2. 验证
[root@zabbix ~]# ifconfig
ppp0
#出现ppp0: 启动成功
#没出现ppp0 表示关闭
3.添加路由
route add -net 192.168.205.0 netmask 255.255.255.0 gw X.X.X.X
#gw为ppp0的ip
[root@zabbix ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
*******************
192.168.205.0 192.168.205.36 255.255.255.0 UG 0 0 0 ppp0
*********************
三、关闭VPN
1、关闭前需先恢复当前网关
# ip route del VPN地址IP via 默认网关IP dev eth0 src 本机IP
# ip route add default via 默认网关IP
2、最后执行
# killall pppd
网友评论