Windows server 2012 перенаправление портов

Открытие портов на Windows Server 2012 R2

При работе с серверными операционными системами часто возникает необходимость предоставить программе или модулю доступ к сети, чтобы ПО могло получать необходимые данные извне. Для этого требуется открыть порт. Задача непростая, особенно для новичка, поскольку существует множество подводных камней (но если вы решили купить Windows Server, то вам придется в них разобраться). Сделать это можно несколькими способами. Рассмотрим один из них, чтобы более подробно осветить вопрос того, что такое открытие портов на Windows Server 2012 R2.

Открытие порта через брандмауэр

Открыть порт в серверной Windows можно через встроенную систему безопасности брандмауэр. Для этого вам необходимо зайти в Панель управления, выбрать пункт «Системы и безопасность» и открыть соответствующее меню. Затем переходите в дополнительные настройки и выполните следующие шаги:

  • выберите пункт «Правила для входящих подключений»;
  • нажмите на кнопку «Создать правило»;
  • укажите тип правила и перейдите в следующее меню;
  • укажите требуемый для открытия тип порта (например, тут можно как открыть порт TCP, так и после изменить его);
  • перейдите в «Локальные порты» и введите его значение (цифры);
  • на следующей странице «Действие» подтвердите соединение соответствующей кнопкой;
  • на следующей вкладке «Профиль» укажите параметры рабочей среды;
  • затем введите «Имя» и нажимаем «Готово»;
  • перезагрузите ПК.

Все готово, вы открыли порт через брандмауэр.

Как изменить порт по умолчанию?

В ряде случаев у пользователей возникает необходимость не открыть, а поменять порт по умолчанию для протокола RDP (используется для удаленного соединения с сервером). Стандартный порт 3389 решает большинство задач, но все же иногда необходимо его поменять. Например, чтобы отвечать требованиям политики безопасности. Как это сделать в Windows Server 2012? Это осуществляется через редактирование реестра в ОС. Для этого выполните такие шаги:

  • запустите командную строку (введите в поиске cmd и выберите соответствующий пункт);
  • в новом окне введите команду regedit;
  • в новом меню отыщите раздел RDP-Tcp;
  • отыщите пункт PortNumber в правом окне и откройте его;
  • введите в строку «Значение» новый порт для подключения по RDP (в правой части меню выберите десятичную систему);
  • сохраните изменения.

При выборе номера порта учтите, что есть специальные категории занятых или служебных. Например, порты от 0 по 10213 заняты системными приложениями системы. А вот порты от 1024 по 49151 предназначены для частных задач пользователя. Также для приватных решений и работы с любыми приложениями на машине есть номера от 49162 по 65535. Если вы введете неправильный номер, то столкнетесь с проблемой, что в Windows Server не открывается порт.

Затем вам нужно создать правила для измененного порта. Это можно сделать через специальное меню брандмауэра в режиме повышенной безопасности. Для этого откройте Диспетчер Серверов и перейдите в меню «Средства». Затем перейдите в раздел «Правила для входящих подключений» и нажмите кнопку для создания правила (для порта). После укажите тип протокола (UDP или TCP), номер порта, указанный в реестре, и тип действия (в нашем случае нужно разрешить подключение). Затем укажите область действия. На финальном шаге введите название для правила и завершите процесс создания.

Читайте также:  Fs1020mpf сканер windows 10

Записки IT специалиста

Технический блог специалистов ООО»Интерфейс»

  • Главная
  • Windows Server. Настравиваем форвардинг портов через RRAS.

Windows Server. Настравиваем форвардинг портов через RRAS.

Будем считать, что роутер настроен и функционирует. Подробнее о его настройке вы можете прочитать здесь. В нашей тестовой лаборатории мы собрали следующую схему:

В тестовой сети имеется роутер с внутренним адресом 10.0.0.2 и терминальный сервер с адресом 10.0.0.5, к которому мы будем организовывать доступ. Внешний адрес условно принят нами как 192.168.64.203. Оба сервера работают под управлением Windows Server 2008 R2.

Настроить форвардинг портов в Windows Server не просто, а очень просто. Откроем Пуск — Администрирование — Маршрутизация и удаленный доступ.

Последовательно разворачивая пункты, находим Преобразование сетевых адресов (NAT), в окне справа выбираем внешний интерфейс и, щелкнув на него правой кнопкой мыши, заходим в его Свойства.

За форвардинг портов отвечает отдельная закладка Службы и порты, на которой уже созданы шаблоны для наиболее часто встречающихся задач.

Достаточно выбрать нужную службу и указать ее адрес во внутренней сети, все остальные параметры имеют стандартные значения и изменению не подлежат.

Подтверждаем изменения и пробуем подключиться с удаленного ПК. Все должно работать без перезапуска сервера и службы RRAS.

Поставим более сложную задачу. Нам необходимо подключаться из внешней сети к удаленному рабочему столу роутера для административных целей и в тоже время обеспечить удаленным клиентам доступ к терминальному серверу. Оба сервера используют для удаленных подключений порт 3389 и пробросив его для сервера 10.0.0.5 как указано выше, мы лишимся возможности удаленно подключаться к серверу 10.0.0.2. Как быть? Ответ прост: использовать другой порт. Для сервера 10.0.0.5 мы будем использовать порт 3390, в то время как подключение на 3389 даст нам возможность управлять роутером.

На закладке Службы и порты нажимаем Добавить и в открывшемся окне указываем имя службы, входящий порт (порт на который будут подключаться из внешней сети), адрес службы во внутренней сети и исходящий порт (на котором служба работает во внутренней сети). В нашем примере исходящим портом будет 3389, а входящим 3390. Данное правило перенаправит все запросы на порт 3390 внешнего интерфейса роутера на порт 3389 терминального сервера во внутренней сети.

Для подключения в строке адреса необходимо указать также порт подключения через двоеточие:

Как видим служба RRAS предоставляет в руки администратора мощный и в то же время простой инструментарий для управления перенаправлением портов, позволяя легко публиковать внутренние службы во внешней сети.

Настройка проброса сетевых портов (порт форвардинга) в Windows

Во всех версиях Windows вы можете настроить перенаправление/проброс сетевых портов (порт форвардинг) без использования сторонних инструментов. С помощью правила форвардинга вы можете перенаправить входящее TCP соединение (IPv4 или IPv6) с локального TCP порта на любой другой номер порта или даже на порт удаленного компьютера. Причем не обязательно, чтобы в Windows был сервис, слушающий данный TCP порт. Перенаправление портов в Windows чаще всего используется для обхода файерволов или чтобы спрятать внутренний сервер или службу от внешней сети (NAT/PAT).

Читайте также:  Metasploit exploit smb windows

В Linux перенаправление портов настраивается довольно просто с помощью iptables. На серверных системах Windows Server для настройки перенаправления портов, как правило используется служба маршрутизации и удаленного доступа (RRAS). Однако есть более простой способ настройки проброса портов, который одинаково хорошо работает в любой версии Windows.

Как включить перенаправления портов в Windows 10 с помощью netsh portproxy?

Настройка перенаправления портов в Windows выполняется из командой строки через режим Portproxy команды Netsh. Синтаксис команды следующий:
netsh interface portproxy add v4tov4 listenaddress=localaddress listenport=localport connectaddress=destaddress connectport=destport
где,

  • listenaddress – локальный IP адрес, на котором ожидается соединение (полезно, если у вас несколько сетевых карт или несколько IP адресов на одном интерфейсе);
  • listenport – номер локального TCP порта, подключение к которому будет перенаправляться (на этом порту ожидается входящее соединение);
  • connectaddress – локальный или удаленный IP-адрес или DNS-имя, на который нужно перенаправить сетевое подключение;
  • connectport – номер TCP порта, на который нужно перенаправить трафик с порта listenport.

Допустим наша задача, заставить службу RDP отвечать на нестандартном порту, например 3340 (этот порт, конечно, можно изменить в настройках самой службы, но мы используем именно RDP для упрощения демонстрации техники перенаправления и проброса портов). Для этого нам нужно перенаправить входящий трафик на TCP порт 3340 на другой локальный порт – 3389 (это номер стандартного порта RDP).

netstat -na|find «3340»

Либо вы можете проверить что порт не слушается локально с помощью PowerShell командлета Test-NetConnection:

Test-NetConnection -ComputerName localhost -Port 3340

Чтобы создать правило перенаправления порта, запустите командную строку с правами администратора и выполните команду:
netsh interface portproxy add v4tov4 listenport=3340 listenaddress=10.10.1.110 connectport=3389 connectaddress=10.10.1.110

Где 10.10.1.110 – текущий IP адрес данного компьютера

Теперь с помощью утилиты netstat проверьте, что в Windows теперь слушается локальный порт 3340:
netstat -ano | findstr :3340

А на сетевом интерфейсе, для которого создается правило перенаправления портов должна быть включена поддержка IPv6.

Это обязательные условия для корректной работы порт-форвардинга. Без службы IP Helper и без включенной поддержки IPv6 механизм перенаправления не работает.

В Windows Server 2003 / XP для работы перенаправления дополнительно нужно включить параметр реестра IPEnableRouter = 1 в ветке HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Tcpip\Parameters.

Вы можете определить процесс, который слушает указанный локальный порт с помощью его PID (в нашем примере PID – 636):
tasklist | findstr 636

