LINUX.ORG.RU
ФорумAdmin

iptables port mapping


0

0

из сети 10/8 надо получить доступ к сервису в локальной сети 192.168.1/24
10.10.10.10 шлюзовая машина. написал правило.

iptables -t nat -A PREROUTING -d 10.10.10.10 -p tcp --dport 3333 -j DNAT --to-destination 192.168.1.9:3333
iptables -t nat -A POSTROUTING -d 192.168.1.9 -p tcp --dport 3333 -j SNAT --to-source 10.10.10.10
не работает. подскажите где косяк? заранее благодарен


>iptables -t nat -A POSTROUTING -d 192.168.1.9 -p tcp --dport 3333 -j SNAT --to-source 10.10.10.10

Лучше вместо 10.10.10.10 использовать айпишник этой машины в подсети 192.168.1.0/24

Также не надо забывать про sysctl net.ipv4.ip_forward=1 и про разрешение нужных пакетов в цепочке FORWARD таблицы filter.

nnz ★★★★
()

Если для подсети 10/8 и для 192.168.1.9 эта машина является шлюзом по умолчанию, то достаточно включить ip_forward и разрешить такое хождение пакетов в цепочке FORWARD.
Машины в таком случае будут обращаться к удалённому ресурсу так: 192.168.1.9:3333

Nao ★★★★★
()
Ответ на: комментарий от Nao

клиенту с адресом 10.10.10.11 нужно попасть через шлюз 10.10.10.10/192.168.1.1 на сервер 192.168.1.9.
не понял, как тут форвардингом сделать?

huan
() автор топика
Ответ на: комментарий от huan

Вкратце:
A - исходная машина (10.10.10.11)
B - конечная машина (192.168.1.9)
G - шлюз (10.10.10.10, 192.168.1.1)

A: надо бы послать пакет для B (192.168.1.9), как туда нам слать? (смотрит таблицу маршрутизации). Ага, дефолтный шлюз у нас G(10.10.10.10), значит пошлём через него.
10.10.10.11 -> 192.168.1.9 (мак_A -> мак_G)

G: так, пакет явно предназначен не нам (192.168.1.9), включен у нас там форвардинг? включен, значит пересылаем.
А что у нас там в таблице маршрутизации для 192.168.1.9?
Написано - «посылать прямиком на интерфейс eth1». Ок, пересылаем.
10.10.10.11 -> 192.168.1.9 (мак_G -> мак_B)

B: о, это пакетик для нас. Обрабатываем... Теперь надо послать ответный пакет на A. Смотрим таблицу маршрутизации... Дефолтный шлюз у нас 192.168.1.1. Посылаем через него.
192.168.1.9 -> 10.10.10.11(мак_B -> мак_G)

и т.д.

Nao ★★★★★
()

не работает. подскажите где косяк? заранее благодарен

1. нужно сначала определиться как сервис на 192.168.1.9 должен идентифицировать клиентов из 10/8, достаточно SNAT или же SNAT лишь усугубляет ситуацию..
2. если SNAT не нужен прописать маршрут на 192.168.1.9 для 10/8
3. использовать DNAT
4. разрешить forward

зы.зы. если юзаете snat то лучше делать его на интерфейс в назначения, в вашем случае --to-source 192.168.1.1, в этом варианте маршрут для 10/8 на сервере 192.168.1.9 прописывать нет необходимости.

anonymous2 ★★★★★
()
Ответ на: комментарий от sdio

не админ я. но надо настроить это в линуксе. че еще надо написать?

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