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