Изучаем ipfw

FreeBSD, NetBSD, OpenBSD, DragonFly и т. д.

Модератор: arachnid

tramX
Сообщения: 200

Изучаем ipfw

Сообщение tramX »

Здравствуйте.
Собрал ядро с поддержкой ipfw.
1. Смущают маны, в них разный синтаксис. В одних пишут ${fwcmd} add в других ${ipfw} add это не имеет значения?
2. В /etc/rc.conf прописал
firewall_enable="YES"
firewall_script="скрипт с правилами"
Этого достаточно для работы ipfw ?
3. Ядро собрал с options IPFIREWALL_NAT, можно nat организовать средствами ipfw или все равно нужно пользоваться natd?
Спасибо сказали:
Аватара пользователя
Poor Fred
Сообщения: 1575
Статус: Pygoscelis papua
ОС: Gentoo Linux, FreeBSD

Re: Изучаем ipfw

Сообщение Poor Fred »

tramX писал(а):
22.04.2009 02:56
1. Смущают маны, в них разный синтаксис. В одних пишут ${fwcmd} add в других ${ipfw} add это не имеет значения?

:) Это имя переменной. Ты ее хоть zhopa назови. Главное - чтобы далее в тексте скрипта она правильно писалась: $zhopa или ${zhopa}.
3. Ядро собрал с options IPFIREWALL_NAT, можно nat организовать средствами ipfw или все равно нужно пользоваться natd?

natd
Убить всех человеков!
Спасибо сказали:
Аватара пользователя
arachnid
Модератор
Сообщения: 1100
ОС: freeBSD

Re: Изучаем ipfw

Сообщение arachnid »

можно использовать ядерный нат, встроенный в ipfw, коей работает через netgraph
http://www.opennet.ru/tips/info/1943.shtml

ps. правда синтакис нетграфа я бы уже легким не назвал :)
-= freeBSD stable, fluxbox =-
"если ты будешь со мной спорить, я тебя запишу в книжечку!" (с) Ежик
Спасибо сказали:
tramX
Сообщения: 200

Re: Изучаем ipfw

Сообщение tramX »

Если firewoll_type="open" то nat работает. А если запускаю ipfw чтоб он правила из файла брал то нет. Какие нужны правила чтоб разрешить nat ?
Вот такие написал, не помогло
fwcmd="/sbin/ipfw"
${fwcmd} -f flush
fwcmd="ipfw add"
inet="nfe0"
lan="fxp0"
${fwcmd} 1 allow all from any to any
${fwcmd} 2 divert natd all from any to any via ${inet}
Спасибо сказали:
Аватара пользователя
arachnid
Модератор
Сообщения: 1100
ОС: freeBSD

Re: Изучаем ipfw

Сообщение arachnid »

в ipfw пакет проверяется до первого сработавшего правила - так что ты и пишешь первм проверку на все - пакет под это правило проходит и все... до диверта он уже никогда не доберется.
проверка - ipfw show - покажет текущие правила и счетчик прошедших пакетов - сразу бы увидел, что диверту ничего не достается
-= freeBSD stable, fluxbox =-
"если ты будешь со мной спорить, я тебя запишу в книжечку!" (с) Ежик
Спасибо сказали:
Bingo
Сообщения: 3

Re: Изучаем ipfw

Сообщение Bingo »

tramX писал(а):
22.04.2009 02:56
3. Ядро собрал с options IPFIREWALL_NAT, можно nat организовать средствами ipfw или все равно нужно пользоваться natd?


Вы не указали номер релиза.
Если релиз 7.x и используете IPFIREWALL, то лучше ядерный НАТ. В конфиге ядра:
...
options IPFIREWALL_NAT
options LIBALIAS
...
Если релиз <7.x , то natd. В конфиге ядра:
...
options IPDIVERT
...
В /etc/rc.conf:
...
natd_enable="YES"
natd_interface=" "
natd_flags="-f /etc/natd.conf"
...
Спасибо сказали:
jojomi
Сообщения: 1

