Ebben a cikkben alaposan megvizsgáljuk a Internet Information Services témáját, és elemezzük számos oldalát és lehetséges következményeit. Az eredetétől a mai relevanciájáig a Internet Information Services mélyreható elemzésébe merülünk, hogy megértsük a különböző területekre gyakorolt hatását. Különféle nézőpontokkal és véleményekkel fogunk foglalkozni a Internet Information Services-ről, azzal a céllal, hogy átfogó és kiegyensúlyozott képet adjunk erről a témáról. Reméljük, hogy ezzel a cikkel olvasóinknak mélyebb megértést adunk a Internet Information Services-ről, és kritikai elmélkedést segítünk elő annak fontosságáról az életünkben.
Az Internet Information Services (IIS, korábban Internet Information Server) a Microsoft által a Windows NT operációs rendszercsaládhoz készített bővíthető webszerver.[1] Az IIS támogatja a HTTP, HTTPS, FTP, FTPS, SMTP és NNTP protokollokat. A Windows NT 4.0 óta a Windows NT alapú operációs rendszerek szerves részét képezi néhány kivételtől eltekintve (például Windows XP Home). Az IIS alapértelmezésben nincsen bekapcsolva a rendszereken. Az IIS Managert a Microsoft Management Console-on vagy a Vezérlőpultban, az Adminisztrációs eszközökön keresztül lehet elérni.
Történet
Az első Microsoft webszerver egy tanulmányi projekt volt az Európai Microsoft Windows NT Akadémiai Központban (European Microsoft Windows NT Academic Centre, EMWAC – a skót Edinburgh Egyetem része), és ingyenes szoftverként volt terjesztve.[2] Azonban mivel ez az EMWAC által fejlesztett webszerver nem volt képes kezelni a microsoft.com webcímre érkező nagy mértékű forgalmat, a Microsoft kénytelen volt megírni a saját webszerverét, az IIS-t.[3]
Majdnem minden IIS verzió egy új Windows verzióval együtt volt megjelentetve:
IIS 1.0, eredetileg egy ingyenes kiegészítő volt a Windows NT 3.51-hez
IIS 2.0, Windows NT 4.0-val terjesztve
IIS 3.0, a Windows NT 4.0-hoz kiadott Service Pack 2 részeként volt terjesztve, olyan újdonságokkal, mint az Active Server Pages dinamikus szkriptelés lehetősége.[4]
IIS 4.0, a Windows NT 4.0-hoz kiadott opcionális kiegészítőként volt terjesztve.
IIS 5.0, a Windows 2000-rel együtt mutatták be, olyan új jellemzőkkel, mint az új hitelesítési módok támogatása, új adminisztrációs felület (Microsoft Management Console – MMC), a WebDAV protokoll támogatása, és az Active Server Pages továbbfejlesztése.[5] Ezen verzióból eltávolították a Gopher protokoll támogatását.[6]
IIS 5.1, a Windows XP részeként terjesztették. Ez a verzió csaknem teljesen megegyezett a Windows 2000 részeként működő 5.0-s verzióval.
IIS 6.0, a Windows Server 2003 illetve a Windows XP Professional x64 részeként terjesztették. Az IPv6 protokoll támogatása mellett főként biztonsági és megbízhatósági fejlesztéseket tartalmazott.[7]
IIS 7.0, a Windows Server 2008 és a Windows Vista részeként volt terjesztve. Ez a verzió a szoftver teljes újraírását hozta magával – az új moduláris felépítés által megnövekedett a teljesítmény, és a támadható felületek csökkentek, növelve a biztonságot. Ugyancsak ezen verzió részeként bevezették az új hierarchikus konfigurációs rendszert, ami egyszerűbb weboldal feltöltést tett lehetővé; új konzolos kezelési lehetőségeket; illetve egy új Windows Form alapú menedzselési felületet, illetve fejlesztették a .NET keretrendszer támogatását.[8] Az IIS 7.0 Windows Vista rendszeren nem korlátozza az engedélyezett kapcsolatok maximális számát, mint ahogy Windows XP-n teszi, viszont az egyidejű kérések számát korlátozza 10-re (Windows Vista Ultimate, Business és Enterprise verzió) illetve 3-ra (Windows Vista Home Premium verzió). Az ezen felül érkező kéréseket sorba állítja, ami nincs jó hatással a teljesítményre, viszont a kapcsolatok nincsenek visszautasítva, mint Windows XP-n.
IIS 7.5, a Windows 7 és a Windows Server 2008 R2 részeként jelent meg. A verzió főként a WebDAV és FTP modulokat illetve a PowerShellen keresztüli adminisztrációs lehetőségeket fejlesztette. Itt vezették be a TLS 1.1 illetve a TLS 1.2 támogatását, a Best Practices Analyzer eszközt, és a folyamat izolációt az applikációkhoz.[9]
IIS 8.0, a Windows 8 és a Windows Server 2012 részeként érhető el csak. A verzió többek között központi SSL tanúsítvány támogatást, applikáció inicializációt, és többmagos skálázhatóságot a Non-Uniform Memory Access hardvereken.
IIS 8.5, a Windows 8.1 és a Windows Server 2012 R2 részeként mutatkozott be. Ez a verzió továbbfejlesztett naplózást, automatikus tanúsítvány hozzárendelést, dinamikus oldal aktiválást hozott magával egyebek mellett.
Az IIS minden verziója 7.0 alatt kliens rendszeren futtatva korlátozza az egyidejű kapcsolatok számát 10-ben, illetve egyszerre csak egy weboldalt képes kezelni.
A Microsoftot többen is kritizálták a korai Windows NT webszerver terjesztési és licencelési módjai miatt: a Workstation változat csak maximum 10 egyidejű TCP/IP kapcsolatot tett lehetővé, míg a jóval drágább Server verzió csak kevés extra funkcióval rendelkezett, viszont korlátlan számú kapcsolatot lehetővé tett. Úgy gondolták, a Microsoft a webszerver operációs rendszerhez való kapcsolásával azt akarja elérni, hogy a felhasználók ne használjanak alternatív webszervereket az olcsóbb változaton.[10] A Netscape egy nyílt levélben hívta fel az Amerikai Igazságügyi Minisztérium antitröszttel foglalkozó részlegének figyelmét a szerinte technikailag megalapozatlan lépésre.[11]
Jellemzők
IIS 6.0-os verziótól kezdve a következő hitelesítési mechanizmusok támogatottak:[12]
Anonymous hitelesítés
Basic access hitelesítés
Digest access hitelesítés
Integrált Windows hitelesítés
UNC hitelesítés
.NET Passport hitelesítés (Windows Server 2008-ből és IIS 7.0-ból eltávolítva)[13]
Tanusítvány hitelesítés
Az IIS 7.0 architektúrája moduláris. A modulok (vagy kiegészítők) egyesével hozzáadhatók illetve eltávolíthatók, vagyis elég csak a kívánt funkcionalitást biztosító modulokat szükséges betölteni. Az IIS 7 tartalmaz számos natív modult teljes telepítés után. Ezek a kérésfeldolgozó modulok, illetve:[14]
Biztonsági modulok: Biztonsággal kapcsolatos teendőket látnak el, mint a kérés-feldolgozó egység védelmét, kérés szűrést, hitelesítési séma meghatározást, URL hozzáférést.
Tartalom modulok: A kérés-feldolgozó egységben tartalommal kapcsolatos teendőket látnak el, mint a statikus fájlok kiszolgálása, alapértelmezett oldal visszaadása (hibás kérés esetén például) vagy a tartalom listázása a könyvtárakban.
Tömörítő modulok: A kérés-feldolgozó egységben látnak el tömörítéssel kapcsolatos teendőket, mint a válaszok Gzip tömörítése, vagy a statikus tartalmak előtömörítése.
Gyorsítótár modulok: A kérés-feldolgozó egységben látnak egy gyorsítótárral kapcsolatos teendőket, mint a feldolgozott információk tárolása a szerver memóriájában, vagy tartalom szolgáltatása a gyorsítótárból (ha elérhető a tartalom a tárban).
Naplózási és Diagnosztikai modulok: A kérés-feldolgozó egységben látnak el naplózási és diagnosztikai feladatokat, mint információk átadása a HTTP rendszernek naplózásra, kérések feldolgozásának nyomonkövetése, vagy más események naplózása.
Az IIS 7.5 a következő új és továbbfejlesztett biztonsági funkciókkal bír:[15]
Kliens tanúsítvány társítás
IP biztonság
Kérés szűrés Request filtering
URL engedélyezés
A hitelesítés kicsit megváltozott az IIS 6.0 és IIS 7 között: az anonim felhasználó, aminek a neve eddig "IUSR_{számítógépnév}" volt, a Windows Vistában és a későbbi rendszereken egy beépített fiók lett, "IUSR" névvel. Azonban IIS7-ben a hitelesítési mechanizmusok külön modulokban találhatóak, így könnyen kiválasztható a kívánt hitelesítési mód.[13]
Az IIS 8.0 főként a teljesítményre illetve a könnyebb adminisztrációra koncentrált. Az új funkciók:
Applikáció indítás: az adminisztrátornak lehetősége van beállítani programokat, amik a szerver indulásakor automatikusan elindulnak. Ez csökkenti azt az időt, amit a felhasználóknak kell várni hogy elérjék az oldalt a szerver újraindítása után.[16]
„Splash” oldal mutatása applikáció indítás közben: az adminisztrátor be tud állítani egy „splash” képet, amit a felhasználók láthatnak az oldal helyén, amíg az applikáció elindul.[16]
ASP.net 4.5 támogatás: az IIS 8.0 tartalmazza az ASP.net 4.5-öt, illetve tartalmaz konfigurációs beállításokat, hogy az ASP.net 4.5 egyszerre futhasson a régebbi ASP-net 3.5-tel.[17]
Központi SSL tanúsítvány támogatás: a funkció a tanúsítványok kezelését teszi könnyebbé azáltal, hogy lehetőséget ad arra, hogy a tanúsítványokat egy helyen, egy merevlemezen (vagy más tárolón) legyenek tárolva.[18]
Többmagos skálázás NUMA hardvereken: az IIS 8.0 számos beállítási lehetőséget tartalmaz a NUMA rendszerek teljesítményoptimalizálásához, mint például processzor affinitás beállítása a folyamatokhoz.[19]
Szervernév-indikáció (Serve Name Indication – SNI): az SNI a TLS egy kiterjesztése, ami több weboldal különböző kiszolgálóneveinek hozzárendelését engedi egy IP címhez (hasonlóan ahogy a kiszolgáló headereket használják a nem SSL oldalakhoz).[21]
Dinamikus IP-cím-korlátozások: lehetőséget az adminisztrátorokank, hogy dinamikusan blokkoljanak IP címeket amelyek nagy mennyiségú kérést intéznek a szerver felé.[22]
Processzorszabályozás: beállítások gyűjteménye, mely lehetőséget az adminisztrátornak, hogy szabályozza a különböző applikáció csoportoknak, hogy milyen mértékben használhatják a processzort. Ennek segítségével a hatékonyságot lehet növelni olyan rendszereknél, ahol több weboldalt/applikációt futtatnak egy szerveren.[23]
Az IIS 8.5 főként olyan nagy rendszerekhez használható fejlesztéseket tartalmaz, mint a Microsoft saját felhő kiszolgálója, vagy más, kereskedelmi hosting cégek szerverparkjai. Ezen felül tartalmaz pár naplózási és hibaelhárítási fejlesztést is. A főbb új funkciók:
Idle worker-Process page-out: az alvó (idle) oldalak felfüggesztése, hogy ne foglalják a memóriát.[24]
Dinamikus Oldal Aktiváció: a funkció csak azon oldalakhoz regisztrál figyelőket (listener), amelyekhez már érkezett kérés[25]
Fejlesztett naplózás: a fejlesztés lehetővé teszi a szerver változók, kérés/válasz fejlécek (request/response header) naplózását az IIS naplókban.[26]
ETW naplózás: egy ETW (Event Tracing for Windows – Windows Esemény Naplózás) kiszolgáló, amivel valós időben lehet naplókat készíteni különböző eseményekről[27]
Automatikus Tanúsítvány Hozzárendelés: a funkció érzékeli, ha egy oldal tanúsítványa megújult, és automatikusan hozzárendeli az oldalt.[28]
IIS Express
Az IIS Express egy könnyített verziója az IIS-nek, ami ingyenesen elérhető az Windows XP SP3 és újabb Microsoft Windows operációs rendszerekre. Az IIS 7.5 Express csak a HTTP és a HTTPS protokollokat támogatja.[29] Az IIS Expresst le lehet tölteni külön, vagy a WebMatrix részeként.[30][31]
Bővítmények
Az IIS-hez új bővítmények jelennek meg a fő kiadások között, melyek új lehetőségeket biztosítanak a szoftverben. Az IIS 7.5-höz a következő bővítmények érthetőek el:
FTP Publishing Service: A tartalomkészítők fel tudják tölteni a tartalmukat biztonságosan az IIS7 szerverre SSL alapú hitelesítéssel és adattovábbítással.[32]
Administration Pack: Egy adminisztrációs felületet biztosít az IIS7 beállításaihoz, beleértve az ASP.NET engedélyeket, egyedi hibaüzenetek beállításait, FastCGI beállításait és a kérés szúrést.[33]
Application Request Routing: Egy proxy alapú routoló modul, ami a HTTP-kéréseket továbbítja a tartalom szerverekhez a kérés fejlécek, szerver változók és a forgalomelosztó (load balancing) algoritmusok alapján.[34]
Adatbázis Manager: Könnyű hozzáférést tesz lehetővé helyi és távoli adatbázisokhoz az IIS Manageren keresztül.[35]
Média szolgáltatások: Egy média kiszolgálót integrál az IIS-be, amivel a média- és egyéb tartalmakat lehet könnyen kiszolgálni és adminisztrálni.[36]
URL Rewrite Modul: Egy szabály alapú újraíró mechanizmus, ami a kérés URL címét írja át egy másikra mielőtt a kérés fel lenne dolgozva a webszerver által.[37]
WebDAV: Lehetőséget ad a tartalom biztonságos feltöltésére az IIS 7 webszerverre, és felületet biztosít az adminisztrátoroknak a WebDAV beállítások módosítására az IIS 7 eszközeivel.[38]
Web Deployment Tool: Szinkronizálja az IIS 6.0 és IIS 7 szervereket, migrálja az IIS 6 szervereket IIS 7-re, illetve weboldalak feltöltését is lehetővé teszi egy IIS 7 szerverre.[39]
Használat
A Netcraft 2015 januárjában közzétett felmérése szerint az IIS a második legnépszerűbb webszerver a világon 29,81%-os részesedéssel, az Apache HTTP Server után. Az ezt megelőző hónaphoz képest ez 2,29%-os csökkenés. A felmérés 2012 óta az IIS növekvő piaci részesedését mutatják a csökkenés ellenére.[40] Ugyanakkor a W3Techs felmérése szerint a második legnépszerűbb webkiszolgáló az Nginx, és az IIS csak a harmadik. Ugyanezen felmérés szerint a piaci részesedése folyamatosan csökken 2013 óta.[41]
Biztonság
Az IIS4 és IIS 5 is sérülékeny volt a CA-2001-13 azonosítójú hibával szemben, ami az úgynevezett Code Red támadásokhoz vezetett;[42] ugyanakkor a 6.0-s és 7.0-s verzióval kapcsolatban nem érkeztek bejelentések a sérülékenységről.[43][44] Az IIS 6.0-s verziójában a Microsoft megváltoztatta programozási felületet (ISAPI – Internet Server Application Programming Interface),[45] ami a 4.0-s és 5.0-s verziókkal ellentétben nagyobb védettséget nyújtott a szerver számára, mivel lecsökkentette a támadható felületeket. Ugyancsak az IIS 6.0-ban megjelent egy új funkció (Web Service Extensions), ami megakadályozza az IIS-t, hogy egy programot indítson el az adminisztrátor kifejezett engedélye nélkül.
Alapértelmezésben az IIS 5.1 és korábbi verziók a SYSTEM fiókkal futtatják a weboldalakat,[46] a Windows alapértelmezett adminisztrátor jogosultságú fiókjával. Ugyanakkor a 6.0-s verzió alatt minden hálózati kérés a hálózati szolgáltatáson keresztül érkezik, aminek jelentősen kevesebb jogosultsága van, mint a SYSTEM fióknak, vagyis ha egy saját kódrészlet vagy egyéb szolgáltatás sérülékeny, az nem fogja kompromittálni az egész rendszert, hisz az alacsonyabb jogosultságból nem tud a rosszindulatú kód kitörni.[47] Az IIS 6.0 ugyancsak rendelkezik egy új, szigorúbb kérés feldolgozó HTTP veremmel a kernelben (http.sys), illetve gyorsítótárral mind statikus és dinamikus tartalom kiszolgálására.[48]
A Secunia jelentése alapján az IIS 7 2015 januárjában 7 befoltozott biztonsági réssel rendelkezett,[44] az IIS 6 ugyanakkor 10 befoltozott, és 1 befoltozatlan sérülékenységgel rendelkezett. A befoltozatlan sérülékenység veszélye 5 fokozatú skálán 2-es fokozatot kapott.[43]
Egy 2007. júniusi Google által végzett, 80 millió weboldalt felölelő tanulmány szerint az IIS piaci részesedése 23% volt, ugyanakkor ezen szerverek tárolták az interneten megtalálható rosszindulatú kódok 49%-át. Az Apache HTTP Server-t futtató szerverek ugyancsak a világ rosszindulatú kódjainak 49%-t tárolják, ugyanakkor az Apache részesedése 66%. A tanulmány megemlítette a szerverek földrajzi elhelyezkedését is, és feltételezi, hogy az ok a nem eredeti Windows rendszert használó szereverek fordulhat elő nagy számban, mivel a Microsoft nem szolgáltat biztonsági hibajavításokat ezen rendszerekhez.[49] Egy 2009. április 28-i blogbejegyzésben a Microsoft bejelentette, hogy minden rendszerhez fog szolgáltatni biztonsági hibajavításokat, akkor is, ha a rendszer nem ment át az eredetiség vizsgálaton.[50][51]
A 2013-as NSA botrányból kiderült, hogy az IIS rendkívül rosszul támogatja teljesen a forward secrecy-t, különösképpen Internet Explorerrel használva. A HTTPS kapcsolat felállításához használt egyik hosszútávú aszimmetrikus kulcs birtoklásának nem szabad könnyebbé tennie a rövid távú session kulcsot, amivel az üzenet visszafejthető, akár egy későbbi időben. 2013-ban csak a "Diffie-Hellman kulcs csere" és az "Elliptikus görbe Diffie-Hellman kulcs csere" algoritmusok ismertek, hogy védelmet nyújtanak a problémával szemben. 2013-ban a Firefox, Opera és Chrome/Chromium böngészők által indított kérések 30%-a használta ezen az algoritmusokat, míg az Internet Explorer és Safari szinte soha.[52]
Microsoft WebsiteSpark Program – A program that offers IIS and other Microsoft Web Platform products at no upfront cost for 3 years
Fordítás
Ez a szócikk részben vagy egészben az Internet_Information_Services című angol Wikipédia-szócikk ezen változatának fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.