Подготовим ядро для нашего файрволла.
Двумя самыми популярными файрволами для FreeBSD являются ipfw и pf. Мы будем настраивать ipfw.
Для работы ipfw, внесем ряд дополнительных опций в ядро FreeBSD. Для этого потребуются исходники, они лежат в каталоге sys.
Дальше все зависит от версии FreeBSD. Для 32х битной каталог будет называться i386, для 64х битной – amd64. У меня 64х битная версия.
Переходим в каталог с конфигурацией ядра.
cd /sys/amd64/conf/
Здесь лежит наше ядро по умолчанию — GENERIC. Каждая строка в ядре представляет собой ключевое слово и один или более аргументов. Описание параметров можно посмотреть в файле NOTES, в этом же каталоге.
Скопируем ядро. Копию я назову MYKERNEL, с ней и будем работать.
cp GENERIC MYKERNEL
Откроем MYKERNEL редактором, для этого я использую простенький текстовый редактор easy editor, он же ee.
ee MYKERNEL
В параметре ident нужно поменять имя ядра с GENERIC на наш MYKERNEL.
ident MYKERNEL
Добавим несколько опций, первой из которых будет опция, включающая ipfw как часть ядра.
options IPFIREWALL
Начиная с FreeBSD 10, в ядро по умолчанию включена опция IPFIREWALL_FORWARD. В предыдущих же версиях ее также приходилось добавлять в ядро.
Включим NAT и логи.
options IPDIVERT options IPFIREWALL_VERBOSE
Есть и другие опции, но на данный момент нам хватит трех, ну или четырех, если ваша версия FreeBSD ниже 10 версии.
Будет выглядеть примерно так:
сpu HAMMER ident MYKERNEL makeoptions DEBUG=-g makeoptions WITH_CTF=1 options IPFIREWALL options IPDIVERT options IPFIREWALL_VERBOSE options SHED_ULE options PREEMPTION ...
Теперь перейдем в каталог src. И соберем новое ядро.
cd /usr/src
make buildkernel KERNCONF=MYKERNEL
Установим новое ядро.
make installkernel KERNCONF=MYKERNEL
Добавим ipfw в rc.conf и сделаем наш файрволл открытым
ee /etc/rc.conf
firewall_enable="YES" firewall_type="open"
Осталось только перезагрузиться. После чего проверить установилось ли ядро.
reboot
uname –i
Оставить комментарий