Zabezpieczenie hasłem zasobów serwera WWW

Z Thomas-Krenn-Wiki
Przejdź do nawigacji Przejdź do wyszukiwania

Artykuł ten opisuje jak można za pomocą pliku .htaccess w serwerze Apache zabezpieczyć katalogi i pliki hasłem.

Tworzenie pliku .passwd

Aby możliwe było zabezpieczenie hasłem katalogów i plików w serwerze Apache potrzebny jest plik, w którym zawarte są dane haseł. Plik ten nie powinien zostać utworzony w DocumentRoot (np. /var/www; tutaj możliwy jest do niego dostęp przez internet), ale w katalogu /root.

vps140:~# htpasswd -cs .passwd testuser
New password:
Re-type new password:
Adding password for user testuser
vps140:~# 

Parametr -c powoduje utworzenie nowego pliku, parametr -s jest odpowiedzialny za zaszyfrowanie haseł.

Plik ten może zostać edytowany za pomocą komendy cat:

vps140:~# cat .passwd
testuser:{SHA}RcVxoVbdzvQTUacTvN3uW6fpVGA=

Tworzenie pliku .htaccess

Aby możliwe było zabezpieczenie hasłem katalogów i plików w serwerze Apache, należ w odpowiednim katalogu utworzyć plik .htaccess - np. za pomocą edytora nano. Następnie założono, że zawarty w DocumentRoot katalog websvn ma być zabezpieczony hasłem.

vps140:/var/www/websvn# nano .htaccess

Plik wygląda w następujący sposób:

AuthType Basic
AuthUserFile /root/.passwd
AuthName "websvn"
order deny,allow
allow from all
require valid-user

Wiersz AuthUserFile podaje gdzie się znajduje .passwd, za pośrednictwem którego użytkownicy mogą się podczas logowania uwierzytelnić. Wiersz require valid-user umożliwia podanie kto może uzyskać dostęp do katalogu lub pliku - podając valid-user uzyskują wszyscy użytkownicy zawarci w .passwd dostęp do katalogu lub pliku. (W przypadku gdy jedynie określeni użytkownicy mają mieć dostęp, podanie tego jest tutaj możliwe (np. require testuser)

Dostosowanie pliku do wirtualnego hosta

Aby ustawienia były skuteczne, w pliku odpowiedniego wirtualnego hosta musi zostać zmieniona opcja AllowOverride, z None w All - w DocumentRoot Directory (/var/www/).

vps140:/etc/apache2/sites-available# nano default

NameVirtualHost *
<VirtualHost *>
        ServerAdmin webmaster@localhost

        DocumentRoot /var/www/
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
                # This directive allows us to have apache2's default start page
                # in /apache2-default/, but still have / go to the right place
                RedirectMatch ^/$ /apache2-default/
        </Directory>
.
.
.

Zastosowanie ustawień

Aby ustawienia zostały przez serwer zastosowane musi zostać przeprowadzony jego restart.

vps140:~# /etc/init.d/apache2 restart
Forcing reload of web server (apache2)... waiting .
vps140:~#

Wynik

W przypadku próby uzyskania dostępu do strony zostaje wyświetlone okno uwierzytelnienia.

Passwortabfrage.jpg

Linki

Wikipedia

Kapitel bei SELFHTML

Powiązane artykuły

Odczyt wartośći SMART z dysku SSD NVMe
Podstawowe informacje o Page Cache w Linuksie
Test dysku z Bonnie++ w Linuksie