Відповіді:
Документація спільноти Ubuntu пояснює реальні причини, чому не рекомендується запускати графічний інтерфейс на виробничому сервері:
Більшість розробників Ubuntu Server не рекомендують встановлювати X на сервер. Існує кілька причин не встановлення графічного інтерфейсу.
Деякі причини не встановлювати графічний інтерфейс включають:
- У вас буде більше коду, залежно від уразливості безпеки, більше пакетів, які потребують оновлення, та більше простоїв на сервері.
- Пакети X11 та настільні комп’ютери не підтримуються протягом повного 5-річного життєвого циклу випуску сервера LTS.
- Продуктивність може постраждати, оскільки графічний інтерфейс буде споживати ресурси (пам'ять, місце на жорсткому диску, процесор тощо).
- Найкраще застосовувати необхідне програмне забезпечення лише на виробничому сервері.
- GUI може включати в себе інші мережеві послуги, невідповідні для сервера.
- Однією з цілей Ubuntu Desktop Edition є полегшення користувачам використання Linux. Під час встановлення деяких середовищ робочого столу будуть встановлені служби, які ви, можливо, не бажаєте. Наприклад, avahi-daemon , який використовується для налаштування мережі, додає ще один відкритий порт і може ввести небажані конфлікти DNS з доменом .local.
Тому для найбільш захищеного сервера найкраще не встановлювати графічний інтерфейс.
"ServerGUI" від "Дописувачі до вікі документації Ubuntu", відтворені тут, як це дозволено CC-BY-SA 3.0 .
На відміну від дещо поширеного хибного уявлення, що сервер X11 насправді не має нічого спільного з тим, чому запуск GUI на виробничому сервері з точки зору безпеки вважається неідеальним. X11 практично ніколи не налаштовується за замовчуванням, щоб бути доступним більше по мережі в будь-якій операційній системі. Жодна версія Ubuntu ніколи не мала X11 запускати доступний для мережі сервер у конфігурації за замовчуванням. (Щоб отримати доступ до X11 в Ubuntu через TCP, вам потрібно переслати його через SSH або вручну налаштувати сервер.)
Крім того, навіть якщо X11 запускав сервер , доступний для мережі , це не буде причиною його встановлення на виробничій серверній системі. Кожен, хто працює з виробничим сервером, імовірно, може налаштувати його на свої потреби та перевірити його, щоб переконатися, що небажані служби не працюють. (Якщо вони не зможуть, це становитиме набагато більшу загрозу для їхньої безпеки, ніж це було б створено встановленням графічного інтерфейсу.) Навіть якщо X11 довелося мати порт, який прослуховує фізичний мережевий інтерфейс ( це не так ), порт може бути легко заблокований за допомогою перенастроювання вбудованого за netfilter
допомогою iptables
(або фронтенду вищого рівня ufw
).
На відміну від перерахованих вище проблем не так легко подолати шляхом конфігурації.
Кожен запущений процес є ризиком для безпеки. Особливо тих, хто слухає мережевий порт (X11 робить).
Загальна добра практика полягає в тому, щоб не запускати нічого на сервері, який абсолютно не повинен бути там, і X11, безумовно, не повинен бути на сервері, на якому ви будете SSH.
Я сумніваюсь, що прочитана вами стаття говорила про певну вразливість у X11 (вона була б виправлена, якби так, вразливості не мають тенденції довгий час не виправлятися), а про загальну хорошу практику.
-nolisten tcp
за замовчуванням
Це відбувається тому, що система X Window становить серйозний ризик для безпеки, якщо вона не є належним чином захищеною. "Дисплей" X11 - це сервер X11, який працює на вашому робочому столі і включає екран, клавіатуру та мишу. Якщо ваш дисплей X11 незахищений, він дозволить програмі, що працює в будь-якій точці Інтернету, підключитися до нього, і це з'єднання може бути для вас абсолютно непомітним. Після підключення ця програма має повний доступ до вашого дисплея, це означає, що вона може:
Правило великого пальця НЕ використовувати xhost +
- Це повністю вимикає безпеку вашого дисплея.
Хороший спосіб - передати X через ssh
Взято з : http://www2.slac.stanford.edu/computing/security/xwindow/
xhost +
команда
xhost +
-nolisten tcp
Однак не вдається перекрити , просто відкрийте вам будь-яке з'єднання з localhost.
Справжня причина полягає в тому, що адміністратори можуть вважати себе надзвичайно розумними, запускаючи речі з командного рядка. Немає ризику безпеки для запуску графічного інтерфейсу на сервері Ubuntu.