Проброс портов rdp windows server 2008

03.06.2015 | Автор: rinat
  • 1C
    • Установка и администрирование
      • 1С 8.3 тонкости настройки
  • Linux
  • SQL
    • MS SQL
    • MySQL
    • PostgreSQL
  • Windows
  • Windows Server
  • Мобильная торговля
  • Продукты РБ-Софт
    • Сервер ККМ
      • FAQ
  • Сетевое оборудование
    • Роутер Mikrotik
  • Торговое оборудование
    • Дисплей покупателя
    • ККМ
      • Атол
      • Меркурий
      • Штрих
    • Принтер чеков
    • Сканеры и ридеры
    • Терминалы сбора данных
    • Электронные весы

03.06.2015 |
Автор: rinat

Примечание: Кому интересно про редирект портов в Windows 2012 — сюда…


Здесь же про редирект в Windows 2008…

Для проброса портов требуется в оснастке mstsc (удаленный рабочий стол), открыть вкладку параметры

Далее перейти на вкладку локальные ресурсы:

Далее нажать подробнее:

Поставить галку «Порты».

На самом сервере нужно разрешить перенаправление портов в 2003/2008

Проверить разрешение на подключение COM портов удалённого клиента(tsconfig.msc): Администрирование-Службы терминалов-Конфигурация служб терминалов, RDP-tcp, закладка Параметры клиента:

На сервере 2012 данный параметр регулируется политикой авторизации подключений, находится в оснастке диспетчер шлюза удаленных рабочих столов. Необходимо создать политику с помощью мастера, выбрать пользователя/группу и разрешить перенаправление устройств:

Проверить проброс портов можно в реестре:

HKEY_LOCAL_MACHINEHARDWAREDEVICEMAPSERIALCOMM

Рекомендуется поменять номер com-порта на клиентской машине во избежание конфликтов(пробрасывается как есть вместе с номером, на сервере обычно уже есть com1, com2, com3-13 могут использоваться системой, назначать лучше с большим номером)

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


Комментарии (0)

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

  • Remove From My Forums
  • Вопрос

  • Добрый  день!

    Имеется терминальный сервер на Windows Server 2008 R2. Имеется терминал сбора данных (ТСД) CipherLab 8400/8470 с подставкой Cradle, который подключается к локальному компьютеру на Windows 7 посредством com-порта
    (VirtualCOM). Имеется 1С8, в которой этот ТСД работает. С локального компьютера всё работает прекрасно, ТСД по com-порту подключается и видится в 1С8. Задача прокинуть этот ТСД в терминал.

    На клиенте в свойствах RDP включил перенаправление всех портов и устройств. На сервере в свойствах RDP разрешён проброс com-портов. Но при попытке увидеть устройство в 1С выдаётся ошибка, что не удалось открыть com-порт.

    На локальной машине устройство в оборудовании отображается как Silicon Labs CP210x USB to UART Bridge (COM 4), но при подключении к терминальному серверу редирект не проходит. На сервере COM1, COM2.

    Вот что выдаёт change port /query на терминальном сервере :

    AUX = DosDevicesCOM1
    COM1 = DeviceRdpDrPort;COM1:38tsclientCOM1
    COM2 = DeviceRdpDrPort;COM2:38tsclientCOM2

