Подробное руководство по ipfw nat

Настройка сетевых служб, маршрутизации, фаерволлов. Проблемы с сетевым оборудованием.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
vadim64
майор
Сообщения: 2101
Зарегистрирован: 2009-09-17 15:15:26
Откуда: Засратовец

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение vadim64 » 2011-03-17 14:03:32

подписка
Люди не делятся на национальности, партии, фракции и религии. Люди делятся на умных и дураков, а вот дураки делятся на национальности, партии, фракции и религии.

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

терминус_
проходил мимо

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение терминус_ » 2011-03-17 14:31:33

Bayerische писал(а):dgh, не знаю, вроде работает, проверить не могу. У меня пошли входящие подключения на порты роутера после поднятия NAT.
А вы сделайте эксперимент - запустите нат с deny_in, и без allow после ната, но с one_pass=1
Довавте в ваши праила счетчики:

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

${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 чтобы слушал 23 порт:

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

# nc -l 23 -k
и проверьте можно ли из интернета подсоедериться к 23 порту
_http://www.pcflank.com/scanner1.htm

если в фаерволе нет redirect_port для 23 и включен deny_in то, эээ, вобщем понятно, да...

Далее попробуйте попинговать что-нибудь в интернете и посмотрите на счетчики на 1002 - если он будет расти, то значит one_pass так и не починили.

терминус_
проходил мимо

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение терминус_ » 2011-03-17 14:32:44

А вы сделайте эксперимент - запустите нат с deny_in, и без allow после ната, но с one_pass=1
на счет "без allow после ната" я погарячился. В целях эксперимента пусть пока бцдет allow.

Bayerische
капитан
Сообщения: 1820
Зарегистрирован: 2010-12-25 20:41:50
Откуда: Хлебная столица

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение Bayerische » 2011-03-17 22:04:07

Путаюсь... Несколько нечистый был эксперимент, у меня провайдер через VPN подключается, а в шелскрипте забыл прописать deny_in. Сейчас поправил.
Начало такое: без поднятия 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
при таком раскладе я могу убрать 1991, пинг идёт, сайт, как и положено, не открывается. Добавляю 1991, начинает открываться сайт. Меняю их местами и поведение логичное, т.е. без icmp, но с ip всё и пингуется и открывается. Непонятки начинаются, если я заменяю any в более раннем условии на, например, конкретный ip в локалке, либо на подсеть локалки. При этом образуется совершеннейший затык по всем направлениям. Т.е. получается, без первого после nat allow any to any я не могу рулить ничем.

Bayerische
капитан
Сообщения: 1820
Зарегистрирован: 2010-12-25 20:41:50
Откуда: Хлебная столица

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение Bayerische » 2011-03-17 22:10:49

Я вот что подумал. Если первым после NAT поставить "allow <что-то пустое> from any to any", то можно будет пробовать играть с остальными правилами.

Bayerische
капитан
Сообщения: 1820
Зарегистрирован: 2010-12-25 20:41:50
Откуда: Хлебная столица

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение Bayerische » 2011-03-17 22:16:23

Не, фига. Ничего нельзя менять. Должно быть только any to any.

Bayerische
капитан
Сообщения: 1820
Зарегистрирован: 2010-12-25 20:41:50
Откуда: Хлебная столица

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение Bayerische » 2011-03-18 10:27:10

А ведь заработало :)
Ночь простояло так, сейчас обнаружил, что не пущает на порты сервера снаружи. Теперь открываем нужный сервис до NAT и вуаля!
То-то я удивлялся, когда смотрел ночью — активности диска почти нету. Обычно пауки долбят будь здоров.
Ладно, пока не буду радоваться черезмерно, по приходу попробую перезагрузить, видно будет.

Bayerische
капитан
Сообщения: 1820
Зарегистрирован: 2010-12-25 20:41:50
Откуда: Хлебная столица

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение Bayerische » 2011-03-18 12:39:31

Этот

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

nc -l 23 -k
похоже, что забирает порт себе! Апач сразу кончается, если на 80 ставлю.

Bayerische
капитан
Сообщения: 1820
Зарегистрирован: 2010-12-25 20:41:50
Откуда: Хлебная столица

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение Bayerische » 2011-03-18 13:14:49

Рабочий конфиг, одна дырка для WWW снаружи:

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

${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.
Вопрос: почему правило 800 не требует keep-state?

Bayerische
капитан
Сообщения: 1820
Зарегистрирован: 2010-12-25 20:41:50
Откуда: Хлебная столица

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение Bayerische » 2011-03-18 13:25:25

Предполагаю, от того, что in нету, верно?

Bayerische
капитан
Сообщения: 1820
Зарегистрирован: 2010-12-25 20:41:50
Откуда: Хлебная столица

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение Bayerische » 2011-03-18 21:18:26

Как организовать бан-лист по IP? Не хочу конфиг фаера уродовать.

ыть
проходил мимо

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение ыть » 2011-03-23 18:35:25

эээ.. чот я эта.. постесняюсь спросить.. но спрошу :-D
а в чем смысл лимитировать число таблиц в ядре?

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

options         ROUTETABLES=2
ибо есть опция

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

options         MROUTING
разве этого будет не достаточно? :oops:

Гость
проходил мимо

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение Гость » 2011-03-23 18:47:13

может економия статической памяти
хз как там эти таблицы обьявлены
может там какойто static var[];

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

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение terminus » 2011-03-23 22:06:37

ыть писал(а):эээ.. чот я эта.. постесняюсь спросить.. но спрошу :-D
а в чем смысл лимитировать число таблиц в ядре?

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

options         ROUTETABLES=2
ибо есть опция

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

options         MROUTING
разве этого будет не достаточно? :oops:
Указание ROUTETABLES больше 1 включает функционал setfib. Причем при этом можно использовать до 16 fib таблиц (не надо специально ставить ROUTETABLES=16 - как только 2 или больше то включается полностью).

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

Непрочитанное сообщение vadim64 » 2011-03-24 22:10:16

Bayerische писал(а):Предполагаю, от того, что in нету, верно?
предполагаю что потому что потом есть правило 1990.
Люди не делятся на национальности, партии, фракции и религии. Люди делятся на умных и дураков, а вот дураки делятся на национальности, партии, фракции и религии.

Аватара пользователя
vadim64
майор
Сообщения: 2101
Зарегистрирован: 2009-09-17 15:15:26
Откуда: Засратовец

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение vadim64 » 2011-03-24 22:11:48

Bayerische писал(а):Как организовать бан-лист по IP? Не хочу конфиг фаера уродовать.
про функционал таблиц в ipfw читали? не подошло?

З.Ы.: вот чё такие вопросы в своей личной теме не пишете??)))
Люди не делятся на национальности, партии, фракции и религии. Люди делятся на умных и дураков, а вот дураки делятся на национальности, партии, фракции и религии.

