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.

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

0 by using WAS. see Hosting in WCF on MSDN. . For information about WCF listener adapters and hosting WCF applications in IIS 7.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.

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

HTTP Request Processing in IIS7 .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

IIS7 Manager .

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

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

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

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

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

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

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

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

nagłówek mówiący przeglądarce. że jest to wykonalne. że nie warto się na niej skupiać. Definiuje się je w sekcji HTTP Response Headers. Dzięki temu nagłówkowi. to będzie nieaktualna”. najlepiej pozostawić nagłówek content expires wyłączony.  Content expres . Dopóki nie jest to czymś konkretnym uzasadnione. Należy tylko zapamiętać. Jedną z nich są nagłówki. Zyskiem jest to. że nie powinna się rozłączać z serwerem. Opcja ta jest domyślnie włączona. system klienta nie będzie musiał od nowa zestawiać sesji TCP. kiedy treść strony będzie już nieaktualna. . przeglądarka wie. Zmniejsza się dzięki temu ilość przesłanych danych i zwiększa prędkość. które mogą się przydać:  http keep-alive . Można podać konkretną datę lub „nigdy”.nagłówek mówiący przeglądarce. Potrzeba wstawienia własnych nagłówków jest tak egzotyczna. Predefiniowane nagłówki dotyczą za to opcji. lub „jak tylko ją pobierzesz. 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. Nagłówki można dowolnie definiować według własnych potrzeb lub skorzystać z dwóch predefiniowanych.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. że przy kolejnym odwołaniu do serwera.

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

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

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

Dopóki ktoś nie jest w stu procentach pewny. należy przyjąć. że serwer odpowie. 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. opcje te powinien omijać. co robi. Zasadniczo. Na podstawie tego nagłówka przeglądarka wie. To właśnie te moduły obsługują zapytania do serwera i ich lista zależy od wybranych podczas instalacji opcji. W takiej sytuacji możliwe jest. że póki administrator nie jest pewny tego. co robi. Szczególnym przypadkiem są pliki. Modules W sekcji tej wymienione są załadowane przez IIS moduły. że dany plik nie istnieje. . 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.

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

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

CA generuje na podstawie pliku certyfikat i odsyła go do żądającego.Certificates Zasadniczo. Podczas importu dostępna jest opcja „Allow this certificate to be exported” która pozwala na wykonanie kolejnych kopi takiego certyfikatu. 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 taki chroniony jest zazwyczaj hasłem i jest to opcja najczęściej stosowana. serwer IIS7 może pozyskać certyfikaty SSL z czterech źródeł:  Z pliku w formacie PFX. Certyfikat generowany jest natychmiast.  Poprzez opcję „Create Self Signed Certificate”.  Poprzez Certificate Request. Sposób ten jest najczęściej stosowany. Plik z certyfikatem należy zapisać na serwerze i wgrać go do IIS7 poprzez użycie opcji „Complete Certification Request”. 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. jeżeli potrzebny jest certyfikat do zastosowania w Internecie. Plik ten należy przesłać do Certification Authority.  Poprzez Online Certification Authority. kiedy ktoś już certyfikat posiada. Wymaga to jednak działającego w sieci CA.

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

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

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

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

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

.

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

Po tej operacji należy sprawdzić czy http://localhost działa poprawnie i pokazuje nową stronę. póki nie opanuje się wszystkich innych opcji. Powinna się otworzyć strona powitalna. Jeżeli brzmi to niejasno. naprawdę lepiej wcześniej doczytać niż rozpoznawać działanie host headers w IIS7 metodą prób i błędów. Na początku nie należy eksperymentować z host headers. że dla ustawionego host header nie zadziała link http://localhost. Dopiero później do tych folderów należy skopiować (nie przenieść!) pliki html. Jeżeli serwer IIS7 ma mieć kilka serwerów wirtualnych. Jeżeli się nie otwiera – trzeba wrócić do instalacji i dokładnie sprawdzić wybrane opcje. najprościej dodać stosowny wpis w pliku hosts. Do lokalnych testów host header. jak ma c:\inetpub\wwwroot. należy wgrać pliki html do katalogu c:\inetpub\wwwroot i przestawić domyślną stronę na właściwą. Warto pamiętać. 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. . Jeżeli serwer ma mieć tylko jeden serwer wirtualny.

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

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

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