Xfreerdp astra linux команды

Обновлено: 08.07.2024

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

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

Существует множество различных инструментов, которые можно использовать для доступа к удаленному компьютеру с Windows из Linux и выполнения на нем команд. Вот список существующих инструментов, описанных в этой статье, которые можно использовать для этой задачи.

Инструменты для удаленной команды или удаленного доступа к оболочке:

Инструменты для удаленного графического отображения:

Все эти инструменты имеют открытый исходный код и свободно доступны в любом дистрибутиве Linux (Kali, Ubuntu, Debian, Arch, CentOS, RedHat, Parrot ..), включая платформы на основе UNIX, такие как BSD, Mac OS X и многие другие.

Большинство этих инструментов работают путем подключения к порту SMB (tcp / 445) на удаленном компьютере с Windows, но некоторые из них также используют другие интерфейсы, такие как WMI, MMC, DCOM, NetBIOS и, конечно, RDP или VNC в случае подключение к удаленному (графическому) рабочему столу.

Более подробная информация об этом включена в обзорную таблицу ниже.

Обзорная таблица

В следующей таблице приводится сводка всех методов удаленного доступа, описанных в этой статье.

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

Удаленный доступ к системам Windows из Linux

Удаленный доступ к системам Windows из Linux

Удаленный доступ к системам Windows из Linux


Методы удаленного доступа из командной строки

Этот раздел содержит все методы удаленного доступа к командной строке, которые можно использовать для удаленного выполнения команд на машине Windows из Linux, включая создание интерактивной оболочки (cmd.exe или powershell.exe). ВАЖНО : Для использования этих методов необходимо предоставить учетные данные администратора. Это относится ко всем описанным ниже методам. Теперь перейдем к реальным методам и приемам.

Impacket

Impacket — это библиотека Python для работы с различными сетевыми протоколами Windows. Он используется многими различными инструментами тестирования на проникновение и содержит ряд методов для выполнения команд на удаленных компьютерах с Windows.

Impacket dcomexec.py RCE example

Вот как мы можем использовать Impacket для выполнения команд в удаленной системе Windows:

1. Impacket psexec.py

Это создаст интерактивную удаленную оболочку с помощью метода Psexec:

psexec.py "./Administrator:pass123"@192.168.0.1

2. Impacket dcomexec.py

Это создаст полуинтерактивную удаленную оболочку с использованием DCOM:

dcomexec.py "./Administrator:pass123"@192.168.0.1

3. Impacket smbexec.py

Это создаст полуинтерактивную удаленную оболочку через встроенные функции Windows SMB:

smbexec.py "./Administrator:pass123"@192.168.0.1

4. Impacket wmiexec.py

Это создаст полуинтерактивную удаленную оболочку с использованием WMI:

wmiexec.py "./Administrator:pass123"@192.168.0.1

5. Impacket atexec.py

Это выполнит команду удаленно через Atsvc:

atexec.py "./Administrator:pass123"@192.168.0.1 "whoami"

Примечание: Impacket также поддерживает метод аутентификации с использованием хеш-кода, что позволяет использовать NTLM-хэш вместо пароля. Вот пример с psexec.py:

psexec.py -hashes aad3b435b51404eeaad3b435b51404ee:5fbc3d5fec8206a30f4b6c473d68ae76 "./Administrator"@192.168.0.1

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

CrackMapExec

CrackMapExec — это швейцарский армейский нож пентеста. Он имеет множество полезных функций и интегрируется с рядом других проектов по обеспечению безопасности, таких как Mimikatz, Empire, PowerSploit или Metasploit.

Он также содержит ряд методов для выполнения команд на удаленных машинах Windows.

CrackMapExec winrm RCE method utilizing PSRemoting

Вот как использовать CrackMapExec для выполнения команд в удаленных системах:

6. CrackMapExec wmiexec

Это выполнит команду (CMD / PowerShell) удаленно с помощью WMI:

crackmapexec smb -d <DOMAIN> -u <USER> -p <PASSWORD> -x <COMMAND> <TARGET> crackmapexec smb -d . -u Administrator -p 'pass123' -x "whoami" 192.168.0.1

7. CrackMapExec atexec

Это выполнит команду (CMD / PowerShell) удаленно через Atsvc:

crackmapexec smb --exec-method atexec -d <DOMAIN> -u <USER> -p <PASSWORD> -x <COMMAND> <TARGET>

crackmapexec smb --exec-method atexec -d . -u Administrator -p 'pass123' -x "whoami" 192.168.0.1

8. CrackMapExec smbexec

Это выполнит команду (CMD / PowerShell) удаленно с использованием собственного SMB:

crackmapexec smb --exec-method smbexec -d <DOMAIN> -u <USER> -p <PASSWORD> -x <COMMAND> <TARGET>

crackmapexec smb --exec-method smbexec -d . -u Administrator -p 'pass123' -x "whoami" 192.168.0.1

9. CrackMapExec mmcexec

Это выполнит команду (CMD / PowerShell) удаленно через MMC:

crackmapexec smb --exec-method mmcexec -d <DOMAIN> -u <USER> -p <PASSWORD> -x <COMMAND> <TARGET>

crackmapexec smb --exec-method mmcexec -d . -u Administrator -p 'pass123' -x "whoami" 192.168.0.1

10. CrackMapExec winrm

Это выполнит команду (CMD / PowerShell) удаленно с помощью PSRemoting:

crackmapexec winrm -d <DOMAIN> -u <USER> -p <PASSWORD> -x <COMMAND> <TARGET>

crackmapexec winrm -d . -u Administrator -p 'pass123' -x "whoami" 192.168.0.1

Примечание: Хотя CrackMapExec позволяет запускать команду только в удаленной системе, мы все равно можем использовать ее для создания интерактивной оболочки с помощью командлета обратной оболочки PowerShell (например, некоторых из них ).

CrackMapExec также поддерживает передачу хэша NTLM вместо пароля (pass-the-hash). Вот пример с wmiexec:

crackmapexec smb -d <DOMAIN> -u <USER> -H <LM:NTLM> -x <COMMAND> <TARGET>

crackmapexec smb -d . -u Administrator -H aad3b435b51404eeaad3b435b51404ee:5fbc3d5fec8206a30f4b6c473d68ae76 -x "cmd /c whoami" 192.168.0.1

Более подробную информацию о CrackMapExec с примерами и скриншотами можно найти здесь.

Набор инструментов PTH

PTH Toolkit — это набор утилит, созданный пионерами техники передачи хеширования. Он содержит ряд полезных инструментов для подключения к удаленным машинам Windows, некоторые из которых также предназначены для выполнения команд в удаленных системах Windows.

pth-winexe RCE command example

Вот как использовать все функции удаленного доступа PTH Toolkit:

11. PTH Toolkit: pth-winexe

Это создаст интерактивную удаленную оболочку с использованием метода, подобного Psexec:

pth-winexe -U <DOMAIN>\\<USER>%<PASSWORD> --uninstall //<TARGET> <COMMAND>

pth-winexe -U ".\Administrator%pass123" --uninstall //192.168.0.1 cmd

Обратите внимание, что с помощью параметра «–system» pth-winexe также может автоматически расширяться до учетной записи «nt Authority \ system».

12. PTH Toolkit: pth-wmis

Это выполнит команду удаленно с помощью WMI:

pth-wmis -U ".\Administrator%pass123" //192.168.0.1 'cmd.exe /c whoami'

Обратите внимание, что этот конкретный метод не возвращает выходные данные команды. Если нам нужен результат, мы должны получить его с помощью дополнительной утилиты pth-smbget.

Примечание: PTH Toolkit, конечно, также поддерживает предоставление хеш-кода NTLM вместо пароля (pass-the-hash). Вот пример с pth-winexe:

pth-winexe -U <DOMAIN>\\<USER>%<LM|NTLM> --uninstall //<TARGET> <COMMAND>

pth-winexe -U ".\Administrator%aad3b435b51404eeaad3b435b51404ee:5fbc3d5fec8206a30f4b6c473d68ae76" --uninstall //192.168.0.1 cmd

Более подробную информацию о PTH Toolkit с примерами и скриншотами можно найти здесь:

Keimpx

Keimpx — это инструмент лаборатории NCC Group, разработанный для пентестинга сред Windows. Он имеет много интересных функций, таких как работа с общими сетевыми ресурсами или кустами реестра, сброс хэшей и удаленное извлечение файлов NTDS, и, конечно же, ряд методов для удаленного выполнения команд в системах Windows.

Keimpx svcshell remote semi-interactive shell

Вот как использовать Keimpx для удаленного выполнения команд.

Сначала нам нужно запустить Keimpx с целевым списком, к которому нужно подключиться. Здесь мы подключаемся к одной машине:

keimpx.py -D <DOMAIN> -U <USER> -P <PASSWORD> -t <TARGET>

keimpx.py -D . -U Administrator -P pass123 -t 192.168.0.1

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

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

13. Keimpx: svcexec

Это выполняет команду в удаленной системе с помощью службы Windows. Введите в меню:

s vcexec <COMMAND>

svcexec "dir c:\users"

14. Keimpx: svcexec SERVER

Метод svcexec SERVER также выполняет команду, но он разработан для более ограниченных систем, в которых нет доступных для записи сетевых ресурсов:

