Introducing IIS7

:
Microsoft’s
Next Generation
Web Server

dotcore.pjwstk.edu.pl

Wprowadzenie do IIS7

Na wstępie warto wyjaśnić, czym jest IIS. Internet
Information Services to potężny, wydajny serwer sieci
Web, jak również hosting aplikacji i usług.
IIS 7 wyróżnia się budową modułową, serwer Web
składa się z około 40 składników, dzięki czemu
administrator może wybrać tylko te, które są wymagane.
Sprzyja to również zmniejszeniu liczby ataków.
Zupełną nowością w ISS 7 Windows Server 2008 jest
Internet Information Services (IIS) Manager, osobna
konsola MMC dla konfiguracji serwera sieci Web firmy
Microsoft.

Architektura

Internet Information Services (IIS) 7.0
zapewnia nową architekturę przetwarzania
żądań, m.in.:
Nowa usługa, Windows Process Activation

Service (WAS), która umożliwia używania
protokołów innych niż HTTP i HTTPS dla stron
Silnik, który umożliwia dodawanie i usuwanie
wybranych modułów
Komponenty: listeners - HTTP.sys, usługi - World
Wide Web Publishing Service (WWW service) i
Windows Process Activation Service (WAS)

Protocol Listeners


Protocol listeners odbierają specyficzne żądania, wysyłają je
do IIS w celu przetworzenia i zwracają odpowiedź do
żądającego. Przykładowo jeżeli przeglądarka klienta wysyła
rządanie otwarcia strony WWW, HTTP listener, HTTP.sys
odbiera żądanie i wysyła je do IIS. IIS przetwarza żądanie i
wysyła odpowiedź do klienta.
W standardzie HTTP.sys wpiera protokołu HTTP i HTTPS.
Żby wspierać usługi i aplikacje, które używają protokołów
innych niż HTTP i HTTPS, możemy użyć technologii
Windows Communication Foundation (WCF). WCF posiada
listener adapters, które zapewniają odpowiednie
funkcjonalności dla obsługi innych protokołów. Więcej
informacji o WCF na MSDN Windows Communication Foundation .

Hypertext Transfer Protocol Stack (HTTP.sys)



HTTP „nasłuchiwacze” są częścią podsystemu sieciowego, który jest
zaimplementowany jako sterowniki urządzeń na poziomie jądra w systemach
operacyjnych i nazywa się to HTTP protocol stack (HTTP.sys). HTTP.sys
nasłuchuje żądań HTTP requests z sieci, wysyła do IIS w celu przetworzenia
i wysyła odpowiedź zwrotną.
W IIS 6.0, HTTP.sys był zastąpiony Windows Sockets API (Winsock), który
był komponentem na poziomie użytkownika.
HTTP.sys zapewnia następujące korzyści:
Kernel-mode caching. Requests for cached responses are served without
switching to user mode.
Kernel-mode request queuing. Requests cause less overhead in context
switching because the kernel forwards requests directly to the correct worker
process. If no worker process is available to accept a request, the kernelmode request queue holds the request until a worker process picks it up.
Request pre-processing and security filtering.

sys.sys przy zmianach w konfiguracji. WWW Service zbiera informacje do liczników .World Wide Web Publishing Service (WWW service)   WW Service jest odpowiedzialny za konfigurację HTTP. i informowanie WAS kiedy pojawi się rządanie w kolejce. update HTTP.

.0 by using WAS. see Hosting in WCF on MSDN.Windows Process Activation Service (WAS)    Używa tej samej konfiguracji i modelu przetwarzania jak dla HTTP Opcjonalnie można odpalić WAS bez startowania WWW Servcie jeśli nie jest potrzebna funkcjonalność HTTP. For information about WCF listener adapters and hosting WCF applications in IIS 7.

HTTP. WAS starts a worker process for the application pool to which the request was made.sys. 3. HTTP. 8. 2. 7. applicationHost. such as application pool and site configuration.sys contacts WAS to obtain information from the configuration store.sys intercepts the request. 4.HTTP Request Processing in IIS7 1. 5. When a client browser initiates an HTTP request for a resource on the Web server. . The client receives a response. WAS requests configuration information from the configuration store.sys.config. WWW Service receives configuration information. WWW Service uses the configuration information to configure HTTP. The worker process processes the request and returns a response to HTTP. 6.

HTTP Request Processing in IIS7 .

gdzie wybrać należy „Add Roles” i następnie zaznaczyć właściwe składniki.  Następnym krokiem instalacji jest wybór składników.IIS7 jako serwer stron WWW Instalacja  Server Manager. użytkownik musi wyrazić zgodę na doinstalowanie opcji związanych z Windows Process Activation Service. Można zainstalować wszystkie. spośród kilkudziesięciu IIS7.  .  Zaznaczając rolę IIS. Są one niezbędne do działania IIS. jeżeli ktoś chce eksperymentować. które faktycznie mają być zainstalowane.

.1. Wszystkie serwerowe opcje są elementami tego głównego węzła.Web Server Główna funkcjonalność serwera internetowego. zaznaczana automatycznie.

pełny adres strony Microsoft to http://www. jak użytkownik o żadną nie zapyta – należy zaznaczyć tę opcję. Opcja pozwalająca na publikowanie stron.aspx. ale tak skonfigurowany serwer byłby bardzo nieciekawy. . Nikt jednak tak nie pisze.  Default Document.com/en/us/default.2. Z punktu kogoś.Common HTTP Features  Zaznaczana automatycznie funkcjonalność serwera jest związana ze statycznymi stronami.  Static Content. którą stronę podać. Teoretycznie wystarczyłaby tylko ona.microsoft. Aby serwer wiedział. Włączyć.com/. zamiast tego podając w przeglądarce tylko http://www. kto chciałby opublikować swoje strony. jest to opcja najważniejsza. Opcja pozwala na podanie strony html w sytuacji.microsoft. Przykładowo. Włączyć. kiedy użytkownik wpisze w przeglądarce tylko adres serwera.

