Шлюз на FreeBSD Делаем шлюз с NAT на FreeBSD 11 IPFW

Всем привет!
Небольшая заметка о настройке шлюза на FreeBSD с NAT.
Более 10 лет использую FreeBSD в различных инсталляциях, как правило в 90% случая использую FreeBSD как шлюз, начиная с версии 4.11.
В данный момент для себя решил, что проще и возможно дешевле использовать шлюзом готовые решения такие как MikroTik.
В таком решение есть как плюсы, так и минусы.
Но это все не по теме:)Итак, дано:

  1. FreeBSD 11.2-RELEASE-p3
  2. Сетевой интерфейс em0 IP 4.4.4.4 — смотрит в мир (WAN)
  3. Сетевой интерфейс em1 IP 192.168.33.1 — смотрит в локальную сеть (LAN)

Если вы имеете реальную сеть смаршрутизировунную провайдером на вашем WAN интерфейсе, то сделать шлюзом FreeBSD очень просто, достаточно добавить в /etc/rc.conf запись об этом:

И перезагрузить сервер, либо применить настройки на лету с помощью sysctl

На клиентах указываем шлюзом наш LAN интерфейс (только он у нас будет не с адресом BOGON сети, а с реальным) и пакеты начинают идти.
Но в 90% мы имеем сеть с /29 (255.255.255.248) маской с доступными 5 адресами (откидываем бродкаст адрес и адрес шлюза), поэтому нам остается только NAT
Пишем:

Для того, чтобы не потерять доступ к машине при конфигурировании IPFW (можно по другому, но в моем случае оно не работает, дальше увидите почему)

Добавляем скрипт с правилами FireWall (IPFW):

Делаем его исполняемым:

Если есть физический доступ к консоли, то запускаем:

Если сделаете так удаленно, то потеряете доступ к серверу, т.к. запрещающее default правило IPFW сработает самым первым и отрубит вам доступ, в реальном времени не получится сделать команду для изменения поведения IPFW с Deny all на Allow all:

Поэтому перезагружаем сервер должно все работать, команда ipfw show покажет вам счетчики правил.
P.S. это сырой пример, firewall открыт для всех и всего, перед эксплуатацией обязательно дополните конфиг (/etc/fw.sh) нужными вам правилами, последней строкой должна быть команда запрещающая все и всем deny log ip from any to any!

 

Leave a Reply

Ваш e-mail не будет опубликован. Обязательные поля помечены *

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">