ipfw + ipfw nat

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
CrazyPilot
ст. сержант
Сообщения: 321
Зарегистрирован: 2008-08-14 9:17:58
Откуда: Санкт-Петербург
Контактная информация:

Re: ipfw + ipfw nat

Непрочитанное сообщение CrazyPilot » 2009-03-25 18:50:52

ААААА, чума.....отсыпьте мне такой травы. Как это: nat 111 tcp ... proto 47

Ладно, закрыли тему. Уже вроде работает все :)

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

Непрочитанное сообщение Гость » 2009-03-25 18:51:42

нет, пока не закрыли.
sch писал(а):
4fssw писал(а):да, бред - увлекся :)
похоже, что для PPTP-сервера на шлюзе и одновременно для PPTP-клиента внутри будет таки глючить в однопроходном режиме...
nat 111 tcp from any to ${ext0_ip} not 1723 proto 47
причем правило nat ip from any to ${ext0_ip} похоже, что разрешает и gre тоже.

Ведь gre это только номер ip протокола, который все равно ip протокол, и его фреймы инкапсулированы в tcp пакеты с полным набором портов и адресов. Посмотрел на одном роутере с однопроходным ipfw (freebsd-7.0R), таки счетчики правила, разрешающего gre равны 0. Правила для входящего NAT имеют номера в блоке 1000. Подключение к порту 1723 и обмен данными для адреса VPN клиента разрешается в правилах с номерами в блоках 100-200.

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

01040 1071464 986262870 nat 2002 ip from any to $ext_ip established in recv rl0
01041   89433   7396254 nat 2002 icmp from any to  $ext_ip
01100 1428450 445254855 allow ip from me to any
01110  961052 725369428 allow ip from any to any established
01120       0         0 allow ip from any to any frag
01130       0         0 allow gre from any to any

CrazyPilot
ст. сержант
Сообщения: 321
Зарегистрирован: 2008-08-14 9:17:58
Откуда: Санкт-Петербург
Контактная информация:

Re: ipfw + ipfw nat

Непрочитанное сообщение CrazyPilot » 2009-03-25 18:55:01

Конечно gre входит в ip. Можно еще модель OSI и стек ip протоколов вспомнить...

Насчет инкапсуляции gre в tcp не уверен. Впрочем это уже что-то из области метафизики. По идее если gre упаковывался бы в tcp - на выходе бы у нас были tcp пакеты. gre посылается ip...наверно...надо матчасть учить...

sch
проходил мимо

Re: ipfw + ipfw nat

Непрочитанное сообщение sch » 2009-03-25 19:05:03

ipfw кушает команду типа allow ip from any to me proto 47 без проблем

но действительно изнутри сети PPTP от windows-клиента на внешний VPN сервер не подключается...

этот бред надо проверить до конца

CrazyPilot
ст. сержант
Сообщения: 321
Зарегистрирован: 2008-08-14 9:17:58
Откуда: Санкт-Петербург
Контактная информация:

Re: ipfw + ipfw nat

Непрочитанное сообщение CrazyPilot » 2009-03-25 19:13:56

sch писал(а):ipfw кушает команду типа allow ip from any to me proto 47 без проблем

но действительно изнутри сети PPTP от windows-клиента на внешний VPN сервер не подключается...

этот бред надо проверить до конца
sch писал(а):nat 111 tcp from any to ${ext0_ip} not 1723 proto 47
Allow ip ....proto 47 - это да, нормально. Но никак не tcp, который вы написали.

Допускаю, что просто "оговорились", ну я так, чисто поржал :)

Насчет проверить бред - я ща поставил без one_pass - вроде работает (не проверял, но пока никто не жаловался :ROFL: ). Как-то влом ковыряться вечерами на боевом серваке...Еще начальство извне залезет на vpn, а я еще хыщ....и нет vpn. По голове никто не погладит...

sch
проходил мимо

Re: ipfw + ipfw nat

Непрочитанное сообщение sch » 2009-03-25 19:17:03

Кажется заработало. Просто натим в обе стороны gre, а шлюз сам разберется - его пакеты, или для клиента внутри сети

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

ipfw add 1038 nat 2002 gre from any to any

CrazyPilot
ст. сержант
Сообщения: 321
Зарегистрирован: 2008-08-14 9:17:58
Откуда: Санкт-Петербург
Контактная информация:

