
Проброс портов (port forwarding) в pfSense
В предыдущих частях мы настроили домен Active Directory для виртуальной организации soft.altuninvv.ru. Создали частную сеть в которой у нас расположен Windows Server и ПК с Windows 10 и РЕДОС Linux. Для удобства администрирования, нам, конечно, хотелось бы получить прямой доступ к устройствам по протоколам RDP И SSH.
Все эти устройства находятся за межсетевым экраном, в отдельной подсети и обычная маршрутизация нам тут не поможет. Поэтому единственный способ это использовать проброс портов (port forwarding).
Сегодня мы рассмотрим проброс портов в pfSense с помощью правки файла конфигурации.
Схема проброса портов
Давайте посмотрим что мы хотим получить:

У нас есть три устройства в частной сети Hyper-V - ПК с РЕДОС Linux, Windows Server и Windows 10.
Нам нужно получить доступ к ПК с РЕДОС Linux по протоколу SSH, а на машины с Windows по RDP.
Настройка NAT в pfSense через правку файла конфигурации /conf/config.xml
Подключимся к серверу pfSense через SSH
putty 192.160.1.20
здесь 192.160.1.20 – ip-адрес интерфейса WAN pfSense, смотрящий в локальную сеть.
Если у вас нет доступа к устройству вы можете временно отключить межсетевой экран. Как это сделать мы рассмотрели в статье – Установка маршрутизатора pfSense в Hyper-V.
Также не забудьте включить SSHD, как это сделать так же описано в вышеуказанной статье!
Имя пользователя: admin
Пароль: pfSense
После входа откроется меню:
Hyper-V Virtual Machine - Netgate Device ID: 74dcf6f54e64bfd22510
*** Welcome to pfSense 2.7.2-RELEASE (amd64) on pfSense ***
WAN (wan) -> hn0 -> v4: 192.168.1.20/24
LAN (lan) -> hn1 -> v4: 172.16.0.254/24
0) Logout (SSH only) 9) pfTop
1) Assign Interfaces 10) Filter Logs
2) Set interface(s) IP address 11) Restart webConfigurator
3) Reset webConfigurator password 12) PHP shell + pfSense tools
4) Reset to factory defaults 13) Update from console
5) Reboot system 14) Disable Secure Shell (sshd)
6) Halt system 15) Restore recent configuration
7) Ping host 16) Restart PHP-FPM
8) Shell
Enter an option:
Нажмем 8 и Enter, чтобы перейти в консоль.
Чтобы добавить правило для проброса портов, достаточно внести изменения в файл конфигурации, для этого введем:
vi /conf/config.xml
Теперь просто нажимаем стрелку низ, пока не дойдем до строки:
</nat>
Чтобы начать редактирование нажмём Ins
Enter для добавления пустой строки:
Если вы ошиблись или у вас неправильно вставились строки, просто введите:
:q!
И нажмите Enter – таким образом вы выйдите из редактора без сохранения!
Скопируем этот текст и с помощью putty вставим в пустую строку:
<rule>
<source>
<any></any>
</source>
<destination>
<network>wanip</network>
<port>9999</port>
</destination>
<ipprotocol>inet</ipprotocol>
<protocol>tcp</protocol>
<target>172.16.0.17</target>
<local-port>22</local-port>
<interface>wan</interface>
<descr></descr>
<associated-rule-id>pass</associated-rule-id>
<created>
<time> 1705017600</time>
<username><![CDATA[admin (Local Database)]]></username>
</created>
<updated>
<time> 1705017600</time>
<username><![CDATA[admin (Local Database)]]></username>
</updated>
</rule>
У вас должно получиться:
<nat>
<outbound>
<mode>automatic</mode>
</outbound>
<separator></separator>
<rule>
<source>
<any></any>
</source>
<destination>
<network>wanip</network>
<port>9999</port>
</destination>
<ipprotocol>inet</ipprotocol>
<protocol>tcp</protocol>
<target>172.16.0.17</target>
<local-port>22</local-port>
<interface>wan</interface>
<descr></descr>
<associated-rule-id>pass</associated-rule-id>
<created>
<time> 1705017600</time>
<username><![CDATA[admin (Local Database)]]></username>
</created>
<updated>
<time> 1705017600</time>
<username><![CDATA[admin (Local Database)]]></username>
</updated>
</rule>
</nat>
Для сохранения нажмем Esc и введем:
:wq!
И нажмем Enter
Обратите внимание – если временно отключая межсетевой экран командной:
pfctl -d
Мы так же отключаем NAT, в том числе проброс портов, поэтому не забывайте его включать обратно командой:
pfctl -e
После внесения правок напрямую в файл конфигурации обязательно перезапускаем устройство:
reboot
После загрузки pfSense попробуем подключиться к нашему ПК с РЕДОС Linux:
putty 192.168.1.20 9999
login as: user
user@192.168.1.25's password:
Last login: Fri Jan 12 00:00:00 2024 from 192.168.1.25
[user@RedPC ~]$
Мы успешно вошли на ПК, находящийся за межсетевым экраном pfSense!
Таким же образом мы можем пробросить порты для доступа к серверу и Windows 10 по RDP:
<rule>
<source>
<any></any>
</source>
<destination>
<network>wanip</network>
<port>9998</port>
</destination>
<ipprotocol>inet</ipprotocol>
<protocol>tcp</protocol>
<target>172.16.0.1</target>
<local-port>3389</local-port>
<interface>wan</interface>
<descr></descr>
<associated-rule-id>pass</associated-rule-id>
<created>
<time> 1705017600</time>
<username><![CDATA[admin (Local Database)]]></username>
</created>
<updated>
<time> 1705017600</time>
<username><![CDATA[admin (Local Database)]]></username>
</updated>
</rule>
<rule>
<source>
<any></any>
</source>
<destination>
<network>wanip</network>
<port>9997</port>
</destination>
<ipprotocol>inet</ipprotocol>
<protocol>tcp</protocol>
<target>172.16.0.16</target>
<local-port>3389</local-port>
<interface>wan</interface>
<descr></descr>
<associated-rule-id>pass</associated-rule-id>
<created>
<time> 1705017600</time>
<username><![CDATA[admin (Local Database)]]></username>
</created>
<updated>
<time> 1705017600</time>
<username><![CDATA[admin (Local Database)]]></username>
</updated>
</rule>
Правила добавляем после первого правила.
После внесения правок напрямую в файл конфигурации обязательно перезапускаем устройство:
reboot
После перезагрузки правила появятся и в веб-интерфейсе:

После перезагрузки вы сможете подключиться к Windows Server и Windows 10 используя адреса:
192.160.1.20:9998
192.160.1.20:9997
Заключение
Сегодня мы рассмотрели настройку проброса портов (port forwarding) в pfSense на примере РЕДОС Linux находящегося за LAN интерфейсом:
Зашли в консоль pfSense с помощью putty;
Внесли изменения в файл конфигурации pfSense с помощью vi;
Перезагрузили устройство;
Проверили работу проброса портов подключившись к РЕДОС Linux указав ip-адрес pfSense и порт 9999;
Рассмотрели дополнительно конфигурацию для проброса портов до Windows Server и Windows 10.
Добавить комментарий