Подробное руководство по ipfw nat
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
- vadim64
- майор
- Сообщения: 2101
- Зарегистрирован: 2009-09-17 15:15:26
- Откуда: Засратовец
Re: Подробное руководство по ipfw nat
подписка
Люди не делятся на национальности, партии, фракции и религии. Люди делятся на умных и дураков, а вот дураки делятся на национальности, партии, фракции и религии.
Услуги хостинговой компании Host-Food.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/
Тарифы на виртуальные сервера (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/
-
- проходил мимо
Re: Подробное руководство по ipfw nat
А вы сделайте эксперимент - запустите нат с deny_in, и без allow после ната, но с one_pass=1Bayerische писал(а):dgh, не знаю, вроде работает, проверить не могу. У меня пошли входящие подключения на порты роутера после поднятия NAT.
Довавте в ваши праила счетчики:
Код: Выделить всё
${fwcmd} add 500 check-state
${fwcmd} add 600 allow all from me to any out via ${LanIf} keep-state
${fwcmd} add 700 allow tcp from ${LanNet} to me 22 in via ${LanIf}
${fwcmd} add 800 deny all from ${LanNet} to me in via ${LanIf}
${fwcmd} add 900 allow all from ${LanNet} to any in via ${LanIf}
${fwcmd} add 901 count tcp from any to me 23 in via ${WanIf}
${fwcmd} nat 1 config log if ${WanIf} reset same_ports deny_in
${fwcmd} add 1000 nat 1 ip from any to any via ${WanIf}
${fwcmd} add 1001 count tcp from any to me 23 in via ${WanIf}
${fwcmd} add 1002 count icmp from any to me in via ${WanIf}
${fwcmd} add 1990 allow ip from any to any
${fwcmd} add 2000 deny ip from any to any
Код: Выделить всё
# nc -l 23 -k
_http://www.pcflank.com/scanner1.htm
если в фаерволе нет redirect_port для 23 и включен deny_in то, эээ, вобщем понятно, да...
Далее попробуйте попинговать что-нибудь в интернете и посмотрите на счетчики на 1002 - если он будет расти, то значит one_pass так и не починили.
-
- проходил мимо
Re: Подробное руководство по ipfw nat
на счет "без allow после ната" я погарячился. В целях эксперимента пусть пока бцдет allow.А вы сделайте эксперимент - запустите нат с deny_in, и без allow после ната, но с one_pass=1
-
- капитан
- Сообщения: 1820
- Зарегистрирован: 2010-12-25 20:41:50
- Откуда: Хлебная столица
Re: Подробное руководство по ipfw nat
Путаюсь... Несколько нечистый был эксперимент, у меня провайдер через VPN подключается, а в шелскрипте забыл прописать deny_in. Сейчас поправил.
Начало такое: без поднятия VPN, пингую объекты в локалке.
Что-то вроде этого получается:при таком раскладе я могу убрать 1991, пинг идёт, сайт, как и положено, не открывается. Добавляю 1991, начинает открываться сайт. Меняю их местами и поведение логичное, т.е. без icmp, но с ip всё и пингуется и открывается. Непонятки начинаются, если я заменяю any в более раннем условии на, например, конкретный ip в локалке, либо на подсеть локалки. При этом образуется совершеннейший затык по всем направлениям. Т.е. получается, без первого после nat allow any to any я не могу рулить ничем.
Начало такое: без поднятия VPN, пингую объекты в локалке.
Что-то вроде этого получается:
Код: Выделить всё
01000 nat 1 ip from any to any via fxp0
01990 allow icmp from any to any
01991 allow ip from any to any
-
- капитан
- Сообщения: 1820
- Зарегистрирован: 2010-12-25 20:41:50
- Откуда: Хлебная столица
Re: Подробное руководство по ipfw nat
Я вот что подумал. Если первым после NAT поставить "allow <что-то пустое> from any to any", то можно будет пробовать играть с остальными правилами.
-
- капитан
- Сообщения: 1820
- Зарегистрирован: 2010-12-25 20:41:50
- Откуда: Хлебная столица
Re: Подробное руководство по ipfw nat
Не, фига. Ничего нельзя менять. Должно быть только any to any.
-
- капитан
- Сообщения: 1820
- Зарегистрирован: 2010-12-25 20:41:50
- Откуда: Хлебная столица
Re: Подробное руководство по ipfw nat
А ведь заработало 
Ночь простояло так, сейчас обнаружил, что не пущает на порты сервера снаружи. Теперь открываем нужный сервис до NAT и вуаля!
То-то я удивлялся, когда смотрел ночью — активности диска почти нету. Обычно пауки долбят будь здоров.
Ладно, пока не буду радоваться черезмерно, по приходу попробую перезагрузить, видно будет.

Ночь простояло так, сейчас обнаружил, что не пущает на порты сервера снаружи. Теперь открываем нужный сервис до NAT и вуаля!
То-то я удивлялся, когда смотрел ночью — активности диска почти нету. Обычно пауки долбят будь здоров.
Ладно, пока не буду радоваться черезмерно, по приходу попробую перезагрузить, видно будет.
-
- капитан
- Сообщения: 1820
- Зарегистрирован: 2010-12-25 20:41:50
- Откуда: Хлебная столица
Re: Подробное руководство по ipfw nat
Этот похоже, что забирает порт себе! Апач сразу кончается, если на 80 ставлю.
Код: Выделить всё
nc -l 23 -k
-
- капитан
- Сообщения: 1820
- Зарегистрирован: 2010-12-25 20:41:50
- Откуда: Хлебная столица
Re: Подробное руководство по ipfw nat
Рабочий конфиг, одна дырка для WWW снаружи:
Вопрос: почему правило 800 не требует keep-state?
Код: Выделить всё
${fwcmd} add 500 check-state
${fwcmd} add 600 allow all from any to me via ${LanIf} keep-state
${fwcmd} add 700 allow tcp from ${LanNet} to me 22 in via ${LanIf} keep-state
${fwcmd} add 800 allow ip from any to me dst-port 80
${fwcmd} nat 1 config log if ${WanIf} deny_in reset same_ports
${fwcmd} add 1000 nat 1 ip from any to any via ${WanIf}
${fwcmd} add 1990 allow all from any to any
${fwcmd} add 65000 deny ip from any to any #The END.
-
- капитан
- Сообщения: 1820
- Зарегистрирован: 2010-12-25 20:41:50
- Откуда: Хлебная столица
Re: Подробное руководство по ipfw nat
Предполагаю, от того, что in нету, верно?
-
- капитан
- Сообщения: 1820
- Зарегистрирован: 2010-12-25 20:41:50
- Откуда: Хлебная столица
Re: Подробное руководство по ipfw nat
Как организовать бан-лист по IP? Не хочу конфиг фаера уродовать.
-
- проходил мимо
Re: Подробное руководство по ipfw nat
эээ.. чот я эта.. постесняюсь спросить.. но спрошу
а в чем смысл лимитировать число таблиц в ядре?
ибо есть опция
разве этого будет не достаточно? 

а в чем смысл лимитировать число таблиц в ядре?
Код: Выделить всё
options ROUTETABLES=2
Код: Выделить всё
options MROUTING

-
- проходил мимо
Re: Подробное руководство по ipfw nat
может економия статической памяти
хз как там эти таблицы обьявлены
может там какойто static var[];
хз как там эти таблицы обьявлены
может там какойто static var[];
- terminus
- майор
- Сообщения: 2305
- Зарегистрирован: 2007-10-29 11:27:35
- Откуда: Рига
Re: Подробное руководство по ipfw nat
Указание ROUTETABLES больше 1 включает функционал setfib. Причем при этом можно использовать до 16 fib таблиц (не надо специально ставить ROUTETABLES=16 - как только 2 или больше то включается полностью).ыть писал(а):эээ.. чот я эта.. постесняюсь спросить.. но спрошу![]()
а в чем смысл лимитировать число таблиц в ядре?ибо есть опцияКод: Выделить всё
options ROUTETABLES=2
разве этого будет не достаточно?Код: Выделить всё
options MROUTING
MROUTING это мультикаст/IGMP/etc:
Код: Выделить всё
# MROUTING enables the kernel multicast packet forwarder, which works
# with mrouted and XORP.
options MROUTING # Multicast routing
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.
- vadim64
- майор
- Сообщения: 2101
- Зарегистрирован: 2009-09-17 15:15:26
- Откуда: Засратовец
Re: Подробное руководство по ipfw nat
предполагаю что потому что потом есть правило 1990.Bayerische писал(а):Предполагаю, от того, что in нету, верно?
Люди не делятся на национальности, партии, фракции и религии. Люди делятся на умных и дураков, а вот дураки делятся на национальности, партии, фракции и религии.
- vadim64
- майор
- Сообщения: 2101
- Зарегистрирован: 2009-09-17 15:15:26
- Откуда: Засратовец
Re: Подробное руководство по ipfw nat
про функционал таблиц в ipfw читали? не подошло?Bayerische писал(а):Как организовать бан-лист по IP? Не хочу конфиг фаера уродовать.
З.Ы.: вот чё такие вопросы в своей личной теме не пишете??)))
Люди не делятся на национальности, партии, фракции и религии. Люди делятся на умных и дураков, а вот дураки делятся на национальности, партии, фракции и религии.
-
- капитан
- Сообщения: 1820
- Зарегистрирован: 2010-12-25 20:41:50
- Откуда: Хлебная столица
Re: Подробное руководство по ipfw nat
А вот не соглашусь. То правило только на NAT влияет, т.е. без него вообще ничего не работает. А 800 открывает дыру в WAN.vadim64 писал(а):предполагаю что потому что потом есть правило 1990.
про функционал таблиц в ipfw читали? не подошло?

