LINUX.ORG.RU
ФорумAdmin

Вопросик по dnat/snat


0

0

Добрый день. Вот тут на работе задачку поставили - настроить форвардинг пакетов. Я, вообще говоря, окромя локалхоста ничего не админил, так что возникла пара вопросов. Итак, что имеем сеть, к которой доступ извне запрещён вообще, имеем комп-шлюз с редхат на борту. Шлюз этот подключён к инету и к сети. Задача - пробросить порт с одной из машин сети наружу с помошью шлюза (больше шлюз ничего не делает). И есть замечание - у них на этой тачке (порт которой надо пробросить) стоит фаерволл, который режет все соединения не из локалки. Как я понимаю, нужно сделать dnat и snat.
iptables -t nat -A PREROUTING -p tcp --dst $DST_IP --dport $DST_PORT -j DNAT --to-destination $LOCAL_IP:$LOCAL_PORT
iptables -t nat -A POSTROUTING -p tcp --dst $DST_IP --dport $DST_PORT -j SNAT --to-source $GATE_IP
В общем, вопрос такой - правильно ли написано второе правило? Или же в --dst нужно указывать $LOCAL_IP и $LOCAL_PORT, ведь первое правило изменяет назначение пакета. И достаточно ли этого, или нужно дописать ещё что-то в таблицу FORWARD?

★★★★★

> правильно ли написано второе правило?
Нет, после DNAT-а, и IP, и порт уже будут другие.

> Или же в --dst нужно указывать $LOCAL_IP и $LOCAL_PORT, ведь первое правило изменяет назначение пакета.
Да, именно так.

> И достаточно ли этого, или нужно дописать ещё что-то в таблицу FORWARD?
В FORWARD должно быть разрешение для пакетов идущих к/от $LOCAL_IP:$LOCAL_PORT.
Если есть правило, разрешающее ESTABLISHED соединения, то будет достаточно добавить разрешение на "кто_угодно -> $LOCAL_IP:$LOCAL_PORT".

spirit ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.