Jak skonfigurować uwierzytelnianie Apache htpasswd w Ubuntu ⋆ ALexHost SRL

Sprawdź swoje umiejętności we wszystkich naszych usługach hostingowych i otrzymaj 15% zniżki!

Użyj kodu przy kasie:

Skills
09.12.2024

Jak skonfigurować uwierzytelnianie Apache htpasswd w Ubuntu

Korzystanie z uwierzytelniania htpasswd Apache to prosty sposób na dodanie podstawowej kontroli dostępu do katalogów internetowych, wymagając od użytkowników podania nazwy użytkownika i hasła przed uzyskaniem dostępu do określonych części witryny. Ten rodzaj uwierzytelniania jest często używany do ograniczania dostępu do wrażliwych obszarów, takich jak panele administracyjne lub witryny programistyczne, i można go łatwo skonfigurować na serwerze Ubuntu z uruchomionym Apache.

Wymagania wstępne

  • Serwer z systemem Ubuntu i zainstalowanym Apache2.
  • Dostęp roota lub sudo do serwera.
  • Podstawowa znajomość obsługi wiersza poleceń.

Krok 1: Zainstaluj Apache (jeśli nie jest jeszcze zainstalowany)

Jeśli Apache nie jest zainstalowany na serwerze Ubuntu, można go zainstalować za pomocą następującego polecenia:

sudo apt update
sudo apt install apache2

Krok 2: Włącz narzędzie htpasswd

Narzędzie htpasswd jest dostarczane przez pakiet apache2-utils, który jest zwykle instalowany wraz z Apache. Jeśli nie jest zainstalowany, można go zainstalować, uruchamiając:

sudo apt install apache2-utils

To polecenie instaluje niezbędne narzędzia do zarządzania plikami haseł dla uwierzytelniania htpasswd.

Krok 3: Utwórz plik .htpasswd

Plik .htpasswd służy do przechowywania nazw użytkowników i zaszyfrowanych haseł do uwierzytelniania.

  1. Utwórz nowy plik .htpasswd: Aby utworzyć nowy plik .htpasswd i dodać użytkownika, uruchom następujące polecenie:
    sudo htpasswd -c /etc/apache2/.htpasswd your_username

    Zastąp your_username nazwą użytkownika, którego chcesz utworzyć.

    • Opcja -c tworzy nowy plik .htpasswd. Jeśli plik już istnieje i użyjesz opcji -c, zostanie on nadpisany, więc używaj jej tylko podczas tworzenia pliku po raz pierwszy.
  2. Wprowadź i potwierdź hasło:Po uruchomieniu polecenia zostaniesz poproszony o wprowadzenie i potwierdzenie hasła dla użytkownika.Plik /etc/apache2/.htpasswd zostanie utworzony z zaszyfrowanym hasłem dla twojej_nazwy_użytkownika.
  3. Dodawanie dodatkowych użytkowników (opcjonalnie):Aby dodać więcej użytkowników bez nadpisywania istniejącego pliku .htpasswd, uruchom:
    sudo htpasswd /etc/apache2/.htpasswd another_username

    Zastąp another_username nową nazwą użytkownika. To polecenie dołącza nowego użytkownika do istniejącego pliku .htpasswd.

Krok 4: Konfiguracja Apache do ochrony hasłem

Musisz określić, który katalog lub lokalizację chcesz chronić hasłem. Odbywa się to za pomocą pliku .htaccess lub poprzez bezpośrednią edycję pliku konfiguracyjnego Apache.

