CentOS 7搭建PPTP

时间:2024-10-06 07:20:51

什么是PPTP ?

点对点隧道协议(英语:Point to Point Tunneling Protocol,缩写为PPTP)是实现虚拟专用网(VPN)的方式之一。
PPTP使用传输控制协议(TCP)创建控制通道来发送控制命令,以及利用通用路由封装(GRE)通道来封装点对点协议(PPP)数据包以发送数据。这个协议最早由微软等厂商主导开发,但因为它的加密方式容易被破解,微软已经不再建议使用这个协议,Mac甚至是已经禁用了PPTP协议。

搭建PPTP

1、查是否支持PPTP

modprobe ppp-compress-18 && echo ok	#返回OK
zgrep MPPE /proc/ 			#返回CONFIG_PPP_MPPE=y 或 =m
cat /dev/net/tun 					#返回cat: /dev/net/tun: File descriptor in bad state
# 以上三条命令满足一条即为支持PPTP
  • 1
  • 2
  • 3
  • 4

2、安装PPP

yum install -y ppp
  • 1

3、安装PPTPD

yum install -y pptpd
  • 1

4、编辑/etc/
设置内网IP段:

localip 192.168.0.1
remoteip 192.168.0.214,192.168.0.245
  • 1
  • 2

5、编辑/etc/ppp/
5.1、更改DNS项:

ms-dns 8.8.8.8
ms-dns 8.8.4.4
  • 1
  • 2

5.2、修改日志记录:

# nologfd			原本是不输出日志的,注释掉
logfile /var/log/
  • 1
  • 2

6、编辑/etc/ppp/chap-secrets
设置PPTP账号密码
样例:
登录账号为root 密码为123 这样写:

root        pptpd     123         *
# 每个字段之间用tab键隔开
# 最后一个*表示用任意IP连接PPTP都可以
  • 1
  • 2
  • 3

7、编辑/etc/
修改内核参数支持内核转发

net.ipv4.ip_forward=1
  • 1

输入命令生效:

sysctl -p
  • 1

8、修改防火墙设置
8.1、创建规则文件:

vi /usr/lib/firewalld/services/
  • 1

8.2、修改规则文件

<?xml version="1.0" encoding="utf-8"?>
<service>
       <short>pptpd</short>
       <description>PPTP</description>
       <port protocol="tcp" port="1723"/>
</service>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

8.3 、启动或重启防火墙

systemctl start 或firewall-cmd --reload
  • 1

8.4、添加服务

firewall-cmd --permanent --zone=public --add-service=pptpd
  • 1

8.5、允许防火墙伪装IP

firewall-cmd --add-masquerade
  • 1

8.6、开启47及1723端口

firewall-cmd --permanent --zone=public --add-port=47/tcp
firewall-cmd --permanent --zone=public --add-port=1723/tcp
  • 1
  • 2

8.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
  • 1
  • 2

8.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
  • 1
  • 2

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

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

9、重启服务器

firewall-cmd --reload
systemctl restart pptpd
  • 1
  • 2

配置完毕!可以工作了!