![Redhat / Centos 7 Firewalld 针对 pptp 或 L2TP/IPsec 规则的最佳实践](https://linux22.com/image/54220/Redhat%20%2F%20Centos%207%20Firewalld%20%E9%92%88%E5%AF%B9%20pptp%20%E6%88%96%20L2TP%2FIPsec%20%E8%A7%84%E5%88%99%E7%9A%84%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5.png)
快速浏览一下 Centos 7,虽然我会启动一个或 3 个 VPN 守护进程,但立即发现核心存储库中还没有常用的软件包,因此必须四处挖掘并找到必要的部分,例如EPEL beta 树。无论如何,关于主要问题,从iptables到防火墙。我知道我可以将我的游戏盒恢复到iptables不要麻烦我的上级,但这是一个新玩具,所以必须玩。开始使用 RTFM 并快速查看并发现开放VPN和网络安全协议对于这个新玩具有服务定义,但是没有像这样的服务定义PPTP,l2tp,NAT-T....所以开始花几分钟创建类似的内容:
/etc/firewalld/services/pptp.xml
<?xml version="1.0" encoding="utf-8"?>
<service>
<short>pptp</short>
<description>Point-to-Point Tunneling Protocol (PPTP)</description>
<port protocol="tcp" port="1723"/>
</service>
或者:/etc/firewalld/services/l2tp.xml
<?xml version="1.0" encoding="utf-8"?>
<service>
<short>L2TP</short>
<description>Layer 2 Tunneling Protocol (L2TP)</description>
<port protocol="udp" port="1701"/>
</service>
或者:/etc/firewalld/services/nat-t.xml
<?xml version="1.0" encoding="utf-8"?>
<service>
<short>NAT-T</short>
<description>Network Address Translation (NAT-T)</description>
<port protocol="udp" port="4500"/>
</service>
ETC.....
chmod 640 /etc/firewalld/services/*.xml
restorecon /etc/firewalld/services/*.xml
然后是一些规则:
firewall-cmd --zone=external --add-interface=ip_vti0 --permanent
firewall-cmd --zone=external --add-interface=ppp0 --permanent
firewall-cmd --reload
firewall-cmd --get-services
firewall-cmd --zone=external --add-service=l2tp --permanent
firewall-cmd --zone=external --add-service=pptp --permanent
firewall-cmd --zone=external --add-service=nat-t --permanent
....
firewall-cmd --reload
ETC.....
但我想知道我是否应该坚持这种方法并了解这些区域,或者简单地使用防火墙直接规则 frig 复制标准 iptables 规则,例如
iptables -A INPUT -i enp3s0 -p tcp --dport pptp-j ACCEPT
iptables -A INPUT -i enp3s0 -p tcp --dport l2tp -j ACCEPT
iptables -A INPUT -i enp3s0 -p tcp --dport ipsec-nat-t -j ACCEPT
iptables -A INPUT -i enp3s0 -p gre -j ACCEPT
....
iptables -t nat -A POSTROUTING -o enp3s0 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 192.168.0.0/28 -o enp3s0 -j MASQUERADE
iptables-save
和:
firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -i enp3s0 -p tcp --dport pptp-j ACCEPT
firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -i enp3s0 -p tcp --dport l2tp -j ACCEPT
firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0T -i enp3s0 -p tcp --dport ipsec-nat-t -j ACCEPT
firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -i enp3s0 -p gre -j ACCEPT
....
firewall-cmd --permanent --direct --add-rule ipv4 filter POSTROUTING 0 -t nat -o enp3s0 -j MASQUERADE
firewall-cmd --permanent --direct --add-rule ipv4 filter POSTROUTING 0 -t nat -s 192.168.0.0/28 -o enp3s0 -j MASQUERADE -t nat
firewall-cmd --reload
一般的思想流派是什么(复制 iptables 规则集/执行新服务 + 区域),网络上是否有任何已发布/推荐的伪装和 nat'ed 规则集。