Подробное руководство по ipfw nat
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
-
- мл. сержант
- Сообщения: 105
- Зарегистрирован: 2009-09-28 15:31:39
Re: Подробное руководство по ipfw nat
Кто юзает round-robin(через prob & keep-state) в ipfw? Насколько правильно работает? Нет ли проблем с FTP passive? Стоит ли спрыгивать с PF 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/
-
- рядовой
- Сообщения: 19
- Зарегистрирован: 2009-01-23 22:00:06
Re: Подробное руководство по ipfw nat
все написал проще некуда, никаких ограничений, firewall_type=openADRE писал(а):Поставьте на крайний случай логирование всех правил и посмотрите где режится... бывает что запихивает в lo0pom писал(а):Почему может не работать redirect_port ?
Все работает, ipfw nat работает, ipfw nat 1 show выводит адекватный результат, а порты не перебрасываются, ответа на них нет.
В какую сторону копать?
И кстати, в статье нет примера для ограничения доступа к перебрасываемым портам, при установке ограничений как для natd на порты вообще никого не пускает.
проброс порта не работает, но вот в статистике ipfw show видно что какието пакеты попадают под правило lo0.
как поченить проброску портов?
-
- рядовой
- Сообщения: 19
- Зарегистрирован: 2009-01-23 22:00:06
Re: Подробное руководство по ipfw nat
Извеняюсь, оказалось каспер на локальном компе блочил 55500 порт
- ADRE
- майор
- Сообщения: 2645
- Зарегистрирован: 2007-07-26 8:53:49
- Контактная информация:
Re: Подробное руководство по ipfw nat
natd после изменений в нем правил рестартовали?BiJey писал(а):все написал проще некуда, никаких ограничений, firewall_type=openADRE писал(а):Поставьте на крайний случай логирование всех правил и посмотрите где режится... бывает что запихивает в lo0pom писал(а):Почему может не работать redirect_port ?
Все работает, ipfw nat работает, ipfw nat 1 show выводит адекватный результат, а порты не перебрасываются, ответа на них нет.
В какую сторону копать?
И кстати, в статье нет примера для ограничения доступа к перебрасываемым портам, при установке ограничений как для natd на порты вообще никого не пускает.
проброс порта не работает, но вот в статистике ipfw show видно что какието пакеты попадают под правило lo0.
как поченить проброску портов?
//del
-
- капитан
- Сообщения: 1820
- Зарегистрирован: 2010-12-25 20:41:50
- Откуда: Хлебная столица
Re: Подробное руководство по ipfw nat
Запутался в трёх соснах. Дано: машинка на FreeBSD питает интернетом локалку. IP динамический, DHCP.
rc.conf
firewall.script
1 проблема. После загрузки не срабатывает defaultrouter="10.213.8.1", нужно давать route add default 10.213.8.1 вручную.
2 проблема. В связи непонятно с чем NAT не работает даже после назначения маршрута по умолчанию, приходится перезапускать скрипт фаервола. Хотя, достаточно сделать ipfw nat 1 config log if fxp0 reset same_ports
rc.conf
Код: Выделить всё
defaultrouter="10.213.8.1"
hostname="server1"
inetd_enable="YES"
ifconfig_fxp0="dhcp"
ifconfig_nfe0="inet 192.168.1.1 netmask 255.255.255.0"
sshd_enable="YES"
firewall_enable="YES"
firewall_nat_enable="YES"
firewall_script="/etc/firewall.script"
gateway_enable="YES"
firewall_nat_interface="fxp0"
Код: Выделить всё
#!/bin/sh
fwcmd="ipfw -q" #command ipfw
LanIf="nfe0" #Interface LAN
LanNet="192.168.0.0/16" #LAN IP
LanIp=`ifconfig nfe0 | grep inet | awk '{print $2}'`
WanIf="fxp0" #Interface WAN
WanIp=`ifconfig fxp0 | grep inet | awk '{print $2}'`
ipfw -q -f flush
${fwcmd} add 200 check-state
${fwcmd} add 300 allow all from any to me via ${LanIf} keep-state
${fwcmd} add 400 allow tcp from ${LanNet} to me 22 in via ${LanIf} keep-state
#NAT
${fwcmd} nat 1 config log if ${WanIf} reset same_ports
${fwcmd} add 500 nat 1 ip from ${LanNet} to any
${fwcmd} add 600 nat 1 ip from any to any via ${WanIf}
${fwcmd} add 700 allow all from any to any
${fwcmd} add deny ip from any to any
2 проблема. В связи непонятно с чем NAT не работает даже после назначения маршрута по умолчанию, приходится перезапускать скрипт фаервола. Хотя, достаточно сделать ipfw nat 1 config log if fxp0 reset same_ports
-
- капитан
- Сообщения: 1820
- Зарегистрирован: 2010-12-25 20:41:50
- Откуда: Хлебная столица
Re: Подробное руководство по ipfw nat
Обе проблемы замечательно решены добавлением в rc.conf
Google чудная штука, по обрывочным сообщениям допёр.
Вообще, где можно получить полную актуальную информацию о IPFW во FreeBSD 8.2? В Хэндбуке про kernel nat вообще ничего нет, а другие источники древнючие.
Код: Выделить всё
synchronous_dhclient="YES"
Вообще, где можно получить полную актуальную информацию о IPFW во FreeBSD 8.2? В Хэндбуке про kernel nat вообще ничего нет, а другие источники древнючие.
- vadim64
- майор
- Сообщения: 2101
- Зарегистрирован: 2009-09-17 15:15:26
- Откуда: Засратовец
Re: Подробное руководство по ipfw nat
man
Люди не делятся на национальности, партии, фракции и религии. Люди делятся на умных и дураков, а вот дураки делятся на национальности, партии, фракции и религии.
- Alex Keda
- стреляли...
- Сообщения: 35477
- Зарегистрирован: 2004-10-18 14:25:19
- Откуда: Made in USSR
- Контактная информация:
Re: Подробное руководство по ipfw nat
плохой ответvadim64 писал(а):man
принято отвечать
Код: Выделить всё
man чего-то-там
Убей их всех! Бог потом рассортирует...
- vadim64
- майор
- Сообщения: 2101
- Зарегистрирован: 2009-09-17 15:15:26
- Откуда: Засратовец
Re: Подробное руководство по ipfw nat
man ipfw
там неебово инфы по кернел нату, терминус и Со неплохо перевели это в своей статье "Подробное руководство ipfw nat"
там неебово инфы по кернел нату, терминус и Со неплохо перевели это в своей статье "Подробное руководство ipfw nat"
Люди не делятся на национальности, партии, фракции и религии. Люди делятся на умных и дураков, а вот дураки делятся на национальности, партии, фракции и религии.
-
- капитан
- Сообщения: 1820
- Зарегистрирован: 2010-12-25 20:41:50
- Откуда: Хлебная столица
Re: Подробное руководство по ipfw nat
Проясните ситуацию.
1. Вот говорят, что во FreeBSD 8.x надо после правила NAT ставитьи это так, если убрать правило, трафика нету. Но получается, что при наличии данной строки по дефолту всё на машине-роутере открыто. Что делать, как защитить машину?
2. Опция deny_in, как я понял, запрещает входить извне. Но у меня получается, что и так я не могу зайти. Для того, чтобы был доступен сервер, находящийся в локалке, надо делать портфорвардинг. Или..?
1. Вот говорят, что во FreeBSD 8.x надо после правила NAT ставить
Код: Выделить всё
allow ip from any to any
2. Опция deny_in, как я понял, запрещает входить извне. Но у меня получается, что и так я не могу зайти. Для того, чтобы был доступен сервер, находящийся в локалке, надо делать портфорвардинг. Или..?
-
- проходил мимо
Re: Подробное руководство по ipfw nat
В 8.2 уже не надо - там починили
deny_in влияет на трафик постуапющий через проход IN (входящий) - если нет дырки через redirect_port или от ранее установленно исходящей сессии, то не пропустит.
показывайте все ваши правила, а то непонятно что у вас куда непускает.
deny_in влияет на трафик постуапющий через проход IN (входящий) - если нет дырки через redirect_port или от ранее установленно исходящей сессии, то не пропустит.
показывайте все ваши правила, а то непонятно что у вас куда непускает.
-
- капитан
- Сообщения: 1820
- Зарегистрирован: 2010-12-25 20:41:50
- Откуда: Хлебная столица
Re: Подробное руководство по ipfw nat
Сейчас вот так:
nfe0 локальный интерфейс, ng0 VPN-овский.
Меня больше защита роутера интересует.
Код: Выделить всё
00200 check-state
00300 allow ip from any to me via nfe0 keep-state
00400 allow tcp from 192.168.0.0/16 to me dst-port 22 in via nfe0 keep-state
00600 nat 2 ip from any to any via ng0
00700 allow ip from any to any
65535 deny ip from any to any
Меня больше защита роутера интересует.
-
- проходил мимо
Re: Подробное руководство по ipfw nat
То есть что надо то - надо из интернета иметь доступ к какому-то серверу в 192.168.1.x?Для того, чтобы был доступен сервер, находящийся в локалке, надо делать портфорвардинг. Или..?
Тогда в настройках ната должен быть порт-форвардинг redirect_port.
Как я понял этот сервер имеет доступ ко всем в локальной сети и к нему есть доступ у всех?
-
- капитан
- Сообщения: 1820
- Зарегистрирован: 2010-12-25 20:41:50
- Откуда: Хлебная столица
Re: Подробное руководство по ipfw nat
Да, про redirect_port я уже понял. Сервер (роутер) доступен всем из локалки.
FreeBSD 8.2
В sysctl.conf net.inet.ip.fw.one_pass=1
Нужно закрыть доступ в локалку извне. deny_in нужен?
Нужно закрыть доступ к серверу из WAN. Сейчас при таком наборе правил всё отлично "простукивается". WTP, FTP, SSH не пробовал. Надо открыть только то, что надо, а получается, что всё нараспашку. ipfw по дефолту собран закрытым.
FreeBSD 8.2
В sysctl.conf net.inet.ip.fw.one_pass=1
Нужно закрыть доступ в локалку извне. deny_in нужен?
Нужно закрыть доступ к серверу из WAN. Сейчас при таком наборе правил всё отлично "простукивается". WTP, FTP, SSH не пробовал. Надо открыть только то, что надо, а получается, что всё нараспашку. ipfw по дефолту собран закрытым.
-
- проходил мимо
Re: Подробное руководство по ipfw 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} 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 2000 deny ip from any to any
-
- капитан
- Сообщения: 1820
- Зарегистрирован: 2010-12-25 20:41:50
- Откуда: Хлебная столица
Re: Подробное руководство по ipfw nat
Правило 2000 закрывает всё.
-
- капитан
- Сообщения: 1820
- Зарегистрирован: 2010-12-25 20:41:50
- Откуда: Хлебная столица
Re: Подробное руководство по ipfw nat
Код: Выделить всё
${fwcmd} add 2000 deny ip from any to any
Код: Выделить всё
${fwcmd} add 2000 allow ip from any to any
- vadim64
- майор
- Сообщения: 2101
- Зарегистрирован: 2009-09-17 15:15:26
- Откуда: Засратовец
Re: Подробное руководство по ipfw nat
uname -a
Люди не делятся на национальности, партии, фракции и религии. Люди делятся на умных и дураков, а вот дураки делятся на национальности, партии, фракции и религии.
-
- капитан
- Сообщения: 1820
- Зарегистрирован: 2010-12-25 20:41:50
- Откуда: Хлебная столица
Re: Подробное руководство по ipfw nat
Код: Выделить всё
FreeBSD server1 8.2-RELEASE FreeBSD 8.2-RELEASE #0: Sun Mar 6 11:44:03 UTC 2011 root@server1:/usr/obj/usr/src/sys/SERVERKERN i386
-
- проходил мимо
Re: Подробное руководство по ipfw nat
Интереснааа... Что же это получается - они что не починили one_pass в 8.2? 

