ipfw kernel nat - проблемы с redirect_port

Настройка сетевых служб, маршрутизации, фаерволлов. Проблемы с сетевым оборудованием.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
LogEdge
рядовой
Сообщения: 12
Зарегистрирован: 2008-10-06 21:51:26
Контактная информация:

ipfw kernel nat - проблемы с redirect_port

Непрочитанное сообщение LogEdge » 2010-03-17 0:02:43

Привет всем.

Понадобилось завернуть часть DNS запросов на определенный сервер, скажем, 5.5.5.5.

Попробовал сделать так:

Код: Выделить всё

100 ipfw nat 500 config if ${local_if} redirect_port udp 5.5.5.5:53 53
...
3000 ipfw add nat 500 udp from ${local_net} to 8.8.8.8 dst-port 53 in via ${local_if}
ну и соотв. разрешения...

и для отладки в самом начале

Код: Выделить всё

500 ipfw add count from any to any src-port 53
600 ipfw add count from any to any dst-port 53
и что же я вижу??
(192.168.1.2 - хост во внутр. сети, 192.168.1.1 - внутр. ип шлюза, 1.2.3.4 - внешний)

Код: Выделить всё

cat /var/log/security

ipfw: 600 Count UDP 192.168.1.2:39528 8.8.8.8:53 in via sk0
ipfw: 3000 Nat UDP 192.168.1.2:39528 8.8.8.8:53 in via sk0
ipfw: 600 Count UDP 192.168.1.1:39528 8.8.8.8:53 out via ng0
ipfw: 500 Count UDP 8.8.8.8:53 1.2.3.4:39528 in via ng0
т.е. вместо redirect_port нат спокойненько заменил адрес источника на внутреннем интерфейсе - и все...

скажите, это я дурак :fool: или вся деревня с ума сошла??

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: ipfw kernel nat - проблемы с redirect_port

Непрочитанное сообщение terminus » 2010-03-17 13:01:45

Ха! Интересно... Это что же пулучается:

- если на нат работающий без deny_in из прохода IN приходт пакет адресованный на IP указанный в параметре if или ip, для которого нет правил redirect_port, то тогда он не меняя адреса отправителя и получателя создает в таблице новую запись и пропускает пакет на сам нат-рутер.

- если же на нат работающий без deny_in из прохода IN приходт пакет адресованный не на IP указанный в параметре if или ip, для которого нет правил redirect_port, то тогда он начинает работать с пакетом как бычный нат (как будто пакет пришел из прохода OUT и его надо маскировать), и заменяет в пакете адрес отправителя на то, что указано в параметре if или ip.

Незнал. Это прикольно :roll:

===

по вашей проблеме:

попробуйте так

Код: Выделить всё

100 ipfw nat 500 config ip 8.8.8.8 redirect_port udp 5.5.5.5:53 53
Предпологаю, что алгоритм будет такой: он получит пакет, увидит, что в таблице есть правило redirect_port 8.8.8.8:53 -> 5.5.5.5:53 и заменет в пакете адрес получателя на 5.5.5.5 оставив отправителя 192.168.1.2.
Проверьте.
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

Аватара пользователя
LogEdge
рядовой
Сообщения: 12
Зарегистрирован: 2008-10-06 21:51:26
Контактная информация:

Re: ipfw kernel nat - проблемы с redirect_port

Непрочитанное сообщение LogEdge » 2010-03-17 22:08:32

- если же на нат работающий без deny_in из прохода IN приходт пакет адресованный не на IP указанный в параметре if или ip, для которого нет правил redirect_port, то тогда он начинает работать с пакетом как бычный нат (как будто пакет пришел из прохода OUT и его надо маскировать), и заменяет в пакете адрес отправителя на то, что указано в параметре if или ip.
и еще прикольней должно получиться, если использовать reverse - судя по манам. Хотя реальных примеров такого найти не смог...
попробуйте так

Код: Выделить всё

100 ipfw nat 500 config ip 8.8.8.8 redirect_port udp 5.5.5.5:53 53
Предпологаю, что алгоритм будет такой: он получит пакет, увидит, что в таблице есть правило redirect_port 8.8.8.8:53 -> 5.5.5.5:53 и заменет в пакете адрес получателя на 5.5.5.5 оставив отправителя 192.168.1.2.
Проверьте.
не... он заменил адрес отправителя... :cz2:

Код: Выделить всё

cat /var/log/security

ipfw: 600 Count UDP 192.168.1.2:39528 8.8.8.8:53 in via sk0
ipfw: 3000 Nat UDP 192.168.1.2:39528 8.8.8.8:53 in via sk0
ipfw: 600 Count UDP 8.8.8.8:39528 8.8.8.8:53 out via ng0

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: ipfw kernel nat - проблемы с redirect_port

Непрочитанное сообщение terminus » 2010-03-17 22:24:45

Мнда...Изображение надобно подумать...
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

Аватара пользователя
gloom
лейтенант
Сообщения: 738
Зарегистрирован: 2008-03-13 16:29:12
Откуда: UA

Re: ipfw kernel nat - проблемы с redirect_port

Непрочитанное сообщение gloom » 2010-06-27 23:20:52

- если на нат работающий без deny_in из прохода IN приходт пакет адресованный на IP указанный в параметре if или ip, для которого нет правил redirect_port, то тогда он не меняя адреса отправителя и получателя создает в таблице новую запись и пропускает пакет на сам нат-рутер.
не не не...
пришлось редирект прописать :(