Nieprzywilejowane konto użytkownika
Celem konta użytkownika niezwiązanego z korzeniem lub nieuzasadnionym jest ograniczenie użytkownika od niepotrzebnego dostępu do niektórych zadań w systemie. W kontekście serwera WWW Apache oznacza to, że powinien działać w ograniczonym środowisku z tylko niezbędnymi uprawnieniami. Domyślnie Apache działa z uprawnieniami do konta demon. Możesz utworzyć osobne konto użytkownika inne niż root, aby uniknąć zagrożeń w przypadku zabezpieczeń.
Ponadto, jeśli Apache2 i MySQL znajdują się w tych samych poświadczeniach użytkownika, każdy problem w procesie, gdy usługa będzie miała wpływ na drugą. Aby zmienić uprawnienia użytkownika i grupy dla serwera WWW, przejdź do /etc /apache2, otwórz envvars plików i ustaw użytkownik i grupę na nowym użytkowniku nieposłucnym, powiedzmy, „Apache” i zapisz plik.
Ubuntu@ubuntu ~: $ sudo vim/etc/apache2/envvars
… Snip…
Eksportuj apache_run_user = apache
Eksportuj apache_run_group = apache
… Snip…
Możesz także użyć następującego polecenia, aby zmienić własność katalogu instalacyjnego na nowego użytkownika spoza root.
Ubuntu@ubuntu ~: $ sudo chown -r apache: apache /etc /apache2
Wydaj następujące polecenie, aby zapisać zmiany:
Ubuntu@ubuntu ~: $ sudo service apache2 restart
Uważaj Apache
Apache słynie z zapewnienia bezpiecznej platformy z wysoce zaniepokojoną społecznością programistów, która rzadko stoi w obliczu błędów bezpieczeństwa. Niemniej jednak normalne jest odkrywanie problemów po wydaniu oprogramowania. Dlatego konieczne jest aktualizację serwera WWW, aby skorzystać z najnowszych funkcji bezpieczeństwa. Zaleca się również, aby śledzić listy ogłoszeń serwera Apache, aby na bieżąco informować się o nowych ogłoszeniach, wydaniach i aktualizacjach bezpieczeństwa od społeczności programistycznej Apache.
Aby zaktualizować Apache za pomocą Apt, wpisz następujące:
Ubuntu@ubuntu ~: $ sudo apt-get aktualizacja
Ubuntu@ubuntu ~: $ sudo apt-get aktualizację
Wyłącz podpis serwera
Domyślna konfiguracja serwera Apache ujawnia wiele szczegółów na temat serwera i jego ustawień. Na przykład włączono dyrektywy serweryjne i serverokens w/etc/apache2/apache2.Plik CONF Dodaj dodatkowy nagłówek do odpowiedzi HTTP, która ujawnia potencjalnie poufne informacje. Informacje te obejmują szczegóły ustawienia serwera, takie jak wersja serwera i system operacyjny hostingowy, które mogą pomóc atakującemu w procesie rozpoznawczym. Możesz wyłączyć te dyrektywy, edytując APACHE2.Plik CONF przez vim/nano i dodaj następującą dyrektywę:
Ubuntu@ubuntu ~: $ sudo vim/etc/apache2/apache2.conf
… Snip…
Servervishature wyłącz
… Snip…
Servertokens Prod
… Snip…
Uruchom ponownie Apache, aby zaktualizować zmiany.
Wyłącz listy katalogów serwera
Listy katalogów wyświetlają wszystkie treści zapisane w folderze głównym lub podwodne. Pliki z katalogu mogą zawierać poufne informacje, które nie są przeznaczone do publicznego wyświetlania, takie jak skrypty PHP, pliki konfiguracyjne, pliki zawierające hasła, dzienniki itp.
Aby odrzucić oferty katalogów, zmień plik konfiguracyjny serwera Apache, edytując Apache2.Plik CONF jako:
Ubuntu@ubuntu ~: $ sudo vim/etc/apache2/apache2.conf
… Snip…
Opcje -indexes
… Snip…
LUB
… Snip…Możesz także dodać tę dyrektywę w .plik htaccess twojego głównego katalogu witryny.
Chronić ustawienia systemu
.Plik Htaccess to wygodna i potężna funkcja, która umożliwia konfigurację poza głównym Apache2.plik CONF. Jednak w przypadkach, w których użytkownik może przesyłać pliki do serwera, może to zostać wykorzystane przez atakującego, aby przesłać własny „.plik htaccess ”z złośliwymi konfiguracją. Jeśli więc nie używasz tej funkcji, możesz wyłączyć .Dyrektywa Htaccess, i.mi.:
Ubuntu@ubuntu ~: $ sudo vim/etc/apache2/apache2.conf
… Snip…
#AccessFileName .Htaccess
… Snip…
LUB
Wyłącz .plik HTACCESS, z wyjątkiem konkretnie włączonych katalogów, edytując APACHE2.Plik CONF i obracanie dyrektywy zezwolenia na brak;
Ubuntu@ubuntu ~: $ sudo vim/etc/apache2/apache2.conf
… Snip…
Bezwyznaniowe
… Snip…
Bezpieczne katalogi z uwierzytelnianiem
Możesz tworzyć poświadczenia użytkownika, aby chronić wszystkie lub niektóre z katalogów za pomocą narzędzia HTPassWd. Przejdź do folderu serwera i użyj następującego polecenia, aby utworzyć .plik htpasswd do przechowywania hasła hasła dla poświadczeń przypisanych do, powiedzmy, użytkownika o imieniu dev.
Ubuntu@ubuntu ~: $ sudo htpasswd -c/etc/apache2/-htpasswd dev
Powyższe polecenie poprosi o nowe potwierdzenie hasła i hasła. Możesz zobaczyć kota ./HTPASSWD Plik do sprawdzenia skrótu dla przechowywanych poświadczeń użytkownika.
Teraz możesz automatycznie ustawić plik konfiguracyjny w katalogu_website, który musisz chronić, modyfikując .plik Htaccess. Użyj następujących poleceń i dyrektyw, aby umożliwić uwierzytelnianie:
Ubuntu@ubuntu ~: $ sudo nano/var/www/your_website/.Htaccess
… Snip…
Authtype Basic
AuthName „Dodaj monit dialogowy”
AuthuserFile/etc/apache2/user_name/domain_name/.htpasswd
Wymagają ważnego użytkownika
… Snip…
Pamiętaj, aby dodać ścieżkę zgodnie z twoją.
Uruchom niezbędne moduły
Domyślna konfiguracja Apache zawiera włączone moduły, których możesz nawet nie potrzebować. Te wstępnie zainstalowane moduły otwierają drzwi do problemów bezpieczeństwa Apache, które już istnieją lub mogą istnieć w przyszłości. Aby wyłączyć wszystkie te moduły, najpierw musisz zrozumieć, które moduły są wymagane do sprawnego funkcjonowania twojego serwera WWW. W tym celu sprawdź dokumentację modułu Apache, która obejmuje wszystkie dostępne moduły.
Następnie użyj następującego polecenia, aby dowiedzieć się, które moduły działają na serwerze.
Ubuntu@ubuntu ~: $ sudo ls/etc/apache2/mods-obserwowany
Apache jest wyposażony w potężne polecenie A2DISMOD, aby wyłączyć moduł. Zapobiega załadowaniu modułu i podpowiada o ostrzeżeniu podczas wyłączania modułu, że akcja może negatywnie wpłynąć.
Ubuntu@ubuntu ~: $ sudo a2dismod module_name
Możesz także wyłączyć moduł, komentując w linii loadModule.
Zapobiegaj atakom powolnym Loris i Dos
Domyślna instalacja serwera Apache zmusza go do zbyt długo czekającego na żądania klientów, które poddaje serwerowi spowolnienie ataków Loris i DOS. Apache2.Plik konfiguracyjny Conf zapewnia dyrektywę, której można użyć, aby obniżyć wartość limitu czasu do kilku sekund, aby zapobiec tego typu ataków, i.mi.:
Ubuntu@ubuntu ~: $ sudo vim/etc/apache2/apache2.conf
Limit czasu 60
Poza tym nowy serwer Apache jest wyposażony w poręczny moduł mod_reqtimeout, który zapewnia dyrektywę RequestreadTimeout w celu zabezpieczenia serwera przed nielegalnymi żądaniami. Ta dyrektywa zawiera kilka trudnych konfiguracji, dzięki czemu możesz odczytać powiązane informacje dostępne na stronie dokumentacji.
Wyłącz niepotrzebne żądania HTTP
Nieograniczone żądania HTTP/HTTPS mogą również prowadzić do niskiej wydajności serwera lub ataku DOS. Możesz ograniczyć otrzymywanie żądań HTTP na rektory, używając limitrequestbody do mniejszej niż 100k. Na przykład, aby utworzyć dyrektywę dla folderu/var/www/your_website, możesz dodać dyrektywę limitrequestbody poniżej ALLATOVERRIDE All, i.mi.:
… Snip…Uwaga: Pamiętaj, aby ponownie uruchomić Apache po zastosowanych zmianach, aby odpowiednio go zaktualizować.
Wniosek
Domyślna instalacja serwera Apache może dostarczyć mnóstwo poufnych informacji, aby pomóc atakującym w ataku. W międzyczasie istnieje wiele innych sposobów (nie wymienionych powyżej), aby zabezpieczyć również serwer WWW Apache. Kontynuuj badanie i informuj się o nowych dyrektywach i modułach, aby dalej zabezpieczyć serwer.