Ответы

  • Здравствуйте Сергей,

    Посмотрите обсуждение:

    Server 2008 Terminal Services Client Port Redirection

    I got it all figured out,

    using windows 2008 server R2 SP1

    you can not delete the ports prior to redirecting them

    These are the steps I took to make this work

    1) ALL SERIAL PORTS MUST BE DISABLED IN THE BIOS OF THE SERVER

    2) Click Start

    3) Click Run

    4) Type cmd.exe in the textbox and click OK

    5) Type set devmgr_show_nonpresent_devices=1 and hit ENTER

    6) Type cdwindowssystem32 and hit ENTER

    7) Type start devmgmt.msc and hit ENTER

    8) When the device manager opens, click the View menu

    9) Click Show Hidden Devices

    10) Click on the + sign next to the Ports to see the full list of Com ports being used.

    11) Highlight the port you wish to delete and then press delete/uninstall. Accept when asked to

    do so and continue with any more that you wish to delete.

    12) Edit startup.cmd to match the current system configuration

    a. Example Startup.CMD

    Echo off

    Cls

    Echo Establishing new serial mappings…

    net use com1 \tsclientcom1

    net use com2 \tsclientcom2

    net use com3 \tsclientcom3

    net use com4 \tsclientcom4

    net use

    Echo New serial mappings established…

    PAUSE


    Мнения, высказанные здесь, являются отражением моих личных взглядов, а не позиции корпорации Microsoft. Вся информация предоставляется «как есть» без каких-либо гарантий. Не забывайте помечать сообщения как ответы и полезные,
    если они Вам помогли.

    • Предложено в качестве ответа

      27 января 2014 г. 9:26

    • Помечено в качестве ответа
      Petko KrushevMicrosoft contingent staff
      27 января 2014 г. 9:26

Есть ситуации, когда необходимо изменить порт для подключения к серверу терминалов в Windows Server 2008 R2. Здесь я расскажу как это сделать.

1. Изменение порта в реестре

Заходим на сервер с правами администратора и запускаем редактор реестра (Для этого нажимаем «Пуск» , в строке поиска пишем «regedit» и запускаем regedit.exe из появившегося списка)

Делаем, на всякий случай, экспорт реееста. А затем, в редакторе реестра, в дереве слева, идем по пути:

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp

выделяем папку «RDR-Tcp» и справа находим параметр «PortNumber» . Кликаем по нему 2 раза и в открывшемся окне выбираем десятеричную систему счисления. Теперь текущее значение порта 3389 меняем на то, которое вам надо (В моем примере это 3394). Нажимаем «ОК» и закрываем редактор.

2. Добавление правила в Бредмауэр.

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

Запустится «Мастер создания правила для нового входящего подключения», выбираем правило «Для порта», нажимаем «Далее» .

Указываем номер нашего нового порта (у меня 3394), жмем 3 раза «Далее», вводим название правила, и нажимаем «Готово» .

Чтобы все изменения вступили в силу, необходимо перезагрузить сервер.

Все, на этом настройка закончена. Теперь можно заходить на сервер через новый порт. Для этого при подключении к удаленному рабочему столу в поле «Компьютер» надо написать IP-адрес сервера, двоеточие и номер порта.

Запись опубликована в рубрике Windows Server 2008 R2 с метками RDP, Windows Server 2008. Добавьте в закладки постоянную ссылку.

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

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

Содержание:

  • Включить перенаправления порта в Windows с помощью netsh portproxy
  • Настройка правил файервола для режима перенаправления портов Windows
  • Управление правилами проброса портов netsh в Windows
  • Настройка перенаправления портов с помощью NAT на Hyper-V Server

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

Вы можете включить и настроить перенаправление портов в Windows из командой строки через режим Portproxy команды Netsh.

Синтаксис команды следующий:

netsh interface portproxy add v4tov4 listenaddress=localaddress listenport=localport connectaddress=destaddress connectport=destport

где,

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

С помощью опций
netsh interface portproxy add
v4tov6
/
v6tov4
/
v6tov6
можно создавать правила порт форвардинга между для IPv4 и IPv6 адресов илимежду ними.

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

Примечание. Обратите внимание, что номер локального порта, который вы указали в listenport не должен быть занят (слушаться) другой службой. Проверьте, что номер порта свободен командой:

netstat -na|find "3340"

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

Test-NetConnection -ComputerName localhost -Port 3340

проверка доступности локального порта в windows

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

netsh interface portproxy - правило перенаправления портов Windows

Где 10.10.1.110 – IP адрес вашего компьютера, на котором настраивается порт-форвардинг.

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

netstat ano findstr

Примечание. Если эта команда ничего не возвращает и перенаправление портов через netsh interface portproxy не работает, проверьте, что у вас в Windows включена служба iphlpsvc (IP Helper / Вспомогательная служба IP).

