Исходные данные:
"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
"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
Комментариев нет:
Отправить комментарий