FreeBSD: Установка шлюза IPFW+NAT

Задача: Установить и настраиваем шлюз IPFW+NAT

При помощи sysinstall нужно установить исходники ядра
Sysinstall -> Configure -> Distributions -> src -> base + sys
Копируем конфигурационный файл ядра
# cd /usr/src/sys/i386/conf
# cp GENERIC GATEWAY
Меняем имя ядра
ee GATEWAY -> ident GATEWAY
Включаем необходимые параметры
options IPDIVERT # Включаем NAT
options DUMMYNET # Включаем управление трафиком – пропускная способность, имитация задержек
options IPFIREWALL # Включаем IPFW
options IPFIREWALL_FORWARD # Включаем форвардинг пакетов
options IPFIREWALL_VERBOSE # Включаем ведение логов
options IPFIREWALL_VERBOSE_LIMIT=100 # Ограничение на количество записей в логах
options IPFIREWALL_DEFAULT_TO_ACCEPT # Дефолтовое (последнее) правило будет разрешающим
Делаем копию текущего ядра
cp -R /boot/kernel /kernel.default
cp -R /boot/modules /modules.default
Собираем и устанавливаем ядро
# cd /usr/src
# make buildkernel KERNCONF=GATEWAY
# make installkernel KERNCONF=GATEWAY
Редактируем конфигурационный файл RC.CONF
ee /etc/rc.conf
defaultrouter=”192.168.168.1″ # Шлюз по умолчанию
ifconfig_em0=”inet 192.168.168.100 netmask 255.255.255.0″ # Внешний интерфейс
ifconfig_em1=”inet 192.168.100.1 netmask 255.255.255.0″ # Внутренний интерфейс
firewall_enable=”YES” # Включаем фаервол
firewall_type=”OPEN” # Тип фаервола ОТКРЫТЫЙ
gateway_enable=”YES # Включаем маршрутизатор
natd_enable=»YES» # Включаем NAT
natd_interface=»em0″ # Указываем NAT интерфейс

Обновлено: 12.03.2015