Jednym z nagłówków HTTP, które Apachehttpd
odsyła z danymi odpowiedzi, jest „Serwer”. Na przykład mój komputer z serwerem WWW jest stosunkowo aktualny Arch Linux. Odsyła nagłówki bardzo podobne do następujących:
HTTP/1.1 404 Not Found
Date: Thu, 10 Apr 2014 17:19:27 GMT
Server: Apache/2.4.9 (Unix)
Content-Length: 1149
Connection: close
Content-Type: text/html
Mam ServerSignature off
w /etc/httpd/conf/httpd.conf
, ale „Server:” nadal pojawia się nagłówek. Eksperymentowałem z mod_headers . Mam to włączone i próbowałem kilku rzeczy:
<IfModule headers_module>
Header set ProcessingTime "%D"
Header set Server BigJohn
</IfModule>
Po zatrzymaniu i uruchomieniu httpd
powyższej konfiguracji nagłówki HTTP zawierają coś podobnego ProcessingTime: 1523
, ale wiersz nagłówka „Serwer:” pozostaje niezmieniony. Wiem więc, że „mod_headers” jest zainstalowany i włączony, i działa, ale nie tak, jak chcę.
Widzę, że coś o nazwie „mod_security” twierdzi, że to robi, ale nie chcę całej reszty bagażu, który nosi przy sobie mod_security.
AKTUALIZACJA:
Po mod_security
zainstalowaniu potrzebujesz tylko kilku dyrektyw:
<IfModule security2_module>
SecRuleEngine on
ServerTokens Full
SecServerSignature "Microsoft-IIS/6.0"
</IfModule>
To dotyczy wersji mod_security
2.7.7
źródło
Odpowiedzi:
Identyfikator serwera / nagłówek tokena jest kontrolowany przez dyrektywę „ ServerTokens ” (dostarczoną przez
mod_core
). Oprócz modyfikowania kodu źródłowego Apache HTTPD lub korzystania zmod_security
modułu nie ma innego sposobu, aby całkowicie ukryć nagłówek identyfikatora serwera.Dzięki
mod_security
takiemu podejściu możesz wyłączyć wszystkie dyrektywy / funkcje modułu wmodsecurity.conf
pliku i wykorzystać tylko dyrektywę ID nagłówka serwera bez dodatkowego „bagażu”.źródło
mod_security jest świetny, ale tak naprawdę nie potrzebujesz go, aby osiągnąć swój cel.
po włączeniu wszystkich modów
httpd.conf
możesz po prostu odznaczyć wybrane nagłówki.http://httpd.apache.org/docs/2.4/mod/core.html#serversignature
źródło
sudo a2enmod headers
Header unset Server
nie działa w Apache 2.2 i 2.4. Nagłówki odpowiedzi wciąż zawierająServer: Apache
Właśnie aktualizuję to dla osób, które wciąż szukają. Miałem problem ze zmianą wiersza serwera w nagłówku HTTP. Ta rada powinna działać w przypadku dystrybucji oddziałów Debiana w systemach systemd i Apache 2.4.7. W szczególności używam Ubuntu Server LTS 14.04.03. Znalazłem kilka rad
Doprowadziło mnie to do /etc/apache2/conf-available/security.conf, gdzie podano zarówno ServerTokens, jak i ServerSignature. Dlatego wszelkie zmiany, które wprowadzałem w /etc/apache2/apache2.conf, były zastępowane przez dyrektywy już określone w security.conf.
Po prostu zmieniłem dyrektywy w security.conf i Apache zaczął działać tak, jak chciałem.
Na temat Headset unset Server znalazłem raport o błędzie, w którym twórcy Apache stwierdzili, że nie da się rozwiązać problemu. Najwyraźniej dla nich jest to kwestia filozoficzna, mimo że specyfikacja dla HTTP / 1.1, RFC 2616 została częściowo opracowana przez Tima Bernersa-Lee, mówiąc, że tag Server jest opcjonalny.
Naprawdę chciałem ustawić znacznik Server na „Nieznany”, aby nasze skany Qualys były szczęśliwe. Tak więc zainstalowałem mod_security, teraz nazywany libapache2-modsecurity, po tym samouczku DigitalOcean . Powodzenia, mam nadzieję, że pomogłem wam wszystkim przyszłym czytelnikom.
źródło
Testowałem coś na Oracle HTTP Server 11.1.1.9 (który jest zbudowany na Apache 2.2.22), który działał dla mnie w pewnym stopniu ..
Ustawienie „ServerTokens” na „none” wydaje się usuwać wartość nagłówka „Server”, chociaż sam nagłówek jest nadal wysyłany w odpowiedzi, ale teraz ma wartość zerową.
Nagłówek odpowiedzi wyglądałby tak:
źródło
none
na najnowszym Apache:ServerTokens takes 1 argument: 'Prod(uctOnly)', 'Major', 'Minor', 'Min(imal)', 'OS', or 'Full'