Настройка NAT на OPNsense

Author Автор: Роман Чернышов    Опубликовано: 30 апреля 2025

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

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

Автор блога
Роман Чернышов
Веб-разработчик,
Full Stack
Senior, Architect
PHP, JavaScript, Node.JS, Python, HTML 5, CSS 3, MySQL, Bash, Linux Admin
Заказать работу
предложить оффер

Моя книга
Книга. Веб-разработчик. Легкий вход в профессию
Печатная книга
Веб-разработчик.
Легкий вход в профессию
Купить за 359₽
Популярные записи
Последние вопросы
Список вопросов
Последние комментарии
Меню

Archive

Мои проекты
Insurance CMS Love Crm CMS Совместные покупки Мой PHP Framework Хостинг для моих клиентов Лицензии на мой софт и поддержка