我有一台运行防火墙的 Centos 7 服务器,允许公共服务访问单独 VLAN(双 NIC)上的内部服务。我导入了 Windows VM,但我不知道除了打开 1723 之外,还需要制定哪些规则才能允许 GRE 通过防火墙。我在网上找到的所有问题和指南都不是要在 Centos 7 机器上设置 PPTP,而是将其传递到路由 IP(在本例中为 Windows 服务器)。
答案1
在允许访问 PPTP VPN 的 rhel7 服务器上,除了打开端口外,我还进行了以下设置:
sudo firewall-cmd --permanent --zone=public --direct --add-rule ipv4 filter INPUT 0 -p gre -j ACCEPT
sudo firewall-cmd --permanent --zone=public --direct --add-rule ipv6 filter INPUT 0 -p gre -j ACCEPT
sudo firewall-cmd --permanent --zone=public --add-masquerade
sudo firewall-cmd --reload
答案2
在我的 CentOS 8.3 服务器上,针对 rhel7 建议的命令不起作用。
对我有用的命令是:
firewall-cmd --permanent --new-service=pptp
cat >/etc/firewalld/services/pptp.xml<<EOF
<?xml version="1.0" encoding="utf-8"?>
<service>
<port protocol="tcp" port="1723"/>
</service>
EOF
firewall-cmd --permanent --zone=public --add-service=pptp
firewall-cmd --permanent --zone=public --add-masquerade
firewall-cmd --permanent --zone=public --add-protocol=gre
firewall-cmd --reload
这些命令用于打开端口,并允许 gre 协议通过。
请注意,您需要以 root 身份运行这些命令,或者在所有命令前面加上“sudo”。