Podziel się opinią o serwisie

Biblioteka Wiedzy poleca

Office 365 - podręcznik użytkownika

Ta książka pokaże Ci, jak wykorzystać chmurowe przetwarzanie danych - a konkretnie Office 365 - aby robić więcej, współpracować łatwiej i działać...
pobierz »

Jak zwiększyć wydajność infrastruktury serwerowej oszczędzając czas i pieniądze? Nowoczesne rozwiązania serwerowe

Niniejszy dokument ma na celu zaprezentowanie sposobów na poprawę funkcjonowania i efektywności działania infrastruktury serwerowej w firmie lub...
pobierz »

Dlaczego warto korzystać z Office 365?

Jakie funkcje i możliwości Microsoft Office 365 decydują o tym, że warto wybrać to rozwiązanie zamiast tradycyjnego pakietu Office i rozwiązań...
pobierz »

Więcej bezpłatnych raportów w serwisie
powiększ tekst >
AKTUALNOŚCI

Uszczelnianie Apache, PHP i MySQL

15 marca 2007

Paweł Krawczyk
Instalacja dowolnej dystrybucji Linuxa jako systemu serwerowego nie nastręcza obecnie większych trudności. System jednak instaluje się najczęściej z ustawieniami domyślnymi. Ustawienia domyślne służą przede wszystkim natychmiastowej dostępności wszystkich funkcji oprogramowania, a nie bezpieczeństwu, które wiąże się zwykle z ograniczaniem funkcjonalności.

Tymczasem dziury w aplikacjach webowych pojawiają się cały czas. Po eksplozji popularności języka PHP i platformy "LAMP" (Linux+Apache+MySQL+PHP) nastąpił prawdziwy wysyp dziur w popularnych aplikacjach takich jak fora dyskusyjne, systemy CMS itd. Był on rezultatem pisania na szybko, przez wielu autorów aplikacji o nie do końca przemyślanej strukturze, które realizowały wszystko to czego oczekiwało od nich rozwijające się dynamicznie środowisko WWW - a przy okazji parę innych funkcji, nie do końca pożądanych przez administratorów.

Przede wszystkim należy zadbać o aktualne wersje oprogramowania - stare wersje Apache, PHP i MySQL mogą mieć dziury, których załatanie może być po prostu nie możliwe bez aktualizacji konkretnego pakietu. W przypadku serwera wystawionego do publicznego Internetu jest to procedura obowiązkowa, tym bardziej że w sieci mnożą się robaki korzystające właśnie z dziur w Apache i PHP ). Poza aktualizacjami, które zwykle pojawiają się przecież już po odkryciu dziury, system można uodpornić na wiele znanych i przyszłych ataków za pomocą mechanizmów wbudowanych w same aplikacje. Jak pisałem wyżej, zwykle są one wyłączone w domyślnej instalacji po to, by nie zniechęcać użytkownika, któremu aplikacja napisana w PHP mogłaby "nie zadziałać" od razu.

Poniżej opisane poprawki nie stanowią kompleksowego podręcznika hardeningu środowiska LAMP - taki "hardening" prowadzi się zawsze na gotowej instalacji i w kontekście konkretnej aplikacji, więc nie ma tutaj gotowych recept. Opisane zabezpieczenia można wprowadzać pojedynczo, w zależności od funkcjonalności wykorzystywanej w naszym serwerze. Opisane zmiany w konfiguracji były testowane w domyślnej instalacji Debian "Etch". Dystrybucja ta pozostawia system w stanie dość bezpiecznym - poniższe poprawki pozwalają to bezpieczeństwo jeszcze podnieść.

Należy pamiętać o tym, by po wprowadzeniu każdej ze zmian przetestować, czy nie spowodowała ona natychmiastowego padu aplikacji. Po wprowadzeniu zmian w konfiguracji Apache lub PHP należy restartować serwer WWW (apache2ctl restart).

httpd.conf
Plik httpd.conf jest głównym plikiem konfiguracyjnym serwera Apache. W Debianie znajduje się on w katalogu /etc/apache2 i nie zawiera prawie żadnych dyrektyw konfiguracyjnych - dla wygody automatycznych konfiguratorów są one rozsiane po plikach znajdujących się w podkatalogach. Opisane poniżej dyrektywy można wkleić do pliku httpd.conf ale należy również sprawdzić, czy w innych miejscach nie znajdują się identyczne dyrektywy ale z innymi wartościami (np. poleceniem grep).

ServerTokens Prod
ServerSignature Off



deny from all



RewriteEngine on
RewriteCond %{REQUEST_METHOD} !^(GET|POST|HEAD)$
RewriteRule .* - [F]



TraceEnable Off

Znaczenie opcji:
- ServerTokens i ServerSignature - określają ilość informacji zwracanych przez serwer w nagłówkach HTTP; standardowo serwer chwali się wersjami wszystkich modułów, co bardzo ułatwia włamywaczowi znalezienie ewentualnych dziur jeśli serwer nie jest zaktualizowany; wartość "Prod" w opcji ServerTokens powoduje, że serwer będzie się przedstawiał tylko jako Apache, bez żadnych numerów wersji

- Limit TRACK i TraceEnable - wyłączają metody HTTP służące do diagnostyki aplikacji i serwera; nie są one potrzebne do pracy większości aplikacji, a mogą ułatwić zadanie włamywaczowi
- RewriteRule - cała ta sekcja blokuje metody HTTP inne niż GET, POST i HEAD, wykorzystywane przez większość normalnych aplikacji webowych; zablokuje to jednak także możliwość uploadu plików (należy dopisać metodę PUT) oraz korzystania z WebDAV - w takim razie należy zrezygnować z całej tej sekcji


Wystaw ocenę:
   Średnia ocena (liczba głosów: 9)
wydrukuj wydrukuj wyslij do znajomegowyślij do znajomego

Komentarze

phpowiec

  • ocena: 5
  • IP: 83.11.190.161
  • 26-07-2008, 11:11

www.lol.pl bardzo i sie podoba art zapraszam

Spambot

  • ocena: 5
  • IP: 93.105.69.124
  • 09-01-2009, 19:55

Dobry art, bardzo ładnie opisane zabezpieczanie funkcji w php.ini, właśnie tego szukałem i także zapraszam na moją strone http://spambot.pl