MC, 12:35 wtorek, 10.07.2012 r.
Ilustracja do artykułu: Apache2 - Włączanie i wyłączanie informacji o serwerze i systemie na stronach z błędami

Apache2 - Włączanie i wyłączanie informacji o serwerze i systemie na stronach z błędami

Każdy kiedyś trafił na nieistniejącą stronę internetową, czy chociaż jej podstronę. Bardzo często można wtedy zobaczyć wiele informacji na temat serwera na jakim stoi, takich jak jego wersja czy system o jaki jest oparty. Może to być np. "Apache/2.2.17 (Ubuntu) PHP/5.3.5-1ubuntu7.10 with Suhosin-Patch Server at localhost Port 80". Nie jest to wcale bezpieczne podejście, ponieważ jeśli mamy np. nieaktualny serwer, którego niedoskonałości są powszechnie znane, prosimy się wręcz o wykorzystanie tych słabości. W tym artykule postaram się pokazać, jak włączać i wyłączać wyświetlanie takich informacji przez serwer Apache.

Gdzie wprowadzić modyfikacje?

Jako że naszym celem jest wyłączenie (lub też włączenie) wyświetlania ważnych informacji na temat serwera na stronach, na których wystąpiły jakieś błędy, musimy odnaleźć plik konfiguracyjny Apache2 (bo nim się tutaj będziemy zajmować). Nosi on nazwę apache2.conf (można również wprowadzać zmiany w httpd.conf, który jest wczytywany przez apache2.conf), jednak jego położenie może się nieco różnić, w zależności od posiadanej dystrybucji Linuksa. W moim przypadku jest to /etc/apache2/apache2.conf, polecam jednak sprawdzić jego ścieżkę położenia, wyszukując jej za pomocą polecenia locate (więcej o locate: Ubuntu/Debian - Wyszukiwanie plików na Linuksie):
$ locate apache2.conf
/etc/apache2/apache2.conf
/usr/share/doc/apache2.2-common/examples/apache2/apache2.conf.gz

Jakie wprowadzić zmiany?

Teraz gdy wiemy już gdzie możemy ustalać konfigurację serwera Apache2, możemy przejść do działania. A spróbujemy zrobić dwie rzeczy: zmusić Apache by jedynymi przesyłanymi informacjami była sama strona internetowa, czyli de facto produkt działania serwera, a także zupełnie wyłączymy wyświetlanie sygnaturki/stopki na stronach z błędami (przykładowe informacje wyświetlane na stronie z błędem podane we wstępie do artykułu, pochodzą właśnie ze stopki).

No to do akcji...

Najpierw zajmijmy się wyłączeniem przesyłania informacji o systemie operacyjnym. Otwórzmy więc plik apache2.conf w dowolnym edytorze tekstu, pamiętając że do zapisu wprowadzonych zmian, niezbędne będą uprawnienia roota. Wydajmy więc np.
sudo gedit /etc/apache2/apache2.conf
czy choćby
sudo vim /etc/apache2/apache2.conf

Następnie musimy odnaleźć wpis "ServerTokens". Zazwyczaj albo go odnajdziemy i wyglądać on będzie następująco:

#ServerTokens Full
albo okaże się, że ten wpis nie istnieje. Albo więc odkomentujmy go i zamieńmy Full na Prod, albo na końcu pliku dopiszmy po prostu:
ServerTokens Prod
bo to finalnie chcemy osiągnąć. Tym sposobem, sprawiliśmy, że odbiorca strony internetowej nie uzyska od serwera informacji o systemie operacyjnym, na jakim jest postawiony. Idźmy dalej.

Jak wyłączyć wyświetlanie sygnatury?

Chcąc wyłączyć wyświetlanie stopki z informacjami, musimy postąpić bardzo podobnie jak w powyższym przykładzie, tyle że interesować nas będzie wpis ServerSignature z parametrem Off. Czyli albo odnajdujemy i modyfikujemy, albo dopisujemy go. Niezależnie co zrobimy w pliku apache2.conf musi znaleźć się wpis:
ServerSignature Off

Zmiany wprowadzone, co teraz?

Wszystkie modyfikacje zostały już wprowadzone do pliku konfiguracyjnego i teraz pozostaje nam go zapisać i zrestartować serwer. Jest to bardzo prosta czynność bo sprowadzająca się do jednego polecenia:
sudo /etc/init.d/apache2 restart
Jeśli wszystko wykonaliśmy zgodnie z powyższą instrukcją, nie powinniśmy ujrzeć żadnych błędów za to serwer uruchomi się ponownie z nowymi ustawieniami wprowadzonymi w życie. Czyli innymi słowy, wyłączyliśmy wyświetlanie informacji na temat serwera i systemu operacyjnego, na stronach, których przetwarzaniu towarzyszyły błędy.

A co jeśli chcemy włączyć te informacje?

Jeżeli jednak interesuje nas włączenie wyświetlania takich informacji, to jak nie trudno się domyślić, należy wykonać działania odwrotne do tych wcześniej opisanych. Czyli, albo zakomentujmy zmienione wpisy:
#ServerTokens Prod
#ServerSignature Off
albo zamieńmy je na:
ServerTokens Full
ServerSignature On
A na koniec restart apache:
sudo /etc/init.d/apache2 restart

Komentarze (0) - Nikt jeszcze nie komentował - bądź pierwszy!

Imię:
Treść: