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.
-#
-&lt;Files ~ "^\.ht"&gt;
-    Order allow,deny
-    Deny from all
-&lt;/Files&gt;</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>&lt;Directory "/home/users/jan/public_html/private"&gt;
-        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
-&lt;/Directory&gt;
-</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>
+&lt;/Directory&gt;</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