ядерный нат (ipfirewall nat) проблемы

Настройка сетевых служб, маршрутизации, фаерволлов. Проблемы с сетевым оборудованием.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
mediamag
лейтенант
Сообщения: 693
Зарегистрирован: 2008-10-02 20:49:21

ядерный нат (ipfirewall nat) проблемы

Непрочитанное сообщение mediamag » 2010-05-28 9:14:10

Установил вчера ядерный нат. Собрал ядро

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

options         IPFIREWALL
options         IPFIREWALL_VERBOSE
options         IPFIREWALL_VERBOSE_LIMIT=100
options         IPFIREWALL_NAT
options         LIBALIAS
options         ROUTETABLES=2
options         DUMMYNET
options         HZ="1000"
Добавил в rc.conf

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

firewall_nat_enable="YES"
firewall_nat_interface="внешняя сетевая"
И нат отлично запахал. (юзеры из локалки в инет выходят) Но вот, крутящийся на шлюзе mpd5 и ddclient (dyndns) и ssh стали из мира не доступны. (к mpd не достучатся, ddclient не может синхронизироваться с сайтом dyndns.org). Добавил правило

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

ipfw add 1 allow log ip from any to any
и начал смотреть логи. Увидел, что при коннекте из мира к mpd в логах идёт такое

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

ipfw: 1 Accept TCP 91.193.70.161:49323 10.0.1.2:1723 in via xl0
ipfw: 1 Accept TCP 10.0.1.2:1723 91.193.70.161:49323 out via xl0
НО!!!..в фаерволе у меня правила, разрешающие это хождение есть

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

$fwcmd add 6100 allow tcp from any to $extip 1723 in via $extif setup
$fwcmd add 6110 allow tcp from $extip 1723 to any out via $extif setup
но они находятся ниже правила с ядерным натом. Если я их поставлю выше ната и убираю параметр setup, то mpd чётко работает. Но я этого делать не хочу, так как теряю параметр setup (так же безопаснее). Когда стоял обычный natd, таких проблем не было. Подскажите, как на ядерном нате разрешать подобные сервисы извне (mpd, ddclient, ssh, mail etc.) не теряя при этом параметр setup. Мой конфиг правил представлен ниже с минимальными параметрами.

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

$fwcmd add 1600 deny ip from 0.0.0.0/8 to any in via $extif

#----allow all lo0 traffic----------------------

$fwcmd add 1000 allow ip from any to any via lo0

#----deny loopback-----------------------------

$fwcmd add 1100 deny ip from any to 127.0.0.0/8
$fwcmd add 1200 deny ip from 127.0.0.0/8 to any

#----NAT---------------------------------------------

ipfw nat 1 config log if xl0 reset same_ports deny_in
$fwcmd add 3000 nat 1 ip4 from any to any via $extif

#---check-state------------

$fwcmd add 3900 check-state

#---allow all LAN traffic----------------------------------

$fwcmd add 4200 allow ip from any to $intnet in via $intif
$fwcmd add 4300 allow ip from $intnet to any out via $intif

#----allow all established tcp connections-----------

$fwcmd add 4400 allow tcp from any to any established

#----allow SSH-------------------------------------------------------------------------

$fwcmd add 5000 allow tcp from any to $extip 35665 in via $extif setup limit src-addr 4

#----allow port 1723 (for mpd5 clients)------------------------------------------------

$fwcmd add 6100 allow tcp from any to $extip 1723 in via $extif setup
$fwcmd add 6110 allow tcp from $extip 1723 to any out via $extif setup

#----allow GRE traffic for mpd5-----------

$fwcmd add 6200 allow gre from any to any

#----block other established tcp connections----------------------

${fwcmd} add 6600 deny tcp from any to $extip in via $extif setup

#----allow established tcp connections from ext IP to ext interface-----------

${fwcmd} add 6700 allow tcp from $extip to any out via $extif setup keep-state
${fwcmd} add 6800 allow tcp from any to $extip in via $intif setup

Хостинговая компания 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/

