Настройка NAT на OPNsense
Казалось бы, что может быть проще настройки NAT для проброса портов из одной подсети в другую? Создаем правило, указываем интерфейс, порт для получения пакетов и IP:порт для перенаправления пакетов, и вроде бы всё. Но, не тут то было, как-то раз я промучился с пробросом портов аж целую неделю, а все потому, что система с которой мне предстояло поработать слишком изобилует функционалам и это OPNSense (может быть актуально и для pfSense). Далее расскажу, все же, как правильно настраивается проброс портов. Моя очередная заметка…
OPNSense — Операционная система на базе FreeBSD для организации маршрутизатора на безе ПК или сервера, с множеством функций, брандмауэром, плагинами для анализа трафика и многим другим (чем и подкупает). Шикарное решение если ваша подсеть чуть более чем пара-тройка ПК или уж тем более, если вы размещаете в своей посети сервера с публичным доступом (бизнес, хостинг, базы дынных, 1С и т.д.).
Настройка NAT
Задача — Пробросить порт 80 из сети WAN с IP 10.0.0.100 (для примера) на сервер в подсети LAN с IP 192.168.0.200.
На этом этапе вроде бы нет ни чего, неочевидного, идем в админпанель OPNsense -> Firewall -> NAT -> Port Forward, далее жмем Add (плюс), и добавляем новое правило со следующими параметрами:
Interface: WAN
TCP/IP Version: IPv4
Protocol: TCP
Destination: WAN address
Destination port range (from / to): HTTP
Redirect target IP: Single host or Network, IP: 192.168.0.200
Redirect target port: HTTP
Description: WAN HTTP to LAN:80
Filter rule association: Add associated filter rule
NAT Outbound
Настройка NAT Outbound необходима для так называемого маскардинга (Masquerading), подмены IP адреса клиента на IP адреса маршридизатора, от имени которого далее пойдут пакеты в сеть LAN. Это касается и обратного направления, когда пакеты движутся из LAN в сеть WAN, также необходимо настроить правило для маскардинга. Для этого идем в раздел OPNsense -> Firewall -> NAT -> Outbound и также жмем Add (плюс), затем добавляем новое правило, маскарадинг для пакетов из WAN в LAN, со следующими параметрами:
Interface: WAN
TCP/IP Version: IPv4
Protocol: TCP
Source address: LAN net
Source port: any
Destination address: WAN net
Destination port: any
Translation / target: Interface address
Description: NAT for LAN to WAN
Маскарадинг для пакетов из LAN в WAN:
Interface: LAN
TCP/IP Version: IPv4
Protocol: TCP
Source address: WAN net
Source port: any
Destination address: any
Destination port: any
Translation / target: Interface address
Description: NAT for WAN to LAN
Кто-то скажет: — «Ну это же элементарно», увы порой, чтобы решить казалось бы достаточно простую задачу, приходиться перепробовать гигантское количество конфигураций, прочитать десятки разделов документации, и в результате прейти к решению.
Полезные утилиты
В ходе настройки OPNSense, мне были полезны следующие утилиты:
Просмотр списка правил файрвола pfctl:
pfctl -s rules |
Просмотр списка правил NAT файрвола pfctl:
pfctl -s nat |
Просмотр состояние TCP-соединений:
netstat -rn |
Информация по IP и MAC интерфейса:
arp -a | grep 10.0.0.100 |
Запрос с использованием CURL, для проверки доступности сервера за NAT по протоколу HTTPS:
curl -v -H "Host: example.ru" https://192.168.0.200 --insecure |
Шикарная утилита, просмотр приходящих пакетов на интерфейс и определенный порт
tcpdump -i igb1 host 192.168.0.200 and port 80 |

Автор:






