Dlaczego X11 stanowi zagrożenie bezpieczeństwa na serwerach?

11

Pamiętam, że czytałem, że serwery nie mają GUI, ponieważ X11 stanowi zagrożenie bezpieczeństwa. Dlaczego?

Orcris
źródło

Odpowiedzi:

8

Dokumentacja społeczności Ubuntu wyjaśnia prawdziwe powody, dla których nie zaleca się uruchamiania GUI w systemie serwera produkcyjnego:

Większość programistów Ubuntu Server nie zaleca instalowania X na serwerze. Istnieje wiele powodów, dla których nie instaluje się GUI.

Oto niektóre powody, dla których nie należy instalować GUI:

  1. Będziesz mieć więcej kodu podlegającego lukom w zabezpieczeniach, więcej pakietów wymagających aktualizacji i więcej przestojów serwera.
  2. Pakiety X11 i pulpity nie są obsługiwane przez pełny 5-letni cykl życia wersji serwera LTS.
  3. Wydajność może ucierpieć, ponieważ GUI zużyje zasoby (pamięć, miejsce na dysku twardym, procesor itp.).
  4. Najlepszą praktyką jest instalowanie tylko potrzebnego oprogramowania na serwerze produkcyjnym.
  5. GUI może obejmować inne usługi sieciowe, które są nieodpowiednie dla serwera.
    1. Jednym z celów Ubuntu Desktop Edition jest ułatwienie użytkownikom korzystania z Linuksa. Podczas instalowania niektórych środowisk pulpitu zostaną zainstalowane usługi, których możesz nie chcieć. Na przykład demon avahi , który służy do konfigurowania sieci, dodaje kolejny otwarty port i może powodować niepożądane konflikty DNS z domeną .local.

Dlatego dla najbezpieczniejszego serwera najlepiej nie instalować GUI.

„ServerGUI” autor: „Współtwórcy wiki dokumentacji Ubuntu”, odtworzony tutaj jako dozwolony przez CC-BY-SA 3.0 .

W przeciwieństwie do dość powszechnego nieporozumienia, X11 jako serwer naprawdę nie ma nic wspólnego z tym, dlaczego uruchamianie GUI na serwerze produkcyjnym jest uważane za niedoskonałe z punktu widzenia bezpieczeństwa. X11 praktycznie nigdy nie jest domyślnie skonfigurowany tak, aby był dostępny przez sieć w dowolnym systemie operacyjnym. Żadna wersja Ubuntu nigdy nie miała X11 z serwerem dostępnym w sieci w domyślnej konfiguracji. (Aby uzyskać dostęp do X11 na Ubuntu przez TCP, musisz przesłać go przez SSH lub ręcznie ponownie skonfigurować serwer.)

Co więcej, nawet jeśli X11 uruchomił serwer dostępny w sieci , nie byłby to powód, aby nie instalować go w systemie serwera produkcyjnego. Każdy, kto korzysta z serwera produkcyjnego, prawdopodobnie jest w stanie go skonfigurować do swoich potrzeb i przeprowadzić audyt, aby upewnić się, że niepożądane usługi nie są uruchomione. (Jeśli nie mogą, że będzie stanowić o wiele większe zagrożenie dla ich bezpieczeństwa, niż byłyby tworzone poprzez zainstalowane GUI). Nawet jeśli X11 miał mieć port nasłuchiwania na interfejsie sieciowym fizyczne ( który nie jest to przypadek ), port może być łatwo zablokowany przez rekonfigurację wbudowanego netfilterza pomocą iptables(lub frontendu wyższego poziomu, takiego jak ufw).

Z kolei wymienione wyżej problemy nie są tak łatwe do przezwyciężenia przez rekonfigurację.

