Заметки о работе с ОС FreeBSD. Статьи об установке и настройке ПО для FreeBSD.

1 февраля 2017 г.

FreeBSD 11 IPFW Kernel NAT

Настройка "ядерного" IPFW NAT на FreeBSD 11

em0 - внутренний интерфейс
em1 - внешний интерфейс


Версия FreeBSD:

root@test_machine_bsd11:~ # uname -mrs
FreeBSD 11.0-RELEASE amd64
root@test_machine_bsd11:~ # freebsd-version
11.0-RELEASE


Подгружаем нужные модули ядра:

root@test_machine_bsd11:~ # cat /boot/loader.conf
ipfw_load="YES"
ipfw_nat_load="YES"

Можно подгружать только ipfw_nat.ko - он сам подгрузит ipfw.ko, но лучше перестраховаться.


Разрешаем запуск ipfw в rc.conf:

root@test_machine_bsd11:~ # cat /etc/rc.conf
...
firewall_enable="YES"
firewall_type="/etc/ipfw.rules"

firewall_nat_enable в rc.conf писать не нужно. Теперь это ни на что не влияет.


Правила фаервола:

root@test_machine_bsd11:~ # cat /etc/ipfw.rules
# Правило необходимо чтобы пакеты от самого сервера не попадали в NAT (в правило 07000)
add 02000 allow all from me to any via em1 keep-state
nat 1 config if em1 log reset same_ports deny_in
add 03001 nat 1 all from 192.168.94.0/24 to 8.8.8.8 out via em1
# Правило для "обратного" NAT
add 07000 nat 1 all from any to 214.3.198.40 in via em1


Комментариев нет: