CentOS7安装PPTP

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源:

wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

4.2 安装EPEL源:

rpm -ivh epel-release-latest-7.noarch.rpm

4.3 检查是否已添加到源列表中:

yum repolist

4.4 更新源列表:

yum -y update

4.5 安装PPTPD:

yum install -y pptpd

5 编辑/etc/pptpd.conf设置VPN内网IP段

最后IP设置改为:

localip 192.168.0.1
remoteip 192.168.0.214,192.168.0.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 密码为123 这样写:

root pptpd 123 *

8 编辑/etc/sysctl.conf修改内核参数支持内核转发

net.ipv4.ip_forward=1

输入命令生效:sysctl -p

9 修改防火墙设置:

9.1 创建规则文件:touch /usr/lib/firewalld/services/pptpd.xml

9.2 修改规则文件

<?xml version="1.0" encoding="utf-8"?>

<service>

       <short>pptpd</short>

       <description>PPTP</description>

       <port protocol="tcp" port="1723"/>

</service>

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 设置规则允许数据包由eth0和ppp+接口中进出

firewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD 0 -i ppp+ -o eth0 -j ACCEPT

firewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD 0 -i eth0 -o ppp+ -j ACCEPT

9.9 设置转发规则,从源地址发出的所有包都进行伪装,改变地址,由eth0发出:

firewall-cmd --permanent --direct --passthrough ipv4 -t nat -I POSTROUTING -o eth0 -j MASQUERADE -s 192.168.0.0/24

10 重启服务器:

firewall-cmd --reload
systemctl restart pptpd