Re: Изучаем ipfw

Сообщение jojomi »

День добрый.3-й день пытаюсь настроить ядерный нат.
Ядро пересобрано с опциями

options NETGRAPH # NETGRAPH..
options NETGRAPH_IPFW # ng_ipfw
options LIBALIAS # ng_nat
options NETGRAPH_NAT # ng_nat
options NETGRAPH_NETFLOW # ng_netflow...

### MPD ###

options NETGRAPH_SPLIT
options NETGRAPH_KSOCKET
options NETGRAPH_SOCKET
options NETGRAPH_BPF
options NETGRAPH_IFACE
options NETGRAPH_MPPC_ENCRYPTION
options NETGRAPH_PPP
options NETGRAPH_PPTPGRE
options NETGRAPH_TCPMSS
options NETGRAPH_VJC
options NETGRAPH_TEE
options NETGRAPH_CAR
### --- ###

options IPFIREWALL #
options IPFIREWALL_NAT
options IPFIREWALL_VERBOSE #
options IPFIREWALL_VERBOSE_LIMIT=10
options IPFIREWALL_FORWARD #
options IPFIREWALL_DEFAULT_TO_ACCEPT #
options DUMMYNET

#============
cat /etc/sysctl.conf

net.inet.ip.forwarding=1
net.inet.ip.fw.enable=1

[root@den /usr/src/sys/i386/conf]# dmesg |grep ipfw
ipfw2 initialized, divert loadable, rule-based forwarding enabled, default to accept, logging limited to 10 packets/entry by default

[root@den /usr/src/sys/i386/conf]# kldstat
Id Refs Address Size Name
1 7 0xc0400000 4dc6f8 kernel
2 1 0xc08dd000 6a32c acpi.ko
3 1 0xc1c68000 4000 ng_ether.ko
4 1 0xc1c6c000 5000 ng_pppoe.ko

Насколько я понял нат,не загружен.Что можете в этом случае посоветовать?Благодарю за помощь.
Спасибо сказали:
Аватара пользователя
LZOmgi
Сообщения: 67
ОС: FreeBSD Current

Re: Изучаем ipfw

Сообщение LZOmgi »

Насколько я понял нат,не загружен.Что можете в этом случае посоветовать?Благодарю за помощь.

Так ты ж его в ядро добавил, как модуль загружать не надо
jojomi писал(а):
05.05.2009 13:20
options IPFIREWALL #
options IPFIREWALL_NAT

Ну можешь сделать
kldload ipfw.ko
kldload ipfw_nat.ko
kldload ng_ipfw.ko
Должно сказать что уже загружены


У меня
dmesg |grep ipfw
и
kldstat
выдают то же самое но NAT работает (я ж в нете)


Может я не то настраиваю - но у меня действий меньше. Настраивал так: http://opennet.ru/tips/info/1618.shtml

З.Ы. Хотя я не знаю - сам тоже не очень опытный.
Спасибо сказали:
Bingo
Сообщения: 3

Re: Изучаем ipfw

Сообщение Bingo »

jojomi писал(а):
05.05.2009 13:20
[root@den /usr/src/sys/i386/conf]# dmesg |grep ipfw
ipfw2 initialized, divert loadable, rule-based forwarding enabled, default to accept, logging limited to 10 packets/entry by default

[root@den /usr/src/sys/i386/conf]# kldstat
Id Refs Address Size Name
1 7 0xc0400000 4dc6f8 kernel
2 1 0xc08dd000 6a32c acpi.ko
3 1 0xc1c68000 4000 ng_ether.ko
4 1 0xc1c6c000 5000 ng_pppoe.ko

Насколько я понял нат,не загружен.Что можете в этом случае посоветовать?Благодарю за помощь.


Нат, который с ipfw, модулем не подгружается. В выводе dmesg у тебя указано divert loadable.
Спасибо сказали: