Jak skonfigurować podstawowe uwierzytelnianie HTTP w Nginx

Jak skonfigurować podstawowe uwierzytelnianie HTTP w Nginx

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

  1. Zainstaluj stos LEMP w Centos/Rhel 7
  2. 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/.htpasswd 
Zobacz 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 Nginx

W przypadku nieudanego uwierzytelnienia użytkownika „A”Wymagane wymagane autoryzacja 401„Błąd zostanie wyświetlony, jak pokazano poniżej.

401 Autoryzacja wymagana

Wię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.

  1. Jak hasło chronić katalogi internetowe w Nginx
  2. Ostateczny przewodnik po zabezpieczeniu, utwardzaniu i poprawie wydajności Nginx
  3. 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.