CentOS 7.3 搭建VPN服务器

一. 通过yum安装 ppp和pptpd

# yum -y install ppp pptpd

二. 配置pptpd相关参数

2.1 配置/etc/pptpd.conf

找到下面两行,去掉注释,并修改IP

localip 192.168.2.1
remoteip 192.168.2.234-238,192.168.2.245

localip和remoteip的地址网段可以不一样。
localip和remoteip网段最好不要和内网其他网段一样。

2.2 配置/etc/ppp/options.pptpd

找到下面的去掉注释并修改为当地的dns

ms-dns 8.8.8.8
ms-dns 8.8.4.4

2.3 配置VPN账号和密码

编辑/etc/ppp/chap-secrets文件
按照以下格式配置用户名和密码

username1 pptpd passwd1 *
username2 pptpd passwd2 *

三. 打开内核转发

vi /etc/sysctl.conf
修改以下内容开启ip转发:

net.ipv4.ip_forward = 1

保存、退出后执行:

sysctl -p

检查配置是否生效

四. 启动pptpd服务

service pptpd start

五. 配置开机启动pptpd

chkconfig pptpd on

CentOS7 使用FireWall,自行百度

附:完整脚本

六. 设置Iptables规则

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

七. 设置iptables自动启动

chkconfig iptables on

八. 使用windows或者其他VPN拨号客户端新建VPN拨号即可。

如果VPN客户端是内网,拨号地址输入VPN服务器的内网IP,
如果VPN客户端是外网,拨号地址输入VPN服务器的外网IP。

拨号成功后,vpn客户端即可访问VPN服务器的其他子网资源,而且可以通过VPN服务器的外网网卡访问外网资源。