W poprzednim odcinku poznaliśmy: komputerowa Apache serwer WWW (część 2) Marcin Bieńkowski Instytut Informatyki Uniwersytet Wrocławski Prawa i opcje katalogów Aliasy katalogów i przekierowania Pliki dziennika Proste wykorzystanie CGI komputerowa () Apache serwer WWW (część 2) 1 / 17 komputerowa () Apache serwer WWW (część 2) 2 / 17 W poprzednim odcinku, cd.: W dzisiejszym odcinku Każdy z komputerów może mieć wiele nazw i adresów IP localhost 127.0.0.1 komputer.strefa4.pracownia alias_jakis.strefa4.pracownia 192.168.0.4... W poprzednim odcinku wszystkie nazwy http://nazwa_domeny/ wskazywały na tę sama stronę główna. wirtualne domeny WWW regulowanie dostępu plikami.htaccess autoryzacja dostępu do zasobów za pomoca hasła prywatne strony użytkowników Dzisiaj pokażemy, jak to zmienić. komputerowa () Apache serwer WWW (część 2) 3 / 17 komputerowa () Apache serwer WWW (część 2) 4 / 17
WWW Konfiguracja Dzielimy je na IP-based: dla każdej domeny wirtualnej potrzebujemy osobnego adresu IP. Równoważne uruchomieniu osobnego serwera WWW dla każdego adresu i nasłuchiwanie tylko na danym interfejsie: Listen 11.22.33.44 80 Stosunkowo rzadko stosowane Name-based: wystarczy, że DNS potrafi przekształcić nazwę domeny (wpis typu A albo CNAME) na adres IP, a pod tym adresem IP jest odpowiednio skonfigurowany serwer WWW. Wpis NameVirtualHost określa, na jakich interfejsach serwer WWW przyjmuje połaczenia dotyczace wirtualnych domen. NameVirtualHost * NameVirtualHost *:80 NameVirtualHost 11.22.33.44:80 komputerowa () Apache serwer WWW (część 2) 5 / 17 komputerowa () Apache serwer WWW (część 2) 6 / 17 Konfiguracja wirtualnych domen, cd. Dla każdej wirtualnej domeny piszemy: <VirtualHost adres_ip>... W Debianie wpis dla każdej domeny w osobnym pliku w /etc/apache2/sites-available (+ link w /etc/apache2/sites-enabled). Co powinno znaleźć się w opisie wirtualnej domeny? Minimum: <VirtualHost *> ServerName www.domena.pl DocumentRoot /var/www/katalog_domeny Uwaga: Powinien też istnieć wpis dla domyślnej domeny (jako pierwszy). komputerowa () Apache serwer WWW (część 2) 7 / 17 komputerowa () Apache serwer WWW (część 2) 8 / 17
Przykład Zasięgi opcji # Opcje globalne NameVirtualHost * <VirtualHost *> # domyślna domena wirtualna ServerName komputer.domena.pl DocumentRoot /var/www/ # Opcje lokalne <VirtualHost *> ServerName wirtualna.domena.pl ServerAlias www.wirtualna.domena.pl DocumentRoot /var/www/wirtualna # Opcje lokalne komputerowa () Apache serwer WWW (część 2) 9 / 17 Opcje globalne dotycza wszystkich wirtualnych domen, chyba że zostana przysłonięte przez opcje lokalne. Opcje lokalne dotycza tylko tej domeny, w której definicji występuja. W szczególności: Poszczególne domeny moga mieć osobne pliki dziennika. Globalnie zdefiniowany ScriptAlias /cgi-bin/ /var/www/cgi-bin/ lub inny Alias powoduje działanie adresu http://dowolna_domena/cgi-bin/. Dostęp do tego samego katalogu może być możliwy w przypadku jednych domen, a zabroniony w przypadku innych. komputerowa () Apache serwer WWW (część 2) 10 / 17 Dla konkretnego katalogu /sciezka/katalog można określić prawa i opcje do niego wpisami <Directory> w plikach z globalna konfiguracja (tj. w /etc/apache2/...) lub określić je w pliku /sciezka/katalog/.htaccess Warunek wstępny: serwer uwzględni plik.htaccess na podstawie opcji AllowOverride zawartej w odpowiednim bloku <Directory>. komputerowa () Apache serwer WWW (część 2) 11 / 17 Hierarchiczne ustawianie opcji - przykład Przykład: <Directory /> Options None AllowOverride None <Directory /var/www/> Options Indexes <Directory /var/www/aaa/> Options Includes FollowSymLinks AllowOverride Options W katalogu / oraz /var/www/aaa znajduja się pliki.htaccess o treści: Options +ExecCGI komputerowa () Apache serwer WWW (część 2) 12 / 17
Opcje AllowOverride Autoryzacja na postawie hasła Kontrola dostępu na podstawie hasła AuthConfig - można zmieniać opcje dotyczace autoryzacji dostępu do katalogu Limit - kontrola dostępu na podstawie IP (Deny, Allow, Order) Options - możliwość używania Options All - wszystkie z powyższych None - żadne z powyższych Poprzednio dowiedzieliśmy się jak sterować kontrola dostępu na podstawie adresu IP klienta (opcje Order, Allow, Deny). Można to też zrobić na podstawie hasła: Przykład AuthType Basic AuthName "Tajne i poufne" AuthUserFile plik_z_haslami Require user mbi adam krzys # albo Digest # albo "valid-user" komputerowa () Apache serwer WWW (część 2) 13 / 17 komputerowa () Apache serwer WWW (część 2) 14 / 17 Autoryzacja na postawie hasła Pliki z hasłami Katalogi użytkowników Katalogi użytkowników Sa w formacie user:hasło. Hasło jest zaszyfrowane crypt-em (uwierzytelnianie Basic) albo MD5 (uwierzytelnianie Digest) Hasło można zmienić poleceniem htpasswd2 Często chcemy umożliwić użytkownikom posiadanie własnych stron WWW dostępnych przez adres http://domena/ user. Należy w tym celu właczyć odpowiedni moduł Apache: a2enmod userdir Przykładowa konfiguracja <IfModule mod_userdir.c> UserDir public_html UserDir disabled root <Directory /home/*/public_html> AllowOverride All Options Indexes </IfModule> komputerowa () Apache serwer WWW (część 2) 15 / 17 komputerowa () Apache serwer WWW (część 2) 16 / 17
Literatura Literatura Ben Laurie, Peter Laurie Apache: The Definitive Guide O Reilly & Associates The Apache Software Foundation Apache HTTP Server Version 2.0 Documentation http://httpd.apache.org/docs/2.0/ komputerowa () Apache serwer WWW (część 2) 17 / 17