URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 68833
[ Назад ]

Исходное сообщение
"ipnat & ipfw - интересное правило"

Отправлено Orlic , 11-Сен-06 13:02 
привет.

С помощью правила ipnat
rdr de0 0.0.0.0/0 port 137 -> 192.168.100.8 port 137 tcp/udp

можно перенаправить пакет с одного интерфейса (например, внешнего) на указанный адрес в локальной сети, причем адрес источника не изменится...

С помощью правил ipnat
map de0 192.168.100.0/24 -> 0/32 portmap tcp/udp 20000:30000

можно натить внутренние адреса на 1 публичный ip-адрес...

А как сделать нат с определенного порта между двумя локальными интерфейсами? то есть к роутеру подключены 2 ЛВС, нужно перебросить всего 1 TCP порт между ними, но чтобы адрес натился?...

Спасибо.


Содержание

Сообщения в этом обсуждении
"ipnat & ipfw - интересное правило"
Отправлено Nefer , 11-Сен-06 13:06 

>А как сделать нат с определенного порта между двумя локальными интерфейсами? то
>есть к роутеру подключены 2 ЛВС, нужно перебросить всего 1 TCP
>порт между ними, но чтобы адрес натился?...
НАТ с одной сети на другую (и обратно) + роуты. rdr и прочая ненужны в данной ситуации.

>
>Спасибо.



"ipnat & ipfw - интересное правило"
Отправлено Orlic , 11-Сен-06 13:17 
>
>>А как сделать нат с определенного порта между двумя локальными интерфейсами? то
>>есть к роутеру подключены 2 ЛВС, нужно перебросить всего 1 TCP
>>порт между ними, но чтобы адрес натился?...
>НАТ с одной сети на другую (и обратно) + роуты. rdr и
>прочая ненужны в данной ситуации.
>
>>
>>Спасибо.

для одного порта можно указать так?

map ed0 192.168.0.0/24 -> 192.168.1.1/32 portmap tcp/udp 1234:1234

где ed0 - интерфейс с ЛВС1
    192.168.0.0/24 - адресное пространство ЛВС1
    192.168.1.1 - адрес интерфейса, смотрящего в ЛВС2
    1234 - порт, который нужно перебросить


"ipnat & ipfw - интересное правило"
Отправлено Nefer , 11-Сен-06 14:48 

>для одного порта можно указать так?
>
>map ed0 192.168.0.0/24 -> 192.168.1.1/32 portmap tcp/udp 1234:1234
>
>где ed0 - интерфейс с ЛВС1
>    192.168.0.0/24 - адресное пространство ЛВС1
>    192.168.1.1 - адрес интерфейса, смотрящего в ЛВС2
>    1234 - порт, который нужно перебросить


Да. И в обратную сторону такое же правило.


"ipnat & ipfw - интересное правило"
Отправлено Orlic , 11-Сен-06 14:57 
>
>>для одного порта можно указать так?
>>
>>map ed0 192.168.0.0/24 -> 192.168.1.1/32 portmap tcp/udp 1234:1234
>>
>>где ed0 - интерфейс с ЛВС1
>>    192.168.0.0/24 - адресное пространство ЛВС1
>>    192.168.1.1 - адрес интерфейса, смотрящего в ЛВС2
>>    1234 - порт, который нужно перебросить
>
>
>Да. И в обратную сторону такое же правило.

насколько я понимаю, ipnat создает свою таблицу соответствий, зачем же тогда указывать обратное правило???

и в случае работы ipnat и ipfw - что отрабатывает первым?.. Не будет ли у меня заворачиваться весь трафик из локальной сети в ipnat ? например, пакеты, предназначенные для самого роутера...


"ipnat & ipfw - интересное правило"
Отправлено Nefer , 11-Сен-06 15:17 
>насколько я понимаю, ipnat создает свою таблицу соответствий, зачем же тогда указывать
>обратное правило???
Если у Вас инициация идет только с одной стороны - то достаточно и так. Если с другой стороны тоже возможна инициация - тогда эти пакеты не подпадут под это правило и ничего не получится. "Ответное" правило создается только для ОТВЕТОВ. То бишь с теми же портами и ИПшниками что и инициирующий пакет.

>
>и в случае работы ipnat и ipfw - что отрабатывает первым?.. Не
>будет ли у меня заворачиваться весь трафик из локальной сети в
>ipnat ? например, пакеты, предназначенные для самого роутера...

А Вы детализируйте - пропишите там и from и to - тогда пакеты для самого роутера не попадут под правило. К тому же такие пакеты никогда не появятся на противоположном интерфейсе, так что не попадут и в случае без уточнения.


"ipnat & ipfw - интересное правило"
Отправлено Orlic , 11-Сен-06 15:27 
>Если у Вас инициация идет только с одной стороны - то достаточно
>и так. Если с другой стороны тоже возможна инициация - тогда
>эти пакеты не подпадут под это правило и ничего не получится.
>"Ответное" правило создается только для ОТВЕТОВ. То бишь с теми же
>портами и ИПшниками что и инициирующий пакет.

инициализация соединения только с одной стороны...