Re: ipfw + ipfw nat

Непрочитанное сообщение CrazyPilot » 2009-03-25 19:22:35

sch писал(а):Кажется заработало. Просто натим в обе стороны gre, а шлюз сам разберется - его пакеты, или для клиента внутри сети

ipfw add 1038 nat 2002 gre from any to any
Да изначально проблема какбэ не в этом была....У меня нат вначале стоял без опции deny_in в конфиге. И еще был mpd на внешнем интерфейсе. Адрес этого интерфейса используется натом. Так вот если сказать нату deny_in - тот лочит все, что не подходит ему. Фаер закрывается. Если не сказать deny_in - нат хавает все пакеты из сети, и все правила после ната дружно идут лесом. (Это все при one_pass=1 соответственно). Поэтому я опустил нат в самый конец списка правил - но тогда все гре пакеты уходили на mpd. Даже когда я сделал skipto gre пакетов от определенного хоста до правил ната (на этот хост долбился pptp'ом клиент изнутри) - один хрен не работало. Вот такая была проблема изначально. Потом я включил one_pass=0 и ставил тихо радоваться жизни (пока все еще радуюсь :) )

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

Re: ipfw + ipfw nat

Непрочитанное сообщение Гость » 2009-03-25 19:30:16

Если ты еще не заметил - я уже просто свой бред проверяю :smile:

Ну и хочется уже добить тему однопроходного ipfw до конца.

Насчет tcp proto 47 однозначно прогнал, но правило типа allow ip from $A to $B proto 47 вполне осмысленно с точки зрения протоколов и валидно для ipfw
сейчас я проверил одновременную работу внешнего PPTP-клиента, подключенного к шлюзу и работу внутреннего PPTP-клиента, подключенного на внешний сервер - работает

так что, итоги по однопроходному ipfw такие - жить можно, но по другому чем все привыкли :)

CrazyPilot
ст. сержант
Сообщения: 321
Зарегистрирован: 2008-08-14 9:17:58
Откуда: Санкт-Петербург
Контактная информация:

Re: ipfw + ipfw nat

Непрочитанное сообщение CrazyPilot » 2009-03-25 19:33:06

Гость писал(а):сейчас я проверил одновременную работу внешнего PPTP-клиента, подключенного к шлюзу и работу внутреннего PPTP-клиента, подключенного на внешний сервер - работает
Шайтан! :)

Странно, почему же у меня не работало...Можешь привести ifpw show и ipfw nat show config?

sch
проходил мимо

Re: ipfw + ipfw nat

Непрочитанное сообщение sch » 2009-03-25 19:47:22

