Пятница, 12.01.2024 14:17

Проброс портов (port forwarding) в pfSense

Проброс портов (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.

Категория Сеть
Теги pfSense

Добавить комментарий

Простой текст

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Строки и абзацы переносятся автоматически.
  • Адреса веб-страниц и email-адреса преобразовываются в ссылки автоматически.
Просмотров: 272