Jak skonfigurować katalog internetowy chroniony hasłem w Apache
Apache to jeden z najpowszechniej używanych i popularnych serwerów internetowych na świecie, dlatego ważne jest, aby chronić swoje witryny przed nieautoryzowanymi użytkownikami. Uwierzytelnianie Apache można skonfigurować tak, aby wymagało od odwiedzających witrynę zalogowania się przy użyciu identyfikatora użytkownika i hasła. Istnieje wiele sposobów ochrony hasłem katalogów na serwerze WWW Apache.
W tym artykule opisano prosty sposób ochrony hasłem katalogu internetowego w Apache przy użyciu pliku .htaccess.
Uwaga: ten samouczek jest wykonywany na serwerze Ubuntu z zainstalowanym Apache.
Instalowanie pakietu narzędzi Apache
Najpierw musisz zainstalować pakiet apache2-utils, który udostępnia narzędzie o nazwie htpasswd do tworzenia pliku haseł.
Możesz go zainstalować, uruchamiając następujące polecenie:
sudo apt-get install apache2-utilsSkonfiguruj Apache, aby zezwalał na uwierzytelnianie .htaccess
Domyślnie Apache nie pozwala na użycie pliku .htaccess w Ubuntu 14.04. Będziesz musiał skonfigurować plik konfiguracyjny Apache, aby umożliwić uwierzytelnianie oparte na .htacces.
Możesz to zrobić, edytując plik konfiguracyjny Apache:
sudo nano /etc/apache2/apache2.confZnajdź sekcję rozpoczynającą się od Directory "/var/www/html" i zmień linię z AllowOverride none na AllowOverride AuthConfig
Options Indexes FollowSymLinks
AllowOverride AuthConfig
Require all grantedZapisz i zamknij plik.
Utwórz plik hasła
Możesz użyć narzędzia wiersza poleceń htpasswd, aby utworzyć plik haseł, którego Apache będzie mógł używać do uwierzytelniania użytkowników. Teraz utwórz ukryty plik .htpasswd w katalogu konfiguracyjnym „/etc/apache2”.
sudo htpasswd -c /etc/apache2/.htpasswd authuser1Spowoduje to wyświetlenie prośby o podanie i potwierdzenie hasła dla użytkownika authuser1.
Jeśli chcesz dodać kolejnego użytkownika, pomiń argument -c w poleceniu htpasswd.
Teraz, aby utworzyć kolejne uwierzytelnienie dla drugiego użytkownika, authuser2:
sudo htpasswd /etc/apache2/.htpasswd authuser2Możesz zobaczyć nazwę użytkownika i zaszyfrowane hasło dla każdego rekordu, uruchamiając:
sudo cat /etc/apache2/.htpasswd
Aby móc odczytać plik .htpasswd, musisz przyznać uprawnienia użytkownikowi „www-data”.
sudo chown www-data:www-data /etc/httpd/.htpasswd
sudo chmod 0660 /etc/httpd/.htpasswdSkonfiguruj uwierzytelnianie hasłem Apache
Musisz utworzyć plik „.htaccess” w katalogu internetowym, który chcesz ograniczyć. W tym przykładzie utworzę plik „.htaccess” w katalogu „/var/www/html/”, aby ograniczyć cały katalog główny dokumentu.
sudo nano /var/www/html/.htaccessDodaj następującą treść:
AuthType Basic
AuthName "Restricted Content"
AuthUserFile /etc/apache2/.htpasswd
Require valid-userOto co oznacza powyższy kod:
- AuthType: ta opcja określa typ uwierzytelniania.
- AuthName: Jest to treść wyświetlana na stronie internetowej po wyświetleniu monitu o podanie nazwy użytkownika i hasła.
- AuthUserFile: ta opcja określa lokalizację poświadczeń użytkownika.
- wymagaj prawidłowego użytkownika: oznacza, że stronę mogą załadować tylko pomyślnie uwierzytelnione żądania.
Zapisz i zamknij plik, a następnie uruchom ponownie Apache, aby zmiany zaczęły obowiązywać.
sudo /etc/init.d/apache2 restartTestowanie uwierzytelniania hasłem
Teraz na zdalnym komputerze uzyskaj dostęp do swojej witryny w przeglądarce internetowej. Zostaniesz poproszony o podanie nazwy użytkownika i hasła, aby uzyskać dostęp do strony internetowej.
Jeśli wprowadzisz prawidłowe dane uwierzytelniające użytkownika, uzyskasz dostęp do treści. Jeśli wprowadzisz nieprawidłowe dane uwierzytelniające użytkownika lub naciśniesz „Anuluj”, wyświetli się strona błędu Nieautoryzowane.
Wniosek
Powinieneś teraz mieć wystarczającą wiedzę, aby skonfigurować podstawowe uwierzytelnianie dla swojego serwera WWW Apache. Pamiętaj również, że ochronę hasłem należy połączyć z szyfrowaniem SSL, aby Twoje dane uwierzytelniające nie były wysyłane na serwer w postaci zwykłego tekstu.


