J'essaie de transférer le port 2222 de mon hôte 192.168.2.252 vers un invité LXC le 10.0.3.11. Comment puis-je le faire en utilisant le framework UFW?
En d'autres termes, je veux le faire, mais avec le framework ufw.
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 2222 -j DNAT --to 10.0.3.11:2222
Cordialement, MB
Ajoutez en haut du /etc/ufw/before.rules
avant le *filter
(haut du fichier):
*nat
:PREROUTING ACCEPT [0:0]
-A PREROUTING -i eth0 -p tcp --dport 2222 -j DNAT --to 10.0.3.11:2222
COMMIT
puis redémarrer/recharger le pare-feu
Sudo ufw disable && Sudo ufw enable
Puisque nous utilisons d'autres chaînes d'u uw ufw-before-*, ufw-after-* and ufw-reject-*
, nous devons changer MANAGE_BUILTINS=no
en MANAGE_BUILTINS=yes
dans le fichier `/ etc/default/ufw. Vérifiez ce post pour plus de détails.
La réponse de Steve Zhan est correcte, une dernière chose à faire si vous êtes sur Vagrant est de changer DEFAULT_FORWARD_POLICY="DROP"
en DEFAULT_FORWARD_POLICY="ACCEPT"
dans /etc/default/ufw
Quelques étapes de configuration supplémentaires sont nécessaires pour permettre au trafic général de circuler. ajouter simplement les lignes de pré-routage est insuffisant.
En supposant que vos règles UFW ne soient pas déjà fortement modifiées, les éléments suivants devraient suffire:
Au sommet de /etc/ufw/before.rules
, avant la section *filter
*nat
:PREROUTING ACCEPT [0:0]
-A PREROUTING -i enp0s8 -p tcp --dport 2222 -j DNAT --to 10.0.3.11:2222
COMMIT
Et près du bas, avant la finale COMMIT
:
-A FORWARD -o lxcbr0 -j ACCEPT
-A FORWARD -i lxcbr0 -j ACCEPT
-A INPUT -p udp --dport 53 -i enp0s8 -m state --state NEW -j ACCEPT
-A INPUT -p tcp --dport 53 -i enp0s8 -m state --state NEW -j ACCEPT
-A INPUT -p udp --dport 67 -i enp0s8 -m state --state NEW -j ACCEPT
-A INPUT -p tcp --dport 67 -i enp0s8 -m state --state NEW -j ACCEPT
Et aussi, dans le /etc/ufw/after.rules
, encore une fois avant la section *filter
dont vous avez besoin
*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 10.0.3.0/24 ! -d 10.0.3.0/24 -j MASQUERADE
COMMIT