Metody płatności Abuse

Jak skonfigurować Auth Basic NGINX

14.03.2021, 22:14

Być może nigdy nie zastanawiałeś się nad tym, czym jest Auth Basic, ale na pewno spotkałeś się z nim, przechodząc do ustawień routera. Tak nazywa się mechanizm autoryzacji za pomocą nazwy użytkownika i hasła na poziomie serwera WWW. Taka autoryzacja jest obsługiwana zarówno przez Apache, jak i Nginx. W tej instrukcji sugerujemy rozważenie takiego pytania, jak skonfigurować Auth Basic dla określonej trasy lub określonej witryny.

Konfiguracja Auth Basic w NGINX

Tak wygląda okno autoryzacji Auth Basic:

Окно авторизации Basic Auth

Teraz powinieneś zrozumieć, o co chodzi w tej instrukcji. Możliwe jest skonfigurowanie autoryzacji dla określonego adresu URL, dla całej witryny lub dla wszystkich witryn. Pierwszą rzeczą do zrobienia jest jednak utworzenie pliku z listą użytkowników i haseł. W tym celu użyjemy narzędzia htpasswd. Składnia polecenia jest następująca:

$ sudo htpasswd -c /path/to/file username

W tym przypadku opcja -c służy do tworzenia nowego pliku, nie trzeba jej używać do edycji wcześniej utworzonych plików. Na przykład:

$ sudo htpasswd -c /etc/nginx/auth.basic admin

Basic Auth

Program wykona podwójne żądanie hasła. Ze względów bezpieczeństwa hasło nie jest wyświetlane, ale jest wprowadzane. Po utworzeniu takiego pliku można przejść bezpośrednio do konfiguracji Nginx.

Aby zabezpieczyć hasłem wszystkie zasoby, należy dodać dyrektywę do sekcji http pliku /etc/nginx/nginx.conf:

auth_basic "Restricted area";
auth_basic_user_file /etc/nginx/auth.basic;

настройка Nginx

Aby chronić określony adres strony (URL), należy dodać dyrektywę do odpowiedniego bloku lokalizacji. Może to być /wp-admin/admin-ajax.php:

location /wp-admin/admin-ajax.php {
auth_basic "Restricted area";
auth_basic_user_file /etc/nginx/auth.basic;
}

настройка Nginx

Jeśli witryna jest na WordPressie, najlepiej jest umieścić lokalizację w location/. Wszystkie reguły opisane powyżej będą działać, a dodatkowo zapewniona jest ochrona. Jeśli chcesz zezwolić na dostęp do określonej lokalizacji , dyrektywa będzie wyglądać jak auth_basic "off":

location /wp-admin/admin-ajax.php {
auth_basic "off";
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass 127.0.0.1:9002;
fastcgi_index index.php;
include /etc/nginx/fastcgi_params;
}

создание location

Przetwarzanie PHP będzie musiało zostać dodane do bloku lokalizacji, w przeciwnym razie użytkownik zostanie poproszony o pobranie skryptu, do którego uzyskuje dostęp.

Tak więc skonfigurowanie dostępu w Nginx nie jest zbyt trudne. Wystarczy tylko poprawnie skonfigurować blok lokalizacji.