rl0 - внешний интернет, адрес статический 222.22.222.22 (здесь разница с твоим случаем - у тебя mpd получал адрес, но это не принципиально (?)
rl1 - отдельное подключение к чужой сети, в которой есть человек, которому нужна внутренняя сеть за данным шлюзом
fxp0 - внутренняя сеть

mpd5.2 слушает на всех интерфейсах.

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

00111  2   56 allow ip from any to any via lo0
00111  0    0 deny ip from any to 127.0.0.0/8
00111  0    0 deny ip from 127.0.0.0/8 to any
00122  0    0 deny ip from any to 224.0.0.0/4,240.0.0.0/4 via rl0
00122  0    0 deny ip from any to 10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,169.254.0.0/16,192.0.2.0/24 in via rl0
00122  0    0 deny ip from 224.0.0.0/4,240.0.0.0/4 to any via rl0
00122  0    0 deny ip from 10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,169.254.0.0/16,192.0.2.0/24 to any in via rl0

00190 10  828 allow ip from 192.168.100.0/24 to 192.168.100.0/24 via fxp0 // Local Net
00190 22 1720 allow ip from 111.111.111.111 me dst-port 22 // trusted host
00200  2  312 allow ip from 172.16.100.2 to 172.16.100.1 in via rl1 // internal vpn windows client
00200  3  108 allow ip from 172.16.100.1 to 172.16.100.2 out via rl1 // internal vpn windows client
00500  0    0 fwd 127.0.0.1,3128 tcp from 192.168.100.0/24 to any dst-port 80
01020  0    0 nat 2002 icmp from 192.168.100.0/24 to any out
01023  0    0 nat 2002 ip from 192.168.255.0/24 to 195.222.17.41,85.12.30.213,194.67.52.35,212.47.219.0/24 out recv fxp0 xmit rl0 // KAV updates
01029  0    0 nat 2002 tcp from 192.168.100.0/24 to 999.999.999.999 // KLB
01030  0    0 nat 2002 tcp from 192.168.100.0/24 to 888.888.888.888 //  KLB 2
01031  0    0 nat 2002 tcp from 192.168.100.0/24 to 77.77.77.77 // another useful server
01039  0    0 nat 2002 gre from any to any
01040  0    0 nat 2002 tcp from any to 222.22.222.22 established in recv rl0
01041  5  420 nat 2002 icmp from any to 222.22.222.22
01100 39 7856 allow ip from me to any
01110  0    0 allow ip from any to any established
01120  0    0 allow ip from any to any frag
01140  0    0 allow udp from any to me dst-port 123
01150  0    0 allow ip from any 53 to me
06000 26 2960 allow ip from 111.111.111.111 to me
06011  0    0 allow tcp from any to me dst-port 3389 // port forward
09000  5  420 allow icmp from any to any
09100 10  840 deny ip from any to any
#ipfw nat show config
ipfw nat 2002 config ip 222.22.222.22

sch
проходил мимо

Re: ipfw + ipfw nat

Непрочитанное сообщение sch » 2009-03-25 19:58:16

Еще раз подключил обоих pptp-клиентов - счетчик на правиле 1039 увеличивается и все работает.

Это я удачно сегодня застрял на работе - пока в этой сети не требовался ни внешний VPN, ни подключения изнутри, так я и не осознавал, что есть потенциальная проблема. Случайно решил этот вопрос заранее :)

Вообще-то такой однопроходной ipfw у меня один - такой себе эксперимент

CrazyPilot
ст. сержант
Сообщения: 321
Зарегистрирован: 2008-08-14 9:17:58
Откуда: Санкт-Петербург
Контактная информация:

Re: ipfw + ipfw nat

Непрочитанное сообщение CrazyPilot » 2009-03-25 20:13:40

У меня mpd ничего не получает. Он сервак, ожидающий коннектов.
Ни хрена не понял из вашего конфига...При таком раскладе не будет работать vpn из мира на mpd. Connection еще только setup (пакет от клиента на мпд), в нат он не попадет, дальше правила, разрешаюшего коннект на 1723/tcp внешнего интерфейса, я не вижу - к пакету будет применено правило 9100. Если поставить правило разрешающее пакеты setup с мира на внешний ip 1723/tcp - другие пакеты в этой сессии попадут в нат...Вернутся из него...к ним по one_pass будет применен allow. В общем нифига мозг не работает...надо домой ехать...

sch
проходил мимо

Re: ipfw + ipfw nat

Непрочитанное сообщение sch » 2009-03-25 21:20:36

ну я подключался с адреса 111.111.111.111
а ты представь, что есть правило 6001 allow tcp from any to me 1723 - оно разрешает инициирование tcp сессии на порт MPD

следующие пакеты в рамках tcp established попадут таки в nat на правиле 1040 и после преобразования (преобразовывать нечего - но это ничему не мешает) будут приняты сервисом на шлюзе. Если после преобразования окажется, что адрес принадлежит внутреннему компьютеру - пакет будет ему отправлен согласно таблицы маршрутизации.

CrazyPilot_mobile
проходил мимо

Re: ipfw + ipfw nat

Непрочитанное сообщение CrazyPilot_mobile » 2009-03-25 21:45:12

Хм...я вообще запутался...интересно как нат разрулит два pptp from inside? В конфе мне говорили,что нат на libalias для этой цели палит некие идентификаторы для pptp. Так я и не понял этой фишки. А насчет ната по established подключениям - все равно через задницу как-то...

Аватара пользователя
BaHJa
ефрейтор
Сообщения: 61
Зарегистрирован: 2008-08-17 18:56:14
Откуда: Ukraine, Ternopil
Контактная информация:

Re: ipfw + ipfw nat

Непрочитанное сообщение BaHJa » 2011-03-08 12:43:39

