Как подписчик, вы можете использовать сценарий, чтобы выполнить это руководство с помощью всего одной простой команды. Посетите следующую страницу: Дебианский скрипт 10
Введение
Xrdp — это реализация протокола Microsoft Remote Desktop Protocol (RDP) с открытым исходным кодом, которая позволяет графически управлять удаленной системой. С помощью RDP вы можете войти на удаленный компьютер и создать реальный сеанс рабочего стола, как если бы вы вошли в систему на локальном компьютере.
В этом руководстве описывается, как установить и настроить сервер Xrdp в Debian 10 Linux.
Если вы ищете решение с открытым исходным кодом для удаленного доступа к рабочему столу, вам следует проверить VNC.
Установите среду рабочего стола
Обычно на серверах Linux по умолчанию не установлена среда рабочего стола. Первый шаг — установить X11 и среду рабочего стола, которая будет служить серверной частью для Xrdp.
В репозиториях Debian доступно несколько сред рабочего стола (DE). Мы установим Xfce. Это быстрая, стабильная и легкая среда рабочего стола, что делает ее идеальной для использования на удаленном сервере. Если вы предпочитаете другую среду рабочего стола, такую как Gnome, вы можете установить ее вместо Xfce.
Введите следующие команды от имени пользователя root или пользователя с привилегиями sudo, чтобы установить Xfce на сервер:
sudo apt update
sudo apt install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils
В зависимости от вашей системы и подключения загрузка и установка пакетов Xfce займет некоторое время.
Установить XRDP
Пакет Xrdp доступен в стандартных репозиториях Debian. Чтобы установить его, запустите:
sudo apt install xrdp
Служба запустится автоматически в конце процесса установки. Вы можете убедиться, что служба Xrdp работает, набрав:
sudo systemctl status xrdp
Вывод будет выглядеть следующим образом:
● xrdp.service - xrdp daemon
Loaded: loaded (/lib/systemd/system/xrdp.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2020-04-02 00:39:12 CEST; 1min 5s ago
Docs: man:xrdp(8)
man:xrdp.ini(5)
Main PID: 21221 (xrdp)
Tasks: 1 (limit: 2300)
CGroup: /system.slice/xrdp.service
└─21221 /usr/sbin/xrdp
Apr 02 00:39:11 TEST-SERVER-1 systemd[1]: Starting xrdp daemon...
Apr 02 00:39:11 TEST-SERVER-1 xrdp[21220]: (21220)(140593578424128)[DEBUG] Testing if xrdp can listen on 0.0.0.0 port 3389.
Apr 02 00:39:11 TEST-SERVER-1 xrdp[21220]: (21220)(140593578424128)[DEBUG] Closed socket 7 (AF_INET6:: port 3389)
Apr 02 00:39:11 TEST-SERVER-1 systemd[1]: xrdp.service: Can't open PID file /var/run/xrdp/xrdp.pid (yet?) after start: No such file or directory
Apr 02 00:39:12 TEST-SERVER-1 systemd[1]: Started xrdp daemon.
Apr 02 00:39:13 TEST-SERVER-1 xrdp[21221]: (21221)(140593578424128)[INFO ] starting xrdp with pid 21221
Apr 02 00:39:13 TEST-SERVER-1 xrdp[21221]: (21221)(140593578424128)[INFO ] listening to port 3389 on 0.0.0.0
По умолчанию Xrdp использует файл /etc/ssl/private/ssl-cert-snakeoil.key
, который доступен для чтения только пользователям, входящим в группу ssl-cert
. Выполните следующую команду, чтобы добавить пользователя xrdp
в группу:
sudo adduser xrdp ssl-cert
Это все. Xrdp был установлен в вашей системе Debian.
Настроить XRDP
Файлы конфигурации Xrdp хранятся в каталоге /etc/xrdp
. Для базовых подключений Xrdp вам не нужно вносить какие-либо изменения в файлы конфигурации. Xrdp будет использовать рабочий стол X Window по умолчанию, которым в данном случае является XFCE.
Основной файл конфигурации называется xrdp.ini
. Этот файл разделен на разделы и позволяет вам устанавливать глобальные параметры конфигурации, такие как адреса безопасности и прослушивания, а также создавать различные сеансы входа в систему xrdp.
Всякий раз, когда в файл конфигурации вносятся изменения, службу Xrdp необходимо перезапустить:
sudo systemctl restart xrdp
Xrdp использует файл startwm.sh
для запуска сеанса X. Чтобы использовать другой рабочий стол X Window, отредактируйте этот файл.
Настроить брандмауэр
По умолчанию Xrdp прослушивает порт 3389
на всех интерфейсах. Если брандмауэр на вашем сервере Debian активен, что вы всегда должны делать, вам нужно будет добавить правило, которое разрешает трафик через порт Xrdp.
Предполагая, что вы используете ufw для управления брандмауэром, выполните следующую команду, чтобы разрешить доступ к серверу Xrdp с определенного IP-адреса или диапазона IP-адресов, в этом примере 192.168.1.0/24
:
sudo ufw allow from 192.168.1.0/24 to any port 3389
Если вы хотите разрешить доступ из любого места (что крайне не рекомендуется по соображениям безопасности), выполните следующие действия:
sudo ufw allow 3389
Если вы используете nftables для фильтрации подключений к вашей системе, откройте необходимый порт, выполнив следующую команду:
sudo nft add rule inet filter input tcp dport 3389 ct state new,established counter accept
Для дополнительной безопасности вы можете настроить Xrdp для прослушивания только на локальном хосте и создать туннель SSH, который безопасно перенаправляет трафик с вашего локального компьютера через порт 3389
на сервер через тот же порт. Другой безопасный вариант — установить OpenVPN и подключиться к серверу Xrdp через частную сеть.
Подключение к серверу Xrdp
Теперь, когда вы настроили сервер Xrdp, пришло время открыть клиент Xrdp и подключиться к серверу.
Если у вас есть ПК с Windows, вы можете использовать клиент RDP по умолчанию. Введите remoto
в строке поиска Windows и нажмите «Подключение к Connessione desktop remoto
. Это откроет клиент RDP
. В поле « Computer
» введите IP-адрес удаленного сервера и нажмите « Connetti
».
На экране входа введите имя пользователя и пароль и нажмите OK
.
После входа в систему вы должны увидеть рабочий стол Xfce по умолчанию.
Теперь вы можете начать взаимодействовать с удаленным рабочим столом XFCE с локального компьютера с помощью клавиатуры и мыши.
Если вы используете macOS, вы можете установить Microsoft Remote Desktop
из Mac App Store. Пользователи Linux могут использовать клиент RDP, такой как Remmina
или Vinagre
.
Вывод
Установка сервера Xrdp позволяет вам управлять сервером Debian 10 с локального настольного компьютера через простой в использовании графический интерфейс.