Проверьте состояние службу в консоли services.msc или с помощью команды PowerShell:

Get-Service iphlpsvc

служба iphlpsvc (IP Helper / Вспомогательная служба IP)

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

IPv6 включен на сетевом интерфейсе

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

В Windows Server 2003 / XP для работы перенаправления дополнительно нужно включить параметр реестра IPEnableRouter = 1 в ветке HKEY_LOCAL_MACHINE SystemCurrentControlSetservicesTcpipParameter. Можно включить этот параметр реестра с помощью PowerShell:

Set-ItemProperty -Path HKLM:systemCurrentControlSetservicesTcpipParameters -Name IpEnableRouter -Value 1

Этот параметр также позволяет включить маршрутизацию между разными подсетями в Hyper-V.

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

tasklist findstr pid

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

В этом примере порт 3340 нужно предварительно открыть в Windows Defender Firewall (см. следующий раздел статьи).

RDP подключение на другой порт

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

Правила проброса портов portproxy являются постоянными и не удаляются при перезагрузке Windows. Эти правила хранятся в реестре. Можно вывести список правил перенаправления netsh в реестре с помощью PowerShell:

Get-ItemProperty -Path HKLM:SYSTEMCurrentControlSetServicesPortProxyv4tov4tcp

правила portproxy в реестра windows

Если нужно перенаправить входящее 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.

Нужно отметить, что режим portproxy в Windows не поддерживает сохранения IP источника в перенаправленном сетевом пакете. Т.е. если вы пробросите 443 порт Windows компьютера на внутренний веб-сервер, то на целевом сервере все входящие соединения будут идти с одного и того же IP адреса (Windows компьютер с активным режимом netsh portproxy). Если вам нужно использовать переадресацию с сохранением IP источника, нужно использовать NAT на внешнем фаейволе или на Hyper-V (описано ниже).

Так же для проброса локального порта на удаленный сервер в Windows можно использовать технику SSH туннелей.

Настройка правил файервола для режима перенаправления портов Windows

Проверьте, что в настройках вашего файервола (брандмауэра Windows или стороннего межсетевого экрана, такие часто включаются в состав антивирусного ПО) разрешены входящие подключения на новый порт. Вы можете добавить новое разрешающее правило в Windows Defender Firewall командой:

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  -Enabled True

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

Если вы отключаете правило portproxy, не забудьте удалить оставшиеся правила файервола так:

netsh advfirewall firewall del rule name="RDP_3340"

или с помощью PowerShell:

Remove-NetFirewallRule -Name RDP_3340

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

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

Несколько раз сталкивался со случаями, когда в Windows Server 2012 R2 правила перенаправления портов сбрасывались после перезагрузки сервера. В этом случае рекомендуется проверить нет ли периодических отключений на сетевом интерфейсе, и не меняется ли IP адрес при загрузке ОС (лучше использоваться статический IP, вместо динамического DHCP). В качестве обходного решения пришлось добавить в планировщик Windows скрипт с правилами
netsh interface portproxy
, который создает правило перенаправления порта при загрузке операционной системы.

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

netsh interface portproxy show all

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

Listen on ipv4:             Connect to ipv4:
Address         Port        Address         Port
--------------- ----------  --------------- ----------
10.10.1.110     3340        10.10.1.110     3389

Совет. Также вы можете вывести вес правила перенаправления портов в режиме portproxy так:
netsh interface portproxy dump

#========================
# Port Proxy configuration
#========================
pushd interface portproxy
reset
add v4tov4 listenport=3340 connectaddress=10.10.1.110 connectport=3389
popd
# End of Port Proxy configuration

Конфигурация перенаправления портов Windows

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

netsh interface portproxy set v4tov4 listenport=3340 listenaddress=10.10.1.110  connectport=3300 connectaddress=10.10.1.110

В этом примере мы изменили адрес целевого порта portproxy на 3300.

netsh portproxy: вывести все правила перенаправления портов

Чтобы удалить определенное правило перенаправления порта, выполните:
netsh interface portproxy delete v4tov4 listenport=3340 listenaddress=10.10.1.110

Дамп всех правил portproxy

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

Удалить правило перенаправления портов

Важно. Такая схема перенаправления работает только для TCP портов. Трафик по UDP портам нельзя перенаправить с помощью режима portproxy. Также нельзя использовать в качестве connectaddress адрес localhost 127.0.0.1.

Если вы хотите включить перенаправление 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

Список NAT правил перенаправления портов в Windows Server можно вывести так:

netsh routing ip nat show interface

Если у вас на компьютере развернут WSL (Windows Subsystem for Linux), вы можете создать простой PowerShell скрипт создания правила перенаправления порта внутрь виртуальной машины WSL 2 (у ВМ на WSL 2 есть собственный виртуальный адаптер ethernet с уникальным IP адресом):

wsl --shutdown;
netsh interface portproxy reset;
$wsl_ipaddr = wsl -d Ubuntu-20.04 hostname -I;
netsh interface portproxy add v4tov4 listenport=443 listenaddress=0.0.0.0 connectport=443 connectaddress=$wsl_ipaddr ;
netsh interface portproxy show all;
exit;

Еще одной неявной возможностью portproxy является возможность создать видимость локальной работы любого удаленного сетевого сервиса. Например, вы хотите перенаправить весь трафик с локального порта 9090 на
google.com:443

netsh interface portproxy add v4tov4 listenport=9090 listenaddress=127.0.0.1     connectaddress=142.250.74.46 connectport=443 protocol=tcp

Теперь, если в браузере перейди по адресу https://localhost:9090 (нужно игнорировать ошибки SSL_ERROR_BAD_CERT_DOMAIN), откроется поисковая страница Google. Т.е. несмотря на то, что браузер обращается к локальному компьютеру, в нем открывается страница с внешнего веб-сервера.

пример локального перенаправления портов в windows

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

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

Настройка перенаправления портов с помощью NAT на Hyper-V Server

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

Создайте виртуальный коммутатор Hyper-V:

New-VMSwitch -SwitchName «NAT_Switch» -SwitchType Internal

hyper-v: команда new-vmswitch создать коммутатор

Задайте IP адрес для нового виртуального коммутатора:

New-NetIPAddress  -IPAddress 192.168.10.1  -PrefixLength 24  -InterfaceAlias "vEthernet (NAT_Switch)"

Включите NAT для данной сети:

New-NetNat -Name NATNetwork -InternalIPInterfaceAddressPrefix 192.168.10.0/24

Подключите ВМ в ваш коммутатор NAT_Switch и задайте для нее статический IP адрес (например, 192.168.10.80). В качестве шлюза-по умолчанию нужно указать IP адрес виртуального коммутатора Hyper-V (192.168.10.1).

Теперь можно настроить перенаправление порта с хоста Hyper-V в виртуальную машину:

Add-NetNatStaticMapping -NatName NATNetwork443  -Protocol TCP  -ExternalIPAddress 0.0.0.0/24  -ExternalPort 443  -InternalIPAddress 192.168.10.80  -InternalPort 443

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

Если вы хотите перенаправить нестандартный порт, не забудьте открыть его в Windows Firewall:

New-NetFirewallRule -DisplayName "HyperV_Nat_443" -Direction Inbound -LocalPort 443 -Protocol TCP -Action Allow -Enabled True

Полный список правил NAT на хосте Hyper-V можно вывести так:

Get-NetNat

forwarding-rras.png

Не так давно мы рассказали как настроить форвардинг портов на платформе Ubuntu. Сегодня мы рассмотрим реализацию форвардинга на платформе Windows Server. Для этого не понадобится никаких сторонних компонентов, все необходимое входит в штатные возможности службы RRAS.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

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

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

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

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

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

forwarding-rras-04.png

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

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

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

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

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

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

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Обновлено 23.01.2020

RDP logo

Добрый день! Уважаемые читатели и гости одного из крупнейших IT блогов в России. В прошлый раз мы с вами разобрали замечательную утилиту Remote Desktop Connection Manager для удобного администрирования и подключения к серверам по RDP. В сегодняшней публикации я хочу вас научить более рационально использовать ваш терминальный сервер и покажу, как в рамках одного сервера иметь несколько независимых RDP портов подключения и применяя разные настройки на них.

Принцип изолированного терминального сервера

Удаленный рабочий стол отлично подходит для подключения к компьютеру или серверу Windows по локальной или удаленной сети. Вы можете получить доступ к локальным дискам, принтерам, файлам и т.д., так если бы вы сидели перед ним. Я хочу вам предложить два примера использования подхода с разными портами RDP в рамках одного сервера или компьютера, с которыми вы можете столкнуться в своей практике.

Первый сценарий. Уникальное пространство для подрядчиков

Предположим, что у вас есть RDS ферма или отдельный терминальный стол. У вас есть две группы пользователей, первая это ваши сотрудники, а вторая, это подрядчики. У вас появилась задача для подрядчиков запретить пробрасывание локальных дисков, съемных носителей, буфера обмена и подключение к интернету. Логично, что вы скажете Иван, но ведь это можно сделать с помощью групповых политик и будите правы, но есть БОЛЬШОЕ НО. Буфер обмена вы можете запретить на уровне пользователя, а вот запретить подключение локальных дисков или съемных устройств для отдельной группы людей вы не можете, только на уровне компьютера, но слава Богу, что это можно обойти. Создав две или более независимые службы удаленного рабочего стола вы их используете на одном сервере.

Второй сценарий для проброса портов

Предположим, что у вас есть стационарный компьютер с Windows 10 или Windows Server. Есть роутер Mikrotik с внешним IP-адресов и на нем настроен проброс портов RDP. Когда у вас несколько серверов, то проблем с пробросом на разные порты нет, так как я вам рассказывал «Как поменять порт RDP», а что делать в рамках одного сервера. Это я вам и покажу в данной статье.

Как добавить новый порт прослушивания RDP на сервере терминалов

И так в моем тестовом окружении есть виртуальная машина на которой установлена Windows Server 2019, имеющая установленную роль RDS. На ней я хочу для подрядчиков поднять дополнительную службу RDP работающую по порту 3390. Доступ к стандартному порту 3389 для подрядчиков запрещу, а так же сделаю для них политику запрещающую:

  • Перенаправление локальных дисков
  • Перенаправление USB-дисков и устройств
  • Запрет буфера обмена
  • Запрет изменения прокси-сервера в Internet Explorer или Google Chrome

Чтобы все это провернуть, нам потребуется произвести манипуляцию с реестром Windows, путем копирования ветки и изменения ее настроек. Запустите окно выполнить и введите regedit.

Запуск реестра Windows

Далее вам необходимо перейти в раздел реестра:

HKEY_LOCAL_MACHINESYSTEMCurrentControlSet ControlTerminal ServerWinStationsRDP-Tcp

Перед вами будет ветка реестра. которая отвечает за подключение к удаленному рабочему столу по стандартному порту 3389. Тут вы увидите большое количество ключей, которые нам помогут ограничить нужную группу людей, но об этом чуть ниже.

Открываем ветку реестра отвечающую за RDP подключение

Чтобы добавить новый порт прослушивания RDP на сервере терминалов, вам необходимо скопировать текущую ветку реестра и затем ее видоизменить. Для этого мы произведем ее экспорт, через контекстное меню, выбрав соответствующий пункт меню.

Экспорт ветки реестра отвечающей за RDP подключение

Далее вам необходимо указать место сохранения вашей экспортируемой ветки реестра. В моем примере это будет рабочий стол и я задам имя 3390, по номеру будущего порта.

Сохранение reg файла для создания второго RDP порта

В результате у вас будет файл в формате .reg, который вы можете легко отредактировать любым текстовым редактором, мне будет достаточно встроенного блокнота в Windows Server 2019. Щелкаем по нему правым кликом и выбираем пункт изменить.

