SVN: PLD-doc/book/pl_book__uslugi/pl_uslugi__apache.sec
qwiat
qwiat w pld-linux.org
Śro, 25 Paź 2006, 22:59:32 CEST
Author: qwiat
Date: Wed Oct 25 22:59:31 2006
New Revision: 7895
Modified:
PLD-doc/book/pl_book__uslugi/pl_uslugi__apache.sec
Log:
- przepisanie rozdzialu o autoryzacji
Modified: PLD-doc/book/pl_book__uslugi/pl_uslugi__apache.sec
==============================================================================
--- PLD-doc/book/pl_book__uslugi/pl_uslugi__apache.sec (original)
+++ PLD-doc/book/pl_book__uslugi/pl_uslugi__apache.sec Wed Oct 25 22:59:31 2006
@@ -253,67 +253,78 @@
</para>
</section>
<section id="uslugi_apache_auth">
- <title>Autoryzacja</title>
- <para>Apache udostępnia również mechanizm autoryzacji. Często używany jest aby
- wyodrębnić z serwisu pewną część przeznaczoną dla upoważnionych
- użytkowników. Uprawnienia działają na poziomie katalogów. Nie można w ten
+ <title>Ograniczenie dostępu za pomocą loginu i hasła</title>
+ <para>
+ Apache udostępnia mechanizm autoryzacji, który używany jest do
+ wyodrębnienia z serwisu pewnej części przeznaczonej dla upoważnionych
+ użytkowników. Ograniczenie działa na poziomie katalogów i nie można w ten
sposób chronić poszczególnych plików. Jeżeli potrzebujesz chronić jedynie
jeden lub kilka plików, stwórz w obrębie strony katalog o dowolnej nazwie
i umieść je w nim. Oczywiście musisz pamiętać o przekonstruowaniu
- linków na stronie.</para>
- <para>Zanim przystąpimy do konfiguracji musimy zainstalować pakiet o nazwie
- <literal>apache-mod_auth</literal>. Zawiera on polecenie
- <command>htpasswd</command>, które służy do wygenerowania pliku z nazwą
- użytkownika oraz hasłem, które go identyfikuje. Nie ma żadnej konwencji
- nazewnictwa, jednak zalecam ze względów bezpieczeństwa aby plik z hasłem
- zaczynał się od ciągu znaków: <emphasis>.ht</emphasis>, tak jak to zostało
- zdefiniowane w:</para><para><filename>/etc/httpd/httpd.conf/10_httpd.conf</filename>.
- </para>
- <screen>#
-# The following lines prevent .htaccess and .htpasswd files from being
-# viewed by Web clients.
-#
-<Files ~ "^\.ht">
- Order allow,deny
- Deny from all
-</Files></screen>
-<para>Musimy określić katalog przechowywania dla tych plików. Oczywiście powinien on być
- osiągalny z poziomu użytkownika <literal>http</literal> na którym pracuje apache. Możemy
- je trzymać w <filename class="directory">/home/services/httpd</filename>. Przystępujemy
- do generowania.</para>
-<screen># htpasswd -c /home/services/httpd/.htdostep jan
-New password:
-Re-type new password:
-Adding password for user jan
-</screen>
-<para>W tym miejscu zostaliśmy poproszeni o wpisanie hasła oraz jego potwierdzenie. Jeżeli wszystko
- się zgadza, dostaniemy informację taką jak w powyższym przykładzie.</para>
-<para>Nazwa użytkownika jest przechowywana w formie jawnej, natomiast hasło zostało zaszyfrowane.
-</para>
-<screen># cat /home/services/httpd/.htdostep
-jan:SAEWgAGl6fzFY</screen>
-<para>Należy ustawić odpowiednie prawa dostępu do tego pliku.</para>
-<screen># chmod 600 /home/services/httpd/.htdostep
-# chown http.http /home/services/httpd/.htdostep</screen>
-<para>W ten oto sposób dajemy możliwość zapisu i odczytu użytkownikowi <literal>http</literal> do
- <filename>.htdostep</filename>. Pozostaje nam jeszcze zdefiniowanie który katalog będziemy
- chronić. Należy w tym celu wyedytować główny plik konfiguracyjny apache:</para>
- <para><filename>/etc/httpd/httpd.conf/10_httpd.conf</filename></para>
- <para>Powinniśmy zdefiniować
- katalog, który będziemy chronić. Robimy to sposobem przedstawionym poniżej</para>
+ linków na stronie.
+ </para>
+ <para>
+ Apache wspiera wiele rodzajów źródeł uwierzytelniających:
+ pliki tekstowe, konta systemowe, bazy LDAP i
+ inne. My będziemy zajmować się autoryzacją za pomocą
+ plików tekstowych, ze względu na popularność i prostotę
+ tego rozwiązania.
+ Istnieją dwa protokoły przesyłania hasła
+ <literal>Basic</literal> i <literal>Digest</literal>
+ (w postaci skrótu). Metoda Digest jest bezpieczniejsza
+ jednak praktycznie nie jest obsługiwana przez
+ przeglądarki WWW, tak więc pozostaje nam używanie
+ metody Basic.
+ </para>
+ <para>
+ Zaczynamy od instalacji metapakietu <literal>apache-mod_auth</literal>
+ oraz pakietu <literal>htpasswd-apache</literal>.
+ Teraz dodajemy do któregoś z plików konfiguracji
+ regułkę chroniącą katalog :
<screen><Directory "/home/users/jan/public_html/private">
- Options Indexes FollowSymLinks Multiviews
AuthType Basic
+ AuthBasicProvider file
AuthName "Witaj Janie, zaloguj sie."
- AuthUserFile /home/services/httpd/.htdostep
+ AuthUserFile /home/services/httpd/.htpasswd
Require valid-user
-</Directory>
-</screen>
-<para>Aby ten wpis mógł zadziałać powinien być umieszczony w obrębie sekcji
- <literal>'Main' server configuration</literal>. Po zakończeniu edycji należy zrestartować
- demona poleceniem</para>
-<screen># /etc/rc.d/init.d/httpd restart</screen>
+</Directory></screen>
+ Opcja <option>AuthUserFile</option> wskazuje plik z
+ loginami i hasłami użytkowników, jak widać ścieżka ta
+ jest inna niż chroniony katalog ze względów bezpieczeństwa.
+ Opcja <option>Require</option> określa jacy użytkownicy
+ są akceptowani - tutaj każdy autoryzowany.
+ </para>
+ <para>
+ Teraz tworzymy plik z hasłami, poprzez dodanie pierwszego konta:
+<screen># htpasswd -c /home/services/httpd/.htdostep jan
+New password:
+Re-type new password:
+Adding password for user jan</screen>
+ Plikowi ustawiamy odpowiednie uprawnienia i własność,
+ aby dostęp do niego miał wyłącznie użytkownik <literal>http</literal>:
+<screen># chmod 600 /home/services/httpd/.htpasswd
+# chown http.http /home/services/httpd/.htpasswd</screen>
+ </para>
+ <para>
+ Po restarcie każde odwołanie do katalogu będzie wymagało
+ podania loginu <emphasis>jan</emphasis> i hasła. Istnieje
+ także możliwość dodania obsługi grup - mechanizmu
+ zbliżonego działaniem do uniksowych grup systemowych.
+ </para>
+ <para>
+ W wielu wypadkach będziemy chcieli dać możliwość
+ użytkownikom tworzenia plików z hasłami z wraz z
+ plikami <filename>.htaccess</filename> w katalogu
+ określonym przez <option>DocumentRoot</option>. Stanowi
+ to zagrożenie bezpieczeństwa, ze względu na możliwość
+ wyświetlenia zawartości tych plików. Możemy się
+ zabezpieczyć przed tym instalując pakiet
+ <literal>apache-mod_authz_host</literal>,
+ dzięki któremu m.in. nie zostaną wysłane do przeglądarki
+ pliki <literal>.ht*</literal>
+ </para>
</section>
+
<section id="uslugi_apache_php">
<title>Obsługa skryptów PHP</title>
<para>
Więcej informacji o liście dyskusyjnej pld-doc