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

. 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.0 by using WAS. see Hosting in WCF on MSDN.

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

HTTP Request Processing in IIS7 .

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

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

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

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

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

ASP. Wyłączyć. NET Extensibility. można na przykład stworzyć bibliotekę. dla każdej wyświetlanej strony jej stopka jest pobierana z pliku stopka. Wyłączyć. Bardzo cenna opcja pozwalająca na uruchamianie najnowocześniejszych aplikacji internetowych. Przykładowo. Wyłączyć. Pozwala na rozszerzanie funkcjonalności IIS7.txt i dopiero wtedy całość jest wysyłana do klienta jako jeden spójny kod HTML.    ISAPI Filters. poprzez łączenie zawartości różnych plików. 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ć.NET. Server Side Includes. która zablokuje wszystkie żądania niezgodne z RFC. Stara i prosta metoda tworzenia zawartości stron. . temu.

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

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

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

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

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

IIS6 Scripting Tools. IIS6 Management Compatibility. . Wyłączyć. Użyteczna wyłącznie dla SMTP i FTP. Konsola zarządzająca z poprzedniej wersji serwera. Wyłączyć. Wyłączyć. Opcje wykorzystujące mechanizmy z poprzedniej wersji serwera IIS. IIS6 WMI Compatibility. Zaznaczane automatycznie.     IIS6 Metabase Compatibility. Wyłączyć. IIS6 Managment Console.7. Zgodność z interfejsami WMI dla 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. Zgodność z metabazą IIS6 nie powinna być używana bez wyraźnej potrzeby.

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

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

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

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

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

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

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

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

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

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

302 lub 307) mówiącego. . ale dla poszczególnych katalogów czasem trzeba je zdefiniować. HTTP Redirect Opcja pozwalająca na odesłanie klientowi kodu (301. że danej zawartości należy poszukać gdzie indziej.Handler Mappings Opcja ta odpowiada za specjalną obsługę niektórych zapytań. 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. Przekierowanie dla całego serwera zazwyczaj mija się z celem.

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

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

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

Rok – prawie 4GB. 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). Jeżeli odwołanie do strony miało miejsce w południe czasu polskiego. I tu pojawia się problem. . że po prostu zabraknie na nie miejsca. 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. to w logach zostanie zapisana godzina 11:00. W logach serwera WWW zapisywany jest czas. A jeżeli systemowi zabraknie miejsca na dysku. ponieważ logi serwera IIS7. to skutki mogą być bardzo smutne. nietrudno wyobrazić sobie. Jeżeli serwer obsługuje wiele serwerów wirtualnych. który stare logi będzie archiwizował i usuwał.Logging Ustawiając parametry logowania. Miesiąc działania średnio odwiedzanego serwera to 300MB. Należy o tym pamiętać. przesunięty o godzinę w stosunku do polskiego.

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

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

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

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

ich czasu działania.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. . obciążenia procesora i zajętości pamięci.

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

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

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

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

.

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

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

Warto pamiętać.Rady dla początkujących    Każdą wprowadzoną zmianę należy testować. Po jednej na raz. . Wprawdzie w chwili pisania niniejszego artykułu. dostępna wersja nie oferowała tego przez GUI i konsolę zarządzającą. zawsze można wrócić do poprzedniego. w razie nieudanego eksperymentu. to jednak poprzez zarządzanie z linii poleceń (omówione poniżej) można łatwo backup wykonać. działającego stanu. przy którym coś nie działa. Jeżeli serwer wirtualny przestał działać i nie wiadomo dlaczego. Dzięki temu możliwe będzie wychwycenie ustawienia. ż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. Dzięki temu.

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

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

Sign up to vote on this title
UsefulNot useful