Гид по технологиям

Как настроить терминальный сервер в Linux на Ubuntu 9.10 с помощью FreeNX

10 min read Администрирование Обновлено 18 Oct 2025
Терминальный сервер на Ubuntu 9.10 с FreeNX
Терминальный сервер на Ubuntu 9.10 с FreeNX

Краткое содержание


Введение

В этой инструкции шаг за шагом показано, как превратить рабочую станцию с Ubuntu 9.10 в терминальный сервер, доступный с тонких клиентов и обычных рабочих станций через протокол NX (реализация — FreeNX). Материал рассчитан на системных администраторов и продвинутых пользователей. Объяснения простыми словами: FreeNX — это реализация протокола NX от NoMachine; он минимизирует трафик, оставляя хорошее качество и отзывчивость интерфейса.

Важно: инструкция проверена автором в конкретной среде; безопасность сети сложна. Следуйте рекомендациям и адаптируйте их под свою инфраструктуру.

Что такое FreeNX и зачем он нужен

FreeNX — свободная реализация серверной части протокола NX. NX использует SSH для туннелирования трафика, поэтому соединения шифруются по умолчанию. В сравнении с VNC, NX более экономен по пропускной способности и даёт лучшую интерактивность.

Краткие определения:

  • NX: протокол удалённого рабочего стола, оптимизированный для медленных каналов.
  • FreeNX: открытая реализация сервера NX.
  • NoMachine NX Client: официальные клиенты для Windows, macOS, Linux, Solaris.

Когда это имеет смысл

  • Доступ к рабочему месту из внешней сети при минимальном изменении инфраструктуры.
  • Использование слабых клиентов (нетбуки, устаревшие ПК) вместе с мощным сервером/рабочей станцией.
  • Централизованное управление пользовательскими сеансами и снижение риска заражения локальных машин.

Быстрый обзор шагов

  1. Установка Ubuntu 9.10.
  2. Установка OpenSSH, fail2ban, firehol.
  3. Статический IP и базовая сетевая настройка.
  4. Настройка firehol (брандмауэр) — разрешаем входящие SSH.
  5. Установка FreeNX и начальная настройка ключей.
  6. Установка NX Client на клиентские машины и подключение.
  7. Дополнительные меры безопасности и операционные процедуры.

Требования

  • Сервер: Ubuntu 9.10 с правами root.
  • Доступ к интернету для загрузки пакетов и репозиториев.
  • Маршрутизатор для проброса портов (если требуется доступ извне).
  • Клиент: NoMachine NX Client или совместимый клиент.

Подготовка системы

Откройте терминал: в интерфейсе GNOME это Applications -> Accessories -> Terminal. Повысите привилегии:

 sudo su -l

Установите необходимые пакеты (openssh-server обязателен; fail2ban поможет предотвратить брутфорс; firehol упростит генерацию правил iptables):

 aptitude update && aptitude install openssh-server fail2ban firehol

Проверьте работу SSH:

 ssh 127.0.0.1

Вы увидите отпечаток ключа RSA и предложение подтвердить подключение. Зафиксируйте отпечаток (он пригодится позже). Нажмите Ctrl-C, чтобы прервать попытку входа — нам только нужен тест доступности сервера SSH.

Настройка сети (статический IP)

Поскольку сервер будет доступен удалённо, целесообразно назначить статический IP. Получите текущие параметры:

 ifconfig eth0
 cat /etc/resolv.conf
 route

Запишите адрес, маску, broadcast, DNS и шлюз (Gateway). Выберите адрес в том же диапазоне, но вне зоны выдачи DHCP, чтобы избежать конфликтов.

Отредактируйте сетевые интерфейсы:

 nano /etc/network/interfaces

Если есть строка

 iface eth0 inet dhcp

замените dhcp на static, либо добавьте конфигурацию:

 iface eth0 inet static
     address 192.168.1.253
     netmask 255.255.255.0
     network 192.168.1.0
     broadcast 192.168.1.255
     gateway 192.168.1.1
     dns-nameservers 8.8.8.8, 8.8.4.4

Примечание: приведённые значения — примеры; используйте параметры своей сети. Я рекомендую DNS от Google для простоты запоминания, если вас устраивает их политика конфиденциальности.

Перезапустите сетевые службы и проверьте подключение:

 /etc/init.d/networking restart

Откройте браузер и убедитесь, что есть доступ в интернет.

Настройка брандмауэра с firehol

Редактирование файла конфигурации firehol и включение сервиса:

 nano /etc/default/firehol

Измените

 START_FIREHOL=NO

на

 START_FIREHOL=YES

Обновим список зарезервированных адресов IANA:

 get-iana