Совсем в комплексы вогнали. Усё, ушёл курить...З.Ы.: вот чё такие вопросы в своей личной теме не пишете??)))
- vadim64
- майор
- Сообщения: 2101
- Зарегистрирован: 2009-09-17 15:15:26
- Откуда: Засратовец
Re: Подробное руководство по ipfw nat
интересно, а почему вы решили что оно влияет только на нат? в нём какие то таги разве используются?Bayerische писал(а):А вот не соглашусь. То правило только на NAT влияет, т.е. без него вообще ничего не работает. А 800 открывает дыру в WAN.
оно влияет на всё, потому что в нём есть слова all и any. терминус вам где то посоветовал использовать в случае поломаного one_pass чтобы завести нат, но это не значит что оно влияет только на нат. вы можете проверить это, замутив логирвоание
Люди не делятся на национальности, партии, фракции и религии. Люди делятся на умных и дураков, а вот дураки делятся на национальности, партии, фракции и религии.
-
- капитан
- Сообщения: 1820
- Зарегистрирован: 2010-12-25 20:41:50
- Откуда: Хлебная столица
Re: Подробное руководство по ipfw nat
Экспериментальным путём, да там выше моё удивление про это уже проскакивало, я уже поигрался вволю. Вывод: после правила NAT должно быть allow для всего, иначе будет запор у клиентов из локалки. На доступ снаружи влияют правила до NAT.интересно, а почему вы решили что оно влияет только на нат? в нём какие то таги разве используются?
- vadim64
- майор
- Сообщения: 2101
- Зарегистрирован: 2009-09-17 15:15:26
- Откуда: Засратовец
Re: Подробное руководство по ipfw nat
прекратите здесь говорить такие вещи. вы мало поигрались, попробуйте ещё раз.
Люди не делятся на национальности, партии, фракции и религии. Люди делятся на умных и дураков, а вот дураки делятся на национальности, партии, фракции и религии.
- havarz
- мл. сержант
- Сообщения: 104
- Зарегистрирован: 2008-05-06 15:18:07
- Откуда: Камчатка
Re: Подробное руководство по ipfw nat
Не срабатывает скрипт setfib1 из статьи.
Приходится запускать его в ручную. Все проверил, вроде все ок. В чем грабля, не пойму.
В rc.conf все прописано, права на файл 755.
Приходится запускать его в ручную. Все проверил, вроде все ок. В чем грабля, не пойму.
В rc.conf все прописано, права на файл 755.
- vsprs
- проходил мимо
- Сообщения: 2
- Зарегистрирован: 2009-04-14 20:21:28
- Откуда: khailino
-
- проходил мимо
- Сообщения: 1
- Зарегистрирован: 2011-04-25 10:53:57
Re: Подробное руководство по ipfw nat
Глупый вопрос:
Есть шлюз Freebsd 8.1 со следующими параметрами:
IpOut="192.168.4.25"
IpIn="192.160.1.5"
NetIn="192.160.1.0/24"
Правила ipfw:
${fwcmd} -f flush
${fwcmd} add 00100 check-state
${fwcmd} add 00103 fwd ${IpIn},8088 log all from ${NetIn} to any 80 out via sis1
${fwcmd} add 00103 fwd ${IpIn},8088 log all from ${NetIn} to any 8080 via sis1
${fwcmd} add 00104 allow icmp from any to any
${fwcmd} nat 1 config ip ${IpOut} reset same_ports deny_in
${fwcmd} add 00990 nat 1 log ip from ${NetIn} to any out via sis1
${fwcmd} add 00990 nat 1 log ip from any to ${IpOut} in via sis1
${fwcmd} add 00105 allow ip from any to any via lo0
${fwcmd} add 00105 deny ip from any to 127.0.0.0/8
${fwcmd} add 00105 deny ip from 127.0.0.0/8 to any
В итоге получается шлюз, компьютеры в локальной сети в интернете. Но Пинга с самого шлюза нет. Если убрать нат, то пинг появляется на шлюзе, и естественно интернет пропадает в локальной сети. Собственно, как грамотно сделать, так, чтоб и интернет был в локальной сети, и пинги работали на самом шлюзе. А то получается какой-то жутко прозрачный шлюз Оо.
Причем изменение положения правила 104 не влияет на работу пинга. И даже если ipfw в конце allow any to any. Причем с natd таких проблем нет Оо
Есть шлюз Freebsd 8.1 со следующими параметрами:
IpOut="192.168.4.25"
IpIn="192.160.1.5"
NetIn="192.160.1.0/24"
Правила ipfw:
${fwcmd} -f flush
${fwcmd} add 00100 check-state
${fwcmd} add 00103 fwd ${IpIn},8088 log all from ${NetIn} to any 80 out via sis1
${fwcmd} add 00103 fwd ${IpIn},8088 log all from ${NetIn} to any 8080 via sis1
${fwcmd} add 00104 allow icmp from any to any
${fwcmd} nat 1 config ip ${IpOut} reset same_ports deny_in
${fwcmd} add 00990 nat 1 log ip from ${NetIn} to any out via sis1
${fwcmd} add 00990 nat 1 log ip from any to ${IpOut} in via sis1
${fwcmd} add 00105 allow ip from any to any via lo0
${fwcmd} add 00105 deny ip from any to 127.0.0.0/8
${fwcmd} add 00105 deny ip from 127.0.0.0/8 to any
В итоге получается шлюз, компьютеры в локальной сети в интернете. Но Пинга с самого шлюза нет. Если убрать нат, то пинг появляется на шлюзе, и естественно интернет пропадает в локальной сети. Собственно, как грамотно сделать, так, чтоб и интернет был в локальной сети, и пинги работали на самом шлюзе. А то получается какой-то жутко прозрачный шлюз Оо.
Причем изменение положения правила 104 не влияет на работу пинга. И даже если ipfw в конце allow any to any. Причем с natd таких проблем нет Оо
- slb51
- мл. сержант
- Сообщения: 126
- Зарегистрирован: 2009-10-27 12:04:47
- Откуда: Нижний Новгород
Re: Подробное руководство по ipfw nat
Господа эксперты, а можно чайнику задать вопрос?
Я вот сделал всё как сказано в примере №1, а оно не работает. Пинг не проходит в инет. Все конфиги в точности как написано (ну интерфейсы и IP, конечно, другие), на фойерволе только два правила: allow all from any to any via bge0 и то же самое для bge1. Пинги проходят на оба интерфейса, а на шлюз провайдера уже нет. У меня сложилось впечатление, что автор чего-то не договорил, имея в виду, что это, как бы, общеизвестно. А именно, вроде бы надо ещё как-то NAT настроить. Или нет? Подскажите, плиз.
Я вот сделал всё как сказано в примере №1, а оно не работает. Пинг не проходит в инет. Все конфиги в точности как написано (ну интерфейсы и IP, конечно, другие), на фойерволе только два правила: allow all from any to any via bge0 и то же самое для bge1. Пинги проходят на оба интерфейса, а на шлюз провайдера уже нет. У меня сложилось впечатление, что автор чего-то не договорил, имея в виду, что это, как бы, общеизвестно. А именно, вроде бы надо ещё как-то NAT настроить. Или нет? Подскажите, плиз.
-
- проходил мимо
Re: Подробное руководство по ipfw nat
Автор постарал ся оговорить как можно подробнее...
Обговорено как включить нат через компиляцию ядра или через rc.conf.
Так же упомянуто как настроить фаервол через firewall_type="/etc/firewall".
При условии внимательного следования рецепту, счастье наступит.
покажите:
Обговорено как включить нат через компиляцию ядра или через rc.conf.
Так же упомянуто как настроить фаервол через firewall_type="/etc/firewall".
При условии внимательного следования рецепту, счастье наступит.
покажите:
Код: Выделить всё
uname -a
Код: Выделить всё
sysctl -a | grep one_pass
Код: Выделить всё
kldstat
Код: Выделить всё
ipfw show
Код: Выделить всё
ipfw nat 1 show config