Рейтинг:1

ip переадресация на другой интерфейс с ufw не работает

флаг pk

Я пытаюсь настроить переадресацию IP. Не удается заставить его работать. Цель состоит в том, чтобы получить соединение на интерфейсе 1 (IP на этом интерфейсе 192.168.101.3) порт 4443 и отправить его через интерфейс 2 на порт 4443 IP 192.168.4.5 (адрес назначения).

  • Я включил «net.ipv4.ip_forward = 1» в /etc/sysctl.conf
  • установлено DEFAULT_FORWARD_POLICY="ACCEPT" в /etc/default/ufw
  • добавил это в /etc/ufw/before.rules (из разных руководств):
: ПРЕДВАРИТЕЛЬНОЕ ПРИНЯТИЕ [0:0]
-A PREROUTING -p tcp --dport 4443 -j DNAT --to-destination 192.168.4.5:4443
-A POSTROUTING -o interface2 -j MASQUERADE
СОВЕРШИТЬ

Я все еще не могу подключиться к "nc 192.168.101.3 4443"

  1. Вы видите что-то не так?
  2. Откуда ufw знает, на какой интерфейс пересылать, если в DNAT нельзя указать -o? Не попытается ли он выполнить переадресацию на 192.168.4.5:4443 на interface1?

редактировать:

192.168.101.1(компьютер 1) -> (192.168.101.3, 192.168.4.1)(компьютер 2) -> 192.168.4.5(компьютер 3)

Лучшее, что я могу получить прямо сейчас, это в журнале

[1177.553749] [UFW AUDIT] IN= OUT=enp6s0 SRC=192.168.101.3 DST=192.168.101.1 LEN=88 TOS=0x00 PREC=0xC0 TTL=64 ID=62781 PROTO=ICMP TYPE=3 CODE=3 [SRC=192.168 .101.1 DST=192.168.4.5 LEN=60 TOS=0x00 PREC=0x00 TTL=63 ID=13975 DF PROTO=TCP SPT=60720 DPT=4445 WINDOW=64240 RES=0x00 SYN URGP=0 ]

Итак, если я правильно понимаю, порт 4443 на 192.168.4.5 недоступен, поэтому 192.168.101.3 отправляет пакет с ошибкой ICMP обратно на 192.168.101.1 (машина, с которой я подключаюсь с помощью nc). Что странно, потому что, если я попытаюсь подключиться к nc напрямую с 192.168.101.3, все будет работать нормально...

Doug Smythies avatar
флаг gn
Я не вижу ничего плохого, но я бы указал входной интерфейс для вашей команды PREROUTING: `-A PREROUTING -p tcp -i interface1 --dport 4443 -j DNAT --to-destination 192.168.4.5:4443`. Система должна знать, что подсеть 192.168.4.0 находится на интерфейсе 2, через ее IP-адрес и таблицу маршрутизации.Возможно, нам придется рассматривать вещи в контексте общего набора правил iptables, `sudo iptables -xvnL` и `sudo iptables -t nat -xvnL`, хотя правила, сгенерированные ufw, трудно читать и следовать им.
флаг pk
Эй Дуг, спасибо за ваш комментарий. Вот https://pastebin.com/26YVtdes, https://pastebin.com/UNSypVxE. (переключил порт на 4445, не помогло) Отредактировал пост для более подробной информации.
Doug Smythies avatar
флаг gn
На самом деле, я думаю, вам нужно добавить правило FORWARD в цепочку LIBVIRT_FWI. Добавьте в качестве первого или второго правила перед правилом REJECT, чтобы принимать пакеты с портом назначения 4445. (Я вернусь к синтаксису позже).
Doug Smythies avatar
флаг gn
непроверенные рекомендуемые необходимые правила, а также добавление ведения журнала: `sudo iptables -I LIBVIRT_FWI 1 -i enp6s0 -o virbr0 -p tcp --dport 4445 -d 192.168.4.5 -m state --state NEW -j LOG --log-prefix " PFNEW:" --информация на уровне журнала` и `sudo iptables -I LIBVIRT_FWI 2 -i enp6s0 -o virbr0 -p tcp --dport 4445 -d 192.168.4.5 -m state --state NEW -j ACCEPT`.
флаг pk
Эй, извините за задержку, большое спасибо, это потрясающе!
Рейтинг:0
флаг pk

Как сказал Дуг в комментариях, проблема возникла из-за того, что libvirt испортил iptables.

sudo iptables -I LIBVIRT_FWI 1 -i enp6s0 -o virbr0 -p tcp --dport 4445 -d 192.168.4.5 -m state --state NEW -j LOG --log-prefix "PFNEW:" --log-level info

sudo iptables -I LIBVIRT_FWI 2 -i enp6s0 -o virbr0 -p tcp --dport 4445 -d 192.168.4.5 -m состояние --состояние NEW -j ПРИНЯТЬ

должен решить проблему. Использование мостового соединения действительно является еще одним решением.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.