Wyszukiwanie w witrynie

Jak chronić katalogi internetowe hasłem w Nginx


Menedżerowie projektów internetowych często muszą chronić swoją pracę w taki czy inny sposób. Często ludzie pytają, jak zabezpieczyć hasłem swoją witrynę, gdy jest ona jeszcze w fazie rozwoju.

W tym samouczku pokażemy prostą, ale skuteczną technikę ochrony katalogu internetowego hasłem podczas uruchamiania Nginx jako serwera WWW.

Jeśli korzystasz z serwera WWW Apache, możesz zapoznać się z naszym przewodnikiem dotyczącym ochrony hasłem katalogu internetowego:

  1. Ochrona hasłem katalogów internetowych w Apache

Wymagania

Aby wykonać kroki opisane w tym samouczku, będziesz potrzebować:

  • Zainstalowany serwer WWW Nginx
  • Dostęp root do serwera

Krok 1: Utwórz użytkownika i hasło

1. Aby zabezpieczyć hasłem nasz katalog internetowy, będziemy musieli utworzyć plik, który będzie zawierał naszą zaszyfrowaną nazwę użytkownika i hasło.

Używając Apache, możesz użyć narzędzia „htpasswd”. Jeśli masz to narzędzie zainstalowane w swoim systemie, możesz użyć tego polecenia, aby wygenerować plik haseł:

htpasswd -c /path/to/file/.htpasswd username

Po uruchomieniu tego polecenia zostaniesz poproszony o ustawienie hasła dla powyższego użytkownika, po czym we wskazanym katalogu zostanie utworzony plik .htpasswd.

2. Jeśli nie masz zainstalowanego tego narzędzia, możesz ręcznie utworzyć plik .htpasswd. Plik powinien mieć następującą składnię:

username:encrypted-password:comment

Nazwa użytkownika, której będziesz używać, zależy od Ciebie, wybierz, co chcesz.

Ważniejszy jest sposób, w jaki wygenerujesz hasło dla tego użytkownika.

Krok 2: Wygeneruj zaszyfrowane hasło

3. Aby wygenerować hasło, użyj zintegrowanej funkcji „krypt” Perla.

Oto przykład tego polecenia:

perl -le 'print crypt("your-password", "salt-hash")'

Przykład z życia wzięty:

perl -le 'print crypt("#12Dfsaa$fa", "1xzcq")'

Teraz otwórz plik i umieść w nim swoją nazwę użytkownika oraz wygenerowaną nazwę, oddzielone średnikiem.

Oto jak:

vi /home/tecmint/.htpasswd

Wpisz swoją nazwę użytkownika i hasło. W moim przypadku wygląda to tak:

tecmint:1xV2Rdw7Q6MK.

Zapisz plik, naciskając „Esc”, a następnie „:wq”.

Krok 3: Zaktualizuj konfigurację Nginx

4. Teraz otwórz i edytuj plik konfiguracyjny Nginx powiązany z witryną, nad którą pracujesz. W naszym przypadku użyjemy domyślnego pliku pod adresem:

vi /etc/nginx/conf.d/default.conf       [For CentOS based systems]
OR
vi /etc/nginx/nginx.conf                [For CentOS based systems]


vi /etc/nginx/sites-enabled/default     [For Debian based systems]

W naszym przykładzie zabezpieczymy hasłem katalog główny dla nginx, czyli: /usr/share/nginx/html.

5. Teraz dodaj następującą sekcję dwóch linii pod ścieżką, którą chcesz chronić.

auth_basic "Administrator Login";
auth_basic_user_file /home/tecmint/.htpasswd;

Teraz zapisz plik i uruchom ponownie Nginx za pomocą:

systemctl restart nginx
OR
service nginx restart

6. Teraz skopiuj/wklej ten adres IP w przeglądarce. Powinieneś zostać poproszony o podanie hasła:

Otóż to! Twój główny katalog internetowy jest teraz chroniony. Jeśli chcesz usunąć ochronę hasłem w witrynie, po prostu usuń dwie linie, które właśnie dodałeś do pliku .htpasswd lub użyj poniższego polecenia, aby usunąć dodanego użytkownika z pliku haseł.

htpasswd -D /path/to/file/.htpasswd username