- Настройка удаленного рабочего стола xrdp
- 1: Установка окружения рабочего стола
- 2: Установка xrdp
- 3: Настройка xrdp и обновление брандмауэра
- 4: Тестирование RDP-соединения
- Тестирование RDP-подключения в Windows
- Тестирование подключения RDP в macOS
- Тестирование RDP-подключения в Linux
- Итоги
- Automating XRDP installation in Centos, RedHat 6/7 and Oracle Linux 7.x
Настройка удаленного рабочего стола xrdp
Remote Desktop Protocol (RDP) — это сетевой протокол от Microsoft, с помощью которого вы можете установить соединение с удаленным компьютером и управлять его операционной системой, используя графический интерфейс.
Также можно получить доступ и взаимодействовать с графическим пользовательским интерфейсом удаленного сервера Linux с помощью инструмента xrdp .
В этом руководстве мы установим и настроим RDP-сервер с помощью xrdp и получим к нему доступ через RDP-клиент с вашего компьютера. Также мы разберем, как установить доступ к удаленному серверу Linux, используя RDP-соединение.
- Сервер Ubuntu 22.04 с пользователем без root прав с привилегиями sudo, не менее 1 ГБ ОЗУ и брандмауэром. Настроить их можно по этому мануалу.
- Локальный компьютер с установленным клиентом RDP. Список RDP-клиентов для ОС представлен ниже:
- В Windows вы можете использовать приложение для подключения к удаленному рабочему столу без сторонних программ.
- В macOS вы можете использовать приложение Microsoft Remote Desktop application .
- В Linux вы можете использовать FreeRDP или Remmina
1: Установка окружения рабочего стола
На этом этапе вы установите и настроите среду рабочего стола на своем сервере. По умолчанию сервер Ubuntu доступен только через терминал. Для доступа к пользовательскому интерфейсу необходимо установить среду рабочего стола.
Например, Xfce предлагает удобную среду рабочего стола для систем на базе Linux.
Подключитесь к своему серверу с помощью SSH и обновите системные пакеты с помощью команды:
Затем установите пакеты xfce и xfce-goodies на свой сервер:
sudo apt install xfce4 xfce4-goodies -y
Вам будет предложено выбрать диспетчер отображения. Это программа, которая управляет графическими механизмами входа в систему и сеансами пользователей. Вы можете выбрать любой вариант из списка доступных менеджеров, но мы будем пользоваться gdm3.
После установки среды рабочего стола установите xrdp на свой сервер.
2: Установка xrdp
xrdp — это служба удаленного рабочего стола для серверов Linux. Она позволяет нам подключать удаленные настольные системы Linux через Microsoft RDP .
Чтобы установить xrdp, выполните в терминале следующую команду:
Команда покажет статус active (running) :
xrdp.service - xrdp daemon Loaded: loaded (/lib/systemd/system/xrdp.service; enabled; vendor preset: enabled) Active: **active (running)** since Sun 2022-08-07 13:00:44 UTC; 26s ago Docs: man:xrdp(8) man:xrdp.ini(5) Main PID: 17904 (xrdp) Tasks: 1 (limit: 1131) Memory: 1016.0K CGroup: /system.slice/xrdp.service └─17904 /usr/sbin/xrdp
Если статус xrdp не running, скорее всего, вам придется запустить службу вручную с помощью этой команды:
sudo systemctl start xrdp
После этого снова проверьте статус, чтобы убедиться, что xrdp running.
Вы успешно установили xrdp на свой сервер. Далее мы покажем конфигурацию xrdp для приема удаленных подключений.
3: Настройка xrdp и обновление брандмауэра
На этом шаге мы рассмотрим конфигурацию xrdp по умолчанию, которая хранится в /etc/xrdp/xrdp.ini, и добавим конфигурацию для подключения RDP. Также нужно обновить настройки брандмауэра.
xrdp.ini — это файл конфигурации по умолчанию для настройки подключений RDP к серверу xrdp. Файл конфигурации можно изменить и настроить в соответствии с требованиями к RDP-подключению.
Откройте файл в текстовом редакторе nano или в редакторе на ваш выбор:
Файл конфигурации содержит различные разделы:
- Globals определяет некоторые глобальные параметры конфигурации для xrdp.
- Logging определяет параметры подсистемы логирования.
- Channels определяет несколько параметров канала, которые поддерживает RDP.
- Session types определяет поддерживаемые xrdp типы сеансов. Конфигурация каждого типа сеанса определяется как отдельный раздел по имени типа сеанса, заключенному в квадратные скобки, например [Xorg] и [XVnc]. В файле нет заголовка [Sessions types] ; вместо этого он записывается как комментарий.
В файле конфигурации перейдите в раздел Session types . Вы найдете несколько поддерживаемых типов сеансов и их параметры в списке:
. ; ; Session types ; ; Some session types such as Xorg, X11rdp, and Xvnc start a display server. ; Startup command-line parameters for the display server are configured ; in sesman.ini. See and configure also sesman.ini. [Xorg] name=Xorg lib=libxup.so username=ask password=ask ip=127.0.0.1 port=-1 code=20 [Xvnc] name=Xvnc lib=libvnc.so username=ask password=ask ip=127.0.0.1 port=-1 #xserverbpp=24 #delay_ms=2000 [vnc-any] . [neutrinordp-any] . .
По умолчанию параметры username и password настроены на ask, что означает, что пользователю будет предложено ввести свое name, username и password для подключения через RDP. Эти данные можно будет изменить, если у вас будет такая необходимость. Для первого RDP-подключения к серверу достаточно конфигурации по умолчанию.
Сохраните и закройте файл, когда закончите.
Теперь перейдите в домашний каталог вашего пользователя:
Затем создайте файл.xsession в папке /home/sammy и добавите xfce4-session в качестве менеджера сеансов для использования при входе в систему:
echo "xfce4-session" | tee .xsession
tee записывает строку “xfce4-session” в файл .xsession. Приведенная выше конфигурация гарантирует, что xfce4-session используется в качестве диспетчера сеансов при запросе входа в систему. В результате установки xfce в качестве среды рабочего стола xfce4-session служит его менеджером сеансов. Если вы не включите эту информацию в файл .xsession, менеджер сеансов не будет выбран, и сеанс RDP не сможет подключиться к графическому дисплею.
Перезапустите сервер xrdp:
sudo systemctl restart xrdp
Затем нужно настроить брандмауэр, чтобы разрешить удаленные подключения с вашего внешнего IP-адреса через порт 3389. Соединение RDP обслуживается через порт TCP/IP 3389. Чтобы получить доступ к удаленному серверу через RDP, вы должны открыть порт 3389 в своем брандмауэре.
Сначала найдите внутренний IP-адрес вашего компьютера:
В Windows используйте командную строку для запуска этой команды.
curl отправляет запрос на ifconfig.me, который возвращает ваш внешний IP-адрес в качестве вывода:
Затем разрешите доступ к порту RDP 3389 на вашем удаленном сервере, заменив your_local_ip результатом последней команды:
sudo ufw allow from your_local_ip/32 to any port 3389
Проверьте статус вашего брандмауэра UFW:
Status: Active To Action From -- ------ ---- OpenSSH ALLOW Anywhere 3389 ALLOW your_local_ip OpenSSH (v6) ALLOW Anywhere (v6) .
Вы включили порт 3389 для приема соединений с вашего внешнего IP-адреса. Теперь проверьте RDP-соединение вашего локального компьютера с удаленным сервером.
4: Тестирование RDP-соединения
Сейчас мы протестируем соединение RDP с вашего локального компьютера. В следующих пунктах показаны действия по тестированию соединения на компьютерах с Windows, macOS и Linux.
Тестирование RDP-подключения в Windows
Запустите приложение подключения к удаленному рабочему столу.
Введите внешний IP-адрес вашего удаленного сервера и имя пользователя. Может быть, вам придется нажать стрелку вниз для отображения параметров, чтобы ввести имя пользователя:
Нажмите кнопку Connect. Если вы получаете предупреждение “ Remote Desktop can’t connect to the remote computer”, убедитесь, что вы включили опцию Remote Desktop в настройках системы.
Отметьте опцию «Рабочий стол» в настройках вашей системы.
Нажмите Yes, если появится всплывающее окно подтверждения:
Затем введите имя пользователя вашего удаленного сервера (sammy) и пароль, который вы создали для него во время первоначальной настройки сервера. Нажмите Ок.
После входа в систему вы сможете получить доступ к среде рабочего стола Ubuntu:
Используя RDP, вы успешно подключились к удаленному серверу Ubuntu с вашего локального компьютера. Можно закрыть его, когда закончите работу с графическим рабочим столом.
Тестирование подключения RDP в macOS
Чтобы проверить подключение через клиент удаленного рабочего стола в macOS, сначала запустите приложение Microsoft Remote Desktop Connection.
Нажмите «Add PC», затем введите внешний IP-адрес вашего удаленного сервера:
Вы можете добавить учетную запись пользователя при настройке подключения:
Если вы не добавите пользователя во время установки, вам будет предложено ввести учетные данные пользователя:
Нажмите Yes, чтобы пропустить всплывающее окно подтверждения:
После входа в систему вы можете получить доступ к удаленному рабочему столу Ubuntu. Можно закрыть его, когда закончите работу.
Тестирование RDP-подключения в Linux
Вам понадобится RDP-клиент для проверки RDP-соединения на локальном компьютере с Linux. Сначала установите RDP-клиент remmina для Ubuntu:
Выберите Y, если будет предложено завершить установку. Эта команда установит Remmina , клиент удаленного рабочего стола с открытым исходным кодом, в вашей системе Ubuntu. Для установки на другие дистрибутивы Linux вы можете просмотреть документацию Remmina .
После установки запустите приложение remmina на локальном компьютере с Linux и введите внешний IP-адрес удаленного сервера. Нажмите Enter, чтобы подключиться к удаленному рабочему столу.
Затем введите имя пользователя удаленного сервера (напоминаем, что для этого руководства имя пользователя — sammy) и пароль, который вы создали для него во время первоначальной настройки сервера. Нажмите Ок.
Возможно, вам придется снова ввести пароль пользователя, чтобы разблокировать удаленный рабочий стол.
После входа в систему вы сможете получить доступ к среде рабочего стола Ubuntu.
Используя RDP, вы успешно подключились к удаленному серверу Ubuntu с вашего локального компьютера. Можно его закрыть, когда закончите работу с графическим рабочим столом.
Убедившись, что удаленное соединение работает, вы можете применять эту последовательность действий всякий раз, когда вам нужно использовать графический интерфейс для вашего удаленного сервера Linux.
Итоги
Надеемся, что это руководство помогло вам установить и настроить XRDP. Теперь вы можете удаленно управлять своей ОС через соединение RDP с локального компьютера.
Automating XRDP installation in Centos, RedHat 6/7 and Oracle Linux 7.x
In this post, I will show how to automate the XRDP installation in Centos, RedHat 6/7 and Oracle Linux 7.x using a shell script.
“XRDP” is an open source tool which allows to connect to a Linux machine with Remote Desktop Protocol (RDP) from Windows machine.
Given below is the sample shell script (Test.sh), that is written to automate this process. In order to do this, follow these steps,
- Move the “Test.sh” to the remote Linux server using “WinSCP” tool. For example, move the file to “/home/administrator/Downloads”
- Connect to the remote Linux server using “Putty” tool. Change the directory to the location where “Tesh.sh” is copied
- Change the user to “root” and execute the following command, “sh Test.sh”. That’s all. XRDP is now installed in your remote Linux server
- Now access your remote Linux server using Windows RDP tool. For username and password, you can use any user account already created in the Linux server
Here is the sample code of “Tesh.sh”
echo “Going to run 1st RPM package”
echo “*****************************”echo “Going to run 2nd RPM package”
echo “******************************”printf “[xrdp]\nname=xrdp\nbaseurl=http://li.nux.ro/download/nux/dextop/el7/x86_64/\nenabled=1\ngpgcheck=0” >> /etc/yum.repos.d/xrdp.repo
echo “Installing tigervnc server”
echo “******************************”yum -y install xrdp tigervnc-server
echo “Starting up xrdp service”
echo “******************************”systemctl start xrdp.service
echo “Enabling xrdp service”
echo “******************************”systemctl enable xrdp.service
firewall-cmd –permanent –zone=public –add-port=3389/tcp
firewall-cmd –reload
netstat -antup | grep xrdp
echo “******************************”
echo “Everything is ok”Here, given below are some sample outputs after executing the above shell script.