Аватара пользователя
EARL
мл. сержант
Сообщения: 85
Зарегистрирован: 2010-05-24 9:05:18
Откуда: Тамбов

Re: ядерный нат (ipfirewall nat) проблемы

Непрочитанное сообщение EARL » 2010-05-28 9:28:15

покажите значение

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

sysctal -a | grep fw.one_pass


Аватара пользователя
EARL
мл. сержант
Сообщения: 85
Зарегистрирован: 2010-05-24 9:05:18
Откуда: Тамбов

Re: ядерный нат (ipfirewall nat) проблемы

Непрочитанное сообщение EARL » 2010-05-28 9:56:28

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

ipfw nat 1 config log if xl0 reset same_ports deny_in
В этой строчке параметр deny_in запрещает все входящие пакеты, если для них небыло найдено записей в таблице трансляций, поэтому у вас сеть за шлюзом работает через nat, а к самому шлюзу доступа нет. Уберите deny_in и посмотрите, что будет без него.


mediamag
лейтенант
Сообщения: 693
Зарегистрирован: 2008-10-02 20:49:21

Re: ядерный нат (ipfirewall nat) проблемы

Непрочитанное сообщение mediamag » 2010-05-28 10:09:24

А нет....помогло..НО!!!! только когда я реснул шлюз, а не перечитал правила)))))....блин....+1 подводный камень..ну, будем знать))) спасибо))

Аватара пользователя
EARL
мл. сержант
Сообщения: 85
Зарегистрирован: 2010-05-24 9:05:18
Откуда: Тамбов

Re: ядерный нат (ipfirewall nat) проблемы

Непрочитанное сообщение EARL » 2010-05-28 10:12:55

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

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

ipfw nat flush
потом заново настраивать нат

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

ipfw nat 1 config ...
иначе новые значения не всегда применяются

mediamag
лейтенант
Сообщения: 693
Зарегистрирован: 2008-10-02 20:49:21

Re: ядерный нат (ipfirewall nat) проблемы

Непрочитанное сообщение mediamag » 2010-05-28 10:21:53

тоесть вверху конфига можно просто добавить эту строку...ага спасибо.

Аватара пользователя
EARL
мл. сержант
Сообщения: 85
Зарегистрирован: 2010-05-24 9:05:18
Откуда: Тамбов

Re: ядерный нат (ipfirewall nat) проблемы

Непрочитанное сообщение EARL » 2010-05-28 10:30:53

можно, но минус тут в том, что при перезагрузке правил фаервола в таком случае некоторые уже установленные сессии разрываются.

mediamag
лейтенант
Сообщения: 693
Зарегистрирован: 2008-10-02 20:49:21

Re: ядерный нат (ipfirewall nat) проблемы

Непрочитанное сообщение mediamag » 2010-05-28 19:22:23

Хм...по статье с сайта не удаётся сделать проброс портов.....

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

ipfw nat 1 config log if xl0 reset same_ports redirect_port tcp 192.168.0.2:80 80
Такое впечатление что не хватает каких то правил.

mediamag
лейтенант
Сообщения: 693
Зарегистрирован: 2008-10-02 20:49:21

Re: ядерный нат (ipfirewall nat) проблемы

Непрочитанное сообщение mediamag » 2010-05-28 22:33:08

РЕШЕНО...кому интересно ниже ната нужно добавить 2 правила:

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

 allow tcp from any to 192.168.0.2 dst-port 80 via xl0
allow tcp from any to 192.168.0.2 dst-port 80 via rl0
Вопрос - кто знает....как правильно, прописывать конфиг ната и редирект в одном правиле или нат отдельно, а редирект отдельно???? Гуглил и в разных примерах по разному.
я пока сделал всё в одном

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

ipfw nat 1 config log if xl0 reset same_ports redirect_port tcp 192.168.0.2:80 80
$fwcmd add 3100 nat 1 ip4 from any to any via $extif
а как правильно???

Аватара пользователя
EARL
мл. сержант
Сообщения: 85
Зарегистрирован: 2010-05-24 9:05:18
Откуда: Тамбов

Re: ядерный нат (ipfirewall nat) проблемы

Непрочитанное сообщение EARL » 2010-05-28 22:42:24

mediamag писал(а): Вопрос - кто знает....как правильно, прописывать конфиг ната и редирект в одном правиле или нат отдельно, а редирект отдельно???? Гуглил и в разных примерах по разному.
я пока сделал всё в одном

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

ipfw nat 1 config log if xl0 reset same_ports redirect_port tcp 192.168.0.2:80 80
$fwcmd add 3100 nat 1 ip4 from any to any via $extif
а как правильно???
Правильно так, как у тебя - нат и редирект прописываются в одном правиле. По другому никак не сделаешь.

mediamag
лейтенант
Сообщения: 693
Зарегистрирован: 2008-10-02 20:49:21

Re: ядерный нат (ipfirewall nat) проблемы

Непрочитанное сообщение mediamag » 2010-05-29 9:31:21

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

Аватара пользователя
EARL
мл. сержант
Сообщения: 85
Зарегистрирован: 2010-05-24 9:05:18
Откуда: Тамбов

Re: ядерный нат (ipfirewall nat) проблемы

Непрочитанное сообщение EARL » 2010-05-29 9:37:14

И всё это работает? Я что-то с трудом в это верю

mediamag
лейтенант
Сообщения: 693
Зарегистрирован: 2008-10-02 20:49:21

Re: ядерный нат (ipfirewall nat) проблемы

Непрочитанное сообщение mediamag » 2010-07-12 9:09:10

Чтобы не плодить темы - не могу понять кое что: хочу дать ядерный нат не всей локалке а определенной таблице. В натд это делалось просто, а вот в ядрёном нате не могу понять.
Делал так

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

ipfw nat 1 config log if $extif reset same_ports
$fwcmd add 3100 nat 1 ip4 from "table(1)" to any in via $extif
$fwcmd add 3100 nat 1 ip4 from any to "table(1)" out via $extif
и так

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

ipfw nat 1 config log if $extif reset same_ports
$fwcmd add 3100 nat 1 ip4 from "table(1)" to any out via $extif
$fwcmd add 3100 nat 1 ip4 from any to "table(1)" in via $extif
не помогает. Подскажите пожалуйста, как же всё таки можно разрешить определенной таблице выход по нату? Заранее спасибо.

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

Re: ядерный нат (ipfirewall nat) проблемы

Непрочитанное сообщение terminus » 2010-07-12 9:42:46

mediamag писал(а):Чтобы не плодить темы - не могу понять кое что: хочу дать ядерный нат не всей локалке а определенной таблице. В натд это делалось просто, а вот в ядрёном нате не могу понять.
Делал так

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

ipfw nat 1 config log if $extif reset same_ports
$fwcmd add 3100 nat 1 ip4 from "table(1)" to any in via $extif
$fwcmd add 3100 nat 1 ip4 from any to "table(1)" out via $extif
и так

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

ipfw nat 1 config log if $extif reset same_ports
$fwcmd add 3100 nat 1 ip4 from "table(1)" to any out via $extif
$fwcmd add 3100 nat 1 ip4 from any to "table(1)" in via $extif
не помогает. Подскажите пожалуйста, как же всё таки можно разрешить определенной таблице выход по нату? Заранее спасибо.

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

ipfw nat 1 config log if $extif reset same_ports
$fwcmd add 3100 nat 1 ip4 from "table(1)" to any out via $extif
$fwcmd add 3101 allow ip4 from me to any out via $extif
$fwcmd add 3102 nat 1 ip4 from any to me in via $extif
$fwcmd add 3103 allow ip4 from any to "table(1)" in via $extif
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

mediamag
лейтенант
Сообщения: 693
Зарегистрирован: 2008-10-02 20:49:21

Re: ядерный нат (ipfirewall nat) проблемы

Непрочитанное сообщение mediamag » 2010-07-12 17:57:36

спасибо за подсказку - попробую

mediamag
лейтенант
Сообщения: 693
Зарегистрирован: 2008-10-02 20:49:21

