CentOS7安装PPTP VPN(开启firewall防火墙)
1 准备一个CentOS7服务器
2 检查是否支持PPTP
modprobe ppp-compress-18 && echo ok #返回OK
zgrep MPPE /proc/config.gz #返回CONFIG_PPP_MPPE=y 或 =m
cat /dev/net/tun #返回cat: /dev/net/tun: File descriptor in bad state
以上三条命令满足一条即为支持PPTP
3 安装PPP
yum install -y ppp
4 安装PPTPD
4.1 安装EPEL源:
yum install epel* -y
4.2 更新源列表:
yum -y update
4.3 安装PPTPD:
yum install -y pptpd
5 编辑/etc/pptpd.conf设置VPN内网IP段
最后IP设置改为:
localip 192.168.11.1
remoteip 192.168.11.100-200,192.168.11.245
6 编辑/etc/ppp/options.pptpd
6.1 更改DNS项:
ms-dns 8.8.8.8
ms-dns 8.8.4.4
6.2 修改日志记录:
nologfd
logfile /var/log/pptpd.log
7 编辑/etc/ppp/chap-secrets设置VPN账号密码
用户名 pptpd 密码 *//每个字段之间用tab键隔开 *表示用任意IP连接VPN都可以
样例:登录账号为root 密码为zxcv098- 这样写:
root pptpd zxcv098- *
8 编辑/etc/sysctl.conf修改内核参数支持内核转发
net.ipv4.ip_forward=1
输入命令生效:sysctl -p
9 修改防火墙设置:
9.1 创建规则文件:touch /usr/lib/firewalld/services/pptpd.xml
9.2 修改规则文件
按 Ctrl+C 复制代码
<?xml version="1.0" encoding="utf-8"?>
<service>
<short>pptpd</short>
<description>PPTP</description>
<port protocol="tcp" port="1723"/>
</service>
按 Ctrl+C 复制代码
9.3 启动或重启防火墙:
systemctl start firewalld.service或firewall-cmd --reload
9.4 添加服务:
firewall-cmd --permanent --zone=public --add-service=pptpd
9.5 允许防火墙伪装IP:
firewall-cmd --add-masquerade
9.6 开启47及1723端口:
firewall-cmd --permanent --zone=public --add-port=47/tcp
firewall-cmd --permanent --zone=public --add-port=1723/tcp
9.7 允许gre协议:
firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -p gre -j ACCEPT
firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 0 -p gre -j ACCEPT
9.8 设置规则允许数据包由ens32和ppp+接口中进出
firewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD 0 -i ppp+ -o ens32 -j ACCEPT
firewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD 0 -i ens32 -o ppp+ -j ACCEPT
9.9 设置转发规则,从源地址发出的所有包都进行伪装,改变地址,由ens32发出:
firewall-cmd --permanent --direct --passthrough ipv4 -t nat -I POSTROUTING -o ens32 -j MASQUERADE -s 192.168.11.0/24
10 重启服务器:
firewall-cmd --reload
systemctl restart pptpd
注:目前使用WINDOWS系统登录后,可以访问内网确无法访问外网,需要再做相应设置以及静态路由才可以达到全访问。直接可访问的方式目前还没想出来......