Eliah Kagan
źródło
1
10.04 miał inny czas życia wsparcia dla serwera niż na komputerze stacjonarnym, 12.04 i późniejsze nie. Ponadto bezczynne gui nie zużywa procesora, a używany przez niego RAM zostanie zamieniony.
psusi
@psusi Ważna jest zmiana cyklu życia wsparcia. Jeśli chodzi o problemy z procesorem i pamięcią RAM: (1) nie zgadzam się z doświadczeniem, że bezczynny interfejs GUI nigdy nie zużywa procesora, oraz (2) jeśli interfejs GUI jest uruchomiony, to kiedy ktoś pracuje na komputerze lokalnym, prawdopodobnie go używa, niezależnie od tego, czy chcą lub nie, a to zużyje więcej zasobów procesora i pamięci. Jednak punkty 1, 4 i 5 są naprawdę (i prawdopodobnie zawsze były) najważniejszymi powodami, dla których należy rozważyć brak uruchamiania GUI na serwerze produkcyjnym i są one niezależne od cyklu życia wsparcia lub problemów z wykorzystaniem zasobów.
Eliah Kagan
Dodam, że Xorg również domyślnie działa jako root.
Wadih M.
5

Każdy uruchomiony proces stanowi zagrożenie bezpieczeństwa. Zwłaszcza te, które nasłuchują na porcie sieciowym (X11 robi).

Ogólna dobra praktyka to nie uruchamiać niczego na serwerze, który absolutnie nie musi tam być, a X11 z pewnością nie musi znajdować się na serwerze, na którym będziesz SSH.

Wątpię, aby artykuł, który czytałeś, mówił o konkretnej podatności w X11 (zostałby naprawiony, gdyby tak było, luki nie mają tendencji do zawieszania się przez długi czas), ale raczej ogólnie dobrą praktyką.

Cez
źródło
2
W większości współczesnych dystrybucji Linuksa (takich jak Ubuntu) serwer X domyślnie nie nasłuchuje na porcie sieciowym, ale akceptuje tylko połączenia lokalne za pośrednictwem gniazd domeny.
Florian Diesch
@FlorianDiesch Nawet na nieskonfigurowanym serwerze?
Amith KK,
Duża +1 za wspomnienie, że X11 to serwer sieciowy.
Stefano Palazzo
2
Amith: Tak. -nolisten tcpDomyślnie
xinit
5

Wynika to z faktu, że system X Window stanowi poważne zagrożenie bezpieczeństwa, jeśli nie jest odpowiednio zabezpieczony. „Wyświetlacz” X11 to serwer X11 działający na pulpicie, zawierający ekran, klawiaturę i mysz. Jeśli ekran X11 jest niepewny, pozwoli na połączenie programu działającego w dowolnym miejscu w Internecie, a połączenie może być całkowicie niewidoczne. Po połączeniu program ten ma pełny dostęp do twojego wyświetlacza, co oznacza, że ​​może:

  • Przeglądaj i kopiuj zawartość ekranu za pomocą standardowych programów narzędziowych X11;
  • Monitoruj swoje naciśnięcia klawiszy;
  • Zdalnie steruj dowolną przeglądarką Netscape na pulpicie i fałszuj naciśnięcia klawiszy tak, jakbyś pisał je sam (chociaż nie wszystkie aplikacje X11 są na to podatne).

NIE należy używać reguły kciuka xhost +- całkowicie wyłącza ona bezpieczeństwo twojego wyświetlacza.

Dobrym sposobem jest przekazanie X do końca ssh


Zaczerpnięte z : http://www2.slac.stanford.edu/computing/security/xwindow/

Amith KK
źródło
1
Ten artykuł ma około 10 lat. Czy informacje są nadal aktualne?
Stefano Palazzo
1
Przeważnie tak ... ponieważ AFAIK mamy xhost +polecenie
Amith KK
xhost +nie można jednak przesłonić -nolisten tcp, wystarczy otworzyć cię na dowolne połączenie z hosta lokalnego.
alanc
czy te problemy można rozwiązać, uruchamiając xserver dla każdej aplikacji osobno?
phil294
-6

Prawdziwy powód jest taki, że administratorzy mogą uważać się za super inteligentnych, uruchamiając rzeczy z wiersza poleceń. Nie ma zagrożenia bezpieczeństwa związanego z uruchomieniem GUI na serwerze Ubuntu.

Rich Striker
źródło