Чому X11 загрожує безпеці на серверах?


11

Я пам'ятаю, як читав, що на серверах немає графічного інтерфейсу, оскільки X11 - це ризик для безпеки. Чому?

Відповіді:


8

Документація спільноти Ubuntu пояснює реальні причини, чому не рекомендується запускати графічний інтерфейс на виробничому сервері:

Більшість розробників Ubuntu Server не рекомендують встановлювати X на сервер. Існує кілька причин не встановлення графічного інтерфейсу.

Деякі причини не встановлювати графічний інтерфейс включають:

  1. У вас буде більше коду, залежно від уразливості безпеки, більше пакетів, які потребують оновлення, та більше простоїв на сервері.
  2. Пакети X11 та настільні комп’ютери не підтримуються протягом повного 5-річного життєвого циклу випуску сервера LTS.
  3. Продуктивність може постраждати, оскільки графічний інтерфейс буде споживати ресурси (пам'ять, місце на жорсткому диску, процесор тощо).
  4. Найкраще застосовувати необхідне програмне забезпечення лише на виробничому сервері.
  5. GUI може включати в себе інші мережеві послуги, невідповідні для сервера.
    1. Однією з цілей 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).

На відміну від перерахованих вище проблем не так легко подолати шляхом конфігурації.


1
10.04 мали інший термін служби сервера проти робочого столу, 12.04 і пізніше не роблять. Крім того, непрацюючий gui не споживає жодного процесора, і оперативної пам'яті, яку він використовує, буде замінено.
psusi

@psusi Справа про зміну життєвого циклу підтримки є хорошою. Що стосується питань процесора та оперативної пам’яті, (1) я не погоджуюся з досвідом того, що незадіяний графічний інтерфейс ніколи не споживає процесор, і (2) якщо графічний інтерфейс працює, то коли хтось працює на локальній машині, він, швидше за все, використовує його, чи вони хочуть чи ні, і це призведе до того, що воно буде споживати більше ресурсів процесора та пам'яті. Однак пункти 1, 4 і 5 дійсно є (і, мабуть, завжди були) найбільш вагомими причинами вважати відсутність роботи графічного інтерфейсу на виробничому сервері, і вони не залежать від проблем життєвого циклу підтримки або використання ресурсів.
Ілля Каган

Можна додати, що Xorg також за замовчуванням працює як root.
Вадіх М.

5

Кожен запущений процес є ризиком для безпеки. Особливо тих, хто слухає мережевий порт (X11 робить).

Загальна добра практика полягає в тому, щоб не запускати нічого на сервері, який абсолютно не повинен бути там, і X11, безумовно, не повинен бути на сервері, на якому ви будете SSH.

Я сумніваюсь, що прочитана вами стаття говорила про певну вразливість у X11 (вона була б виправлена, якби так, вразливості не мають тенденції довгий час не виправлятися), а про загальну хорошу практику.


2
У більшості сучасних дистрибутивів Linux (наприклад, Ubuntu) сервер X за замовчуванням не прослуховує мережевий порт, а приймає лише локальні з'єднання через сокети домену.
Флоріан Дієш

@FlorianDiesch Навіть на неконфігурованому сервері?
Аміт КК

Великий +1 за те, що X11 - це мережевий сервер.
Стефано Палацо

2
Аміт: Так. xinit / startx використовує -nolisten tcpза замовчуванням
Флоріан Дієш

5

Це відбувається тому, що система X Window становить серйозний ризик для безпеки, якщо вона не є належним чином захищеною. "Дисплей" X11 - це сервер X11, який працює на вашому робочому столі і включає екран, клавіатуру та мишу. Якщо ваш дисплей X11 незахищений, він дозволить програмі, що працює в будь-якій точці Інтернету, підключитися до нього, і це з'єднання може бути для вас абсолютно непомітним. Після підключення ця програма має повний доступ до вашого дисплея, це означає, що вона може:

  • Переглядайте та копіюйте вміст екрану, використовуючи стандартні утиліти X11;
  • Контролюйте свої натискання клавіш;
  • Дистанційно керуйте будь-яким браузером Netscape на вашому робочому столі та натисканням клавіш Forge так, як ніби ви вводили їх самостійно (хоча не всі програми X11 чутливі до цього).

Правило великого пальця НЕ використовувати xhost +- Це повністю вимикає безпеку вашого дисплея.

Хороший спосіб - передати X через ssh


Взято з : http://www2.slac.stanford.edu/computing/security/xwindow/


1
Цій статті 10 років. Чи інформація все ще є дійсною?
Стефано Палацо

1
В основному, так ... тому що AFAIK у нас є xhost +команда
Аміт KK

xhost +-nolisten tcpОднак не вдається перекрити , просто відкрийте вам будь-яке з'єднання з localhost.
alanc

Чи могли б ці проблеми вирішити, запустивши xserver для кожної програми окремо?
phil294

-6

Справжня причина полягає в тому, що адміністратори можуть вважати себе надзвичайно розумними, запускаючи речі з командного рядка. Немає ризику безпеки для запуску графічного інтерфейсу на сервері Ubuntu.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.