Jak usunąć serwer: nagłówek z odpowiedzi HTTP za pomocą Apache?

20

Chciałbym usunąć linię:

Server: Apache/2.2.8 (Ubuntu) PHP/5.2.4-2ubuntu5.6 with Suhosin-Patch mod_ssl/2.2.8 OpenSSL/0.9.8g

z odpowiedzi HTTP mojego serwera, ale nie mogłem znaleźć niczego innego, jak samodzielnie zmodyfikować include/ap_release.hi skompilować Apache. Zastanawiałem się, czy istnieje sposób, o którym nie wiem?

Neo
źródło

Odpowiedzi:

16

Możesz usunąć lub zamaskować identyfikator serwera z nagłówka HTTP za pomocą zapory ogniowej aplikacji sieci Web ModSecurity .

Maskowanie tożsamości serwera

Jedną z technik, która często pomaga spowolnić i dezorientować atakujących, jest zmiana tożsamości serwera WWW. Serwery sieciowe zazwyczaj wysyłają swoją tożsamość przy każdej odpowiedzi HTTP w nagłówku serwera. Apache jest tu szczególnie pomocny, domyślnie nie tylko wysyła swoją nazwę i pełną wersję, ale pozwala również modułom serwera na dołączanie ich wersji.

Aby zmienić tożsamość serwera WWW Apache, musisz przejść do kodu źródłowego, znaleźć gdzie na stałe zapisana jest nazwa „Apache”, zmienić go i ponownie skompilować serwer. Ten sam efekt można uzyskać za pomocą

Dyrektywa SecServerSignature:

SecServerSignature "Microsoft-IIS/5.0"

Należy zauważyć, że chociaż działa to całkiem dobrze, wykwalifikowani napastnicy (i narzędzia) mogą użyć innych technik do „odcisku palca” serwera WWW. Na przykład pliki domyślne, komunikat o błędzie, kolejność wychodzących nagłówków, sposób, w jaki serwer odpowiada na określone żądania itp. - mogą ujawnić prawdziwą tożsamość. W przyszłych wydaniach mod_security zajmę się dalszym ulepszaniem obsługi maskowania tożsamości.

Jeśli zmienisz podpis Apache, ale denerwuje Cię dziwny komunikat w dzienniku błędów (niektóre moduły są nadal widoczne - wpływa to tylko na dziennik błędów, ale z zewnątrz nadal działa zgodnie z oczekiwaniami):

[Fri Jun 11 04:02:28 2004] [notice] Microsoft-IIS/5.0 mod_ssl/2.8.12 OpenSSL/0.9.6b \ configured -- resuming normal operations

Następnie powinieneś ponownie ustawić kolejność ładowania modułów, aby pozwolić mod_security na ostatnie działanie, dokładnie tak, jak wyjaśniono dla chrootowania.

Uwaga

Aby ta dyrektywa działała, musisz pozostawić / ustawić ServerTokens na Full.

Gdy dyrektywa SecServerSignature zostanie użyta do zmiany podpisu serwera publicznego, ModSecurity rozpocznie zapisywanie prawdziwego podpisu w dzienniku błędów, aby umożliwić identyfikację serwera WWW i używanych modułów.

Źródło: Instrukcja obsługi ModSecurity

Chris_O
źródło
Działa teraz, ale myślę, że użycie innej istniejącej nazwy serwera nie jest mądre, ponieważ możesz wywoływać akcje ataku.
Codebeat
27

Jeśli ustawisz ServerTokensProd”, możesz zmniejszyć nagłówek do „ Server: Apache”. Pełna lista opcji znajduje się w dokumentacji:

Dokumentacja dla Apache 2.2

Dokumentacja dla Apache 2.4

Uwaga: ustawienia są takie same w obu wersjach, jednak dokumentacja 2.4 dodaje tę notatkę:

Ustawienie ServerTokens na wartość mniejszą niż minimalna nie jest zalecane, ponieważ utrudnia to debugowanie problemów interoperacyjnych. Pamiętaj również, że wyłączenie nagłówka Serwer: nie robi nic, aby Twój serwer był bardziej bezpieczny. Idea „bezpieczeństwa przez zaciemnienie” jest mitem i prowadzi do fałszywego poczucia bezpieczeństwa.

Jeśli chcesz całkowicie usunąć słowo „Apache”, musisz zmodyfikować źródło.

użytkownik1686
źródło
+1 tnx za odpowiedź, zapomniałem wspomnieć w pytaniu Wiedziałem o tym, ale chcę, żeby było napisane Microsoft IIS lub coś takiego. Powinienem to wyjaśnić.
Neo