Az alábbiak végrehajtásához rendszergazdai jogosultságok szükségesek.
A szkriptekről általánosságban
Az IIS feltelepítése után a \inetpub\AdminScripts könyvtárban lesznek megtalálhatók VBS kiterjesztéssel, amiből következik, hogy Visual Basic Script nyelven íródtak. Több hacker és vírustámadás közkedvelt segédeszközei, mert egyszerű paraméterek használatával leállítható vagy átkonfigurálható (például megváltoztatható a webhelyek írási/olvasási/végrehajtási jogosultsága) az Internet szolgáltatás. Ennek okán az IIS Lockdown Tool le is törli őket. Eredeti céljuk az általánosabb rendszergazdai műveletek batch fájlokkal való gyorsítása. Fontos a biztonság és fontos a gyors adminisztráció is, ezért javasolt az utóbbi elvégzése után a szkripteket törölni vagy nem a \inetpub\AdminScripts mappában tárolni, hanem floppyra vagy CD írni és innen futtatni. Esetleg el lehet rejteni a hálózaton is, lényeg, hogy nem legyen elérhető a vírusok számára, de maradjon meg a rendszergazda segédeszközeként.
A szkriptek parancssorból a CSCRIPT.EXE futtatókörnyezettel indíthatók. Például:
Ne felejtsük el a VBS kiterjesztést minden alkalommal beírni. Segítséget a -? paraméterrel kapunk.
Alapvető tudnivalók
Néhány alapvető információ szükséges az alábbiak pontos megértéséhez: Minden webhely rendelkezik egy sorszámmal, amivel hivatkozni lehet rá, például szkriptekből, programokból. A Felügyeleti eszközök > Internet szolgáltatáskezelő (Administrative Tools > Internet Services Manager) konzol faszerkezetét kibontva legfelül található az 1-es számú webhely alatta a 2-es és így tovább.
A különböző szolgáltatástípusokra a következő rövidítésekkel lehet hivatkozni:
- Web szolgáltatás = w3svc
- FTP szolgáltatás = msftpsvc
- Levélküldő szolgáltatás (SMTP) = smtpsvc
- News szolgáltatás (NNTP) = nntpsvc
Webhelyek alapvető adatainak listázása
A FINDWEB szkripttel a legalapvetőbb adatokat lehet megjeleníteni egy webhelyről:
- sorszám, például: 1
- leírás (description), például: "Alapértelmezett webhely"
- kiszolgálónév
- portszám
- IP cím
Az 1-es számú webhely adatainak listázása:
A www.microsoft.com webhely adatainak listázása:
cscript findweb.vbs www.microsoft.com
A SERVER nevű gép első webhelyének megjelenítése (ha több is található a gépen és nem hivatkozunk egyikre sem, akkor mindig az első adatai jelennek meg):
cscript findweb.vbs -c server
Ugyanez IP címmel is megadható:
cscript findweb.vbs -c 192.168.0.1
Mire jó mindez? A nem publikus Website-ok elrejtésének egyik módja az alapértelmezett 80-as portszám megváltoztatása egy teljesen más értékre. Elméletileg 65536 variáció lehetséges, gyakorlatilag ennél kevesebb, mert más szolgáltatások is foglalnak maguknak portokat. Pusztán találgatással elég sokáig tartana megtalálni az ismeretlen címet, főleg, ha több webhelyről van szó egy kiszolgálón belül. A fenti parancs azonban egyértelműen megmondja a keresett adatot. Most már talán kicsit világosabb, hogy miért kedvelik a hackerek és a vírusok az adminisztrációs szkripteket.
Részletes információ megjelenítés
Az előző szkript tényleg csak a legalapvetőbb adatokat listázta ki és azokat is csak a webhelyekről. Az IIS azonban nem csak webszolgáltatásból áll. Van még telepítéstől függően FTP, NNTP, SMTP is. Mindezek az Internet szolgáltatáskezelő (Internet Services Manager) felügyeleti konzolon belül egy hierarchikus felépítésű farendszerben jelennek meg. Következő szkriptünk e rendszer szerint listázza ki az összes objektumot és meglehetős részletességgel a tulajdonságaikat is:
Így paraméterek nélkül a farendszer gyökérpontjától kezdve történik az adatmegjelenítés.
Lépjünk a hierarchia egy belső pontjára és listázzuk ki csak a Web szolgáltatás adatait:
cscript disptree.vbs -a iis://192.168.0.1/w3svc
A faszerkezetre az iis:// előtaggal lehet hivatkozni, utána a kiszolgáló neve következik (jelen esetben IP címként adtuk meg), végül a belső pontok jönnek. Még egy példa: szűkítsük tovább a kört és a Web szolgáltatáson belül csak az 1-es sorszámú webhely adatait listáztassuk ki:
cscript disptree.vbs -a iis://192.168.0.1/w3svc/1
Ha a fenti sorok mögé hozzákapcsoljuk a -n paramétert, akkor kevésbé lesz részletes a megjelenítés.
További adatok kiíratása:
Ugyanezen módszerrel a felügyeleti csomópontok adatai is elérhetők a DISPNODE.VBS szkriptel:
cscript dispnode.vbs -a iis://192.168.0.1/w3svc
Web- és FTP helyek leállítása, szüneteltetése
A webhelyek leállítása a STOPWEB.VBS szkripttel lehetséges. Paraméterezése lehetővé teszi több gép egyidejű kezelését. A -c kapcsoló után fel kell sorolnunk a kiszolgálókat, majd a -a kapcsoló után a leállítandó webhelyek sorszámát.
cscript stopweb.vbs -c gép1,gép2,gép3 -a 1,2,3
Példánkban a gép1, gép2, gép3 nevű szerverek 1, 2, 3 sorszámú webhelyei kerülnek leállításra. Ha csak az első kettőt akarjuk leállítani alkalmazzuk a következő megoldást:
cscript stopweb.vbs -c gép1,gép2,gép3 -a 1,2
Az eljárás lényege, hogy ugyanazon sorszámú webhelyeket állítja le az összes felsorolt kiszolgálón.
Mi a helyzet az FTP helyekkel? Nos, rájuk ugyanez vonatkozik, csak a STOPFTP.VBS szkriptet kell alkalmazni.
Az összes szolgáltatástípus adott példányait egyetlen paranccsal is leállíthatjuk a STOPSRV.VBS szkriptettel:
cscript stopsrv.vbs -c gép1,gép2,gép3 -a w3svc/1, msftpsvc/1
Példánk a megadott három gépen leállítja az 1-es sorszámú web- és FTP helyeket.
Ideiglenes leállítást a PAUSE* szkriptekkel érhetünk el. Az ideiglenes leállítást szüneteltetésnek (pause) nevezzük. Nézzünk rá néhány példát:
cscript pauseweb.vbs -c gép1,gép2,gép3 -a 1,2
cscript pauseftp.vbs -c gép1,gép2,gép3 -a 1,2
cscript pausesrv.vbs -c gép1,gép2,gép3 -a w3svc/1, msftpsvc/1
Web- és FTP helyek elindítása, folytatása
Az előző fejezetben foglaltak teljes egészében érvényesek az elindításnál is, csupán a STARTWEB.VBS, STARTFTP.VBS és STARTSRV.VBS szkriptekkel tudjuk végrehajtani.
Az ideiglenesen leállított szolgáltatások, pedig a CONT* szkriptekkel folytathatók.
Új webhely létrehozása
Egy új webhely létrehozásánál ügyelni kell arra, hogy valamilyen módon meg lehessen különböztetni a már meglévőktől, különben hibajelzést kapunk. A különbséget szolgáltathatja más IP cím, portszám vagy állomásfejléc.
cscript mkw3site.vbs -r c:\inetpub\newsite -t "ProbaSite1" -h "www.probasite1.hu" -i 192.168.0.1 -o 80
Elemezzük ki a fenti példát:
Új webhely az MKW3SITE.VBS szkript paraméterezett meghívásával hozható létre. A -r után adjuk meg a Site-ot alkotó fájlok elérési útját. A -t utáni sztring tárolja a nevét, ami a felügyeleti konzolban is megjelenik. Ezt követi -h-val az állomásfejléc neve, -i-vel az IP cím és-o-val a portszám. A -h, -i és -o paraméterek segítségével lehet (kell) beállítani egy az eddigiektől különböző elérési módot. Miután létrejött az új webhely, rögtön el is indul, hacsak nem fűzzük hozzá a --dontstart kapcsolót:
cscript mkw3site.vbs -r c:\inetpub\newsite -t "ProbaSite1" -h "www.probasite1.hu" -i 192.168.0.1 -o 80 --dontstart
A létrehozás folyamatát a -v kapcsoló jeleníti meg:
cscript mkw3site.vbs -r c:\inetpub\newsite -t "ProbaSite1" -h "www.probasite1.hu" -i 192.168.0.1 -o 80 -v
Új virtuális könyvtár létrehozása
Az MKWEBDIR.VBS szkript felelős a virtuális könyvtárak létrehozásáért. Nézzük meg a következő példát:
cscript mkwebdir.vbs -w "ProbaSite1" -v Képek,c:\pictures
A -w kapcsoló után adtuk meg a webhely nevét, ahol létre akarjuk hozni az új virtuális könyvtárat. A -v után először a könyvtár Web szolgáltatásban megjelenített nevét, egy vesszőt és a tényleges elérési útját írtuk. Több könyvtár létrehozása:
cscript mkwebdir.vbs -w "ProbaSite1" -v Képek,c:\pictures, Képek2,c:\pictures2, Képek3,c:\pictures3
Hozzáférési jogosultságok módosítása
Utolsó műveletünket a CHACCESS.VBS szkripttel fogjuk elvégezni.
A 3-as sorszámú webhely gyökérkönyvtárában az olvasási jogosultság megadása:
cscript chaccess.vbs -a w3svc/3/root +read
És megvonása:
cscript chaccess.vbs -a w3svc/3/root -read
Az alábbi jogosultság szabályozó kapcsolók léteznek:
- Olvasás: +-read
- Írás: +-write
- Parancsfájl végrehajtás: +-script
- Könyvtártallózás: +-browse
Több gépen is végrehajtható a fenti parancs a már ismert módon:
cscript chaccess.vbs -c gép1, gép2, gép3 -a w3svc/3/root -read