Страница 1 из 1

ipfw без пересборки ядра?

Добавлено: 2010-12-18 12:00:24
Гость
Добрый день!
Хочу поставить файервол ipfw.
Читаю:
Итак. Для включения файрволла придётся пересобрать ядро со следующими опциями:
Возможно ли поставить файервол без пересборки ядра?
Спасибо!

Re: ipfw без пересборки ядра?

Добавлено: 2010-12-18 12:23:17
vadim64
можно

P.S.: грузи модулем. кто то писал что так будет меньше возможность конфигурирования.

Re: ipfw без пересборки ядра?

Добавлено: 2010-12-18 12:31:44
Dog
Можно. Подключением модуля файрвола:

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

kldload ipfw
Если требуется kernel nat, divert или dummynet, то подгружаете соответствующие модули, например для nat'а:

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

kldload libalias
kldload ipfw_nat
для диверта:

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

kldload ipdivert
для dummynet'а:

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

kldload dummynet
Для ната еще можно подгрцзить модули определенных протоколов (чтобы, например, из-за nat'а корректно работал active ftp, pptp и всякое другое разное - см. каталог ls /boot/kernel | grep alias):

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

kldload alias_ftp
kldload alias_pptp
Только будьте осторожны с файрволом, после подгрузки модуля он автоматом установится в режим блокирования, так что если будете делать удаленно или просто не хотите, чтобы сразу отрубилась сетка, нужно будет сообразить конструкцию вроде

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

kldload ipfw && ipfw add 65530 allow ip from any to any
Да, учтите что это все актуально для FreeBSD последних версий (у меня сейчас 8.2-PRERELEASE, на 8.1 вроде работает, на более ранних - не скажу, возможно какие-то модули просто не существуют, тогда однозначно потребуется пересборка).

Re: ipfw без пересборки ядра?

Добавлено: 2010-12-18 17:15:16
icb
Из соседней ветки
но если вам нужен fwd то он включается только пересборкой ядра

Re: ipfw без пересборки ядра?

Добавлено: 2010-12-19 19:06:31
snorlov
Все, что описал Dog работает начиная с 7-ой версии точно, если вы хотитет загружать данные модули автоматом , а не ручками надо добавить соответствующие строки в /boot/loader.conf

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

ipfw_load="YES"

Re: ipfw без пересборки ядра?

Добавлено: 2010-12-20 16:53:16
icb
Так получается, что не все возможности доступны без пересборки ядра?

Re: ipfw без пересборки ядра?

Добавлено: 2010-12-20 17:01:31
Гость
да не все
кроме IPFIREWALL_FORWARD
IPDIVERT кстати тоже не доступен
если вы пользуетесь ipfw add divert natd итд

Re: ipfw без пересборки ядра?

Добавлено: 2010-12-20 17:21:15
snorlov
Гость писал(а):да не все
кроме IPFIREWALL_FORWARD
IPDIVERT кстати тоже не доступен
если вы пользуетесь ipfw add divert natd итд
А почему тогда у меня работает, и divert и nat и mpd, может потому, что в /boot/loader.conf

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

geom_journal_load="yes"
libalias_load="yes"
ipfw_load="yes"
ipfw_nat_load="yes"
dummynet_load="yes"
ipdivert_load="yes"
wlan_xauth_load="yes"
netgraph_load="yes"
rc4_load="yes"
ng_ether_load="yes"
ng_tee_load="yes"
ng_socket_load="yes"
ng_mppc_load="yes"
а /etc/rc.conf

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

firewall_enable="yes"
mpd_enable="yes"
ну и наконец uname -a

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

 ... 7.2-RELEASE-p8 #0: ... /usr/obj/usr/src/sys/GENERIC i386

Re: ipfw без пересборки ядра?

Добавлено: 2010-12-20 17:23:33
Гость
я про нат ничего не говорил
а диверта во фре два
один уже на уровне ng_

Re: ipfw без пересборки ядра?

Добавлено: 2010-12-23 0:42:40
Dog
Гость писал(а):да не все
кроме IPFIREWALL_FORWARD
IPDIVERT кстати тоже не доступен
если вы пользуетесь ipfw add divert natd итд

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

dog@dog:~> uname -rsm
FreeBSD 8.2-PRERELEASE amd64

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

dog@dog:~> man divert
DIVERT(4)              FreeBSD Kernel Interfaces Manual              DIVERT(4)

NAME
     divert — kernel packet diversion mechanism

SYNOPSIS
     #include <sys/types.h>
     #include <sys/socket.h>
     #include <netinet/in.h>

     int
     socket(PF_INET, SOCK_RAW, IPPROTO_DIVERT);

     To enable support for divert sockets, place the following lines in the
     kernel configuration file:

           options IPFIREWALL
           options IPDIVERT

     Alternatively, to load divert as a module at boot time, add the following
     lines into the loader.conf(5) file:

           ipfw_load="YES"
           ipdivert_load="YES"

...
Вполне себе divert доступен, когда загружается модулем.