Как добавить новый порт прослушивания RDP на сервере терминалов

Находим третью строку с адресом ветки и меняем у нее на конце имя, в моем примере это будет RDP-Tcp-3390.

HKEY_LOCAL_MACHINESYSTEMCurrentControlSet ControlTerminal ServerWinStationsRDP-Tcp-3390

Редактирование reg файла для создания нового порта для удаленного подключения по RDP

Обязательно сохраните настройки. Далее вам необходимо импортировать это reg файл на нужном терминальном сервере. Обратите внимание, что будет предупреждение, что вы должны понимать, что делаете. Если не хотите его видеть в своем сценарии, то можете сконвертировать reg файл в exe.

Импорт новой ветки реестра для настройки второго RDP порта в рамках одного терминального сервера

В результате будет создана новая ветка реестр.

Успешное импортирование ветки реестра Windows

Переходим в вашу новую ветку в редакторе. Пока она так же работает по порту 3389 и нам нужно его поменять, за это отвечает ключ PortNumber. Открываем его, переключаем в десятичное отображение и меняем номер порта на 3390

Multiple RDP Ports на RDS сервере

Если хотите использовать шеснадцатиричное представление ,то вам может помочь встроенный калькулятор в Windows, в режиме программиста. Тут число 3390 будет представлено в виде «D3E«.

Перевод десятеричного числа в шестнадцатиричное через калькулятор Windows

Несколько независимых RDP портов на одном терминальном сервере

Далее я хочу запретить для данного подключения по RDP буфер обмена, для этого есть ключ реестра fDisableClip. Если вы установите в fDisableClip значение «0», то буфер обмена между хостовой системой и удаленной будет работать, если вы выставите «1», то вы запретите использование общего буфера обмена.

Запрет буфера обмена через реестр Windows

Далее я хочу запретить перенаправление USB-устройств, локальных дисков на терминальный стол. Для этого есть ключ реестра fDisableCdm. По умолчанию у ключа fDisableCdm выставлено значение «0», что подразумевает возможность сопоставления клиентских дисков и их подключение в автоматическом режиме. Если вы выставите у fDisableCdm значение «1». то вы запретите перенаправление (проброс) USB и локальных дисков на терминальный стол.

Запрет перенаправления USB и дисков по RDP

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

Как ограничить порты подключения на терминальном сервере

По умолчанию, на оба RDP порта 3389 и 3390 (Созданный ранее) пользователи группы администраторы и пользователи удаленного рабочего стола имею права для подключения, это не совсем правильно. Что я хочу сделать:

  1. Члены группы администраторы должны иметь возможность подключаться к любому порту RDP
  2. Члены группы удаленного рабочего стола должны иметь возможность подключаться только к стандартному порту 3389
  3. А вот группа изолированные пользователи должны иметь возможность подключаться исключительно ко второму RDP порту 3390 (Изолированное окружение в рамках общего терминального сервера)

Вы открываете оснастку «Active Directory Пользователи и компьютеры» и создаете отдельные группы, я создам группу term-svt2019s01-rdp-3390 для изолированного подключения.

Создание группы в Active Directory для изолированного терминала

В группу term-svt2019s01-rdp-3390 я добавлю пользователя Барбоскина Генная Викторовича.

Добавление пользователя в группу для изолированного терминального сервера

Далее вам нужно нужного пользователя. в моем случае Барбоскина Генная Викторовича исключить из группы администраторы или группы удаленного рабочего стола, если он в них состоял и назначить права доступа на порт 3390 для группы term-svt2019s01-rdp-3390. Сделать штатными средствами в операционных системах Windows Server 2012 R2 и выше вы не сможете, так как в оснастке по управлению RDS фермой нет такой функции, но не все потеряно.