>>и в случае работы ipnat и ipfw - что отрабатывает первым?.. Не
>>будет ли у меня заворачиваться весь трафик из локальной сети в
>>ipnat ? например, пакеты, предназначенные для самого роутера...

>А Вы детализируйте - пропишите там и from и to - тогда
>пакеты для самого роутера не попадут под правило. К тому же
>такие пакеты никогда не появятся на противоположном интерфейсе, так что не
>попадут и в случае без уточнения.

где указать? в ipfw??? это в случае natd можно было указать необходимые ip-адреса и порты, дивертить их пакеты в natd и потом дальше обрабатывать в файрволе
.... А с ipnat как тогда???


"ipnat & ipfw - интересное правило"
Отправлено Orlic , 11-Сен-06 15:42 
>>Есл
>>А Вы детализируйте - пропишите там и from и to - тогда
>>пакеты для самого роутера не попадут под правило. К тому же
>>такие пакеты никогда не появятся на противоположном интерфейсе, так что не
>>попадут и в случае без уточнения.
>
>где указать? в ipfw??? это в случае natd можно было указать необходимые
>ip-адреса и порты, дивертить их пакеты в natd и потом дальше
>обрабатывать в файрволе
>.... А с ipnat как тогда???

наверное, Вы имели ввиду конструкцию вида

map ed0 from 192.168.0.0/24 to any -> 192.168.1.1/32 portmap 1234:1234

в этом случае я могу конкретизировать дальше, то есть указать выполнять трансляцию только для определенного ip-адреса и только на определенный ip-адрес, а не для всей локальной сети, например, так?

map ed0 from 192.168.0.123 to 192.168.1.123 -> 192.168.1.1/32 portmap 1234:1234



"ipnat & ipfw - интересное правило"
Отправлено Nefer , 11-Сен-06 15:47 

>наверное, Вы имели ввиду конструкцию вида
>
>map ed0 from 192.168.0.0/24 to any -> 192.168.1.1/32 portmap 1234:1234

Именно.


>в этом случае я могу конкретизировать дальше, то есть указать выполнять трансляцию
>только для определенного ip-адреса и только на определенный ip-адрес, а не
>для всей локальной сети, например, так?
>
>map ed0 from 192.168.0.123 to 192.168.1.123 -> 192.168.1.1/32 portmap 1234:1234


Ну не обязательно до конкретных ИП. Можно и до сетей. Но в принципе если есть возможность (т.е. таких вариантов не 100 штук) лучше указать конкретные ИП.


"ipnat & ipfw - интересное правило"
Отправлено Orlic , 11-Сен-06 15:51 

>Ну не обязательно до конкретных ИП. Можно и до сетей. Но в
>принципе если есть возможность (т.е. таких вариантов не 100 штук) лучше
>указать конкретные ИП.

да мне нужно для 1-го единственного ip-адреса в ЛВС1 сделать трансляцию адреса на 1 единственный ip-адрес в ЛВС2 и только для определенного порта.... Так что portmap тут не при чем, так как отвечает совсем за другое (массив портов для назначения при трансляции адресов)



"ipnat & ipfw - интересное правило"
Отправлено Nefer , 11-Сен-06 16:15 
>да мне нужно для 1-го единственного ip-адреса в ЛВС1 сделать трансляцию адреса
>на 1 единственный ip-адрес в ЛВС2 и только для определенного порта....
>Так что portmap тут не при чем, так как отвечает совсем
>за другое (массив портов для назначения при трансляции адресов)

Извиняюсь, невнимательность проявил. portmap тут дейсвительно не при чем, а в остальном правило будет работать. Если мешает форвард остальных портов - пожно перекрыть это правилами ipfw.


"ipnat & ipfw - интересное правило"
Отправлено Orlic , 11-Сен-06 16:52 

> Если мешает форвард остальных портов - пожно перекрыть
>это правилами ipfw.

я все больше склоняюсь к тому, что нужно юзать pf...
1. ipfw + natd - понятно, но криво (имхо), да к тому же natd находится в userland а не в kernel
2. ipfw + ipnat - это ipfw + ipfilter (все разрешено) + ipnat. Мне лично ipnat не кажется прозрачным и легким в описании правил, да и наличие двух firewall на одной машине лишнее (опять же имхо)
3. pf - все в одном (подобие iptables)


буду тестить...

Спасибо.


"ipnat & ipfw - интересное правило"
Отправлено Nefer , 11-Сен-06 17:59 
>я все больше склоняюсь к тому, что нужно юзать pf...
>1. ipfw + natd - понятно, но криво (имхо), да к тому
>же natd находится в userland а не в kernel
Ну не то что б криво, но некрасиво.

>2. ipfw + ipnat - это ipfw + ipfilter (все разрешено) +
>ipnat. Мне лично ipnat не кажется прозрачным и легким в описании
>правил, да и наличие двух firewall на одной машине лишнее (опять
>же имхо)
Лично для себя не вижу места этой подсистеме. При наличии следующего пункта.

>3. pf - все в одном (подобие iptables)
Лучший выбор, КМК. Там, кстати, для НАТа можно указывать порт. :)

>
>
>буду тестить...
>
>Спасибо.