Откройте основной конфигурационный файл firehol:

 nano /etc/firehol/firehol

Внизу добавьте правила для простого сценария: разрешаем входящие подключения только для SSH и разрешаем любые исходящие:

 server ssh accept

Сохраните файл и запустите firehol:

 firehol start

Ожидаемый вывод:

 Activating new firewall (47 rules): OK

Проверить сгенерированные правила:

 iptables --list

Важно: в более строгих средах стоит закрывать исходящие соединения и открывать конкретные сервисы, а также вести лог событий.

Установка FreeNX

Добавим PPA и установим FreeNX:

 add-apt-repository ppa:freenx-team
 aptitude update
 aptitude install freenx
 /usr/lib/nx/nxsetup --install

После установки вы можете сгенерировать пользовательские ключи NX. Ключи повышают безопасность: если сервер доступен снаружи, подумайте о создании собственных ключей и распространении их среди клиентов.

Генерация ключей FreeNX выполняется утилитой nxsetup либо вручную. Если вы генерируете ключи, сохраните копию приватного ключа в надёжном месте — он потребуется клиентам.

Конфигурация OpenSSH (рекомендации безопасности)

Резюме рекомендаций для sshd_config (/etc/ssh/sshd_config):

  • Отключите вход root по паролю, используйте sudo для администрирования.
  • Рассмотрите вариант отключения аутентификации по паролю (PasswordAuthentication no) и включения ключевой аутентификации (AuthorizedKeys). Это повысит безопасность, но потребует настройки ключей для пользователей.
  • Ограничьте доступ в AllowUsers/AllowGroups, если необходимо.
  • Поддерживайте актуальные ключи и проверяйте отпечатки при первом подключении.

Пример изменений:

 PermitRootLogin no
 PasswordAuthentication yes
 AllowUsers alice bob

Если вы отключаете пароли, смените PasswordAuthentication на no и настройте SSH-ключи у пользователей.

Перезапустите SSH после изменений:

 /etc/init.d/ssh restart

Важно: если вы работаете через SSH при редактировании конфигурации, оставьте активную сессию или настройте метод отката, чтобы не заблокировать себя.

Настройка fail2ban

fail2ban поможет блокировать IP, проявляющие подозрительную активность (много неверных попыток входа). Базовая конфигурация /etc/fail2ban/jail.conf содержит секцию для sshd. Пример минимальной настройки:

 [sshd]
 enabled = true
 port = 22
 filter = sshd
 logpath = /var/log/auth.log
 maxretry = 5
 bantime = 3600

Перезапустите fail2ban:

 /etc/init.d/fail2ban restart

Проверьте баны:

 fail2ban-client status sshd

Установка клиента NoMachine NX (клиентская сторона)

Перейдите на http://www.nomachine.com/download.php и скачайте клиент для вашей ОС. Установка стандартная. При первом запуске используйте мастера подключения (NX Connection Wizard):

  • Назовите сессию.
  • Укажите IP адрес сервера.
  • Установите тип сети: LAN (скорее всего).
  • Выберите окружение рабочего стола: GNOME для Ubuntu 9.10 по умолчанию.
  • Укажите разрешение экрана и остальные параметры.

Если вы сгенерировали собственный ключ FreeNX, включите Advanced Configuration и импортируйте ключ в разделе Server -> Key.

При первом подключении проверьте отпечаток сервера SSH — он должен совпадать с тем, что вы записали при локальном тесте ssh 127.0.0.1.

Организация пользователей и права

Создавайте учётные записи пользователей для каждого человека: System -> Administration -> Users and Groups. Присвойте пользователям необходимые группы и права. Если вы хотите, чтобы каждый подключающийся имел отдельный сеанс рабочего стола, используйте стандартные учётные записи. Если требуется централизованная аутентификация, рассмотрите интеграцию с LDAP/Active Directory.

Проброс портов и доступ извне

Чтобы подключаться из интернета, пробросьте порт 22 на роутере на IP сервера. В бизнес-сценарии чаще ставят промежуточный брандмауэр/бастион и пробрасывают только его порт; внутри сети — ещё один брандмауэр между сервером и внутренней сетью.

Если сервер будет доступен извне, настоятельно рекомендуется:

  • Генерировать собственные ключи FreeNX.
  • Использовать ключевую аутентификацию SSH.
  • Ограничивать список IP-адресов (если возможно).

Тестирование и приёмка (Критерии приёмки)

Критерии приёмки:

  • SSH доступен локально и удалённо (с доверенного клиента).
  • FreeNX установлен и служба запущена.
  • Клиент может подключиться и получить рабочий стол GNOME.
  • fail2ban фиксирует неверные попытки входа и блокирует подозрительные IP.
  • firehol закрывает все входящие порты, кроме 22.
  • Отпечаток SSH на клиенте совпадает с отпечатком, полученным локально.