В операционных системах Windows Server 2008 R2 и ниже, при установке терминального сервера были замечательные оснастки TSADMIN.msc (Remote Desktop Services Manager) и TSCONFIG.msc (Remote Desctop Session Host Configuration). Это были великолепные инструменты помогающие в удобном интерфейсе взаимодействовать с терминальными подключениями и настройками. Именно благодаря TSCONFIG.msc у вас была возможность настроить разрешения на подключение к конкретному RDP порту. У меня для таких целей всегда есть виртуальная машина с установленными на нее оснастками, которые добавляются при установке роли терминального сервера.

Запускаем оснастку «Конфигурация узла сеансов удаленных рабочих столов (Remote Desctop Session Host Configuration)». Щелкаем по корню и из контекстного меню выбираем пункт «Подключиться к серверу узла сеансов удаленных рабочих столов«

Запуск TSADMIN.msc

Выбираем сервер на котором вы настроили два разных RDP порта.

Запуск Remote Desctop Session Host Configuration для настройки прав подключения

Щелкаем по изолированному подключению правым кликом и открываем его свойства.

Настройка прав доступа на изолированном терминальном сервере

Перейдите на вкладку «Безопасность«. Обратите внимание, что тут по умолчанию у группы «Пользователи удаленного рабочего стола» выставлены права на:

  • Доступ пользователя
  • Доступ гостя

Обращу ваше внимание, что данная вкладка почему-то доступна исключительно из операционной системы Windows Server 2008R2, с установленными компонентами, в Windows Server 2012 R2 и выше после регистрации оснасток, эта вкладка почему-то отсутствовала. Если кто-то знает причину, то напишите в комментариях

Назначение прав на втором RDP подключении на изолированном терминальном сервере

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

детальные права на RDP подключение

Удаляем из списка доступа (DACL) группу «Пользователи удаленного рабочего стола» и нажимаем кнопку «Добавить«. В открывшемся окне найдите вашу группу доступа

Добавление группы доступа на изолированный терминальный стол

Можем более тонко выставить разрешения. Сохраняем все.

Настройка прав доступа по RDP

Открытие порта для второго RDP подключения

Наш изолированный терминальный стол почти готов, вам нужно не забыть открыть порты на брандмауэре Windows или другом фаэрволе, который вы используете. Я это буду делать через утилиту netsh. Я вам уже приводил пример такого правила в статье, где я удаленно включал RDP подключение. Откройте командную строку от имени администратора и запустите вот такую команду:

netsh advfirewall firewall add rule name=»allow RemoteDesktop 3390″ dir=in protocol=TCP localport=3390 action=allow

открываем порт в брандмауэре

Создание RDP файла подключения

Запустите клиента «Подключения к удаленному рабочему столу». Укажите адрес подключения, порт подключения, имя пользователя и нажмите кнопку «Сохранить как«

Создание RDP файла подключения

Выбираем место сохранения RDP файла с подключением к изолированному терминальному серверу.

Сохранение RDP файла подключения

Чем хорошо файлы формата rdp можно легко редактировать и открывать с помощью любого текстового редактора.

Редактирование RDP файла

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

Несколько независимых RDP портов на одном терминальном сервере

На этом у меня все. Мы с вами разобрали как создать несколько независимых RDP портов на одном терминальном сервере. С вами был Иван Семин, автор и создатель IT портала Pyatilistnik.org,

   plnz

09.10.17 — 08:35

Есть клиент на Win 7. К нему подключена ККМ Штрих М лайт 01 ф по USB. Стоят драйвера, все отлично. При подключении к терминальному серверу (Win 2008 R2) порт не пробрасывается (смотрю через chenage port /query). Но если зайти в тест драйвера, и жмакунуть «проверка связи», то порт этот сразу отваливается. Куда копать? При подключении к другому терминальному серверу с этого компа касса работает. А также, с другой клиентской машины такая же касса к серверу подключается и работает.

   plnz

1 — 09.10.17 — 08:36

Ошибся. При первом подключении порт виден. После ПРоверки связи порт отваливается. И драйвер отвечает «Нет связи».

   yzimin

2 — 09.10.17 — 08:43