svcexec <COMMAND> SERVER

svcexec "dir c:\users" SERVER

15. Keimpx: svcshell

Это создаст полуинтерактивную оболочку в удаленной системе с помощью службы Windows:

svcshell

16. Keimpx: svcshell SERVER

Svcshell также поддерживает режим СЕРВЕРА, который может порождать удаленную оболочку в более ограниченных системах без какого-либо доступного для записи сетевого ресурса:

Служба Удаленных Рабочих Столов (Remote Desktop Service, RDS). Ранее называлась Terminal Services (Terminal Services RemoteAPP). Компонент Microsoft Windows Server, позволяющий пользователю управлять удаленным компьютером или виртуальной машиной по сетевому соединению.

Remote Desktop

Удаленный рабочий стол (Remote Desktop) — режим управления, когда один компьютер получает права администратора по отношению к другому, удаленному. Связь между компьютерами происходит в реальном времени посредством Интернет или локальной сети. Уровень доступа в режиме удаленного администрирования определяется конкретными задачами и может быть изменен по необходимости. Например:

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

RDP (Remote Desktop Protocol) — протокол, позволяющий удаленно работать с сервером.

  • Клиентская часть:
    • Astra Linux Common Edition 2.12 с установленным ПО xFreeRDP;
    • Сервер MS Windows 2016. Предполагается, что:
      • Сервер настроен как контроллер домена;
      • На сервере включена и настроена служба RDS.

      Для использования служб MS Windows Remote Desktop и RDS следует установить программу-клиента RDP. В составе Astra Linux представлены клиенты RDP:

      • пакет freerdp2-x11 (клиентская программа xfreerdp).
        • В Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7) доступен в базовом репозитории;
        • В Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6) отсутствует и может быть установлен из репозитория Astra Linux Common Edition (см. Подключение репозиториев с пакетами в ОС Astra Linux и установка пакетов);
        • В Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7) доступен в расширенном репозитории.

        Эти пакеты могут быть установлены совместно.

        Клиент xfreerdp

        Установить пакет freerdp2-x11, предоставляющий программу-клиента xfreerdp можно командой:

        После установки клиент доступен для запуска из командной строки, команда xfreerdp.

        Клиент remmina

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

        После установки клиент доступен для запуска из командной строки, команда remmina или из графического меню ("Пуск" - "Сеть" - "Remmina") . Описание параметров запуска из командной строки доступно в справочной системе man:

        Включение удаленного подключения Remote Desktop на Windows

        Через Свойства системы –> вкладка Удаленный доступ разрешить удаленные подключения к компьютеру и выбрать параметры подключения (разрешить подключения с любых компьютеров):


        Разрешение удаленного запуска приложений без использования доменной службы RDS

        По умолчанию удаленный запуск приложений в MS Windows запрещен. Разрешить его можно несколькими способами:

        Чтобы разрешить удаленный запуск любых приложений не устанавливая службу RDS (соответственно, не вводя компьютер в домен) следует в ветку реестра MS Windows

        добавить параметр fAllowUnlistedRemotePrograms с форматом REG_DWORD и присвоить ему значение 1.

        Клиент xfreerdp

        Для запуска клиента xfreerdp:

          Открыть терминал командной строки с помощью горячей клавиши Alt+T;

        Запустить клиента из командной строки, указав параметры подключения к серверу:

        xfreerdp /u:<имя_пользователя_Windows> /p:<пароль_пользователя_Windows> /v:<IP-адрес_сервера_Windows>

        Клиент remmina

        Клиент remmina предоставляет графическую оболочку для ввода параметров подключения, в том числе - графический редактор параметров подключения (в стартовом окне remmina - желтая кнопка с символом "+"):


        Обязательным параметром подключения является параметр "Сервер" (IP-адрес или имя сервера, к которому должно выполняться подключение), остальные параметры могут быть запрошены при подключении. По умолчанию подключение выполняется к удаленному рабочему столу (Remote Desktop).

        Запуск удаленного приложения осуществляется с помощью той же программы xfreerdp, что и подключение к Remote Desktop. Команда отличается указанием запускаемого приложения (опция /app):

        xfreerdp /u:<имя_пользователя_Windows> /p:<пароль_пользователя_Windows> /v:<IP-адрес_сервера_Windows> /app:"||<псевдоним_приложения)>" /cert-ignore

        В качестве значения параметр /app сожет указываться псевдоним приложения, предваренный двумя символами "прямая черта", (например, /app:"||calculator") как указано в примере выше, или имя исполняемого файла (/app:"win32calc"). Первый вариант применим при работе со службой RDS, второй вариант - при работе без службы RDS.

        Дополнительная необязательная опция /cert-ignore позволяет избежать запроса подтверждения при запуске удаленного приложения с недоменной машины (когда отсутствует возможность автоматической проверки сертификата сервера приложений).

        Создание ярлыка на рабочем столе для запуска удаленного приложения

        Для создания ярлыка на рабочем столе Astra Linux, следует щелкнуть правой кнопкой мыши → Создать → Ярлык.

        Ввести имя ярлыка, выбрать иконку ярлыка и запускаемую команду. Например:

        Клиент remmina предоставляет возможность осуществить ограниченное подключение к удаленной машине с запуском единственного приложения.

        В отличие от xfreerdp этот вариант запуска работает только с настроенной службой RDS.

        Для настройки запуска отдельного приложения

        1. Запустить remmina;
        2. Перейти в графический редактор подключений remmina;
        3. Перейти во вкладку "Дополнительные";

        В пункте "Запуск программы" указать псевдоним приложения или имя файла запускаемой программы. Так же, как для xfreerdp, имя псевдонима должно предваряться двумя символами "прямая черта": "||calculator".
        Дополнительно может потребоваться указать путь к исполняемому файлу (пункт "Путь запуска").

        Этичный хакинг и тестирование на проникновение, информационная безопасность

        Оглавление: Всё о RDP: от настройки до взлома

        Теперь рассмотрим, как из Linux подключиться к удалённому столу Windows.

        Как подключиться к удалённому столу по RDP в Linux

        Клиенты RDP существуют для многих платформ, даже для мобильных телефонов, конечно, имеются клиенты RDP и для Linux

        Мы рассмотрим 2 клиента RDP под Linux

        • freerdp — бесплатная реализация протокола удалённого рабочего стола (Remote Desktop Protocol (RDP))
        • rdesktop — клиент с открытым исходным кодом для служб Windows удалённого рабочего стола

        Также имеется клиент VNC и RDP с графическим пользовательским интерфейсом — Remmina. У программы много настроек, в целом она дружественная пользователю за исключением одного недостатка — она не заработала. Тем не менее она присутствует в стандартных репозиториях большинства дистрибутивов, поэтому при желании вы без труда сможете установить и попробовать её.

        Как пользоваться freerdp

        Для установки freerdp в Debian, Kali Linux, Linux Mint, Ubuntu и производные выполните команду:

        Если пакеты freerdp2-x11 и freerdp2-shadow-x11 не найдены, то поищите пакет с именем freerdp.

        Для установки freerdp в Arch Linux и производные выполните команду:

        Как подключиться командой freerdp

        Для подключения к удалённому рабочему столу с помощью xfreerdp, запустите команду вида:

        • /f — опция означает открыть удалённый стол в полноэкранном режиме
        • /u:ИМЯ-ПОЛЬЗОВАТЕЛЯ — имя учётной записи на компьютере, к которому подключаемся
        • /p:ПАРОЛЬ — пароль указанной учётной записи
        • /v:ХОСТ[:ПОРТ] — IP адрес или имя компьютера, к удалённому столу которого выполняется подключение. ПОРТ указывать необязательно

        Например, я хочу открыть удалённый стол компьютера с IP адресом 192.168.0.101, на котором имеется пользователь Tester с паролем 1234, причём я хочу открыть удалённый рабочий стол в полноэкранном режиме, тогда команда следующая:

        Для переключения между полноэкранным режимом и оконным, используется сочетание клавиш Ctrl+Alt+Enter.


        Поскольку используются самоподписанные сертификаты без добавленного в хранилище приватного CA (центра аутентификации, удостоверяющего центра), то единственный выбор, это согласиться доверять указанному сертификату, для этого введите Y.

        В полноэкранном режиме вы можете отключиться от удалённого рабочего стола двумя способами:

        • нажать крестик на верхней панели
        • меню «Пуск» → Выключение → Отключиться


        Для запуска в оконном режиме не используйте опцию /f:


        Опции xfreerdp

        У программы xfreerdp множество опций, далее выбраны самые интересные из них:

        Как в freerdp создать общие папки

        С удалённым рабочим столом, подключённым по RDP, можно иметь совместные папки. Рассмотрим несколько примеров.

        Чтобы подключить все точки монтирования в текущей системе как совместные папки на удалённом рабочем столе используйте опцию +drives, например:

        На скриншоте показан удалённый стол Windows, в котором доступны папки Linux системы, из которой сделано подключение по RDP:


        Чтобы подключить только домашнюю папку текущего пользователя Linux в качестве сетевой папки к компьютеру по RDP укажите опцию +home-drive:

        В этом случае домашняя папка смонтирована в систему, подключённую по протоколу удалённый рабочий стол:


        С опцией /drive:ИМЯ,/ПУТЬ/В/LINUX можно подключить любую папку с любым именем. В качестве /ПУТЬ/В/LINUX должен быть указан путь в текущей системе, а ИМЯ это то имя, которое будет иметь шара в удалённой системе. Например, чтобы подключить корневую папку текущей системы (/) к удалённой с именем root:

        Как вывести удалённый рабочий стол на другой монитор

        Если у вас несколько мониторов, то вы можете выбрать, какой из них использовать для удалённой системы. Чтобы вывести список мониторов запустите команду:

        Как установить размер окна удалённого рабочего стола

        Если вместо высоты (h) установлена ширина (w), примерно как /size:50%w, то будет использоваться 50 процентов ширины.

        Как пользоваться rdesktop

        Для установки rdesktop в Debian, Kali Linux, Linux Mint, Ubuntu и производные выполните команду:

        Для установки rdesktop в Arch Linux и производные выполните команду:

        Как подключиться к удалённому рабочему столу с rdesktop

        Для подключения к RDP с rdesktop используйте команду вида:

        Как обычно, в самом начале возникнет проблема с сертификатом:


        Набираем yes.

        Затем возникнет ошибка:

        Другой вариант, который позволяет подключиться к Windows по RDP с помощью rdesktop без настройки Network Level Authentication (NLA) — это отключить аутентификацию на уровне сети в Windows. Понятно, что это ослабит безопасность RDP, поэтому не рекомендуется. Но как «быстрый грязный фикс» это можно сделать следующим образом: Меню «Пуск» → Параметры → Система → Удалённый рабочий стол → Дополнительные параметры → Снять галочку с «Требовать использование компьютерами аутентификации на уровне сети для подключения (рекомендуется)»:


        Всё равно продолжить:


        После этого подключение rdesktop проходит без ошибок:


        В настройках Windows вы могли увидеть ссылку «Почему следует разрешать подключения только с проверкой подлинности на уровне сети?», там написано следующее:

        Если вы хотите ограничить доступ к компьютеру, разрешите доступ только с проверкой подлинности на уровне сети (NLA). При включении этого параметра пользователи должны пройти аутентификацию в сети, чтобы подключиться к компьютеру. Разрешение подключений только с компьютеров с удаленным рабочим столом с NLA является более безопасным методом проверки подлинности, который поможет защитить компьютер от злоумышленников и вредоносных программ. Чтобы узнать больше о NLA и удаленном рабочем столе, ознакомьтесь с разделом Configure Network Level Authentication for Remote Desktop Services Connections (Настройка NLA для подключения к удаленному рабочему столу).

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

        Как установить сервер RDP в Linux

        Сервер удалённого рабочего стола RDP может работать не только на Windows, но и на Linux. В результате к Linux можно подключиться по протоколу RDP.

        В Linux протокол RDP не встроен по умолчанию как в Windows. Также в Linux отсутствуют некоторые другие протоколы, которые используются прозрачно (незаметно) для пользователей Windows, например, для сетевой аутентификации.

        Тем не менее существуют сервера RDP которые успешно работают на Linux.

        Как использовать freerdp-shadow для запуска RDP сервера

        Для установки freerdp в Debian, Kali Linux, Linux Mint, Ubuntu и производные выполните команду:

        Для установки freerdp в Arch Linux и производные выполните команду:

        Исполнимые файлы в разных дистрибутивах называются чуть по-разному. В Debian, Kali Linux, Linux Mint, Ubuntu файл для запуска RDP сервера называется: freerdp-shadow-x11

        А в Arch Linux файл для запуска RDP сервера называется: freerdp-shadow-cli

        Но по сути это одна программа и опции у них одинаковые.

        Чуть выше, говоря о rdesktop, мы уже столкнулись с Network Level Authentication (NLA), то есть проверкой подлинности на уровне сети. Для запуска RDP сервера на Linux вы должны выбрать один из двух вариантов:

        • запустить сервер вовсе без аутентификации
        • включить NLA и сделать необходимые для неё настройки

        Чтобы запустить RDP сервер вовсе без аутентификации используйте опцию -auth:

        Если аутентификация включена, PAM используется с подсистемой X11. Запуск от имени пользователя root не обязателен, однако, если запускать от имени пользователя, только тот же пользователь, который запустил freerdp-shadow, может аутентифицироваться. Предупреждение: если аутентификация отключена, каждый может подключиться.

        Любая сетевая служба без аутентификации это беда для безопасности системы. Поэтому рассмотрим, как запустить freerdp-shadow с поддержкой NLA.

        Прежде всего для NLA необходимо создать файл, в котором будет строка вида:

        Имя пользователя Linux нам известно, для вычисления хеша нужно выполнить команду вида:

        К примеру, имя пользователя mial, а пароль цифра 2 тогда команда следующая:

        Создаём текстовый файл SAM и в него записываем строку

        Теперь запускаем freerdp-shadow-x11 с двумя опциями:

        • /sam-file:ФАЙЛ — указывает на расположение NTLM SAM файла для NLA аутентификации
        • /sec:nla — принудительное включение аутентификации по протоколу NLA

        Итак, моя команда следующая:

        Для проверки подключаюсь из Windows:


        У нас запрашивают пароль — это означает, что на сервере RDP включена аутентификация NLA.

        Для того, чтобы делиться не всем экраном, а только его частью, используйте опцию /rect:x,y,w,h. Где:

        • x,y — координаты верхнего левого угла прямоугольника
        • w — ширина прямоугольника
        • h — высота прямоугольника

        Если при запуске RDP сервера freerdp-shadow вы получили ошибку:

        То необходимо создать файл SAM и запустить freerdp-shadow с опциями /sam-file:SAM /sec:nla как это показано выше.

        Как запустить RDP сервер с xrdp

        Для установки xrdp в Debian, Kali Linux, Linux Mint, Ubuntu и производные выполните команду:

        Для установки xrdp в Arch Linux и производные выполните команды:

        Для запуска служб xrdp-sesman и xrdp в любом дистрибутиве выполните команду:

        Важные файлы xrdp:

        • /etc/xrdp/xrdp.ini — файл настроек
        • /var/log/xrdp.log — файл журналов событий

        Подключаемся из Windows к xrdp. Вводим имя пользователя и пароль пользователя Linux:


        Теперь мы можем выполнять команды на компьютере с Linux так, будто бы мы сидим за ним:


        Как из Linux подключиться к другому Linux по RDP

        Каких-то особенностей при подключении с использованием программы xfreerdp нет, достаточно запустить сервер RDP, причём, если вы используете freerdp-shadow, то опции /sam-file:SAM /sec:nla также нужны:

        Либо запустите xrdp-sesman и xrdp.

        А затем подключение ничем не отключается от подключению к Windows:

        Что касается rdesktop, то её не удалось заставить работать ни с одним из рассмотренных серверов RDP под Linux — если вы знаете, как это сделать, то пишите в комментариях.

        RDP клиенты удаленного доступа для Linux

        RDP (Remote Desktop Protocol) — протокол доступа к удаленному рабочему столу, созданный Microsoft. Он поддерживается почти любой современной ОС. В этой статье предлагаем взглянуть на несколько популярных клиентов удаленного доступа для Linux.

        Проприетарный RDP — не единственный протокол удаленного доступа. Есть, например, открытый протокол VNC или защищенный протокол SSH. Все протоколы поддерживаются большинством операционных систем, включая различные дистрибутивы Linux, а иногда и мобильные ОС.

        Для чего нужны RDP клиенты?

        Клиенты доступа к удаленному рабочему столу имеют гораздо более широкие возможности, чем просмотр сессии удаленной машины с локальной. Через RDP клиент осуществляется доступ к удаленному рабочему столу с полноценной поддержкой клавиатуры, мыши, а также с поддержкой аудио и возможностью передачи файлов. В некоторых случаях RDP клиент может быть уже установлен в системе, например, на Ubuntu Desktop обычно предустанавливается клиент Remmina.

        Популярные Linux RDP клиенты

        Remmina


        Источник

        Remmina идет под лицензией GNU GPL и имеет открытый исходный код.

        Установка Remmina

        Remmina устанавливается через терминал:

        В дистрибутивах Ubuntu, как правило, уже имеется клиент Remmina, однако, версия обычно устаревшая поэтому рекомендуется ее обновить.


        Обновление Remmina

        В терминале нужно ввести команду:


        Затем запросите обновление списка системных хранилищ:


        Следующий шаг — установка или обновление плагина протокола RDP:


        Чтобы завершить установку Remmina Linux RDP client, закройте активные сеансы приложения из терминала: sudo killall remmina. Затем откройте обновленный клиент заново и перейдите к конфигурации соединения.

        Настройка Remmina


        Если нужны настройки Remmina Remote Desktop Client, откройте меню Preferences (параметры) нажатием на иконку в правой верхней части окна.

        Подключение по RDP к удаленной машине

        Давайте рассмотрим как работает подключение по RDP к удаленной машине на примере Remmina.



        Поддерживаются соединения с Linux, Windows или macOS. Главное, что вам нужно знать — это IP-адрес машины, с которой устанавливается подключение, имя пользователя и пароль.

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


        Также есть возможность управлять соединениями, копируя, редактируя и удаляя их прямо из основного окна.


        Помимо RDP, клиент Remmina также обладает поддержкой других протоколов удаленного соединения, включая безопасный SSH и открытый VNC.

        Apache Guacamole


        Источник

        Еще один интересный RDP клиент для Linux — Apache Guacamole. Этот RDP клиент с открытым исходным кодом, распространяется по лицензии Apache v. 2.0. У Apache Guacamole есть интересная особенность — разработчики называют его «шлюз для удаленного рабочего стола без клиента» (clientless remote desktop gateway). Все благодаря тому, что Apache Guacamole работает напрямую из браузера, необходимости устанавливать дополнительное ПО или плагины нет.

        Установка Apache Guacamole

        Apache Guacamole может быть предустановлен в некоторых Linux Debian и Debian-based дистрибутивах. Ручная установка Apache Guacamole из терминала производится командой:


        Поскольку Apache Guacamole — серверный клиент, требуется установить Tomcat Server на вашу машину, после чего программа установки попросит его перезапустить.

        По умолчанию Apache Guacamole устанавливается с поддержкой только протокола VNC. Чтобы иметь возможность подключаться по SSH или RDP, необходимо установить дополнительно клиент для желаемого протокола. Сделать это можно следующей командой:

        В более новые версии дистрибутивов Linux клиенты, необходимые для подключения по протоколу RDP, могут быть уже включены.

        Настройка Apache Guacamole

        После установки Apache Guacamole автоматически применяет минимально необходимые для запуска настройки. Основным файлом конфигурации Apache Guacamole является guacamole.properties.

        Все подробности об установке, настройке и управлении Apache Guacamole детально описаны в руководстве на официальном сайте.

        Клиент Apache Guacamole максимально прост в использовании. Для запуска шлюза доступа к удаленному рабочему столу без клиента требуется иметь только браузер с поддержкой HTML5. Сама работа показана в коротком видео.

        FreeRDP


        Источник

        Еще один бесплатный RDP клиент для Linux — FreeRDP. FreeRDP имеет лицензию Apache и открытый исходный код. Его можно встретить включенным в некоторые дистрибутивы Linux.

        Установка FreeRDP

        Актуальную на момент написания статьи версию FreeRDP можно установить командой из терминала:

        Настройка FreeRDP

        FreeRDP — терминальный клиент, поэтому все настройки для подключения вводятся одной командой:

        • -u username — имя удаленного компьютера, к которому хотите подключиться;
        • -p password — пароль учетной записи;
        • -g 1280×1024 — разрешение экрана;
        • XXX.XXX.XXX.XXX — IP удаленного компьютера.

        Полный синтаксис можно найти в интернете.

        Чтобы не вводить команду заново каждый раз, вы можете создать ярлык подключения со всеми необходимыми параметрами. Для этого, после установки FreeRDP, откройте окно терминала, запустите редактор nano: sudo nano

        /rdp.sh. В появившемся окне введите следующие строки и сохраните файл:

        Первая строка — это директория для ярлыка, а вторая строка — команда запуска FreeRDP со всеми требуемыми параметрами. FreeRDP также можно использовать совместно с клиентом Remmina в качестве графического интерфейса.

        TigerVNC


        Источник

        TigerVNC — это полностью бесплатный клиент, он имеет открытый исходный код. Он отличается от предыдущих клиентов удаленного доступа тем, что он работает только по протоколу VNC.

        Установка TigerVNC

        Для работы TigerVNC требуется окружение рабочего стола. Мы выбрали окружение Gnome, установили его следующими командами:

        Затем, чтобы установить компоненты TigerVNC, введите в окне терминала:

        Если установка прошла успешно, запустите VNC-сервер: vncserver. Создастся дефолтная конфигурация, а от вас потребуется задать пароль для TigerVNC длиной от 6 до 8 символов.


        Настройка TigerVNC

        Следующим шагом вы должны будете настроить рабочее окружение для работы с TigerVNC. Чтобы избежать конфликтов, следует приостановить активный VNC-сервер командой в терминале: vncserver -kill :1.

        Затем введите команду vi

        /.vnc/xstartup, чтобы добавить файл xstartup в каталог конфигурации рабочего стола, откроется редактор.

        В редакторе пропишите пять строк:

        Эти строки будут выполняться при каждом запуске TigerVNC сервера. Сохраните файл, задайте ему разрешения:

        Возобновите работу сервера, введя в терминале:

        • :1 — номер дисплея;
        • -localhost — разрешить соединения только с локального хоста;
        • -geometry — разрешение экрана;
        • -depth — глубина цвета.

        TigerVNC — быстрый клиент удаленного доступа к компьютеру, однако, его функционал ограничивается VNC протоколом, и его установка чуть более требовательна, чем у аналогов.

        rdesktop


        Источник

        Следующий клиент — rdesktop — поддерживается на платформах Linux, Microsoft Windows, имеет открытый исходный код. Выгодно отличает rdesktop от других клиентов поддержка протокола RDP 4.0, используемого в версиях Windows NT 4.0 Terminal Server Edition и Windows 2000 Server.

        Установка rdesktop

        Рекомендуем сперва проверить наличие rdesktop в дистрибутиве. Если rdesktop уже включен в систему, то он запустится командой rdesktop. Если rdesktop в дистрибутиве отсутствует, то установить его можно командой:

        Настройка rdesktop

        Подключение к удаленному рабочему столу производится из терминала командой:

        Команда использует следующий синтаксис:

        • -z — использовать сжатие потока;
        • -P — использовать кэширование;
        • -g/-f — оконный/полноэкранный режим;
        • -u — имя пользователя удаленной машины;
        • -p — пароль.для входа в учетную запись удаленного компьютера.

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

        Если вы в поиске простого и надежного клиента, который поддерживал бы также функции RDP4, то rdesktop будет оптимальным выбором.

        Vinagre


        Источник

        Vinagre входит в стандартное окружение Gnome и по сути является официальным RDP клиентом Gnome. Это значит, что клиент Vinagre уже должен быть включен в ваш дистрибутив Linux с окружением Gnome, и его установка не потребуется.

        Установка Vinagre

        Если по какой-то причине клиент Vinagre отсутствует у вас в системе, вы можете его инсталлировать, введя в консоли:


        Преимущества Vinagre это:

        • Возможность подключить несколько удаленных рабочих столов одновременно. Каждый из них будет отображаться на отдельных вкладках.
        • Поиск потенциальных подключений в локальной сети. Vinagre позволяет отслеживать доступные подключения.
        • Поддержка VNC и SSH.
        • Добавление подключений в избранное, наличие истории.
        • Поддержка Gnome Keyring.

        Если вы работаете с Gnome, то вам стоит обратить внимание на Vinagre, ознакомиться с этим клиентом поближе.

        NoMachine NX Client


        Источник

        Утилита NX Client, разрабатывается компанией NoMachine. Программа работает по проприетарному протоколу NX, который разработан компанией NoMachine. NoMachine NX Client доступен для Windows, Linux, macOS, Android, iOS, Raspberry Pi, а также из браузера.

        Установка NoMachine NX Client

        Вам потребуется скачать установщик в любом формате (RPM, DEB, TAR.GZ) открыть и установить его на обе машины — локальную и удаленную. То же можно сделать и командой из терминала, но иметь копию пакета установки все равно потребуется.


        NoMachine NX Client обладает впечатляющим набором функций, который расширяется с каждым обновлением.


        Но, во-первых, для корпоративных клиентов NoMachine продает свои продукты по подписке (44,50 долларов в год за сервер или пакет 10 пользователей, подробнее). Это совсем не выгодно отличает NX Client от рассмотренных ранее полностью бесплатных клиентов. Во-вторых, большое число функций и вкладок с различными настройками и параметрами может помешать сосредоточиться на работе. Кроме того, NoMachine NX Client не поддерживает открытие нескольких сеансов во вкладках — каждый новый сеанс нужно открыть в новом окно программы. Зато вся документация и справка на официальном сайте NoMachine переведена на русский.

        NoMachine NX Client — хороший выбор, если ваши основные требования это:

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


          Источник

          Krdc — бесплатный RDP клиент с открытым исходным кодом, идущий под лицензией GPL v.3. Krdc может работать по VNC и по RDP, клиент является официальным проектом окружения KDE для удаленного доступа.

          Установка Krdc

          Установить Krdc на дистрибутив Linux можно, введя в терминале:


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


          Если у вас есть потребность в простом клиенте удаленного доступа, то Krdc отлично подойдет. Дополнительным плюсом будет возможность выбора протокола подключения: RDP или VNC, по умолчанию поддержка SSH в Krdc отсутствует.

          TeamViewer


          Источник

          TeamViewer — широко известный клиент для удаленного доступа, он является бесплатным только для частного использования. Стоимость корпоративного решения от 2 до 7 тысяч рублей в месяц за одно рабочее место, подробности можно узнать на сайте TeamViewer.

          Одно из преимуществ TeamViewer — кроссплатформенность. После установки приложение позволяет подключаться к удаленному рабочему столу с Linux, Windows, macOS, Android, iOS, Blackberry и даже ChromeOS.

          Установка TeamViewer

          Для установки TeamViewer разработчики рекомендуют скачать пакет установки с официального сайта, после чего установить его через графический интерфейс на обе машины — локальную и удаленную. Установить TeamViewer через терминал можно соответствующими командами для соответствующего пакета, например DEB:


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

          Заключение

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

          Читайте также: