04 lip

Jak uruchomić podstawowe uwierzytelnienie HTTP za pomocą Nginx na Ubuntu 16.04

Wprowadzenie

Nginx to jeden z wiodących serwerów www. On i jego edycja komercyjna, Nginx Plus, są tworzone przez Nginx, Inc.

W tym tutorialu nauczysz się, jak ograniczać dostęp do strony zasilanej przez Nginx, używając podstawowej metody uwierzytelnienia HTTP na Ubuntu 16.04. Podstawowe uwierzytelnienie HTTP jest prostą metodą uwierzytelnienia za pomocą nazwy użytkownika
i hasła (zaszyfrowanego).

Wymagania

Aby ukończyć ten tutorial, będziesz potrzebował następujących komponentów:

– Serwer z Ubuntu 16.04 z użytkownikiem Sudo, który możesz utworzyć za pomocą tego wstępnego tutorialu

– Zainstalowany i skonfigurowany Nginx na Twoim serwerze, co możesz zrobić za pomocą tego artykułu o Nginx.

Instalowanie narzędzi Apache

Potrzebna będzie komenda htpassword, aby skonfigurować hasło, które ograniczy dostęp do strony docelowej. Ta komenda jest częścią pakietu apache2-utils, więc pierwszym krokiem jest instalacja rzeczonego pakietu.
sudo apt-get install apache2-utils

Uruchomienie poświadczeń podstawowego uwierzytelnienia HTTP

W tym kroku stworzysz hasło dla użytkownika kierującego stroną.

To hasło oraz powiązana nazwa użytkownika będą przechowywane w pliku, który wyznaczysz. Hasło będzie zaszyfrowane, a nazwa pliku może być taka, jaką tylko sobie wybierzesz. Tutaj używamy pliku /etc/nginx/.htpasswd i nazwy użytkownika nginx

Aby stworzyć hasło, wprowadź następującą komendę. Będziesz musiał uwierzytelnić, a później sprecyzować i potwierdzić hasło.
sudo htpasswd -c /etc/nginx/.htpasswd nginx

Możesz sprawdzić zawartość nowoutworzonego pliku, aby sprawdzić nazwę użytkownika oraz zaszyfrowane hasło.
cat /etc/nginx/.htpasswd

Przykładowy /etc/nginx/.htpasswd
nginx:$apr1$ilgq7ZEO$OarDX15gjKAxuxzv0JTrO/

Uaktualnienie konfiguracji Nginx

Teraz, gdy już utworzyłeś poświadczenie podstawowego uwierzytelnienia HTTP, następnym krokiem jest uaktualnienie konfiguracji Nginx, aby strona docelowa mogła jej użyć.

Uwierzytelnienie http jest możliwe dzięki dyrektywom auth_basic oraz auth_basic_user_file. Wartością auth_basic jest jakikolwiek ciąg znaków i będzie on wyświetlony na podpowiedzi uwierzytelnienia; wartością auth_basic_user_file jest ścieżka do hasła, które zostało utworzone w poprzednim rozdziale.

Obie ścieżki powinny znajdować się w pliku konfiguracyjnym strony docelowej, co normalnie zlokalizowane jest w folderze /etc/nginx/sites-available. Otwórz ten plik, używając nano albo w innym swoim ulubionym edytorze tekstów.
sudo nano /etc/nginx/sites-available/default

Pod sekcją location, dodaj obie dyrektywy.

/etc/nginx/sites-available/default.conf
. . .
server_name localhost;

location / {
        # First attempt to serve request as file, then
        # as directory, then fall back to displaying a 404.
        try_files $uri $uri/ =404;
        # Uncomment to enable naxsi on this location
        # include /etc/nginx/naxsi.rules
        auth_basic "Private Property";
        auth_basic_user_file /etc/nginx/.htpasswd;
}
. . .

Zapisz i zamknij plik.

Testowanie konfiguracji

Aby wprowadzić zmiany, najpierw przeładuj Nginx.
sudo service nginx reload

Teraz spróbuj uzyskać dostęp do strony, którą właśnie zabezpieczyłeś, poprzez wpisanie http://adres_ip_serwera/ w swojej ulubionej przeglądarce internetowej. Powinno pokazać Ci się okno uwierzytelniania (mówiące „Private Property”, ciąg znaków w parametrze auth_basic) i nie będziesz w stanie wejść na stronę, dopóki nie wpiszesz odpowiednich poświadczeń. Jeśli wpiszesz nazwę użytkownika i hasło, jakie ustawiłeś, zobaczysz domyślną stronę startową Nginx.

Wnioski

Właśnie ukończyłeś ustawienie podstawowego ograniczenia dostępu dla strony Nginx. Więcej informacji o tej metodzie i innych środkach ograniczenia dostępu, jest dostępnych w dokumentacji Nginx.