że opcję tę można później włączać i wyłączać dla każdego katalogu oddzielnie. Opcja pozwala na wysyłanie do klienta własnych komunikatów błędu. Application Development. Zaznaczana automatycznie. jeżeli tylko może się przydać.    Directory Browsing. Opcja pozwala na przekserowanie klienta w inne miejsce. Włączyć. Włączyć. Zazwyczaj przyjmuje się. otwiera go już w jego właściwej postaci. że inne niż celowe i przemyślane pokazanie komuś zawartości katalogu jest istotnym naruszeniem powszechnie przyjętych standardów bezpieczeństwa serwera WWW. Włączyć. Może to być bardzo użyteczne na przykład przy zmianach w strukturze stron. co zostanie omówione w dalszej części artykułu. Opcja pozwala na przeglądanie plików w katalogu. HTTP Redirection. w praktycznie niezauważalny dla niego sposób. Należy pamiętać. Zamiast ładnej strony wyświetlana jest lista plików. a kliknięcie na jakiś plik . . HTTP Errors. Zestaw opcji wspierających aplikacje internetowe. jeżeli z jakiegoś powodu błąd się pojawi. Typową sytuacją (i komunikatem) błędu jest odwołanie do nieistniejącej strony.

że wyłączenie może uniemożliwić ich publikację. CGI. Każde otwarcie strony to uruchomienie aplikacji. Praktyka pokazuje jednak. . Wynik działania programu *. Wyłączyć. ASP jest standardem skryptów uruchamianych po stronie serwera IIS. Stary.EXE odsyłany jest jako odpowiedź dla klienta. utrzymuje i aktualizuje. na czym cierpi wydajność. Kompletne zapytanie od klienta przekazywane jest jako parametr podawany przy uruchomieniu zapisanego na dysku pliku *. Formalnie nie jest to statyczna strona WWW. Włączyć lub wyłączyć w zależności od sytuacji. ale stale żywy sposób zapewniania dynamicznej treści stron internetowych. Z drugiej strony. prostota mechanizmu sprawia. Bardzo wydajny mechanizm tworzenia dynamicznych stron. że nawet statyczne strony na tyle często mają format ASP. ISAPI Extensions. jednak strony tak tworzone zazwyczaj bardzo ciężko się rozwija. więc wypadałoby wyłączyć. Cały kod generujący stronę zapisany jest w podłączonej do IIS bibliotece DLL. że aplikacje CGI są nadal tworzone w dziesiątkach różnych języków programowania. Efektem jest bardzo szybka praca. Wyłączyć.EXE.   ASP.

ISAPI Filters są rozszerzeniami serwera IIS pozwalającymi na obsługę przychodzących zgłoszeń nim trafią one do właściwego serwera. Przykładowo. Bardzo cenna opcja pozwalająca na uruchamianie najnowocześniejszych aplikacji internetowych. Stara i prosta metoda tworzenia zawartości stron. Wyłączyć. temu.txt i dopiero wtedy całość jest wysyłana do klienta jako jeden spójny kod HTML. Server Side Includes. która zablokuje wszystkie żądania niezgodne z RFC. poprzez łączenie zawartości różnych plików. Pozwala na rozszerzanie funkcjonalności IIS7. Wyłączyć. Wyłączyć.    ISAPI Filters. dla każdej wyświetlanej strony jej stopka jest pobierana z pliku stopka. ASP. Wyłączyć.NET. można na przykład stworzyć bibliotekę. NET Extensibility. .

 Logging Tools. Opcja pozwala na tworzenie własnych metod logowania zapytań. Wyłączyć. Zestaw opcji służących do monitorowania stanu serwera. dla statycznych stron jest zbędne.  Custom Logging. Dane takie są łatwiejsze do późniejszej analizy dzięki mechanizmom SQL. Włączyć. Opcja pozwala śledzić zapytania. Wyłączyć. Wyłączyć. Opcja pozwala na zapisywanie na dysku plików z informacjami o odwołaniach do stron.Health and Diagnostics  Zaznaczana automatycznie. Są to dodatkowe narzędzia pozwalające na zarządzanie logami systemowymi.3. Włączyć. chyba że włączenie jest uzasadnione. Opcja pozwalająca na śledzenie zapytań.  HTTP Logging. Wyłączyć.  Tracing. Opcja pozwala na zapisywanie informacji o zapytaniach do bazy danych zamiast do plików. Wymaga niemałych umiejętności i nie wnosi nic cennego w przypadku statycznych stron.  ODBC Logging. Pliki takie umożliwiają później analizę odwiedzin i śledzenie błędów.  Request Monitor. Co w praktyce dla statycznych stron jest zbędne. co w praktyce. .

Włączyć. Włączyć. jeżeli do części stron dostęp mają mieć tylko wybrani użytkownicy z lokalnej sieci LAN. Ta metoda autentykacji jest dostępna w każdej przeglądarce. Włączyć. Zestaw opcji pozwalających na dostosowanie metod. Raczej wyłączyć. którymi klient może potwierdzić swoją tożsamość.Security Zaznaczane automatycznie. . Jeżeli jest konieczne uwierzytelnianie użytkowników.  Windows Authentication. jeżeli do części stron dostęp mają mieć tylko wybrani użytkownicy a inne metody nie działają. to opcja wydaje się najbezpieczniejsza. Metoda autentykacji opiera się na uwierzytelnianiu systemu. jednak jej wadą jest stosunkowo prosta możliwość podsłuchania haseł.  Digest Authentication. Dzięki temu. chyba że wszystkie strony na serwerze WWW przeznaczone są dla całego świata. Raczej wyłączyć. użytkownik zalogowany do domeny automatycznie może się przedstawić serwerowi.  Basic Authentication.4.

