Pamiętam, że czytałem, że serwery nie mają GUI, ponieważ X11 stanowi zagrożenie bezpieczeństwa. Dlaczego?
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:
- Będziesz mieć więcej kodu podlegającego lukom w zabezpieczeniach, więcej pakietów wymagających aktualizacji i więcej przestojów serwera.
- Pakiety X11 i pulpity nie są obsługiwane przez pełny 5-letni cykl życia wersji serwera LTS.
- Wydajność może ucierpieć, ponieważ GUI zużyje zasoby (pamięć, miejsce na dysku twardym, procesor itp.).
- Najlepszą praktyką jest instalowanie tylko potrzebnego oprogramowania na serwerze produkcyjnym.
- GUI może obejmować inne usługi sieciowe, które są nieodpowiednie dla serwera.
- 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 netfilter
za 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ę.
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ą.
źródło
-nolisten tcp
DomyślnieWynika 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:
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/
źródło
xhost +
poleceniexhost +
nie można jednak przesłonić-nolisten tcp
, wystarczy otworzyć cię na dowolne połączenie z hosta lokalnego.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.
źródło