понедельник, 12 декабря 2016 г.

FreeBSD: Простая настройка NAT с помощью пакетного фильтра "pf"

Исходные данные:
"192.168.1.0/24" - внутренняя сеть клиентов;
"em0" - внешний интерфейс FreeBSD;
"em1" - внутренний интерфейс FreeBSD.

Настроим NAT для FreeBSD в два шага:
1. Отредактируем файл конфигурации "ee /etc/rc.conf". Добавим туда следующие строки:

gateway_enable="YES"
pf_enable="YES"
pf_flags=""
pf_rules="/etc/pf.conf"

2. Далее создадим файл правил фильтра ("ee /etc/pf.conf") со следующим содержанием:

ext_if="em0"
int_if="em1"
int_nets="{192.168.1.0/24}"
nat on $ext_if from $int_nets to any -> ($ext_if)
block in on $ext_if from any to any
pass in on $int_if from $int_nets to any keep state


Присутствует также возможность использовать NAT при наличии всего одного интерфейса. В этом случае файл пакетного фильтра будет таким:

ext_if="em0"
int_nets="{192.168.1.0/24}"
nat on $ext_if from $int_nets to any -> ($ext_if)
block in on $ext_if from any to any
pass in on $ext_if from $int_nets to any keep state

В данной конфигурации ограничен доступ к самому хосту FreeBSD по внешнему интерфейсу. Чтобы это исправить, добавьте следующую строку:

 pass in on $ext_if from any to $ext_if keep state

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

Отправить комментарий