O ile jednak plik .htaccess utworzymy w zwykłym notatniku, to już z plikiem .htpasswd będzie więcej zachodu, gdyż tego pliku nie jesteśmy w stanie przygotować "odręcznie". Wynika to z faktu, iż hasła przechowywane w tym pliku zapisywane są w formie szyfrowanej, zatem skorzystać będziemy musieli z jakiegoś narzędzia generującego nasze hasła w formie zaszyfrowanej.
.htpasswd
Pierwszym i podstawowym narzędziem służacym do generowania pliku z hasłami jest udostępnione w pakiecie z serwerem Apache konsolowe narzędzie o nazwie:
- htpasswd.exe
Innym sposobem na utworzenie pliku z hasłami jest skorzystanie z któregoś z dostępnych on-line generatorów.
Oto ich krótka lista:
http://www.htaccesstools.com/htpasswd-generator/
http://www.askapache.com/online-tools/htpasswd-generator/
http://aspirine.org/htpasswd_en.html
http://www.htpasswdgenerator.net/
Jak wygląda taki plik z hasłami?
Jest to zwykły plik tekstowy o postaci:
- login1:hasło1
- login2:hasło2
- login3:hasło3
- ...itd
Przykład pliku .htpasswd:
- marek:$apr1$mFL7znbn$cQMJYoAf5gSXw0d2GAGNx.
- anna:$apr1$ggN.pSSf$Dld5WOZkHlPP03g534R0X/
- janusz:$apr1$GCpfbZ26$omnuEq040nxzQlYkYum.j.
- ...itd
Użytkowników może być dowolna ilość, należy jednak pamiętać, aby każdy z nich określony był w oddzielnej linijce, na zasadzie:
- nazwa_użytkownika1:hasło_użytkownika1
- nazwa_użytkownika2:hasło_użytkownika2
- nazwa_użytkownika3:hasło_użytkownika3
Skorzystamy teraz z wbudowanego w Apache narzędzia, aby wygenerować nasz plik z hasłami.
Na początek mała uwaga - plik z hasłami przechowujemy w folderze niedostępnym z zewnątrz.
Stwórzmy sobie jakiś wydzielony folder, np.:
- C:\top_secret
w Windowsie
lub
- /home/użytkownik/top_secret
na Linuxie
i tam zapisujmy hasła.
Ważne jest jedynie, aby folder nie był dostępny z poziomu WWW.
Składnia poleceń narzędzia htpasswd wygląda następująco:
- htpasswd.exe -parametr "/ŚCIEŻKA/DO/PLIKU/Z/HASŁAMI" nazwa_użytkownika
Utwórzmy więc np. użytkownika o nazwie janusz i dowolnym haśle.
Narzędzie pracuje w terminalu, wejdźmy więc do terminalu/konsoli i wpiszmy:
- htpasswd.exe -c "C:\top_secret\.htpasswd" janusz
Wciśnijmy ENTER, podajmy dwukrotnie hasło i to wszystko - plik został wygenerowany.
O ile wszystko wykonaliśmy poprawnie, plik C:\top_secret\.htpasswd powinień wyglądać jakoś tak:
- janusz:$apr1$R0L9yuuR$5yFjvKY5zzjcimetH3l.L.
Kolejnego użytkownika do tego pliku dodamy tak samo, ale pominiemy teraz parametr -c (skrót od create). Dodajmy kolejnego użytkownika np. o nazwie anna i dowolnym haśle:
- htpasswd.exe "C:\top_secret\.htpasswd" anna
Nasz plik ma już dwóch użytkowników:
- janusz:$apr1$zEw590ap$o9OvCKEbofz5v2SFE9SQJ0
- anna:$apr1$AQA3qYnC$z32ZOrJNJWExBL6Y0BKIl0
.htaccess
Teraz czas na zabawę z plikiem .htaccess.Załóżmy, że na naszym serwerze posiadamy katalog:
- C:\WWW\top_secret_area
który chcemy zabezpieczyć hasłem.
Utwórzmy w nim plik .htaccess i wpiszmy do niego to co poniższe:
- AuthType basic
- AuthName "Top Secret Area"
- AuthUserFile C:/top_secret/.htpasswd
- Require valid-user
Zapiszmy plik.
Teraz po koleji co tak naprawdę zrobiliśmy:
- AuthType - określa sposób autoryzacji, może to być basic, lub digest, my wykorzystamy basic
- AuthName - to nazwa wyświetlana po wejściu do chronionego zasobu, może być dowolna
- AuthUserFile - podajemy pełną ścieżkę do pliku z hasłami
- Require - wymieniamy po spacjach nazwy użytkowników, lub grup które mogą się logować, albo podajemy valid-user, które oznacza, że logować może się każdy użytkownik opisany w pliku z hasłami. W przypadku podawania użytkownika:
Require user nazwa_użytkownika1 nazwa_użytkownika2 itd...
W przypadku grup:
Require group nazwa_grupy1 nazwa_grupy2 itd.....
Jeśli wszystko wykonaliśmy poprawnie, to po wejściu do naszego katalogu:
- http://localhost/top_secret_area
wyświetli nam się prośba o podanie loginu i hasła w celu uzyskania dostępu do zawartości.
Od tej chwili jedynie określeni przez nas użytkownicy mają dostęp do tego folderu.
Możemy też określać nazwy grup użytkowników, którzy mogą się logować:
W przypadku takim, tworzymy plik z grupami np.:
- C:\top_secret\groups
I wpisujemy w nim np.:
- tajna_grupa: janusz anna
Grup możemy dodać kilka, każdą w oddzielnej linijce, np.:
- tajna_grupa: janusz anna
- inna_grupa: adam marek
Gdy mamy już plik z definicjami grup, dołączamy go do .htaccess i określamy kto może się logować tym razem podając grupę, a nie pojedyńczych użytkowników:
- AuthType basic
- AuthName "Top Secret Area"
- AuthUserFile C:/top_secret/.htpasswd
- AuthGroupFile C:/top_secret/groups
- Require group tajna_grupa
Uwaga: aby móc skorzystać z modułu autoryzacji w pliku .htaccess nasz katalog musi mieć ustawioną w konfiguracji httpd.conf dyrektywę AllowOverride na wartość all lub conajmniej na AuthConfig.
Ten komentarz został usunięty przez autora.
OdpowiedzUsuńTen komentarz został usunięty przez autora.
UsuńDzięki :)
OdpowiedzUsuń