Lista kontrolna najlepszych praktyk w zakresie bezpieczeństwa Apache w 14 krokach (w zestawie eBook w formacie PDF)
Opublikowany: 2017-11-22Railwayfx / stock.adobe.com
Apache pozostaje obecnie wiodącym oprogramowaniem serwerów WWW na świecie z 45,8% udziałem w rynku. W sumie jest to około 80 milionów witryn internetowych, których serwery internetowe są obsługiwane przez Apache. Całkiem imponujące, prawda?
Apache to oprogramowanie serwera WWW typu open source, które istnieje na rynku od 1995 roku, więc samo to mówi wiele o jego niezawodności i długowieczności. Są też znane witryny internetowe działające na serwerach Apache: Apple, Adobe i Paypal to tylko kilka z głównych marek, które powierzają swoje witryny Apache.
Oczywiście nie oznacza to, że Apache jest w 100% bezpieczny, ponieważ żadne oprogramowanie nigdy nie będzie w 100% bezpieczne przed hakerami, zwłaszcza gdy jest to tak dobrze znana i zaufana platforma (podobnie jak WordPress). Jeśli jednak szukasz e-booka, modułu, przewodnika, samouczka, frameworka lub listy kontrolnej bezpieczeństwa serwera WWW w formacie Apache w formacie PDF, to dobrze trafiłeś.
Jeśli chcesz wzmocnić bezpieczeństwo swojego Apache, masz problemy z bezpieczeństwem Apache lub próbujesz załatać jedną lub dwie luki, poniższa lista kontrolna zawiera 14 najlepszych praktyk bezpieczeństwa, które możesz dodać do planu bezpieczeństwa swojej witryny.
Lista kontrolna najlepszych praktyk dotyczących bezpieczeństwa Apache
Dla tych z Was, którzy chcą naprawdę wzmocnić swoją witrynę WordPress, niezbędne jest zabezpieczenie Apache, tak jak każdego innego oprogramowania, które łączy się z Twoją witryną i ją obsługuje. Niezastosowanie się do tego może nawet wpłynąć na szybkość działania Twojej witryny. Oto jak to zrobisz:
1. Zaktualizuj Apache'a
Czy wiesz, że WordPress oraz wszelkie zainstalowane wtyczki i motywy wymagają regularnej aktualizacji? Podobnie jak Twój serwer WWW.
Jeśli denerwujesz się, że Twoja witryna nie działa na najnowszej wersji Apache, możesz to sprawdzić za pomocą wiersza poleceń httpd -v. Jeśli wyprowadzona wersja nie jest zgodna z bieżącą wersją Apache, możesz ją zaktualizować za pomocą następujących poleceń:
# yum update httpd
# apt-get install [add Apache version here]c
2. Włącz Dzienniki
Jeśli współpracujesz z zarządzanym dostawcą hostingu WordPress, zajmie się on monitorowaniem Twojego serwera i WordPressa pod kątem luk w zabezpieczeniach i innych znaków ostrzegawczych. To powiedziawszy, powinieneś także zwracać uwagę na ruch na serwerze.
Dzięki Apache możesz uzyskać dostęp do tego dziennika aktywności, aktualizując moduł mod_log_config. Zasadniczo powie Ci, co robią użytkownicy, gdy dotkną Twojego serwera.
3. Zdobądź certyfikat SSL
Ponieważ Twój serwer WWW obsługuje wszystkie żądania przeglądarki/serwera kierowane do Twojej witryny, ważne jest, aby zabezpieczyć go certyfikatem SSL. Dobra wiadomość jest taka, że możesz teraz otrzymać certyfikat SSL za darmo. Jest to teraz ważniejsze niż kiedykolwiek, więc jeśli nie masz możliwości technicznych, aby samodzielnie to zainstalować, każdy wysokiej jakości dostawca usług hostingowych będzie w stanie to zrobić za Ciebie.
4. Dodaj zaporę sieciową
Oprócz dodatkowej ochrony w postaci szyfrowania SSL, Twój serwer WWW powinien być wzmocniony zaporą ogniową. W przypadku Apache oznacza to włączenie ModSecurity.
Aby zainstalować go na swoim serwerze, możesz wykonać następujące czynności:
# yum install mod_security
# /etc/init.d/httpd restart
Gdy zapora zostanie uruchomiona, zapobiegnie przedostawaniu się do serwera szeregu szkodliwych działań, takich jak wstrzykiwanie kodu SQL, przejmowanie sesji i wykonywanie skryptów między witrynami.
5. Zainstaluj mod_evasive
Mod_evasive to moduł, który ochroni Twój serwer Apache przed brutalną siłą i atakami DDoS, więc upewnij się, że to również jest włączone. Umieści na czarnej liście równoczesne i nieudane próby logowania, a także monitoruje złośliwe adresy IP.
6. Ustaw limity HTTP
Ataki typu rozproszona odmowa usługi (DDoS) można dość łatwo zablokować, jeśli wiesz, na jakie działania zwracać uwagę. Ponieważ DDoS ma tendencję do powtarzania ataków na serwer z dużymi żądaniami, Twoim celem powinno być ustawienie limitów, które zapobiegną takim wydarzeniom.
Oto niektóre z limitów, które będziesz chciał ustalić:
- KeepAlive=wł
- Podtrzymanie limitu czasu
- Limit treści żądania
- Limit pól żądania
- Limit rozmiaru pola żądania
- LimitLinia żądania
- LimitXMLRequestBody
- Maksymalna liczba klientów
- Żądania MaxKeepAlive
- MaxRequestWorkers
- Limit czasu żądania odczytu
- Koniec czasu
7. Usuń nieużywane moduły
Pozostawiając nieużywane, nieobsługiwane lub wygasłe moduły na serwerze Apache, pozostawiasz witrynę otwartą dla hakerów poprzez punkt wejścia, który nawet nie musi się tam znajdować.
Pierwszą rzeczą, którą powinieneś zrobić, to dowiedzieć się, które moduły są faktycznie aktywne. Można to zrobić za pomocą polecenia LoadModule. Po przejrzeniu listy i zidentyfikowaniu modułów, których nie potrzebujesz, po prostu dodaj symbol „#” przed każdym modułem, który chcesz dezaktywować, a następnie uruchom ponownie.
8. Zmień domyślnego użytkownika i grupę
Ogólnie rzecz biorąc, ustawienia domyślne i pozostawienie użytkowników w dowolnym oprogramowaniu są złą praktyką w zakresie bezpieczeństwa. Powód tego jest prosty: jeśli używasz domyślnej nazwy użytkownika lub grupy Apache, możesz się założyć, że hakerzy również wiedzą, jakie są te domyślne nazwy.
Zamiast pozostawiać ustawienia domyślne, powinieneś utworzyć nowe nieuprzywilejowane konto, za pośrednictwem którego będą uruchamiane procesy Apache. Używając poleceń # groupadd i # useradd, możesz ustawić nowe jednostki. Pamiętaj tylko o zaktualizowaniu pliku httpd.conf o nowe nazwy użytkowników i grup, które utworzyłeś.
9. Zablokuj dostęp do katalogu
Oto kolejny przykład ustawień domyślnych, które należy zmienić. W tym przypadku dostęp do plików w Twoim katalogu pozwala każdemu na eksplorację, gdziekolwiek chce.
Aby umieścić blok całkowity, użyj następującego polecenia:
<Directory "/">
Require all denied
</Directory>
Jeśli chcesz umożliwić dostęp określonym użytkownikom, możesz to zrobić w ten sposób:
<Directory "/usr/users/*/public_html">
Require all granted
</Directory>
Jeśli chcesz umożliwić dostęp do określonych folderów w katalogu, możesz to zrobić w ten sposób:
<Directory "/usr/local/httpd">
Require all granted
</Directory>
Możesz także zajrzeć do repozytorium modułów Apache w celu dalszego dostosowania praw dostępu użytkowników.
10. Nie publikuj katalogu
Czy wiesz, że jeśli Twój serwer nie ma pliku indeksu, użytkownicy będą mogli zobaczyć całą zawartość przechowywaną w katalogu głównym? To oczywiście niedobrze, więc musisz wyłączyć to ustawienie domyślne, wykonując następujące czynności:
<Directory /var/www/html>
Options -Indexes
</Directory>
11. Ukryj szczegóły serwera
Ponieważ Apache jest oprogramowaniem typu open source, szczegółowe informacje na temat używanej wersji są łatwo dostępne, jeśli te ustawienia nie zostaną wyłączone po stronie serwera. Ponieważ hakerzy mogą wykorzystać te poufne informacje, aby dowiedzieć się, jak włamać się na Twój serwer, warto zablokować te informacje.
Są dwie rzeczy, które chcesz wyłączyć:
- ServerSignature – czyli wersja Apache
- ServerTokens – które obejmują wersję systemu operacyjnego i inne wrażliwe dane serwera
Inni użytkownicy mogą znaleźć te informacje, po prostu wyświetlając stronę błędu w Twojej witrynie, dlatego bardzo ważne jest zablokowanie ich wyświetlania. Aby to zrobić, zaktualizuj plik httpd.conf o następujące elementy:
ServerSignature Off
ServerTokens Prod
12. Ukryj ETag
Nagłówek ETag w Apache zawiera niestety wiele wrażliwych szczegółów na temat Twojego serwera. Oczywiście wszystko, co udostępnia tego rodzaju informacje światu zewnętrznemu, powinno być ukryte. Ponadto, jeśli prowadzisz witrynę handlu elektronicznego, musisz to ukryć, aby zachować zgodność ze standardem PCI.
Aby to zrobić, dodaj następującą dyrektywę do pliku httpd.conf:
FileETag None
13. Wyłącz zastępowanie .htaccess
.htaccess to ważny plik dla każdej witryny WordPress. Dlatego musisz go zablokować i upewnić się, że nikt inny nie będzie mógł zastąpić Twoich ustawień konfiguracyjnych.
Aby to wyłączyć, dodaj następujący plik do pliku httpd.conf w katalogu głównym:
<Directory />
Options -Indexes
AllowOverride None
</Directory>
14. Wyłącz SSI i CGI
Pliki włączone po stronie serwera (SSI) mogą spowodować otwarcie witryny i spowodować szereg problemów związanych z bezpieczeństwem, jeśli nie zostaną zaznaczone. To samo tyczy się skryptów CGI. Aby uniemożliwić hakerom przeciążanie serwera lub wstawianie złośliwych skryptów do kodu, pamiętaj o ich wyłączeniu lub ograniczeniu ich działania za pomocą dyrektywy Opcje.
Oto niektóre wartości opcji, których możesz użyć:
- Opcje Wszystkie
- Opcje obejmują NOEXEC
- Opcje -Zawiera
- Opcje -ExecCGI
- Opcje -Zawiera -ExecCGI
- Opcje MultiViews
Dbaj o swój serwer Apache
Chcąc zwiększyć bezpieczeństwo swojej witryny, zwróć szczególną uwagę na serwer Apache. Problemy takie jak błędna konfiguracja serwera i pozostawienie ustawień domyślnych mogą narazić Twoją witrynę na ryzyko w takim samym stopniu, jak niezaktualizowany rdzeń lub niebezpieczne praktyki kodowania PHP.
Chcesz podzielić się swoją opinią lub dołączyć do rozmowy?Dodaj swoje komentarze na Twitterze.