You are on page 1of 52

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 . i informowanie WAS kiedy pojawi się rządanie w kolejce.World Wide Web Publishing Service (WWW service)   WW Service jest odpowiedzialny za konfigurację HTTP. update HTTP.

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

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

HTTP Request Processing in IIS7 .

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

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

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

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

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

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

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

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

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

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

Nawet. Włączyć. Włączyć tylko w sytuacji. kiedy mogą się przydać. Zestaw opcji związanych z narzędziami administracyjnymi IIS. Włączyć.  IIS Management Console. 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ń. Opcja odpowiada za instalacji konsoli zarządzającej serwerem IIS7. Zaznaczane automatycznie.6.  IIS Management Script and Tools. to nigdy nie wiadomo. jeżeli nie są potrzebne od razu. Wyłączyć.Management Tools. .  Management Service.

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

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

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

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

IIS7 Manager .

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. Jeżeli gdzieś poziom taki przeszkadza w funkcjonowaniu serwisów WWW. żeby działał poprawnie.Best Practices   Przyjąć należy. co jest stosunkowo łatwo sprawdzić. 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. . ale wymagałby każdorazowo sprawdzenia zabezpieczeń. W przeciwnym razie. Dzięki takiemu podejściu. że najpierw konfiguruje się opcje dostępne z poziomu serwera. można go rozluźnić dla danego serwisu. Pozwala to na stworzenie nowego serwisu wymaga rozluźnienia uprawnień na tyle.

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

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

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

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

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

Może to być na przykład „szanowny kliencie. Co ciekawe. 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. nie ma u nas na serwerze takiej strony”.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. można określić. nawet na stronę na innym serwerze.

ż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. ale dla poszczególnych katalogów czasem trzeba je zdefiniować.Handler Mappings Opcja ta odpowiada za specjalną obsługę niektórych zapytań. HTTP Redirect Opcja pozwalająca na odesłanie klientowi kodu (301.302 lub 307) mówiącego.

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

W przypadku IIS7 jest to możliwe i istnieją dwa scenariusze:  Administrator pozwala wchodzić wszystkim oprócz wskazanych (Black list).  Rodzaj podejścia zależeć musi od konkretnej sytuacji i dla każdego wirtualnego katalogu może być ustawiony indywidualnie. ograniczenie takie można próbować omijać. 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. Z wyjątkiem bardzo specyficznych sytuacji. których wskaże (white list). ż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ę. Pomijając trudności z późniejszym znalezienie przyczyn błędów. . więc nie powinno być traktowane jako ważna linia obrony serwera.  Administrator nie pozwala wchodzić nikomu oprócz tych.

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

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

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

że dla buforowania można ustawiać polityki typu:  Buforuj dopóki zawartość nie zostanie zmieniona. . gdzie wszystko inne działa już perfekcyjnie i wydajność serwera (nie łącza!) nie jest zadowalająca.  Buforuj na zadany czas. Oczywiście.  Nie buforuj. eksperymenty z buforowaniem warto prowadzić tylko tam. 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. Warto wiedzieć. W praktyce. W IIS Manager definiować można jakie parametry ma mieć buforowania dla każdego typu plików oddzielnie.

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

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

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.

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

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

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

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

.

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

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

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

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

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