Jak skonfigurować podstawowe uwierzytelnianie HTTP w Nginx
- 2398
- 749
- Maria Piwowarczyk
Podstawowe uwierzytelnianie HTTP to mechanizm bezpieczeństwa ograniczający dostęp do Twojej witryny/aplikacji lub niektórych jej części poprzez konfigurowanie prostej uwierzytelniania nazwy użytkownika/hasła. Można go używać zasadniczo do ochrony całego serwera HTTP, poszczególnych bloków serwerów (wirtualnych hostów w Apache) lub bloków lokalizacji.
Przeczytaj także: Jak konfigurować wirtualne hosty oparte na nazwach i IP (bloki serwerowe) z Nginx
Jak sama nazwa wskazuje, nie jest to bezpieczna metoda polegająca na; Powinieneś użyć go w połączeniu z innymi bardziej niezawodnymi środkami bezpieczeństwa. Na przykład, jeśli aplikacja internetowa działa na HTTP, wówczas poświadczenia użytkownika są przesyłane w zwykłym tekście, więc należy rozważyć włączenie HTTPS.
Celem tego przewodnika jest pomoc w dodaniu małej, ale przydatnej warstwy bezpieczeństwa w celu ochrony prywatnych/uprzywilejowanych treści w aplikacjach internetowych (takich jak, ale nie ograniczanie się do stron administratora). Możesz go również użyć, aby zapobiec dostępowi do strony internetowej lub aplikacji, która jest nadal w fazie rozwoju.
Wymagania
- Zainstaluj stos LEMP w Centos/Rhel 7
- Zainstaluj stos Lemp w Ubuntu/Debian
Utwórz plik użytkownika uwierzytelniania HTTP
Powinieneś zacząć od utworzenia pliku, który będzie przechowywać Nazwa użytkownika Hasło
pary. Użyjemy htpasswd narzędzie z serwera Apache HTTP, aby utworzyć ten plik.
Najpierw to sprawdź Apache2-Utils Lub HTTPD Tools, Pakiety, które zapewniają htpasswd Narzędzie są instalowane w systemie, w przeciwnym razie uruchom odpowiednie polecenie dla dystrybucji, aby ją zainstalować:
# Yum Zainstaluj httpd-tools [RHEL/CENTOS] $ sudo apt Zainstaluj Apache2-Utils [Debian/Ubuntu]
Następnie biegnij htpasswd Polecenie poniżej, aby utworzyć plik hasła z pierwszym użytkownikiem. -C
Opcja jest używana do określenia pliku PASSWD, po trafieniu [Wchodzić], Zostaniesz poproszony o wprowadzenie hasła użytkownika.
# htpasswd -c/etc/nginx/conf.D/.Deweloper HTPASSWD
Dodaj drugiego użytkownika i nie używaj -C
opcja tutaj.
# htpasswd/etc/nginx/conf.D/.HTPASSWD Admin
Teraz, gdy masz gotowy plik hasła, przejdź do konfiguracji części swojego serwera WWW, do którego chcesz ograniczyć dostęp. Aby wyświetlić zawartość pliku hasła (która zawiera nazwy użytkowników i hasła zaszyfrowane), użyj poniższego polecenia CAT.
# cat/etc/nginx/conf.D/.htpasswdZobacz plik hasła HTTP
Skonfiguruj uwierzytelnianie HTTP dla Nginx
Jak wspomniano wcześniej, możesz ograniczyć dostęp do swojej serwera internetowego, pojedynczej witryny internetowej (za pomocą bloku serwera) lub dyrektywy lokalizacji. Do tego osiągnięcia można wykorzystać dwie przydatne dyrektywy.
- Auth_basic - Włącza sprawdzanie poprawności nazwy użytkownika i hasła za pomocą „Podstawowe uwierzytelnianie HTTP" protokół.
- Auth_basic_user_file - Określa plik hasła.
Hasło chronić wirtualne hosty nginx
Aby zaimplementować podstawowe uwierzytelnianie dla całego serwera WWW, który dotyczy wszystkich bloków serwerów, otwórz /etc/nginx/nginx.conf Plik i dodaj poniższe wiersze w kontekście HTTP:
http auth_basic „Ograniczony dostęp!"; auth_basic_user_file/etc/nginx/conf.D/.htpasswd;…
Hasło chronić witrynę lub domenę Nginx
Aby włączyć podstawowe uwierzytelnianie dla konkretnej domeny lub sub-domen, otwórz jego plik konfiguracyjny w ramach /etc/nginx/conf.D/ Lub /etc/nginx/conf/witryny-dostępne (W zależności od sposobu zainstalowania Nginx), a następnie dodaj poniższą konfigurację w bloku lub kontekstu serwera:
serwer Słuchaj 80; Przykład_nazowy Server_name.com; Auth_basic „Ograniczony dostęp!"; auth_basic_user_file/etc/nginx/conf.D/.htpasswd; Lokalizacja / … …
Hasło chronić katalog internetowy w nginx
Możesz także włączyć podstawowe uwierzytelnianie w ramach dyrektywy lokalizacji. W poniższym przykładzie wszyscy użytkownicy próbują uzyskać dostęp do /Admin
Blok lokalizacji zostanie poproszony o uwierzytelnienie.
serwer Słuchaj 80; Przykład_nazowy Server_name.com www.przykład.com; lokalizacja / … lokalizacja /Admin/ Auth_basic „Ograniczony dostęp!"; auth_basic_user_file/etc/nginx/conf.D/.htpasswd; lokalizacja /public /auth_basic off; #Curns Off podstawowe uwierzytelnianie HTTP dla tego bloku…
Jeśli skonfigurowałeś podstawowe uwierzytelnianie HTTP, wszyscy użytkownicy, którzy próbują uzyskać dostęp do Twojej serwisu internetowego lub sub-domen lub określonej części witryny (w zależności od tego, gdzie ją zaimplementowałeś), zostanie poproszony o nazwę użytkownika i hasło, jak pokazano na poniższym zrzucie ekranu.
Podstawowe uwierzytelnianie NginxW przypadku nieudanego uwierzytelnienia użytkownika „A”Wymagane wymagane autoryzacja 401„Błąd zostanie wyświetlony, jak pokazano poniżej.
401 Autoryzacja wymaganaWięcej informacji można znaleźć w ograniczaniu dostępu za pomocą podstawowego uwierzytelnienia HTTP.
Możesz także przeczytać następujące następujące przydatne przewodniki związane z serwerem Nginx HTTP.
- Jak hasło chronić katalogi internetowe w Nginx
- Ostateczny przewodnik po zabezpieczeniu, utwardzaniu i poprawie wydajności Nginx
- Konfigurowanie HTTPS z Certyfikatem SSL Let's Encrypt SSL dla Nginx
W tym przewodniku pokazaliśmy, jak zaimplementować podstawowe uwierzytelnianie HTTP na serwerze WWW Nginx HTTP. Aby zadać wszelkie pytania, użyj poniższego formularza opinii.