Безопасное подключение к ПК с РЕДОС с помощью RDP и TLS (SSL)
Впервые начиная изучать РЕДОС Linux вы, скорее будете использовать виртуальную машину для установки. Для подключения и работе с системой из под Windows единственным удобным способом является использование программы Удаленный рабочий стол и протокола RDP. У всех клиентов и серверов VNC для Windows есть некоторые проблемы с работой с буфером обмена.
Сегодня мы рассмотрим установку XRDP в РЕДОС, а так же настройку шифрования с использованием сертификатов и TLS современной версии SSL, для обеспечения безопасности соединения.
Для этой установки я использую Hyper-V. Операционная система установлена с опцией MATE и без дополнительных пакетов.
Определение ip-адреса виртуальной машины
Прежде чем подключаться к виртуальной машине, нам нужно определить её ip-адрес.
Откроем окно управления виртуальной машины, запустим терминал и введем:
ip a
В моем случае виртуальной машине был назначен ip-адрес:
192.168.1.50Подключение к виртуальной машине РЕДОС с помощью PUTTY
Все настройки намного удобнее проводить не из окна управления виртуальной машиной, а с помощью консоли по протоколу SSH. Для подключения я рекомендую использовать PuTTY. Скачать программу можно с сайта - https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
Для загрузки последней версии можно воспользоваться ссылкой - https://the.earth.li/~sgtatham/putty/latest/w64/putty.exe
Запустим putty.exe , откроется окно:
Введем ip адрес виртуальной машины, в моем случае это 192.168.1.50 и нажмем Open
Введите свое имя пользователя и пароль и нажмите Enter
Все команды для настройки теперь можно вводить сюда. Для того чтобы вставить текст из буфера обмена достаточно нажать на правую кнопку мыши. Чтобы скопировать текст из консоли в буфер обмена просто выделите его курсором мышки и он сразу будет скопирован – это очень удобно!
Установка XRDP
Из консоли запустим:
sudo dnf install xrdp xorgxrdp pipewire-module-xrdpВведем пароль пользователя:
Зависимости разрешены.
================================================================================
Пакет Архитектура
Версия Репозиторий Размер
================================================================================
Установка:
pipewire-module-xrdp x86_64 0~git19-1.red80 base 31 k
xorgxrdp x86_64 0.10.4-1.red80 updates 74 k
xrdp x86_64 1:0.10.4.1-1.red80 updates 609 k
Установка зависимостей:
imlib2 x86_64 1.11.1-1.red80 base 266 k
openh264 x86_64 1:2.4.1-4.red80 updates 421 k
turbojpeg x86_64 2.1.5-2.red80 base 242 k
Результат транзакции
================================================================================
Установка 6 Пакетов
Объем загрузки: 1.6 M
Объем изменений: 6.5 M
Продолжить? [д/Н]:Введем Y и нажмем Enter
Установлен:
imlib2-1.11.1-1.red80.x86_64 openh264-1:2.4.1-4.red80.x86_64
pipewire-module-xrdp-0~git19-1.red80.x86_64 turbojpeg-2.1.5-2.red80.x86_64
xorgxrdp-0.10.4-1.red80.x86_64 xrdp-1:0.10.4.1-1.red80.x86_64
Выполнено!Все пакеты установлены.
Включим и запустим службу:
sudo systemctl enable xrdp --now
sudo systemctl restart xrdpПервое подключение к РЕДОС с помощью MSTSC
Вернемся к Windows и из меню пуск запустим команду
mstscОткроется окно, введем наш адрес:
Нажмем подключить, откроется окно:
![]()
Пока что нажмем Да, не ставьте никаких галочек, нам потребуется это окно в дальнейшем!
Откроется окно с ошибкой:
Чтобы исправить её нам нужно добавить строку:
export $(dbus-launch)В функцию
wm_start()в файле
/usr/libexec/xrdp/startwm.shДля этого из консоли PUTTY запустим:
sudo sed -i '/# debian/s/^/ export $(dbus-launch)\n\n/' /usr/libexec/xrdp/startwm.shПерезапустим rdp
sudo systemctl restart xrdpПопробуем снова подключиться:
На этот раз, всё получилось
Введем имя пользователя и пароль и нажмем Ок
У нас запустится сеанс Gnome, а нам нужен сеанс MATE.
Закроем окно удаленного рабочего стола.
Устанавливаем сеанс MATE по умолчанию для XRDP
Чтобы установить основным сеанс MATE из консоли Putty запустим команду:
echo "DESKTOP=MATE" | sudo tee /etc/sysconfig/desktopЭта команда создаст файл
/etc/sysconfig/desktop со строкой
DESKTOP=MATEПерезапустим rdp
sudo systemctl restart xrdpПопробуем еще раз подключиться, на этот раз всё хорошо:
Создаем самоподписанный сертификат для XRDP
Вернемся к консоли Putty. Для организации защищенного соединения нам потребуются сертификат.
Если у вас в ЛВС уже есть центр выдачи сертификатов (CA), то вы можете просто запросить сертификат у него и использовать подписанный сертификат, тогда вам не потребуется устанавливать сертификат в список доверенных сертификатов!
Создадим его. При установке РЕДОС я отключил учетную запись root поэтому команда su сама по себе не работает, нам нужно запускать её с помощью sudo!
Создавать сертификаты и настраивать далее мы будем в папке пользователя root!
sudo su -Создадим папки для создания сертификатов:
mkdir ssl_certs
cd ssl_certsСоздадим файл с настройками для выдачи сертификата:
touch openssl.cnfДобавим к файлу openssl.cnf содержимое:
[ req ]
default_bits = 2048
prompt = no
default_md = sha256
distinguished_name = req_distinguished_name
req_extensions = v3_req
[ req_distinguished_name ]
commonName = srv1.altuninvv.ru
countryName = RU
stateOrProvinceName = Magadan Region
localityName = Magadan
organizationName = AltuninVV
[ v3_req ]
keyUsage=critical,digitalSignature,keyEncipherment
extendedKeyUsage=critical,serverAuth,clientAuth
subjectAltName = @alt_names
[ alt_names ]
DNS.1 = srv1.altuninvv.ru
IP.1 = 192.168.1.50Здесь вы можете заменить:
srv1.altuninvv.ru
192.168.1.50На свои значения.
Запустим генерацию сертификата и закрытого ключа:
openssl req -x509 -newkey rsa:2048 -keyout private.key -out public.cert -days 1825 -config openssl.cnf -extensions v3_reqЗдесь я указываю срок действия 5 лет. В то же время у разных организаций разные требования по срокам действия сертификатов – это важно помнить!
На запрос:
Enter PEM pass phrase:Введем:
123456Так как сертификаты и приватные ключи будут использоваться сервером, мы в любом случае снимем пароль с них, так как XRDP не поддерживает сохранение паролей для ключей. Поэтому пароль может быть такой простой.
Будут созданы два файла:
ls
private.key public.certСнимем пароль с приватного ключа:
openssl rsa -in private.key -out private.keyВведем пароль:
123456Настройка подключения с помощью сертификатов и TLS (SSL) в XRDP
Создадим папки для ключей в папке с настройками XRDP:
mkdir /etc/xrdp/keysСкопируем ключи
cp private.key /etc/xrdp/keys
cp public.cert /etc/xrdp/keysДобавим настройки в файл:
/etc/xrdp/xrdp.iniВнесем изменения в конфигурацию XRDP. Запустим:
sed -i 's/certificate=/certificate=\/etc\/xrdp\/keys\/public.cert/g' /etc/xrdp/xrdp.ini
sed -i 's/key_file=/key_file=\/etc\/xrdp\/keys\/private.key/g' /etc/xrdp/xrdp.ini
sed -i 's/security_layer=negotiate/security_layer=tls/g' /etc/xrdp/xrdp.ini
sed -i 's/#tls_ciphers=HIGH/tls_ciphers=HIGH/g' /etc/xrdp/xrdp.iniЗдесь мы задаем пути до файлов с сертификатами, принудительно включаем использование TLS и указываем использовать максимально возможно сложный тип шифрования.
Обязательно изменим права на файлы, чтобы XRDP мог получить доступ к файлам:
chmod 644 /etc/xrdp/keys/public.cert
chmod 640 /etc/xrdp/keys/private.key
chown :xrdp /etc/xrdp/keys/private.keyПерезапустим xrdp:
systemctl restart xrdpТеперь если мы попробуем соединиться, то откроется окно:
Сертификат:
Так как сертификат самоподписанный нам нужно установить сам сертификат в хранилище доверенных сертификатов.
Установим сертификат.
Нажмем на кнопку Установить сертификат...
Выберем Текущий пользователь
Выберем поместить все сертификаты в следующее хранилище и нажмем Обзор:
Выберем Доверенные корневые центры сертификации и нажмем Ок:
Нажмем Далее
Нажмем Готово
На Запрос ответим Да
Сертификат успешно установлен!
Закроем окно с сертификатом и снова попробуем соединится.
Если перейти в полноэкранный режим то на верху появится замок:
Нажмем на него:
У нас включена проверка с помощью сертификатов и мы можем проверить сертификат
Проверка использования шифрования сервером XRDP
Проверим, что со стороны сервера используется TLS.
Удалим лог XRDP
rm /var/log/xrdp.logПерезапустим XRDP
systemctl restart xrdpПопробуем войти на сервер по RDP и после успешного входа из консоли PUTTY запустим:
cat /var/log/xrdp.log | grep TLS[2025-10-02T19:45:20.517+1100] [INFO ] Selected TLS security
[2025-10-02T19:45:20.456+1100] [INFO ] TLS connection established from [::ffff:192.168.1.40]:49538 TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384У нас используется шифрование соединения TLSv1.2 и шифр ECDHE-RSA-AES256-GCM-SHA384!
Заключение
Сегодня мы рассмотрели установку сервера XRDP в РЕДОС Linux и настроили его на использование шифрование соединения с использованием сертификатов:
Установили XCRDP;
Протестировали подключение к серверу с использованием mstsc;
Установили сеансом по умолчанию MATE;
Создали самоподписанный сертификат для XRDP;
Внесли изменения в конфигурацию XRDP;
Установили сертификат сервера с список доверенных корневых центров сертификации;
Проверили что соединение использует сертификат на клиенте;
Проверили использование сертификата сервером.
Добавить комментарий