-
- капитан
- Сообщения: 1820
- Зарегистрирован: 2010-12-25 20:41:50
- Откуда: Хлебная столица
Re: Подробное руководство по ipfw nat
Кусочек ip_fw_pfil.c
Вроде патч на месте 
Код: Выделить всё
case IP_FW_NGTEE:
case IP_FW_NETGRAPH:
if (ng_ipfw_input_p == NULL) {
ret = EACCES;
break; /* i.e. drop */
}
ret = ng_ipfw_input_p(m0, dir, &args,
(ipfw == IP_FW_NGTEE) ? 1 : 0);
if (ipfw == IP_FW_NGTEE) /* ignore errors for NGTEE */
goto again; /* continue with packet */
break;
case IP_FW_NAT:
/* honor one-pass in case of successful nat */
if (V_fw_one_pass)
break; /* ret is already 0 */
goto again;
case IP_FW_REASS:
goto again; /* continue with packet */
default:
KASSERT(0, ("%s: unknown retval", __func__));
}
if (ret != 0) {
if (*m0)
FREE_PKT(*m0);
*m0 = NULL;
}
if (*m0 && mtod(*m0, struct ip *)->ip_v == 4)
SET_HOST_IPLEN(mtod(*m0, struct ip *));
return ret;
}

-
- капитан
- Сообщения: 1820
- Зарегистрирован: 2010-12-25 20:41:50
- Откуда: Хлебная столица
Re: Подробное руководство по ipfw nat
Даже если так, что можно предпринять? Кроме запрещающих правил до NAT как ещё можно регулировать входящий трафик?
Вопрос помимо данной проблемы. Возможно ли сделать "инклюды" для шелл-скрипта фаервола? Хотелось бы завести отдельный файл, к примеру, для импорта базы спамеров, какеров, агрессивных пауков и прочих.
Вопрос помимо данной проблемы. Возможно ли сделать "инклюды" для шелл-скрипта фаервола? Хотелось бы завести отдельный файл, к примеру, для импорта базы спамеров, какеров, агрессивных пауков и прочих.
-
- капитан
- Сообщения: 1820
- Зарегистрирован: 2010-12-25 20:41:50
- Откуда: Хлебная столица
Re: Подробное руководство по ipfw nat
Попробовал по-всякому, доступ к серверу из вне ограничивается только до NAT. После всё попадает под Allow. Выходит, фаер работает в режиме Allow from all, как последнее рукописное правило.
-
- проходил мимо
Re: Подробное руководство по ipfw nat
что и deny_in в нате не работает?
-
- капитан
- Сообщения: 1820
- Зарегистрирован: 2010-12-25 20:41:50
- Откуда: Хлебная столица
Re: Подробное руководство по ipfw nat
dgh, не знаю, вроде работает, проверить не могу. У меня пошли входящие подключения на порты роутера после поднятия NAT.