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

Индекс LLMS: [llms.txt](/llms.txt)

---

## 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-систему:

```bash
# Добавить репозиторий 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:

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

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

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

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

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

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

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

```bash
# Установить размер экрана по умолчанию
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-параметров:

```bash
# Редактирование конфига VNC
sudo tlconfig --edit vncserver-config-defaults
```

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

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

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

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

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

```bash
# Linux
thinlinc-client

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

```bash
# Включить аутентификацию через 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:

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

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

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