Тест-кейсы:

  • Попытка подключения по SSH с правильным логином/паролем — успешна.
  • Попытка подключения по SSH с неверным паролем 6 раз — IP в бане.
  • Подключение по NX — рабочий стол отображается, ввод-вывод адекватны.
  • Перезапуск сетевой службы — сервер возвращает статический IP.

Ролики действий: чек-листы по ролям

Администратор (перед вводом в эксплуатацию):

  • Настроить статический IP.
  • Установить openssh-server, fail2ban, firehol, freenx.
  • Проверить отпечаток SSH.
  • Настроить брандмауэр и запустить firehol.
  • Сгенерировать FreeNX-ключи (если требуется) и сохранить их в безопасном месте.

Пользователь (первое подключение):

  • Скачал и установил NoMachine NX Client.
  • Импортировал ключ, если требуется.
  • Подключился, подтвердил отпечаток SSH.
  • Сообщил администратору об ошибках.

Операционный SOP: быстрый набор команд

  1. Проверка статуса SSH:
 service ssh status
  1. Проверка FreeNX:
 ps aux | grep nx
 /etc/init.d/freenx status    # если служба доступна так называется
  1. Перезапуск firehol:
 firehol restart
  1. Просмотр логов авторизации:
 tail -n 200 /var/log/auth.log
  1. Проверка fail2ban:
 fail2ban-client status
 fail2ban-client status sshd

Инцидентный план и откат (Runbook)

Сценарий: сервер недоступен извне после изменения конфигурации SSH

Шаги отката:

  1. Откройте консоль на месте или подключитесь через KVM/VM.
  2. Восстановите файл /etc/ssh/sshd_config из резервной копии или отмените последние изменения.
  3. Перезапустите ssh: /etc/init.d/ssh restart
  4. Проверьте сетевые правила firehol: временно отключите firehol: firehol stop.
  5. Если причина в FreeNX — перезапустите службу или удалите недавно установленные широкие правила.

Всегда сохраняйте резервные копии конфигураций перед внесением изменений.

Безопасность: жёсткие рекомендации

  • Используйте ключи SSH вместо паролей, когда это возможно.
  • Запретите root-вход по SSH.
  • Настройте fail2ban с разумными параметрами maxretry и bantime.
  • Если сервер доступен публично, используйте VPN-бастион или ограничивайте доступ по IP.
  • Обновляйте пакеты и применяйте патчи (в контексте устаревшей Ubuntu 9.10 это важно; рассмотрите обновление до поддерживаемой версии).

Important: Ubuntu 9.10 больше не поддерживается официально. По возможности обновите систему до поддерживаемой LTS-версии. Работа с устаревшей ОС повышает риски безопасности.

Альтернативы и сравнительная матрица

Кратко о вариантах:

  • FreeNX / NoMachine NX — хороши при ограниченной пропускной способности и требовании шифрования через SSH.
  • RDP (Windows Remote Desktop) — нативно для Windows, меньше подходит для Linux GUI по умолчанию.
  • VNC — прост, но менее экономен по трафику и часто без встроенного шифрования.
  • X2Go — современная альтернатива NX для Linux; использует NX-принципы и часто актуальнее для новых дистрибутивов.

Рекомендация: для новых проектов рассмотрите X2Go или современные версии NoMachine; FreeNX хорошо работает на Ubuntu 9.10, но экосистема развивалась.

Миграция старых клиентов / обратная совместимость

Если у вас есть старые клиенты или устаревшие операционные системы:

  • Тестируйте соединение заранее.
  • Подготовьте список поддерживаемых клиентов и версий.
  • Для массового развёртывания создайте образ конфигурации клиента с импортированным ключом и параметрами подключения.

Факторы риска и меры смягчения (Risk matrix)

  • Неподдерживаемая ОС (высокий риск) → Миграция на поддерживаемую версию.
  • Открытый SSH для всего интернета (средний-высокий) → Включить ключи, ограничить IP, использовать VPN.
  • Проброс порта на роутере без брандмауэра внутри (средний) → Разместить сервер за промежуточным брандмауэром.

Глоссарий (одна строка)

  • SSH: защищённый протокол удалённого доступа по сети.
  • NX: протокол удалённого рабочего стола, оптимизированный по пропускной способности.
  • FreeNX: серверная реализация NX с открытым кодом.
  • fail2ban: инструмент для автоматической блокировки злонамеренных IP.
  • firehol: менеджер правил iptables на основе сценариев.

