Firewalld CentOS 7 Masquerading

7

Estou tentando fazer o equivalente a essa regra do iptables no firewalld

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

Como posso fazer isso?

    
por Jacob Tomlinson 22.08.2014 / 14:21

3 respostas

6

Para configurar o mascaramento na zona externa, digite:

# firewall-cmd --zone=external --add-masquerade

external : Para uso em redes externas com o mascaramento ativado especialmente para roteadores. Você não confia nos outros computadores da rede para não danificar seu computador. Somente conexões de entrada selecionadas são aceitas.

interno : Para uso em redes internas. Você confia principalmente nos outros computadores nas redes para não danificar seu computador. Somente conexões de entrada selecionadas são aceitas.

Para referência:

link

    
por 22.08.2014 / 14:45
1

Você não usa regras diretamente assim. Você simplesmente coloca sua interface (eth0) na zona external , que já está pré-configurada no RHEL7 / CentOS7 e tem masquerade ativado, ou você pode habilitar o mascaramento na zona em que sua interface está. Por padrão é público. Então a resposta correta seria:

# firewall-cmd --zone=public --add-masquerade

ou

# firewall-cmd --change-zone=eth0 --zone=external

Isso é tudo que você precisa fazer. Para ativar o NAT apenas para sub-redes ou intervalos específicos, você precisa da regra Rich Rule ou Direct. Isso é um pouco mais complexo. Você também pode simplesmente recusar pacotes para outros, o que também parece uma opção.

    
por 16.11.2016 / 16:36
0

Como alternativa, você pode adicionar a regra ao seu: arquivo /etc/firewalld/direct.xml , por exemplo,

<?xml version="1.0" encoding="utf-8"?>
<direct>
...
  <rule priority="0" table="filter" ipv="ipv4" chain="POSTROUTING">-table nat -jump MASQUERADE --source 10.8.0.0/24 --out-interface eth0</rule>  
</direct>

Então:

firewall-cmd --reload
    
por 24.06.2015 / 14:53