Opcja 1: Użycie pliku .htaccess

  1. Włączenie plików .htaccess:Jeśli chcesz użyć plików .htaccess do skonfigurowania ochrony hasłem, upewnij się, że dyrektywa AllowOverride jest ustawiona na All dla katalogu, który chcesz chronić. Edytuj odpowiedni plik konfiguracyjny Apache (np. /etc/apache2/sites-available/000-default.conf):
    sudo nano /etc/apache2/sites-available/000-default.conf

    Znajdź sekcję dla katalogu głównego (np. /var/www/html) i ustaw AllowOverride na All:

    AllowOverride All
    .
  2. Ponowne uruchomienie Apache:Po edycji konfiguracji, uruchom ponownie Apache, aby zastosować zmiany:
    sudo systemctl restart apache2
  3. Utwórz plik .htaccess:Wewnątrz katalogu, który chcesz chronić (np. /var/www/html), utwórz lub edytuj plik .htaccess:
    sudo nano /var/www/html/.htaccess
  4. Dodaj następujące dyrektywy:Dodaj następujące linie do pliku .htaccess:
    AuthType Basic
    AuthName “Restricted Content”
    AuthUserFile /etc/apache2/.htpasswd
    Require valid-user
    • AuthType Basic: Określa podstawowe uwierzytelnianie.
    • AuthName: Wiadomość, która będzie wyświetlana w monicie uwierzytelniania.
    • AuthUserFile: Ścieżka do pliku .htpasswd.
    • Require valid-user: Ogranicza dostęp do użytkowników wymienionych w pliku .htpasswd.
  5. Zapisz i zamknij plik.

Opcja 2: Bezpośrednie użycie pliku konfiguracyjnego Apache

Jeśli wolisz zarządzać uwierzytelnianiem bezpośrednio w plikach konfiguracyjnych Apache zamiast używać .htaccess, wykonaj następujące kroki:

  1. Edycja konfiguracji wirtualnego hosta:Otwórz plik konfiguracyjny Apache dla witryny, którą chcesz chronić (np. /etc/apache2/sites-available/000-default.conf):
    sudo nano /etc/apache2/sites-available/000-default.conf
  2. Dodaj dyrektywy uwierzytelniania: Wewnątrz bloku lub bloku odpowiadającego katalogowi, który chcesz chronić, dodaj następujące elementy:
    <Directory “/var/www/html”>
    AuthType Basic
    AuthName “Restricted Content”
    AuthUserFile /etc/apache2/.htpasswd
    Require valid-user
  3. Zapisz i zamknij plik konfiguracyjny.
  4. Uruchom ponownie Apache:Po wprowadzeniu zmian, uruchom ponownie Apache:
    sudo systemctl restart apache2

Krok 5: Przetestuj uwierzytelnianie

Teraz przejdź do adresu URL chronionego katalogu za pomocą przeglądarki internetowej (np. http://your_server_ip_or_domain). Powinieneś zobaczyć monit logowania z prośbą o podanie nazwy użytkownika i hasła.

  • Wprowadź nazwę użytkownika i hasło utworzone za pomocą polecenia htpasswd.
  • Jeśli poświadczenia są poprawne, uzyskasz dostęp do katalogu; w przeciwnym razie odmówisz dostępu.

Krok 6: Zabezpieczenie pliku .htpasswd

Ze względów bezpieczeństwa upewnij się, że plik .htpasswd jest przechowywany poza katalogiem głównym sieci (np. /etc/apache2/.htpasswd), aby nie można było uzyskać do niego dostępu bezpośrednio przez przeglądarkę internetową.

Upewnij się, że plik .htpasswd ma prawidłowe uprawnienia:

sudo chmod 640 /etc/apache2/.htpasswd
sudo chown www-data:www-data /etc/apache2/.htpasswd

Zapewnia to, że tylko użytkownik Apache (www-data) i root mają dostęp do odczytu pliku .htpasswd.

Wnioski

Konfiguracja uwierzytelniania htpasswd w Apache to prosty sposób na dodanie podstawowej kontroli dostępu do określonych katalogów w witrynie. Nadaje się do ochrony na niskim poziomie, szczególnie w środowiskach programistycznych lub wewnętrznych. Jednak w przypadku bardzo wrażliwych obszarów należy rozważyć użycie bardziej niezawodnych metod uwierzytelniania, takich jak OAuth lub integracja z systemem zarządzania tożsamością.

Sprawdź swoje umiejętności we wszystkich naszych usługach hostingowych i otrzymaj 15% zniżki!

Użyj kodu przy kasie:

Skills