Bayerische
капитан
Сообщения: 1820
Зарегистрирован: 2010-12-25 20:41:50
Откуда: Хлебная столица

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение Bayerische » 2011-03-24 23:19:07

vadim64 писал(а):предполагаю что потому что потом есть правило 1990.
А вот не соглашусь. То правило только на NAT влияет, т.е. без него вообще ничего не работает. А 800 открывает дыру в WAN.
про функционал таблиц в ipfw читали? не подошло?
:oops: не...
З.Ы.: вот чё такие вопросы в своей личной теме не пишете??)))
Совсем в комплексы вогнали. Усё, ушёл курить...

Аватара пользователя
vadim64
майор
Сообщения: 2101
Зарегистрирован: 2009-09-17 15:15:26
Откуда: Засратовец

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение vadim64 » 2011-03-24 23:31:51

Bayerische писал(а):А вот не соглашусь. То правило только на NAT влияет, т.е. без него вообще ничего не работает. А 800 открывает дыру в WAN.
интересно, а почему вы решили что оно влияет только на нат? в нём какие то таги разве используются?
оно влияет на всё, потому что в нём есть слова all и any. терминус вам где то посоветовал использовать в случае поломаного one_pass чтобы завести нат, но это не значит что оно влияет только на нат. вы можете проверить это, замутив логирвоание
Люди не делятся на национальности, партии, фракции и религии. Люди делятся на умных и дураков, а вот дураки делятся на национальности, партии, фракции и религии.

Bayerische
капитан
Сообщения: 1820
Зарегистрирован: 2010-12-25 20:41:50
Откуда: Хлебная столица

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение Bayerische » 2011-03-24 23:40:22

интересно, а почему вы решили что оно влияет только на нат? в нём какие то таги разве используются?
Экспериментальным путём, да там выше моё удивление про это уже проскакивало, я уже поигрался вволю. Вывод: после правила NAT должно быть allow для всего, иначе будет запор у клиентов из локалки. На доступ снаружи влияют правила до NAT.

Аватара пользователя
vadim64
майор
Сообщения: 2101
Зарегистрирован: 2009-09-17 15:15:26
Откуда: Засратовец

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение vadim64 » 2011-03-24 23:45:57

прекратите здесь говорить такие вещи. вы мало поигрались, попробуйте ещё раз.
Люди не делятся на национальности, партии, фракции и религии. Люди делятся на умных и дураков, а вот дураки делятся на национальности, партии, фракции и религии.

Аватара пользователя
havarz
мл. сержант
Сообщения: 104
Зарегистрирован: 2008-05-06 15:18:07
Откуда: Камчатка

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение havarz » 2011-04-04 7:59:53

Не срабатывает скрипт setfib1 из статьи.
Приходится запускать его в ручную. Все проверил, вроде все ок. В чем грабля, не пойму.
В rc.conf все прописано, права на файл 755.

Аватара пользователя
vsprs
проходил мимо
Сообщения: 2
Зарегистрирован: 2009-04-14 20:21:28
Откуда: khailino

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение vsprs » 2011-04-10 10:25:59

Посмотри файл конфигурации для запуска ipfw
ventim

Alexx
проходил мимо
Сообщения: 1
Зарегистрирован: 2011-04-25 10:53:57

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение Alexx » 2011-04-25 11:04:09

Глупый вопрос:

Есть шлюз 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

Непрочитанное сообщение slb51 » 2011-04-29 16:38:54

Господа эксперты, а можно чайнику задать вопрос?
Я вот сделал всё как сказано в примере №1, а оно не работает. Пинг не проходит в инет. Все конфиги в точности как написано (ну интерфейсы и IP, конечно, другие), на фойерволе только два правила: allow all from any to any via bge0 и то же самое для bge1. Пинги проходят на оба интерфейса, а на шлюз провайдера уже нет. У меня сложилось впечатление, что автор чего-то не договорил, имея в виду, что это, как бы, общеизвестно. А именно, вроде бы надо ещё как-то NAT настроить. Или нет? Подскажите, плиз.

терминус_
проходил мимо

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение терминус_ » 2011-04-29 17:46:33

Автор постарал ся оговорить как можно подробнее...
Обговорено как включить нат через компиляцию ядра или через rc.conf.
Так же упомянуто как настроить фаервол через firewall_type="/etc/firewall".
При условии внимательного следования рецепту, счастье наступит.

покажите:

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

uname -a

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

sysctl -a | grep one_pass

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

ipfw show

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

ipfw nat 1 show config