znający już dobrze serwer IIS.  URL Authorization.  Request Filtering. chyba że strony WWW mają złożony schemat uprawnień określających dopuszczonych użytkowników. jednak jego złożoność sprawia. jak to działa. Opcja ta podłącza do IIS filtry. które są w stanie zapobiec wielu typowym atakom. Bardzo bezpieczny sposób uwierzytelniania. Wyłączyć dopóki się nie zrozumie.Security  Client Certificate Mapping Authentication. jednak jego złożoność sprawia. które adresy IP mają zakaz (lub pozwolenie) dostępu do stron.4. że włączać tę opcję powinni tylko doświadczeni administratorzy. że włączać tę opcję powinni tylko doświadczeni administratorzy. Włączyć. Dzięki tej opcji można zarządzać uprawnieniami poprzez określenie. Opcja pozwala na powiązanie uprawnień do stron z grupami do których należy użytkownik. Włączyć. jak to działa.  IIS Client Certificate Mapping Authentication.  IP and Domain Restrictions. . znający już dobrze serwer IIS. Wyłączyć dopóki się nie zrozumie. Raczej wyłączyć. Bardzo bezpieczny sposób uwierzytelniania.

Performance Zaznaczane automatycznie. Ponadto. że odwiedzana strona jest kompresowana. zapisywana w skompresowanej postaci i od tej pory w takiej właśnie postaci wysyłana do klienta.  Dynamic Content Compression. Dzięki temu. Analogiczna jak dla Static Content Compression możliwość kompresji stron. Włączyć. co znacząco obciąża procesor. Zastosowanie tej opcji powoduje. znacząco zmniejsza się obciążenie łącza. za każdym razem jest kompresowana przed wysłaniem do klienta. że każda odwiedzana strona. . Wyłączyć. Opcja powoduje.  Static Content Compression. jednak dla zawartości dynamicznej. Zestaw dwóch opcji związanych z kompresją przesyłanych danych. niniejszy artykuł opisuje serwer stron statycznych. przez co opcja Dynamic Content Compression nie ma zastosowania.5.

Nawet. Opcja odpowiada za instalacji konsoli zarządzającej serwerem IIS7.  IIS Management Console. Włączyć. Wyłączyć. jeżeli nie są potrzebne od razu.Management Tools. Zaznaczane automatycznie. to nigdy nie wiadomo. Zestaw opcji związanych z narzędziami administracyjnymi IIS.  IIS Management Script and Tools. . kiedy mogą się przydać.  Management Service. Włączyć tylko w sytuacji.6. Włączyć. gdy serwerem administruje równocześnie wiele osób. każda odpowiadająca tylko za swój serwer wirtualny. Narzędzia administracyjne obsługiwane z linii poleceń.