Re: ядерный нат (ipfirewall nat) проблемы

Непрочитанное сообщение mediamag » 2010-07-13 10:05:21

Меня смутили вот эти два правила

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

$fwcmd add 3101 allow ip4 from me to any out via $extif
$fwcmd add 3103 allow ip4 from any to "table(1)" in via $extif
Мне кажется что я этими правилами разрешаю слишком много...не полезет ли через них левый трафик?? Например первое правило разрешает исходящий коннект от шлюза в мир (с этим всё ясно и это всегда разрешено в конфигах...даже в хендбуке) Второе же правило разрешает любые входящие коннекты по любым портам из мира на айпи в 1 таблице. Не слишком ли радикально?

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

Re: ядерный нат (ipfirewall nat) проблемы

Непрочитанное сообщение terminus » 2010-07-13 10:45:49

Как у вас сейчас настроен параметр sysctl one_pass?

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

sysctl -a | grep one_pass
Настройте нат с директивой deny_in тогда никакой трафик снаружи через нат внутрь не пройдет, если не сделать для него redirect_port.
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

mediamag
лейтенант
Сообщения: 693
Зарегистрирован: 2008-10-02 20:49:21

Re: ядерный нат (ipfirewall nat) проблемы

Непрочитанное сообщение mediamag » 2010-07-13 10:57:27

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

net.inet.ip.fw.one_pass: 0
У меня крутится на шлюзе мпд 5 если я делаю deny_in то к мпд более не достучаться.

mediamag
лейтенант
Сообщения: 693
Зарегистрирован: 2008-10-02 20:49:21

Re: ядерный нат (ipfirewall nat) проблемы

Непрочитанное сообщение mediamag » 2010-07-13 11:10:43

И только что высянил, что сквид тоже не может работать..по прокси инет не идёт с параметром deny_in

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

Re: ядерный нат (ipfirewall nat) проблемы

Непрочитанное сообщение terminus » 2010-07-13 11:12:11

Второе же правило разрешает любые входящие коннекты по любым портам из мира на айпи в 1 таблице. Не слишком ли радикально?
IP адреса из table(1) появятся в пакете только после того как он пройдет через нат. Когда выставлен параметр deny_in то левый трафик не пройдет, а только тот который был инициирован клиентом из table(1).

На счет "net.inet.ip.fw.one_pass: 0" - нет проблем, правила 3101 и 3103 как раз это учитывют.
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

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

Re: ядерный нат (ipfirewall nat) проблемы

Непрочитанное сообщение terminus » 2010-07-13 11:13:24

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

mediamag
лейтенант
Сообщения: 693
Зарегистрирован: 2008-10-02 20:49:21

Re: ядерный нат (ipfirewall nat) проблемы

Непрочитанное сообщение mediamag » 2010-07-13 11:28:40

я попробую сделать редирект порта 3128 в локалку на определенную таблицу...с мпд поступлю так же (сделаю редирект на внутренюю сетевую порта 1723). ПОка что не хочется двигать нат туда-сюда.

mediamag
лейтенант
Сообщения: 693
Зарегистрирован: 2008-10-02 20:49:21

Re: ядерный нат (ipfirewall nat) проблемы

Непрочитанное сообщение mediamag » 2010-07-14 11:08:46

хм...не могу понять, как, при параметре deny_in, заставить работать сквид. Вот что было до включения deny_in

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

#----proxy server SQUID allow-----------------------------------

$fwcmd add 2900 fwd 127.0.0.1,3128 tcp from "table(3)" to any 80

#----NAT---------------------------------------------

ipfw nat 1 config log if $extif reset same_ports
$fwcmd add 3100 nat 1 ip4 from any to any via $extif
Так сквид+ядерный нат пашет.

Теперь ставлю

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

ipfw nat 1 config log if $extif reset same_ports deny_in
и сквид перестаёт пахать. Есть ли у кого то соображения почему так происходит и как это дело починить? Предполагаю, что параметром deny_in закрываю любые конекты к внешней сетевой из мира в локалку.