zingel писал(а): но нат нужно всегда вначале и gre тоже, это как *не убий*
также возникла проблема с ipfw не пропускал gre в юзеров, при попытке подключения к ppptp ошибка 619, но allow gre from any to any после ната помоголо

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

${FwCMD}  divert natd ip from any to ${IpOut} in via ${LanOut}
${FwCMD}  divert natd ip from ${NetIn} to any out via ${LanOut}
${FwCMD}  allow gre from any to any

Аватара пользователя
CTOPMbI4
прапорщик
Сообщения: 482
Зарегистрирован: 2008-05-02 20:20:47
Откуда: Made in Russia

Re: ipfw + ipfw nat

Непрочитанное сообщение CTOPMbI4 » 2013-08-26 11:43:47

у меня вопрос про проброс портов.

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

${fwcmd} nat 1 config log if em1 same_ports reset deny_in redirect_port tcp 192.168.200:5900 5900
вопрос.
при просмотре

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

ipfw show
данного правила не видно.
это говорит о том что оно не верное? либо так и должно быть? тобишь его как то можно глянуть по другому?
Это почти неподвижности мука
Мчаться куда то со скоростью звука,
зная преакрасно, что есть уже где то
Некто
Летящий
Со скорости
Света!

lazhu
сержант
Сообщения: 216
Зарегистрирован: 2013-08-10 14:28:38
Контактная информация:

Re: ipfw + ipfw nat

Непрочитанное сообщение lazhu » 2013-08-26 13:38:27

CTOPMbI4 писал(а):у меня вопрос про проброс портов.

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

${fwcmd} nat 1 config log if em1 same_ports reset deny_in redirect_port tcp 192.168.200:5900 5900
вопрос.
при просмотре

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

ipfw show
данного правила не видно.
это говорит о том что оно не верное? либо так и должно быть? тобишь его как то можно глянуть по другому?
ipfw show nat config

Аватара пользователя
CTOPMbI4
прапорщик
Сообщения: 482
Зарегистрирован: 2008-05-02 20:20:47
Откуда: Made in Russia

Re: ipfw + ipfw nat

Непрочитанное сообщение CTOPMbI4 » 2013-08-26 14:17:14

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

# ipfw show nat config
ipfw: invalid rule number: nat
ipfw: invalid rule number: config
что то не работает. :smile:
Это почти неподвижности мука
Мчаться куда то со скоростью звука,
зная преакрасно, что есть уже где то
Некто
Летящий
Со скорости
Света!

Аватара пользователя
CTOPMbI4
прапорщик
Сообщения: 482
Зарегистрирован: 2008-05-02 20:20:47
Откуда: Made in Russia

Re: ipfw + ipfw nat

Непрочитанное сообщение CTOPMbI4 » 2013-08-27 5:38:27

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

ipfw nat show config
так работает. но строку с пробросом не выдает.
на проверку конфига не ругается. :pardon:
Это почти неподвижности мука
Мчаться куда то со скоростью звука,
зная преакрасно, что есть уже где то
Некто
Летящий
Со скорости
Света!

Аватара пользователя
BaHJa
ефрейтор
Сообщения: 61
Зарегистрирован: 2008-08-17 18:56:14
Откуда: Ukraine, Ternopil
Контактная информация:

Re: ipfw + ipfw nat

Непрочитанное сообщение BaHJa » 2013-08-29 23:03:02

для проброса портов есть утилита rinetd установи из портов и не парся.
в /usr/local/etc/rinetd.conf
реальная ір 5900 192.168.0.70 5900
не забудть порты в фаерволе открыть.

Аватара пользователя
VW
проходил мимо
Сообщения: 9
Зарегистрирован: 2013-08-29 10:19:16
Откуда: Made in USSR

Re: ipfw + ipfw nat

Непрочитанное сообщение VW » 2013-08-30 0:04:17

Доброго времени суток.
Здесь IPFW у Вас ругается на номер правила:
CTOPMbI4 писал(а):

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

# ipfw show nat config
ipfw: invalid rule number: nat
ipfw: invalid rule number: config
что то не работает. :smile:
Нужно указать номер правила здесь:

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

${fwcmd} <номер правила> nat 1 config log if em1 same_ports reset deny_in redirect_port tcp 192.168.200:5900 5900
Только после этого его будет видно при просмотре

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

ipfw show
Должно получиться.