Частые ошибки и способы их устранения (Edge-case gallery)

  • Клиент видит пустой экран при подключении: проверьте выбранное окружение рабочего стола (GNOME vs KDE).
  • Отпечаток SSH не совпадает: не принимайте ключ, проверьте возможный MITM и сверяйте с локальным отпечатком.
  • Невозможность подключиться извне: проверьте проброс портов на маршрутизаторе и правила firehol.

Пример конфигурации fail2ban и firehol — шаблоны

fail2ban (/etc/fail2ban/jail.local):

 [DEFAULT]
 bantime = 86400
 findtime = 600
 maxretry = 5

 [sshd]
 enabled = true
 port = ssh
 filter = sshd
 logpath = /var/log/auth.log

firehol (низкоуровневый пример, /etc/firehol/firehol):

 version 6

 interface any world
     policy accept

# loopback
 interface lo
     policy accept

# accept ssh from anywhere
 server ssh accept

# остальные входящие закрыты по умолчанию

Адаптируйте под свою политику безопасности.

Решение при распространённых проблемах (Таблица действий)

  • SSH не запускается: проверьте /var/log/auth.log и синтаксис /etc/ssh/sshd_config.
  • FreeNX не принимает подключения: проверьте, что /usr/lib/nx/nxserver работает и нет конфликтов портов.
  • Пользователь не видит рабочий стол: убедитесь, что у пользователя установлен графический сеанс GNOME и он в списке разрешённых.

Мини-методология развёртывания (шаблон по этапам)

  1. Подготовить ОС и выполнить обновления.
  2. Настроить сеть и DNS.
  3. Установить базовые сервисы (SSH, fail2ban, firehol).
  4. Установить и настроить FreeNX.
  5. Настроить клиентские машины и протестировать подключение.
  6. Провести аудит безопасности и документировать конфигурацию.
  7. Ввести в эксплуатацию и мониторить логи.

Decision flowchart (Mermaid)

flowchart TD
  A[Начало: Есть Ubuntu 9.10?] -->|Да| B{Подключение извне нужно?}
  A -->|Нет| Z[Установите Ubuntu или обновитесь]
  B -->|Да| C[Настроить статический IP и проброс портов]
  B -->|Нет| D[Настроить локальную сеть]
  C --> E[Установить OpenSSH, fail2ban, firehol]
  D --> E
  E --> F[Установить FreeNX и сгенерировать ключи]
  F --> G[Установить клиент NoMachine и протестировать]
  G --> H[Ввести в эксплуатацию и мониторить]

Короткое руководство для анонса (внутреннее уведомление, 100–200 слов)

Короткий анонс: Мы внедрили терминальный сервер на базе Ubuntu 9.10 с FreeNX, обеспечивающий защищённый удалённый доступ к рабочим станциям по SSH. Приоритет — безопасность: сервер работает за firehol, настроен fail2ban и используется шифрование SSH. Для работы скачайте NoMachine NX Client и настройте сессию по адресу сервера. Для доступа из внешней сети потребуется проброс порта 22. Администрация обеспечивает поддержку настройки клиента и выдачу необходимых ключей.


Дополнительные ресурсы

FAQ

В: Можно ли использовать FreeNX на современных версиях Ubuntu?

О: FreeNX исторически работал на старых версиях. Для современных систем рекомендуются X2Go или актуальные версии NoMachine.

В: Нужно ли пробрасывать порт 22 для всех пользователей?

О: Для удалённого доступа извне — да, нужен проброс порта 22 или доступ через bastion/VPN. Рассмотрите безопасные альтернативы.

В: Что делать, если отпечаток SSH изменился?

О: Не подключайтесь и немедленно свяжитесь с администратором. Изменённый отпечаток может указывать на атаку типа “man-in-the-middle”.


Итог

Вы получили пошаговое руководство по развёртыванию терминального сервера на Ubuntu 9.10 с помощью FreeNX. Ключевые моменты: настройка статического IP, запуск OpenSSH, настройка firehol и fail2ban, установка FreeNX и клиентской части NoMachine. Не забывайте про меры безопасности и документируйте все изменения.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Ronggolawe: что это и как защититься
Кибербезопасность

Ronggolawe: что это и как защититься

Автоматическое выключение Nest при похолодании
Умный дом

Автоматическое выключение Nest при похолодании

Отключать Wi‑Fi при подключении к Ethernet
Сеть

Отключать Wi‑Fi при подключении к Ethernet

Как поставить собственную картинку профиля в Netflix
Руководство

Как поставить собственную картинку профиля в Netflix

Open Me Later — автозапуск вкладок в Chrome
браузер

Open Me Later — автозапуск вкладок в Chrome

M-Audio Transit в Ubuntu 9.04 (AMD64)
Linux аудио

M-Audio Transit в Ubuntu 9.04 (AMD64)