Ты зашёл с неправильной стороны. Не пробрасывай ком-порт, он в RPD всё время будет отваливаться.

   plnz

3 — 09.10.17 — 08:47

С 2 других клиентских машин ничего не отваливается. Вот уже лет 5…. Проблемы начались только на одной машине.

   plnz

4 — 09.10.17 — 08:48

В целом — есть 3 рабочих кассы. Все 3 работали до вчерашнего дня. И вот с одной начались такие проблемы…

   SeriyP

5 — 09.10.17 — 09:21

(4) Локально нормально работает? Если через тестдрайвера запустить тест проверки связи ошибки дает?

Может там тупо проводу хана, ну или кассе…

   ColonelAp4u

6 — 09.10.17 — 09:35

Не делай отдельный проброс кома на терминал, достаточно в подключении подключения указать локальные ресурсы порты, тестом в терминале порт определить не удастся, но при этом в 1С настраивать ТО и ставишь порт такой как идет на самом компе локальном и все должно работать.

   ColonelAp4u

7 — 09.10.17 — 09:35

(6) достаточно в параметрах подключения*

   plnz

8 — 09.10.17 — 10:06

(5) Локально работает

(6) Отдельно ничего не делаю. Просто стоит галка в локальных ресурсах у портов

   Exec

9 — 09.10.17 — 10:18

(0) попробуй пользователя сделай администратором на rdp-сервере для теста, и проверь.

   plnz

10 — 09.10.17 — 10:31

(9) под Администратором тоже самое

   SeriyP

11 — 09.10.17 — 10:45

(8) здесь HKEY_LOCAL_MACHINEHARDWAREDEVICEMAPSERIALCOMM проброшенные порты показывает?

   plnz

12 — 09.10.17 — 11:26

(11) да

так же команда change port /query этот порт ввидит

   Сияющий в темноте

13 — 09.10.17 — 12:06

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

   plnz

14 — 10.10.17 — 00:01

(13) Тоже пробовал. Не получилось.

В итоге ради эксперимента поставил кассу из другого магазина (такую же) — и она заработала. На тех же проводах…. То есть, все таки проблема в кассе.

   Mikhail Volkov

15 — 12.10.17 — 09:16

(14) Хорошо когда кассу можно заменить. У нас с июля «Ввод в эксплуатацию…». Вроде как-то подключили АТОЛ 11Ф, но 2-3 раза на дню отваливается. При новом подключении «Порт недоступен», сервер перезагружаем…

   Mikhail Volkov

16 — 14.10.17 — 05:01

(2) > Ты зашёл с неправильной стороны. Не пробрасывай ком-порт, он в RPD всё время будет отваливаться.

А как тогда надо? У нас работают по RDP, онлайн-касса по 2-3 раза на дню отваливается. При этом неудачная попытка отбить чек делает «Порт недоступен» для нового пере подключения кассы. Перезагрузка служб Windows не спасает. Только перезагрузка сервера целиком!?

После перезагрузки сервера 1-й в терминал должен войти кассир (у кого на компе ФР), после остальные. С утра это трудно выполнимо, но ставится запрет работы с торг.оборудованием пока не включится кассир. Убедиться, что комп кассира на месте, его можно пропинговать. А как проверить что порт не отвалился на сервере, какой командой?

   Farpost

17 — 14.10.17 — 05:06

Кури в сторону локальной машины, если отваливается порт, то это на стороне клиента, РДП маппит то, что есть на локальной машине, а если порт там отвалился, то и РДП маппить нечего

  

Mikhail Volkov

18 — 14.10.17 — 05:22

(17) А какой командой «маппить»?

То, что кассиру надо перезайти/перезагрузиться — понятно, главное порт не испортить!? Чтобы сервер не перезагружать!

Понравилась статья? Поделить с друзьями:
  • Проверить драйвер звука на компьютере windows 10
  • Проброс порта для удаленного рабочего стола windows
  • Проброс пакетов между сетевыми картами windows 10
  • Проброс микрофона в rdp windows server 2012
  • Проверить доступность udp порта windows powershell