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. i informowanie WAS kiedy pojawi się rządanie w kolejce.sys przy zmianach w konfiguracji.sys. WWW Service zbiera informacje do liczników . 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.

The client receives a response. 8. WWW Service uses the configuration information to configure HTTP. such as application pool and site configuration. The worker process processes the request and returns a response to HTTP.HTTP Request Processing in IIS7 1. 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. HTTP. 4. 7. . 3.sys. 5. WWW Service receives configuration information. HTTP.sys contacts WAS to obtain information from the configuration store. 2.sys. 6.sys intercepts the request.config. WAS requests configuration information from the configuration store. applicationHost.

HTTP Request Processing in IIS7 .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

wybrane podczas instalacji. Podstawowym narzędziem jest Internet Information Server (IIS) Manager.Konfiguracja IIS7 Jak się łatwo domyślić. Wybierając elementy drzewa. Po uruchomieniu z lewej strony konsoli wyświetlana jest struktura w postaci drzewa. . zarządzać można różnymi funkcjonalnościami serwera. 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ń. można go rozluźnić dla danego serwisu. żeby działał poprawnie. W przeciwnym razie. . Sprawdzającym się w praktyce podejściem jest ustawienie właściwości na poziomie całego serwera na poziom maksymalnie bezpieczny. każdy serwis działałby poprawnie. że najpierw konfiguruje się opcje dostępne z poziomu serwera. Jeżeli gdzieś poziom taki przeszkadza w funkcjonowaniu serwisów WWW. co jest stosunkowo łatwo sprawdzić. każdy nowy site odziedziczy ustawienia i już w chwili utworzenia będzie poprawnie skonfigurowany i gotowy do pracy. a dopiero później dostępne z poziomu site. Dzięki takiemu podejściu.Best Practices   Przyjąć należy.

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

Ustawiając parametry kompresji. . w którym przechowywane są skompresowane dane. Limitu objętości skompresowanych danych na dysku. Administrator ma do możliwość zdefiniowania: Włączenia lub wyłączenia kompresji.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ę. dane kompresowane są raz i zapisywane na dysku. Minimalnego rozmiaru pliku. żeby operacja taka była opłacalna. Aby nie przeprowadzać kompresji przy każdym żądaniu. Pliki bardzo małe nie zyskują na kompresji na tyle dużo. Katalogu. Limit ustawiany jest per pula aplikacji. który jest poddawany kompresji.

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

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

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

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

HTTP Redirect Opcja pozwalająca na odesłanie klientowi kodu (301. . ale dla poszczególnych katalogów czasem trzeba je zdefiniować.302 lub 307) mówiącego. 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. W przypadku standardowego serwera udostępniającego strony WWW najpraktyczniejszym podejściem jest pozostawienie wszelkich ustawień z wartościami domyślnymi.Handler Mappings Opcja ta odpowiada za specjalną obsługę niektórych zapytań. że danej zawartości należy poszukać gdzie indziej.

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

zarządzanie dostępem na podstawie adresu IP powinno nie być wykonywane na poziomie całego serwera. . 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.IPv4 Address and Domain Restrictions Czasem zdarza się.  Rodzaj podejścia zależeć musi od konkretnej sytuacji i dla każdego wirtualnego katalogu może być ustawiony indywidualnie. 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). ograniczenie takie można próbować omijać. 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.

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

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

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

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

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

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

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

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

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

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

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

.

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

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

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

iis.microsoft.aspx?tabid=1 .net/default.Linki  Prezentacja Grzegorza Tworka „Wprowadzenie do IIS” http://www.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 .