Заметки сисадмина » Настройка шлюза – FreeBSD+natd+ipfw

Заметки сисадмина о интересных вещах из мира IT, инструкции и рецензии. Настраиваем Компьютеры/Сервера/1С/SIP-телефонию в Москве

Настройка шлюза – FreeBSD+natd+ipfw

2007-03-08 · Posted in FreeBSD

Немного о том как из машины под управлением FreeBSD сделать шлюз. Конфиг фаервола "в инет ходють все" кому надо тот изменит.

Сложного тут ничего нет (5 минут делов), но в форумах постоянно возникает этот вопрос.

Работа состоит из 4 шагов.

Шаг 1: Настроить айпёвость.

Для этого нужно чтоб ваш /etc/rc.conf имел примерно такие строки (зависит от вашей сетевухи и ip выделеного провом).

hostname="pupkin.ru"
ifconfig_ваш внешний интерфэйс="inet 195.131.98.149 netmask 255.255.255.0"
ifconfig_ваш внутренний интерфэйс="inet 192.168.25.1 netmask 255.255.255.0"
defaultrouter="195.131.98.1"

Шаг 2: Перекомпиляция ядра.

Делаем команды

cp /sys/i386/conf/GENERIC /sys/i386/conf/XXX
ee /sys/i386/conf/XXX

и добавляем туда такие опции

options IPFIREWALL #firewall
options IPFIREWALL_VERBOSE #enable logging to syslogd(8)
options IPFIREWALL_FORWARD #enable transparent proxy support
options IPFIREWALL_VERBOSE_LIMIT=100 #limit verbosity
options IPFIREWALL_DEFAULT_TO_ACCEPT #allow everything by default
options IPDIVERT #divert sockets
options DUMMYNET
options QUOTA
options SUIDDIR

после чего

cd /sys/i386/conf/
config XXX
cd ../../compile/XXX
make depend
make all
make install

Шаг 3: Настройка natd

Добавляем в /etc/rc.conf строки

gateway_enable="YES"
firewall_enable="YES"
firewall_type="OPEN"
natd_enable="YES"
natd_interface="ваш внешний интерфэйс"
natd_flags="-f /etc/natd.conf"

создаём файл /etc/natd.conf и в нём пишем

same_ports yes
use_sockets yes

делаем команды

mv /etc/rc.firewall /etc/rc.firewall.old
/etc/rc.firewall
ee /etc/rc.firewall

и в нём пишем

#!/bin/sh
#
# enable transfer via loopback

/sbin/ipfw -q flush

/sbin/ipfw add divert natd all from any to any via ваш внешний интерфэйс

/sbin/ipfw add pass all from any to any

Шаг 4: Перезагрузка.

shutdown -r now

Leave a Reply