Я пытаюсь перенаправить порт 2222 на моем хосте 192.168.2.252 гостю LXC 10.0.3.11. Как мне это сделать с помощью UFW-фреймворка?
Другими словами, я хочу сделать это, но с помощью UFW-фреймворка.
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 2222 -j DNAT --to 10.0.3.11:2222
С уважением, МБ
Добавьте в начало /etc/ufw/before.rules
перед *filter
(начало файла):
*nat
:PREROUTING ACCEPT [0:0]
-A PREROUTING -i eth0 -p tcp --dport 2222 -j DNAT --to 10.0.3.11:2222
COMMIT
, затем перезапустите / перезагрузите брандмауэр
sudo ufw disable && sudo ufw enable
Так как мы При использовании других цепочек ufw ufw-before-*, ufw-after-* and ufw-reject-*
, мы должны изменить MANAGE_BUILTINS=no
на MANAGE_BUILTINS=yes
в файле `/ etc / default / ufw. Проверьте этот пост для более подробной информации.
Ответ Стива Жана верный, еще одна вещь, которую нужно сделать, если вы находитесь на Вагранте, это изменить DEFAULT_FORWARD_POLICY="DROP"
на DEFAULT_FORWARD_POLICY="ACCEPT"
в /etc/default/ufw
Есть еще несколько шагов конфигурации, которые необходимы для обеспечения прохождения общего трафика; простого добавления линий предварительной маршрутизации недостаточно.
Предполагая, что ваши правила UFW еще не сильно изменены, должно быть достаточно следующего:
В верхней части /etc/ufw/before.rules
, до раздела *filter
*nat
:PREROUTING ACCEPT [0:0]
-A PREROUTING -i enp0s8 -p tcp --dport 2222 -j DNAT --to 10.0.3.11:2222
COMMIT
И около дна, до финала 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
А также, в /etc/ufw/after.rules
, снова до *filter
нужный вам раздел
*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 10.0.3.0/24 ! -d 10.0.3.0/24 -j MASQUERADE
COMMIT