Zaznaczane automatycznie. Zgodność z metabazą IIS6 nie powinna być używana bez wyraźnej potrzeby. Konsola zarządzająca z poprzedniej wersji serwera. IIS6 Managment Console. IIS6 Scripting Tools. Opcje wykorzystujące mechanizmy z poprzedniej wersji serwera IIS. Użyteczna wyłącznie dla SMTP i FTP. Wyłączyć.7. Wyłączyć. IIS6 WMI Compatibility. Wyłączyć. Narzędzia do zarządzania IIS przez wiersz poleceń zostały zastąpione nowymi aplikacjami. Wyłączyć. .     IIS6 Metabase Compatibility. Zgodność z interfejsami WMI dla IIS6 nie powinna być używana bez wyraźnej potrzeby. IIS6 Management Compatibility.

 FTP Management konsole. Wyłączyć. Ponadto.FTP Publishing Service. funkcjonalność FTP osiągana jest innymi. Po ostatecznym potwierdzeniu. Dwie opcje pozwalające na uruchomienie i zarządzanie serwerem FTP  FTP Server. Serwer dołączony do wersji RC1 (ostatnia dostępna podczas tworzenia artykułu) nie zachęca do użycia. system wykona instalację wybranych opcji potwierdzając zakończenie komunikatem „Installation succeeded” . Konsola zarządzająca FTP nie jest potrzebna jeżeli nie został zainstalowany serwer FTP.8. Zaznaczane automatycznie. Wyłączyć. wydajniejszymi i bezpieczniejszymi mechanizmami.

 Jak widać. że serwer już działa.Konfiguracja IIS7  Po zakończeniu instalacji.0). na pierwszy rzut oka nic nowego się nie pojawia.0. . ale i na adresach IPv6 ([::]). Jeżeli jednak sprawdzi się otwarte porty TCP/IP od razu widać.0. serwer nasłuchuje na porcie 80 nie tylko na wszystkich adresach IPv4 (0.

Konfiguracja IIS7 Jak się łatwo domyślić. . zarządzać można różnymi funkcjonalnościami serwera. Podstawowym narzędziem jest Internet Information Server (IIS) Manager. Wybierając elementy drzewa. wybrane podczas instalacji. w menu Start znajdują się narzędzia administracyjne. Po uruchomieniu z lewej strony konsoli wyświetlana jest struktura w postaci drzewa.

IIS7 Manager .

Dzięki takiemu podejściu. co jest stosunkowo łatwo sprawdzić. że najpierw konfiguruje się opcje dostępne z poziomu serwera. ale wymagałby każdorazowo sprawdzenia zabezpieczeń. Pozwala to na stworzenie nowego serwisu wymaga rozluźnienia uprawnień na tyle.Best Practices   Przyjąć należy. każdy nowy site odziedziczy ustawienia i już w chwili utworzenia będzie poprawnie skonfigurowany i gotowy do pracy. Jeżeli gdzieś poziom taki przeszkadza w funkcjonowaniu serwisów WWW. Sprawdzającym się w praktyce podejściem jest ustawienie właściwości na poziomie całego serwera na poziom maksymalnie bezpieczny. można go rozluźnić dla danego serwisu. każdy serwis działałby poprawnie. . żeby działał poprawnie. a dopiero później dostępne z poziomu site. W przeciwnym razie.

Oczywiste jest.  . W przypadku metody „Anonymous”. Oprócz sugerowanej metody „Digest”. wartość parametru jest równa IUSR i to ta grupa musi mieć prawa odczytu do katalogów. że zatrzymany serwer nie udostępnia w sieci stron WWW. Wartość tego parametru wyświetlana jest użytkownikowi razem z pytaniem o hasło i zawierać powinna jakiś czytelny opis serwera lub strony.  Authentication Opcje dostępne w tym widoku zależą bezpośrednio od wybranych w czasie instalacji metod uwierzytelniania. stop oraz restart. W przypadku metody „Digest” dostępne jest okno konfiguracyjne. którym IIS się posługuje. Domyślnie. pojawia się metoda „Anonymous Authentication”. w których znajdują się pliki html. w którym można zmienić parametr Realm. odczytując strony z dysku. najważniejszym parametrem jest nazwa konta. Uruchamiają one i zatrzymują cały serwer HTTP. użytkownik ma do dyspozycji opcje start. Poziom serwera Z poziomu zarządzania całym serwerem.

Katalogu. Pliki bardzo małe nie zyskują na kompresji na tyle dużo. Administrator ma do możliwość zdefiniowania: Włączenia lub wyłączenia kompresji. dane kompresowane są raz i zapisywane na dysku. . który jest poddawany kompresji. żeby operacja taka była opłacalna. Limit ustawiany jest per pula aplikacji. Aby nie przeprowadzać kompresji przy każdym żądaniu. Limitu objętości skompresowanych danych na dysku. ale dla typowego serwera statycznych stron każdy site ma jedną swoją pulę. Minimalnego rozmiaru pliku. w którym przechowywane są skompresowane dane. Ustawiając parametry kompresji.Compression     Kompresja zawartości statycznej ma na celu „spakowanie” zawartości stron i wysyłanie jej w takiej postaci do klienta.

Dane domyślnej strony ustawiane są właśnie w sekcji „Default Document”. żeby właściciel stron WWW nie chciał publikować domyślnego dokumentu. Dostępna w sekcji „Actions” opcja Disable w ogóle wyłącza funkcjonalność domyślnego dokumentu dla danego katalogu wirtualnego.  W praktyce bardzo rzadko zdarza się. najlepszym rozwiązaniem wydaje się umieszczenie całej listy typowych nazw dokumentów. a jeżeli przeglądanie również nie jest możliwe – wysyłany jest kod błędu mówiący. serwer musi wiedzieć. każdy katalog ma szansę wyświetlać poprawnie swój domyślny dokument. Lista ta przetwarzana jest od pierwszej do ostatniej pozycji. sprawdzane jest zezwolenie na przeglądanie katalogu. że tego katalogu nie wolno przeglądać. Jeżeli nie istnieje – przetwarzany jest kolejny wpis na liście.  Poprzez interfejs IIS Manager możliwa jest zmiana kolejności dokumentów domyślnych.Default Document Ponieważ użytkownik woli wpisywać w przeglądarce adres serwera zamiast pełnej ścieżki do dokumentu. jaką stronę ma wysłać do przeglądarki w sytuacji. W takiej sytuacji. Jeżeli dokument wymieniony na liście istnieje na serwerze – jest wysyłany do klienta. Ponieważ przyjęte standardy określają kilka zwyczajowo stosowanych nazw. . co w IIS jest ustawione domyślnie. kiedy użytkownik nie poprosi o żadną konkretną. ich dodawanie i usuwanie. Jeżeli wpis nie został znaleziony.  Dla każdego wirtualnego katalogu (o czym dalej) możliwe jest zdefiniowanie listy domyślnych dokumentów.

że działanie takie będzie potrzebne. w konkretnych katalogach włączać tylko wtedy. że użytkownik serwera widzi znajdujące się na nim pliki zamiast stron internetowych. że jest to sytuacja wyjątkowa. Należy jednak przyjąć.  Serwer IIS najpierw sprawdza obecność domyślnego dokumentu i dopiero kiedy go nie znajdzie. . Może zdarzyć się.Directory Browsing Opcja Directory Browsing odpowiada za uprawnienia do przeglądania katalogów serwera. W opcjach IIS Manager dotyczących przeglądania katalogów określić można.  Należy pamiętać. że nieuzasadnione wyświetlanie katalogów serwera uznawane jest za poważne naruszenie reguł bezpiecznej konfiguracji. Dlatego na poziomie serwera należy wyłączyć przeglądanie katalogów i lokalnie. które z widocznych na rysunku parametrów pliku (data. pozwala na przeglądanie katalogu. czas. Włączenie tej opcji sprawia. kiedy jest to potrzebne. rozmiar i rozszerzenie) są wyświetlane.

że przeglądarka zrozumie komunikat. W normalnych warunkach kod ten ma numer 200 i oznacza. serwer może zamiast samego kodu wysłać również jakieś dane. . że na serwerze nie ma tej strony. o którą zapytał. to właśnie kod błędu informuje o tym. W takim przypadku. "Status Code Definitions”. że dla każdego zapytania od klienta. jakiego rodzaju jest to odpowiedź. W przypadku błędu. Istnieją jednak sytuacje. dzięki czemu klient łatwo trafi tam. Kody błędów są ustandaryzowane i opisane w dokumencie RFC 2616. Przykładowo. sekcja 10. kiedy serwer nie może odpowiedzieć na żądanie klienta. że wszystko poszło dobrze. co naprawdę się wydarzyło. serwer może na przykład wyświetlić stronę. Zamiast posłać samo 404 i liczyć.Error Pages Protokół HTTP określa. błąd 404 mówi klientowi. gdzie chciał. w odpowiedzi zwracanej z serwera powinien się znaleźć kod liczbowy mówiący. na której będzie opisana struktura portalu.

Przekierować klienta na inną stronę. Może to być na przykład „szanowny kliencie. Wykonać skrypt lub aplikację na serwerze. nie ma u nas na serwerze takiej strony”. że odpowiedź wysyłana jest w języku właściwym dla danego klienta. nawet na stronę na innym serwerze.Error Pages Administrator ma następujące możliwości:    Wstawić tekst z pliku. mając klientów mówiących różnymi językami. Co ciekawe. można określić. .

ale dla poszczególnych katalogów czasem trzeba je zdefiniować.302 lub 307) mówiącego.Handler Mappings Opcja ta odpowiada za specjalną obsługę niektórych zapytań. że danej zawartości należy poszukać gdzie indziej. W przypadku standardowego serwera udostępniającego strony WWW najpraktyczniejszym podejściem jest pozostawienie wszelkich ustawień z wartościami domyślnymi. . Klient wchodzący na daną stronę zostanie automatycznie skierowany w miejsce określone przez administratora IIS. Przekierowanie dla całego serwera zazwyczaj mija się z celem. HTTP Redirect Opcja pozwalająca na odesłanie klientowi kodu (301.

że przy kolejnym odwołaniu do serwera. system klienta nie będzie musiał od nowa zestawiać sesji TCP. Jedną z nich są nagłówki. które mogą się przydać:  http keep-alive . Zmniejsza się dzięki temu ilość przesłanych danych i zwiększa prędkość. przeglądarka wie. Opcja ta jest domyślnie włączona. Można podać konkretną datę lub „nigdy”. że nie warto się na niej skupiać. . że jest to wykonalne. to będzie nieaktualna”. Potrzeba wstawienia własnych nagłówków jest tak egzotyczna. Dopóki nie jest to czymś konkretnym uzasadnione.nagłówek mówiący przeglądarce. czy ponowne żądanie danych ze strony stronę może być obsłużona na podstawie danych zgromadzonych w cache przeglądarki czy musi opierać się na informacjach pobranych z serwera. Dzięki temu nagłówkowi. lub „jak tylko ją pobierzesz. Zyskiem jest to.HTTP Response Headers Wraz z treścią strony (i omówionym już kodem liczbowym) serwer HTTP może przesłać do klienta wiele dodatkowych informacji. Należy tylko zapamiętać. Nagłówki można dowolnie definiować według własnych potrzeb lub skorzystać z dwóch predefiniowanych.nagłówek mówiący przeglądarce. Definiuje się je w sekcji HTTP Response Headers. że nie powinna się rozłączać z serwerem. kiedy treść strony będzie już nieaktualna.  Content expres . Predefiniowane nagłówki dotyczą za to opcji. najlepiej pozostawić nagłówek content expires wyłączony.

Pomijając trudności z późniejszym znalezienie przyczyn błędów.  Rodzaj podejścia zależeć musi od konkretnej sytuacji i dla każdego wirtualnego katalogu może być ustawiony indywidualnie.  Administrator nie pozwala wchodzić nikomu oprócz tych. więc nie powinno być traktowane jako ważna linia obrony serwera. że właściciel stron internetowych chce ograniczać dostęp do nich na podstawie informacji o adresie IP użytkownika. . Z wyjątkiem bardzo specyficznych sytuacji. ograniczenie takie można próbować omijać. W przypadku IIS7 jest to możliwe i istnieją dwa scenariusze:  Administrator pozwala wchodzić wszystkim oprócz wskazanych (Black list). których wskaże (white list). Zmiana polityki dostępu (Black list czy white list) możliwa jest po wybraniu opcji „Edit Feature Settings”. zarządzanie dostępem na podstawie adresu IP powinno nie być wykonywane na poziomie całego serwera.IPv4 Address and Domain Restrictions Czasem zdarza się.

 Kodowanie znaków narodowych. . Dostępne wartości to: co godzinę. które parametry żądania są zapisywane w pliku logu a które nie. Domyślna opcja UTF-8 jest mniej uniwersalna. codziennie. Najbardziej typowym formatem jest W3C czyli format. Domyślne ustawienie zakłada.  Katalog. Czy jest to o północy lokalnego czasu czy czasu UTC. gdy stary osiągnie założony rozmiar (minimum 1048576 bajtów) lub cały czas zapisywać log do jednego pliku. że trzeba będzie do nich sięgnąć. z którym zgodne są praktycznie wszystkie serwery internetowe. Log można zbierać jeden dla całego serwera IIS lub oddzielnie dla każdego serwera wirtualnego (o czym dalej). ale na pewno pozwoli na zapisanie każdego znaku narodowego z chińskimi i japońskimi włącznie. nowy plik można zakładać wtedy.  Sposób tworzenia nowego pliku (rotacja). Opcje dostępne po włączeniu logowania przez administratora:  Poziom logowania (One log file per). Opcja ta wskazuje. czy nie. Przy pomocy przycisku „Select Fields” wybrać można. w którym zapisywane są logi.  Format logu. Ponadto. jak często ma być tworzony nowy plik z logami. niezależnie od tego czy pochodzą z Microsoft.Logging Logowanie zapytań jest jedną z najważniejszych rzeczy w dobrze skonfigurowanym serwerze. jeżeli logi nie wydają się dzisiaj potrzebne. Nawet. co tydzień i co miesiąc. Miejsce. na pewno w przyszłości zdarzy się tak. że każdy serwer wirtualny ma oddzielny log i wydaje się to sensowne.  Ostatnia opcja określa kiedy jest koniec dnia i nadeszła pora na założenie nowego pliku.

Remedium może być albo umieszczenie logów na dedykowanym dysku albo stworzenie automatu (na przykład opartego na Task Scheduler). to w logach zostanie zapisana godzina 11:00. nietrudno wyobrazić sobie. W logach serwera WWW zapisywany jest czas. ponieważ logi serwera IIS7. nie wolno zapomnieć o dwóch istotnych faktach:   Logi serwera WWW nie są małe. że po prostu zabraknie na nie miejsca. domyślnie znajdują się na dysku systemowym. A jeżeli systemowi zabraknie miejsca na dysku. Jeżeli serwer obsługuje wiele serwerów wirtualnych. . Miesiąc działania średnio odwiedzanego serwera to 300MB. Jeżeli odwołanie do strony miało miejsce w południe czasu polskiego. który stare logi będzie archiwizował i usuwał. I tu pojawia się problem.Logging Ustawiając parametry logowania. przesunięty o godzinę w stosunku do polskiego. Rok – prawie 4GB. to skutki mogą być bardzo smutne. Czas ten nie jest czasem lokalnym! To czas uniwersalny czyli UTC. Należy o tym pamiętać.

to listę tę powinien traktować jako informację przeznaczoną tylko do odczytu i zbyt głęboko w niej nie grzebać. których rozszerzenie nie pojawia się na liście. To właśnie te moduły obsługują zapytania do serwera i ich lista zależy od wybranych podczas instalacji opcji. co robi. Modules W sekcji tej wymienione są załadowane przez IIS moduły. W takiej sytuacji możliwe jest. co robi. Dopóki ktoś nie jest w stu procentach pewny. Zasadniczo. że póki administrator nie jest pewny tego. co z plikiem zrobić. .Mime Types Tabela typów plików informuje serwer jaki nagłówek ma wysłać w przypadku żądania pliku z danym rozszerzeniem. że dany plik nie istnieje. należy przyjąć. Na podstawie tego nagłówka przeglądarka wie. Szczególnym przypadkiem są pliki. że serwer odpowie. opcje te powinien omijać.

eksperymenty z buforowaniem warto prowadzić tylko tam. W IIS Manager definiować można jakie parametry ma mieć buforowania dla każdego typu plików oddzielnie. gdzie wszystko inne działa już perfekcyjnie i wydajność serwera (nie łącza!) nie jest zadowalająca.  Buforuj na zadany czas. W praktyce. Warto wiedzieć.Output Caching Buforowanie danych wyjściowych ma na celu przyspieszenie ich wysyłania do klienta HTTP. . zdefiniować daje się również domyślna polityka buforowania.  Nie buforuj. Oczywiście. że dla buforowania można ustawiać polityki typu:  Buforuj dopóki zawartość nie zostanie zmieniona.

która pomaga administratorowi w zarządzaniu. Każdy certyfikat ma kilka istotnych pól:  Name (nazwa). Wprawdzie po tym terminie certyfikat działa i transmisja jest szyfrowana.  Certificate Hash (wynik funkcji skrótu). Niedługi ciąg znaków. dla którego certyfikat został wydany.  Expiration Date (data wygaśnięcia). których serwer IIS7 używa do szyfrowania ruchu SSL (HTTPS).  Issued To (wydany dla). który wydał certyfikat. którego nazwa nie jest zgodna z nazwą serwera. . jednak użytkownik zobaczy w ekranie przeglądarki komunikat o potencjalnym zagrożeniu. Określa nazwę podmiotu. Nazwa ta zaszyta jest wewnątrz certyfikatu i nie może zostać zmieniona. który zmienia się całkowicie nawet przy najdrobniejszej modyfikacji certyfikatu.  Issued By (wydany przez). Pole określa nazwę certyfikatu. użytkownik zobaczy w ekranie przeglądarki komunikat o potencjalnym zagrożeniu. Definiuje termin przydatności certyfikatu do użycia. Dzięki skrótowi można prosto porównać czy dwa pozornie identyczne certyfikaty są naprawdę tym samym czy jednak się różnią między sobą. Jeżeli podmiot nie jest zaufany przez przeglądarkę klienta. zobaczy on na ekranie komunikat o potencjalnym zagrożeniu. Pole podaje nazwę serwera.Certificates Sekcja „Certificates” służy do zarządzania certyfikatami. Jeżeli serwer WWW udostępnia strony szyfrując je certyfikatem.

Certyfikat generowany jest natychmiast.  Poprzez Certificate Request. . Sposób ten jest najczęściej stosowany.  Poprzez opcję „Create Self Signed Certificate”. Podczas importu dostępna jest opcja „Allow this certificate to be exported” która pozwala na wykonanie kolejnych kopi takiego certyfikatu. Plik taki chroniony jest zazwyczaj hasłem i jest to opcja najczęściej stosowana.Certificates Zasadniczo. kiedy ktoś już certyfikat posiada.  Poprzez Online Certification Authority. Wymaga to jednak działającego w sieci CA. W ten sposób można utworzyć certyfikat dla całej domeny i później łatwo przyznawać go poszczególnym hostom. ma roczną ważność a nazwa w certyfikacie jest taka sama jak nazwa FQDN serwera. Plik ten należy przesłać do Certification Authority. Plik z certyfikatem należy zapisać na serwerze i wgrać go do IIS7 poprzez użycie opcji „Complete Certification Request”. CA generuje na podstawie pliku certyfikat i odsyła go do żądającego. jeżeli potrzebny jest certyfikat do zastosowania w Internecie. serwer IIS7 może pozyskać certyfikaty SSL z czterech źródeł:  Z pliku w formacie PFX. Procedura składa się z kilku kroków: najpierw należy przy pomocy linku „Create Certificate Request” wygenerować plik z żądaniem certyfikatu i zapisać go w pliku na dysku.

Worker Process  Ponieważ działanie serwera opiera się na działaniu wielu procesów roboczych obsługujących docierające serwerów wirtualnych żądania. istnieje okno pozwalające na zobaczenie aktywnych procesów. ich czasu działania. . obciążenia procesora i zajętości pamięci.

obiekt musi być wcześniej skonfigurowany tak. W IIS7 ma ona trzy poziomy:  Serwer IIS. Zaznaczenie checkboxu oznacza. Serwery i katalogi wirtualne Aby zrozumieć działanie serwera IIS7. Aby opcja była aktywna. że dla danego obiektu dozwolony będzie jedynie dostęp przez HTTPS.  Katalogi wirtualne (Virtual Directories).  Serwery wirtualne (Sites).Opjca SSL Opcja ta dostępna jest jedynie w ustawieniach wirtualnych serwerów i katalogów. . konieczna jest wiedza na temat tego. żeby istniało powiązanie (binding) z HTTPS. jak wygląda wewnątrz jego struktura. Nie jest dostępna dla całego serwera IIS7.

Serwer IIS7 wykrywa takie żądanie i kieruje je do tego serwera. ile ma serwerów wirtualnych. Rozwiązanie to wymaga wielu adresów IP przypisanych do serwera. Jest to możliwe na trzy różne sposoby: Serwer IIS7 ma wiele adresów IP i każdy serwer wirtualny ma przydzielony swój adres. jak to możliwe. który ma przypisany odpowiedni host header. Dzięki temu żądanie strony. przychodząc do IIS7. ale każdy serwer wirtualny działa na własnym porcie TCP/IP. natomiast świetnie działa w serwerach udostępniających strony tylko dla sieci LAN. W sieci LAN działa to poprawnie. Poza tym. z jakim serwerem chciałaby się połączyć. który je obsługuje. Rozwiązanie takie używa tzw. host headers. a jak ktoś zapomni podać numer portu. adres taki jest mniej elegancki. .pl:1234/ itp. Ten sposób jest w chwili obecnej najczęściej spotykany w Internecie. Każdy ma swój adres. Serwer IIS7 ma jeden adres IP a wszystkie serwery wirtualne używają portu 80. W efekcie strony mają adresy http://mojastrona. Przez to w sieci Internet sprawdza się dość słabo. Na pierwszy rzut oka wcale nie widać. że na jednym komputerze dostępne są serwery pod wieloma nazwami. Serwer IIS7 nie ma tylu adresów IP.Serwer wirtualny    Serwer wirtualny (zwany często „site”) jest przez użytkowników z sieci widziany jako samodzielny serwer WWW. poza pytaniem o stronę wysyła dane na temat tego. swoją stronę domyślną. Przeglądarka internetowa. że kilka adresów WWW działa na tym samym komputerze. swoje ustawienia itp. W sieci LAN również działa to bardzo dobrze. to trafi na zupełnie inny serwer wirtualny i w efekcie inne strony. kierowane jest do właściwego serwera wirtualnego. komunikując się z serwerem WWW. Warto zastanowić się. ale w Internecie wielu klientów nie będzie mogło skorzystać ze strony ze względu na filtrowanie ruchu przez rozmaite firewalle.

którym posłuży się IIS7. W oknie konfiguracyjnym należy wypełnić odpowiednie pola:  Site name oznacza nazwę wirtualnego serwera.  Connect as pozwala na wybranie konta. W normalnych warunkach. należy z menu kontekstowego serwera wybrać opcję „Add Web Site”. . żeby odczytać pliki z dysku. „Mój serwer testowy” albo „serwer dla uciążliwych klientów” są nazwami jak najbardziej akceptowalnymi. w której na dysku komputera znajdują się pliki *. najlepiej pozostawić tam wartość domyślną. do czasu naprawdę dobrego poznania założeń bezpieczeństwa w systemach Windows. żeby łatwo poznać. ponieważ klient w przeglądarce nie widzi tej nazwy.  Application pool i przycisk Select nie mają praktycznie zastosowania w przypadku statycznych stron WWW. jak chce ją widzieć administrator IIS7.Serwer wirtualny Aby utworzyć nowy serwer wirtualny. który to site. Tak.  Physical Path (ścieżka fizyczna) oznacza lokalizację.html mające być serwowane jako strony WWW.

Ustawić można protokół HTTP lub HTTPS. ale w takiej sytuacji. to nie należy podawać żadnej wartości host header. kiedy serwer IIS7 nie chce obsłużyć połączenia. konieczne jest posiadanie certyfikatu. adres IP serwera wirtualnego (domyślnie są to wszystkie adresy serwera IIS7). Jeżeli nie jest to konieczne (nie są planowane wirtualne serwery rozróżniane przez host headers). . wskazane jest pozostawienie wartości domyślnych. Warto zwrócić uwagę. że IIS7 nie będzie mógł określić. gdzie przekierować ruch – pojawi się ostrzeżenie. czy też utworzony i pozostawiony jako nieaktywny. Checkbox na końcu okna dialogowego określa czy tak stworzony serwer wirtualny ma być uruchomiony natychmiast po utworzeniu. port TCP oraz host header.Serwer wirtualny    Sekcja „Bindings” (powiązania) definiuje metody. Można wprawdzie wybrać HTTPS zamiast nieszyfrowanego HTTP. że jeżeli parametry (a dokładniej bindings czyli powiązania) serwera wirtualnego są takie. Jeżeli serwer IIS7 ma obsługiwać tylko jeden serwer wirtualny. ponieważ może to prowadzić do niezrozumiałych na pierwszy rzut oka sytuacji. którymi ma kierować się IIS7. żeby przesłać żądanie do tego właśnie serwera wirtualnego. nabytego jedną z opisanych w niniejszym artykule metod.

.

Katalog taki. ani inne pozostałe parametry nie różnią się od parametrów serwera wirtualnego – tworzenie wirtualnego katalogu nie jest niezbędne. Warto też przyzwyczaić się. z menu kontekstowego wirtualnego serwera należy wybrać „Add Virtual Directory” i w wyświetlonym oknie dialogowym podać nazwę i ścieżkę fizyczną. do traktowania serwera wirtualnego jako katalogu wirtualnego o pustej nazwie. inny sposób uwierzytelniania. Przykładowo. Katalog może wskazywać na inną ścieżkę fizyczną niż wirtualny serwer oraz mieć inny sposób uwierzytelniania. zlokalizowanego na tym serwerze. Z punktu widzenia użytkownika przeglądarki.pl/admin . lepiej w folderze zawierającym pliki *.parametr admin definiuje katalog wirtualny. nie widać różnicy czy wyspecyfikowana w URL ścieżka odwołuje się do faktycznie istniejących na dysku katalogów. Należy wiedzieć. Aby utworzyć katalog wirtualny.html utworzyć podfolder i w nim umieścić zasoby. w zapytaniu http://mojeforum. W takiej sytuacji.firma. że jeżeli nie jest potrzebna inna ścieżka fizyczna. . czy do katalogów wirtualnych.Wirtualny Katalog W ramach jednego serwera wirtualnego możliwe jest utworzenie katalogów wirtualnych. zmienić można parametry uwierzytelniania. to część przekazywana w zapytaniu HTTP do serwera po nazwie hosta. Dodatkowo.

jak ma c:\inetpub\wwwroot. Po tej operacji należy sprawdzić czy http://localhost działa poprawnie i pokazuje nową stronę. Do lokalnych testów host header. Na początku nie należy eksperymentować z host headers. że dla ustawionego host header nie zadziała link http://localhost. Jeżeli się nie otwiera – trzeba wrócić do instalacji i dokładnie sprawdzić wybrane opcje. należy wgrać pliki html do katalogu c:\inetpub\wwwroot i przestawić domyślną stronę na właściwą. Dopiero później do tych folderów należy skopiować (nie przenieść!) pliki html. Powinna się otworzyć strona powitalna. najprościej dodać stosowny wpis w pliku hosts. Warto pamiętać. Jeżeli brzmi to niejasno. Jeżeli serwer ma mieć tylko jeden serwer wirtualny. Jeżeli serwer IIS7 ma mieć kilka serwerów wirtualnych. należy ich katalogi fizyczne umieścić w katalogu c:\inetpub\wwwroot lub umieścić w innym miejscu (ale nie na pulpicie ani w dokumentach!) i ustawić im prawa takie.Rady dla początkujących     Zaraz po instalacji serwera IIS7 należy na tym samym komputerze wejść na stronę http://localhost. póki nie opanuje się wszystkich innych opcji. . naprawdę lepiej wcześniej doczytać niż rozpoznawać działanie host headers w IIS7 metodą prób i błędów.

Po jednej na raz. to jednak poprzez zarządzanie z linii poleceń (omówione poniżej) można łatwo backup wykonać. w razie nieudanego eksperymentu. zawsze można wrócić do poprzedniego. być może najprostszą metodą jest wyłączenie go i stworzenie nowego o właściwych parametrach. Dzięki temu. dostępna wersja nie oferowała tego przez GUI i konsolę zarządzającą.Rady dla początkujących    Każdą wprowadzoną zmianę należy testować. że IIS7 ma mechanizmy backup i odtwarzania całej konfiguracji. Warto pamiętać. Jeżeli serwer wirtualny przestał działać i nie wiadomo dlaczego. Dzięki temu możliwe będzie wychwycenie ustawienia. . działającego stanu. przy którym coś nie działa. Wprawdzie w chwili pisania niniejszego artykułu.

net/default.aspx?tabid=1 .Linki  Prezentacja Grzegorza Tworka „Wprowadzenie do IIS” http://www.com/poland/technet /article/art0106_01.mspx  IIS Home Page (Get Started \ Learn) http://www.microsoft.iis.

Co będziemy robili na następnych zajęciach?    Zarządzanie IIS7 z linii poleceń Active Directory Domain Services RODC .