J'essaie de faire l'équivalent de cette règle d'IPTABLES dans le pare-feu
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
Comment puis-je faire ceci?
Pour mettre en place une masquage sur la zone externe, tapez:
# firewall-cmd --zone=external --add-masquerade
externe : Pour une utilisation sur des réseaux externes avec un masquage activé, en particulier pour les routeurs. Vous ne faites pas confiance aux autres ordinateurs sur le réseau pour ne pas nuire à votre ordinateur. Seules les connexions entrantes sélectionnées sont acceptées.
interne : Pour une utilisation sur des réseaux internes. Vous faites surtout confiance aux autres ordinateurs sur les réseaux pour ne pas nuire à votre ordinateur. Seules les connexions entrantes sélectionnées sont acceptées.
Pour référence:
Sinon, vous pouvez ajouter la règle à votre suivant: / etc/firewalld/direct.xml fichier, par exemple.
<?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>
Puis:
firewall-cmd --reload
Vous n'utilisez pas directement des règles comme ça. Vous mettez simplement votre interface (ETH0) dans externe Zone, qui est déjà préconfigurée dans RHEL7/CENTOS7 et que la masquerade est activée, ou vous pouvez activer la masquage sur la zone votre interface. Par défaut c'est Publique. Donc, la bonne réponse serait soit:
# firewall-cmd --zone=public --add-masquerade
ou
# firewall-cmd --change-zone=eth0 --zone=external
C'est vraiment tout ce que vous devez faire. Pour activer NAT uniquement pour un sous-réseau ou une plage particulière, vous avez besoin d'une règle riche ou d'une règle directe. C'est un peu plus complexe. Vous pouvez également simplement refuser des paquets pour d'autres qui semble également une option.