Проблема с пересылкой IP-таблиц

Заранее спасибо за помощь.

Я пробовал читать здесь и искать, но не могу заставить его работать.

Компьютер А:192.168.1.2 Компьютер B:192.168.1.3

Я пытаюсь отправить UDP-сообщение с.2 на.3 и изменить порт..2 отправит сообщение на 1003, и я хочу, чтобы.3 принял его на 1004.

Приведенный ниже код размещен на компьютере.3

iptables -t nat -A PREROUTING -p udp -i eth0 -d 192.168.1.2 --dport 1003 -j DNAT --to-destination 192.168.1.3:1004
iptables -t nat -A PREROUTING -i eth0 -d 192.168.1.2 -p udp --dport 1003 -j REDIRECT --to-ports 1004
iptables -A FORWARD -i eth0 -p udp -d 192.168.1.2 --dport 1004 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
0
задан 29 October 2021 в 17:58
1 ответ

Ваши совпадения неверны. Они сработают, если пункт назначения был 192.168.1.2. В вашем случае источник 192.168.1.2, а пункт назначения — 192.168.1.3.

Также кажется, что вам нужно только DNATправило или правило REDIRECT, а не оба.

Правило фильтрации должно находиться в цепочке INPUT, поскольку пунктом назначения является локальный компьютер. Я не вижу смысла использовать модуль stateв этом правиле, но может возникнуть необходимость добавить другие правила, связанные с отслеживанием соединений; неясно, нужны ли они вообще. Это зависит от остальной части брандмауэра. Если в брандмауэре ничего нет, то и правила фильтрации не нужны, потому что все равно все будет включено.

Кстати, stateустарел, вместо него следует использовать модуль conntrack, соответствие ctstate.

Итак, вам потребуются следующие два правила:

iptables -t nat -A PREROUTING -s 192.168.1.2 -d 192.169.1.3 -p udp --dport 1003 -j REDIRECT --to-ports 1004
iptables -t filter -A INPUT -s 192.168.1.2 -p udp --dport 1004 -j ACCEPT

Первое правило перенаправляет входящий пакет на 1003 на порт 1004 (и обратно для исходящих пакетов). Второе правило фактически разрешает этому транслированному пакету достичь локального процесса.

1
ответ дан 29 October 2021 в 19:05

Теги

Похожие вопросы