11 votes

Firewalld CentOS 7 Masquerading

Je cherche à faire l'équivalent de cette règle iptables dans firewalld

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

Comment puis-je faire cela?

9voto

TBI Infotech Points 1526

Pour configurer le masquage sur la zone externe, tapez :

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

externe : À utiliser sur les réseaux externes avec masquage activé, en particulier pour les routeurs. Vous ne faites pas confiance aux autres ordinateurs du réseau pour ne pas nuire à votre ordinateur. Seules les connexions entrantes sélectionnées sont acceptées.

interne : À utiliser sur les réseaux internes. Vous faites principalement confiance aux autres ordinateurs du réseau pour ne pas nuire à votre ordinateur. Seules les connexions entrantes sélectionnées sont acceptées.

Pour référence :

http://www.certdepot.net/rhel7-get-started-firewalld/

0 votes

Je reçois un avertissement disant ALREADY_ENABLED. Est-ce que cela devrait être le cas?

3 votes

Aussi, il n'y a aucune mention de 10.8.0.0/24 dans votre configuration.

1 votes

@JacobTomlinson Dans ce cas, c'est déjà activé, et votre question n'a pas de sens.

5voto

arober11 Points 417

Vous pouvez également ajouter la règle à votre fichier /etc/firewalld/direct.xml par exemple.

...
  -table nat -jump MASQUERADE --source 10.8.0.0/24 --out-interface eth0  

Ensuite :

firewall-cmd --reload

4 votes

Il convient de souligner fermement que la réponse acceptée est incorrecte en ce qu'elle montre comment créer une configuration de masquerade/NAT, mais seulement si vous voulez que tout le trafic en sortie de eth0 soit masqué. Il n'y a aucun moyen de masquerader le trafic provenant d'un sous-réseau uniquement via la simple directive --add-masquerade; des règles directes (comme expliqué dans la réponse ci-dessus) doivent être utilisées.

4voto

lzap Points 2604

Vous n'utilisez pas directement des règles de ce genre. Vous devez simplement mettre votre interface (eth0) dans la zone externe, qui est déjà préconfigurée dans RHEL7/CentOS7 et a le masquerading activé, ou vous pouvez activer le masquerading sur la zone dans laquelle se trouve votre interface. Par défaut, c'est public. Donc la réponse correcte serait soit :

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

ou

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

C'est vraiment tout ce que vous avez besoin de faire. Pour activer le NAT seulement pour une sous-réseau ou une plage particulière, vous avez besoin d'une Règle Rich ou Règle Directe. C'est un peu plus complexe. Vous pouvez aussi simplement refuser les paquets pour les autres, ce qui semble également être une option.

0 votes

--change-zone= n'est pas documenté, mais fonctionne. --change-interface= fonctionne également. Avec --permanent, cela modifie /etc/sysconfig/network/ifcfg-eth0 au lieu du fichier xml et --reload ne charge pas ce paramètre. Par conséquent, faites-le sans --permanent ou ifdown/ifup

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X