Теперь попробуем подключиться на данный порт с удаленного компьютера при помощи любого RDP клиента. В качестве rdp-порта нужно указать 3340 (номер порта указывается после двоеточия после адреса rdp-сервера), например, 10.10.1.110:3340

RDP подключение должно успешно установиться.

Если нужно перенаправить входящее TCP соединение на удаленный компьютер, используете такую команду:

netsh interface portproxy add v4tov4 listenport=3389 listenaddress=0.0.0.0 connectport=3389 connectaddress=192.168.1.100

Это правило перенаправит весь входящий RDP трафик (с локального порта TCP 3389) с этого компьютера на удаленный компьютер с IP-адресом 192.168.1.100.

Читайте также:  Linux mint или ubuntu или manjaro

Управление правилами проброса портов в Windows

netsh advfirewall firewall add rule name=”RDP_3340” protocol=TCP dir=in localip=10.10.1.110 localport=3340 action=allow
Или с помощью командлета PowerShell New-NetFirewallRule:
New-NetFirewallRule -DisplayName «RDP_3340» -Direction Inbound -Protocol TCP –LocalPort 3340 -Action Allow

При создании входящего правила файервола через графический интерфейс для порта 3340 не нужно ассоциировать никакую программу, т.к. данный порт слушается исключительно сетевым драйвером.

Можно создать любое количество правил перенаправления локальных портов Windows. Все правила netsh interface portproxy являются постоянными и сохраняются в системе после перезагрузки Windows.

Чтобы вывести на экран список всех активных правил перенаправления TCP портов в Windows, выполните команду:

netsh interface portproxy show all
В нашем случае присутствует только одно правило форвардинга с локального порта 3340 на 3389:

Чтобы удалить все имеющиеся правила перенаправления и полностью очистить таблицу с правилами порт-форвардинга:
netsh interface portproxy reset

Для настройки перенаправления UDP трафика можно использовать Windows Server с ролью RRAS и NAT. Вы можете настроить перенаправление портов между интерфейсами компьютера с помощью графической оснастки (rrasmgmt.msc) или командой:

netsh routing ip nat add portmapping Ethernet udp 0.0.0.0 53 192.168.1.54 53

Еще одной неявной возможностью portproxy является возможность создать видимость локальной работы любого удаленного сетевого сервиса.

Например, создадим такое перенаправление с локального порта 8888 на удаленный адрес 213.180.204.3:

netsh interface portproxy add v4tov4 listenport=8888 connectport=80 connectaddress= 213.180.204.3 protocol=tcp
Теперь, если в браузере перейди по адресу http://localhost:8888/ , откроется стартовая страница Yandex. Т.е. несмотря на то, что браузер обращается к локальному компьютеру, в нем открывается страница с внешнего веб-сервера.

Перенаправление портов также можно использовать, чтобы пробросить порт с внешнего IP адреса сетевой карты на порт виртуальной машины, запущенной на этом же компьютере. В Hyper-V такой проброс порта можно настроить на виртуальном коммутатор (см. ниже).

Windows не умеет пробрасывать диапазон TCP портов. Если вам нужно пробросить несколько портов, придется вручную создавать несколько правил перенаправления. Проще всего сформировать список команд netsh interface portproxy add с разными портами в блокноте и затем вставить в командную строку для выполнения.

Настройка перенаправления портов в Hyper-V Server

При использовании на вашем компьютере роли Hyper-V (может быть установлена как на Windows 10, так и на Windows Server или в виде бесплатного Windows Hyper-V Server), вы можете настроит проброс портов DNAT с помощью PowerShell. Допустим, вы хотите перенаправить все https запросы, которые получает ваш хост Hyper-V на IP адрес запущенной на хосте виртуальной машины. Для этого используется команды Hyper-V StaticMapping.

Сначала нужно создать виртуальный коммутатор с NAT:

New-VMSwitch -Name «NAT» -SwitchType NAT -NATSubnetAddress 192.168.0.0/24

Затем нужно подключить нужную ВМ в указанный коммутатор и включить правило трансляции адресов для всех виртуальных машин, подключенных через данный виртуальный коммутатор Hyper-V:

New-NetNat -Name Web_NAT -InternalIPInterfaceAddressPrefix 192.168.0.0/24
Add-NetNatStaticMapping -ExternalIPAddress «0.0.0.0/24» -ExternalPort 443 -Protocol TCP -InternalIPAddress «192.168.0.2» -InternalPort 443 -NatName Web_NAT

После выполнения этих команд весь HTTPS трафик, который приходит на 443 порт гипервизора будет переправлен на серый IP адрес виртуальной машины.

Оцените статью