Перейти к содержимому

ThinLinc: удалённый доступ к Linux-рабочим столам

ThinLinc: удалённый доступ к Linux-рабочим столам

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

Что такое ThinLinc

ThinLinc — сервер удалённого доступа к рабочим столам с архитектурой «сервер + клиенты». Сервер запускает сессии VNC на бэкенде, а клиенты подключаются через веб-браузер или нативные ThinLinc-клиенты. Протокол между клиентом и сервером туннелируется через SSH, что решает проблему шифрования «из коробки».

Ключевые особенности:

  • Встроенный веб-сервер для доступа к рабочему столу через браузер
  • Поддержка нативных клиентов для Linux, Windows, macOS
  • Балансировка нагрузки между серверами
  • Единый вход (SSO) через Kerberos и LDAP
  • Управление сессиями через веб-панель и CLI

Установка сервера

ThinLinc распространяется в виде пакетов для RHEL/CentOS 7/8/9 и Ubuntu/Debian. Для установки на RHEL-систему:

# Добавить репозиторий Cendio
sudo yum install -y https://www.cendio.com/downloads/thinlinc/rpm/cendio-release-latest.noarch.rpm

# Установить сервер
sudo yum install -y thinlinc-server

# Запустить сервисы
sudo systemctl start tlwebd
sudo systemctl start vncserver@:1

Для Ubuntu/Debian:

sudo dpkg -i thinlinc-server-*.deb
sudo systemctl start tlwebd
sudo systemctl start vncserver@:1

После установки доступна веб-панель по адресу https://<host>:1443.

Примечание

Порт 1443 — стандартный для веб-интерфейса ThinLinc. Если используется файрвол, откройте его и порт 22 для SSH-туннелирования.

Настройка сервера

Основная конфигурация хранится в /etc/thinlinc/. Ключевые файлы:

ФайлНазначение
tlconfigГлобальные настройки сервера
vncserver-config-defaultsПараметры VNC-сессий
client-to-server.d/Правила проброса портов и устройств
ssl/Сертификаты и ключи

Базовая настройка через tlconfig:

# Установить размер экрана по умолчанию
sudo tlconfig --set vncserver.default_screen_width 1920
sudo tlconfig --set vncserver.default_screen_height 1080

# Установить цветность
sudo tlconfig --set vncserver.default_color_depth 24

# Задать домашний каталог для сессий
sudo tlconfig --set vncserver.home_dir /var/lib/thinlinc

Для настройки VNC-параметров:

# Редактирование конфига VNC
sudo tlconfig --edit vncserver-config-defaults
Предупреждение

После изменения конфигурации через tlconfig требуется перезапуск сервисов: sudo systemctl restart tlwebd vncserver@:*.

Подключение клиентов

ThinLinc предоставляет несколько способов подключения:

  1. Веб-браузер — перейти на https://<host>:1443, ввести учётные данные. Работает на любом устройстве с современным браузером.
  2. Нативный клиент — скачать с того же URL-адреса. Клиенты доступны для Linux, Windows и macOS.
  3. RDP-клиент — ThinLinc поддерживает RDP-прокси, позволяя подключаться стандартным rdesktop или freerdp.

Подключение через нативный клиент:

# Linux
thinlinc-client

# Windows (PowerShell)
Start-Process "C:\Program Files\ThinLinc\Client\tlclient.exe"

Подключение через SSH-туннель вручную:

ssh -L 5901:localhost:5901 user@thinlinc-host
vncviewer localhost:5901

Администрирование и управление сессиями

Все активные сессии можно просмотреть через веб-панель (https://<host>:1443/admin) или через CLI:

# Список всех сессий
sudo /opt/thinlinc/bin/vncserver -list

# Завершить конкретную сессию
sudo /opt/thinlinc/bin/vncserver -kill :<display_number>

# Перезапуск конкретной сессии
sudo /opt/thinlinc/bin/vncserver -restart :<display_number>

Для массового управления:

# Завершить все сессии пользователя
sudo /opt/thinlinc/bin/vncserver -kill -u username

# Ограничение числа сессий на одного пользователя
sudo tlconfig --set vncserver.max_sessions_per_user 3

Веб-панель администратора позволяет:

  • Просматривать список сессий и их статус
  • Отправлять сообщения пользователям
  • Принудительно завершать сессии
  • Просматривать логи и метрики использования

Безопасность и интеграция

ThinLinc использует SSH для шифрования трафика между клиентом и сервером. Сертификаты веб-сервера можно заменить на собственные:

# Заменить самоподписанный сертификат
sudo cp server.crt /etc/thinlinc/ssl/
sudo cp server.key /etc/thinlinc/ssl/
sudo systemctl restart tlwebd

Интеграция с LDAP/Kerberos:

# Включить аутентификацию через LDAP
sudo tlconfig --set authentication.ldap.enabled true
sudo tlconfig --set authentication.ldap.server ldap://ldap.example.com
sudo tlconfig --set authentication.ldap.base_dn "dc=example,dc=com"

# Включить Kerberos
sudo tlconfig --set authentication.krb5.enabled true
sudo tlconfig --set authentication.krb5.realm EXAMPLE.COM

Для интеграции с PAM:

# Использовать системную аутентификацию PAM
sudo tlconfig --set authentication.pam.enabled true
Подсказка

ThinLinc поддерживает проброс USB-устройств и звука через SSH-туннель. Настраивается в client-to-server.d/ правилами для конкретных устройств.

ThinLinc — это готовое решение, которое избавляет от ручной сборки VNC-инфраструктуры с файрволами и сертификатами. Для сред, где нужен удалённый доступ к Linux-десктопам без компромиссов в безопасности, это один из наиболее прямых путей.