Tendo um rápido olhar para o Centos 7, e embora eu tenha criado um daemon VPN ou 3, mas descobri imediatamente que os pacotes usuais ainda não estão nos repositórios centrais, então tive que cavar e encontrar os bits necessários em os gostos da árvore beta EPEL. De qualquer forma para o problema principal, a mudança de iptables para firewalld . Eu sei que eu poderia reverter minha caixa de jogo para iptables e não incomodar meus apostadores, mas é um novo brinquedo que deve ser jogado. Comecei a RTFM e tinha uma rápida olhada e descobri openvpn e ipsec tem definições de serviço, para este novo brinquedo, mas não há nada para os gostos de pptp , l2tp , NAT-T .... então comecei a gastar alguns minutos criando os gostos de um:
/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>
Ou: /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>
Ou: /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
Em seguida, algumas regras:
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 .....
Mas estou querendo saber se devo persistir com essa abordagem e me concentrar nas zonas, ou simplesmente replicar as regras padrão do iptables com um firewalld de regra direta do firewalld, por exemplo
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
com:
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
Qual é a escola geral de pensamento (replicar conjuntos de regras iptables / fazer o novo serviço + zona de coisa), e existe alguma regra publicada / recomendada masqueraded e nat'ed define lá fora na web.