Windows Server 2003 nudi karantin servis koji se koristi za potvrdu sigurnosne konfiguracije udaljenog klijenta pre same dodele dozvola za kompletan pristup internoj mreži. ISA Server 2004 nudi integrisanu soluciju za VPN karantin. Ova lekcija opisuje šta predstavlja karantin servis, kako radi, i kako implementiramo ISA Server 2004 podršku za VPN karantin.
Kako radi mrežna karantin kontrola?
Karakteristika VPN karantin kontrola dozvoljava nam da pregledamo VPN klijentske mašine pre nego što im dopustimo pristup mreži organizacije (našoj mreži). VPN karantin kontrola može da odloži normalni udaljeni pristup privatnoj mreži sve dok konfiguracija na udaljenom klijentu ne bude validna.
Sledeći proces opisuje kako ISA Server karantin kontrola radi kada se udaljeni slušač (remote listener) i udaljena klijentska komponenta, koji se nalazi u Windows Server 2003 Recource Kit-u i ISA Server polisi, koriste da implementiraju karantin kontrolu:
- Korisnik na Quarantine-compatibile remote access client-u koristi instalirani Quarantine Connection Manager (CM) profil da se konektuje sa kompjuterom na kojem radi ISA Server sa omogućenom karantinskom kontrolom.
- Remote access klijent šalje autentifikacione podatke ka kompjuteru na kojem je instaliran ISA Server. ISA Server proverava validnost autentifikacionih podataka remote access klijenta i, pod prepostavkom da su podaci validni, proverava polise za udaljeni pristup.
- Ako pokušaj konekcije odgovara karantin polisi, konekcija se prihvata sa karantin ograničenjima, i klijentu se dodeljuje IP adresa i smešta se u Quarantined VPN Clients Network. U ovoj tački, udaljeni klijent može samo da se konektuje na resurse koji su omogućeni Firewall polisom za Quarantined VPN Clients Network.
- Nakon povezivanja CM profil na VPN klijentu startuje karantin skript. Karantin skript proverava da li kompjuterska konfiguracija udaljenog klijenta odgovara zahtevima mrežne polise.
- Ako klijentski kompjuter prođe test for Network policy, skript startuje Rqc.exe sa command line parametrima. Rqc.exe šalje obaveštenje ka kompjuteru na kojem radi ISA Server, obaveštavajući ISA Server da je skript uspešno startovan.
- Obaveštenje je primila komponenta koja osluškuje na ISA Serveru (listener component). Komponenta koja osluškuje proverava skript Version String u poruci obaveštenja sa onim koji se nalazi u Registry-ju i šalje nazad ili poruku u kojoj je navedeno da je script verzija validna ili poruku koja navodi da skript verzija nije validna. Ako je verzija skripta validna, listener komponent obaveštava ISA Server da je klijent prihvaćen, što će prouzrokovati da ISA Server klijenta iz Quarantined VPN Clints mreže u VPN Clients mrežu. Klijent će zatim moći da pristupi svim resursima koji su dostupni iz VPN Clients mreže.
Karantin kontrola na ISA Serveru
Konfguracija karantin kontrole na ISA Serveru zahteva nekoliko konfiguracionih koraka. Pre omogućavanja Quarantine Mode-a, moramo da kompletiramo sledeće korake:
- Kreiramo klijentski skript koji overava Client Configuration Information.
- Koristimo CMAK da kreiramo CM profil koji uključuje Notification Component i Client-side skript. Notification komponent daje overu kompjuteru na kojem radi ISA Server da je skript uspešno startovan. Ako ne želimo da kreiramo svoj Notification komponent, možemo da koristimo Rqc.exe sa Windows Server 2003 Recourse Kit-a. Potrebno je da distribuiramo CM profil svim korisnicima kojima je potreban pristup u našu mrežu kroz VPN konekciju.
- Moramo da kreiramo i instaliramo Listener komponent na ISA Serveru. Listener komponent je instaliran na kompjuteru koji radi kao ISA Server, i prima obaveštenja od notifying komponenta da je skript na klijentu uspešno startovan i da je uspešno odradio sve konfiguracione provere. Nakon što Listener komponenta primi obaveštenje, on ukljanja klijenta iz karantin moda, i kompjuter na kojem radi ISA Server postavlja klijentu standardnu polisu za udaljeni pristup. Ako nećemo da koristimo svoju Listener komponentu, onda možemo da koristimo Rqs.exe sample koji može da se pronađe i download-uje sa adrese:
http://search.microsoft.com/Results.aspx?qsc0=0&q=isa+server+Rqs.exe&PageType=99&SearchBtn0.x=0&SearchBtn0.y=0&mkt=en-US&FORM=QBME1&l=1 - Moramo da omogućimo Quarantine Control na ISA Serveru. Nakon kompletiranja svih prethodnih koraka, možemo da implementiramo karantin kontrolu na ISA Serveru. Kada omogućimo karantin na ISA Serveru, možemo da konfigurišemo Time-out postavku koja određuje količinu vremena koja mu dozvoljava da ostane u Quarantin mode-u kada klijent pokušava da kreira VPN konekciju i listu korisnika za koje se neće primenjivati karantin kontrola. Korisnici u ovoj listi automatski pristupaju VPN Clients mreži.
- Konfigurišemo mrežna pravila i pravila pristupa koja se odnose na karantin VPN klijentaku mrežu. Pre nego sto klijentski kompjuter napusti karantin mrežu, klijentska IP adresa se dodaje u karantin VPN klijentsku mrežu. Za klijenta koji treba da ima pristup svim mrežnim resursima, moramo da konfigurišemo mrežno pravilo i pravilo pristupa tako da klijent na ovoj mreži dobije pristup internoj mreži.
Priprema Client-side skripta
Karantin skript ili program koji kreiramo da overimo konfiguraciju u toku udaljenog pristupa može biti .EXE fajl, Skript fajl .VBS ili prosti komand fajl .CMD ili .BAT.
Startovanje Rqc.exe - Ako su svi testovi koji se nalaze u skriptu uspešni, skript mora da startuje Rcq.exe sa sledećim parametrima:
Rqc ime konekcije TunnelImeKonekcije TCPPort Domain UserName ScriptVersion |
Command-line parametri za Rqc.exe su:
- ConnName - Ime konekcije udaljenog pristupa na ovaj host. Iznos ovog parametra može da se nasledi od Connection Manager profila %DialRasEntry% promenjive (poznate kao Macro)
- TunnelConnName - Ime tunel konekcije na ovaj host. Iznos ovog parametra može da se nasledi od Conection Manager-a profila %TunelRasEntry% promenjiva
- TCPPort - TCP port koji se koristi za slanje Notification poruke. Default-ni TCP port koji koristi RQs.exe je 7250. Ako konfigurišemo Rqs da koristi TCP port koji je drugačiji od default-nog TCP ptotokola 7250, moramo da upišemo TCP broj porta ovde.
- Domain - Domen korisnika koji se konektuje. Iznos ovog parametra može da se nasledi od Connection Manager profila %Domain% promenjiva.
- UserName - Korisničko ime korisnika koji se konektuje. Iznos ovog parametra može da se nasledi od Connection Manager profila %UserName% promenjiva.
- Script Version - Text string koji sadrži verziju skripta. Možemo da ubacimo text string koristeći karaktere na tastaturi, osim /0 karakter sekvence.
Ako kompjuter koji pokušava da se udaljeno konektuje ne uspe da prođe test Policy Copliance, skript može da uputi korisnika na web stranicu na kojoj se nalaze informacije o tome kako da ispuni uslove sigurnosne polise.
http://www.microsoft.com/windowsserver2003/techinfo/overview/quarantine.mspx
Konfiguracija VPN klijenata koristeći Connection Manager-a
Familija programa Connection Manager-a je set komponenata koje možemo da iskoristimo za kreiranje i upravljanje solucijama udaljenog pristupa (remote access solutions). Connection Manager omogućava mrežnom administratoru da unapred konfiguriše Remote Access klijente. Connection Manager familija proizvoda uključuje Connection Manager klijenta, Connection Manager Administration Kit (CMAK) i Connection Point Services (CPS).
Da bi omogućili klijentima da koriste karantin mod (Quarantine mode), moramo da konfigurišemo Connection Manager profil koristeći Connection Manager Administration Kit. Profil sadrži sledeće komponente:
- A post-connect action that runs a network policy requirements script - Ova funkcionalnost je konfigurisana kada je CM profil kreiran uz pomoć CMAK-a.
- A network policy requirements script - Ovaj skript proverava validnost na udaljenim klijentskim kompjuterima da bi overio da li kompjuterska konfiguracija odgovara mrežnoj polisi. Može da bude prilagođeni .EXE fajl (Custom .exe file) ili prosti command fajl (poznat kao Batch File).
- A notification component - Ova komponenta šalje poruku koja ukazuje na uspešno startovanje skripta u karantin kompatibilnom serveru za udaljeni pristup. Možemo da koristimo svoj notification component ili možemo da koristimo Rqc.exe, koji je ponuđen u Windows Server 2003 Resources Kit-u.
Da bi konfigurisali Karantin CM profil, moramo da startujemo Connection Manager Administration Kit čarobnjaka. Samo dva dela konfiguracionog procesa su specifična za kreiranje Karantin CM profila:
- Define a custom Action - Možemo da iskoristimo Connection Manager Administration Kit čarobnjaka da definišemo prolagođenu (custom) akciju. Ova akcija može da se odradi pre konektovanja korisnika, ili u bilo kojoj fazi u toku ili nakon konekcije. Da bi kreirali profil koji će da omogući karantin kontrolu, moramo da konfigurišemo prilagođenu akciju koja će da startuje karantin skript nakon konektovanja klijenta.
- Add the notification component as an additional file - Kao deo CM profila, možemo da instaliramo dodatne fajlove na klijentskom kompjuteru. Da bi omogućili karantin profil, moramo da dodamo rqc.exe ili prilagođeni Notification component u profil.
Distribuiranje CM profila
Nakon kreiranja karantin Connection Manager Profila, moramo da ga distribuiramo i instaliramo na svim klijentskim kompjuterima koji će se konektovati na VPN server. Profil je .exe fajl koji mora da se startuje na udaljenim klijentskim kompjuterima da bi instalirali profil i konfigurisali karantin mrežnu konekciju.
Postoje mnogi metodi za distribuciju i startovanje profila na klijentskim kompjuterima sa kojih će se korisnici konektovati na VPN server:
- Poslati profil .exe fajl ili link ka profilu udaljenim klijentima sa instrukcijama kako da startuju profil koji instalira karantin konekciju.
- Postaviti Profil .exe fajl na web stranicu i dati korisnicima intrukcije kako da startuju profil koji instalira karantin konekciju.
- Postaviti profil .exe fajl da se startuje kao deo domen Logon skripta.
- Postaviti .exe fajl na CD ili flopy disk.
Priprema Listener komponenti
Network Quarantine Service (Rqs.exe) nudi listener servis za kompjutere na kojima radi ISA Server da bi mogli da podrže VPN karantin. Ova komponenta mora da bude instalirana na svim kompjuterima na kojima radi ISA Server koji će sprovoditi karantin servis.
Najlakši način da se instalira Network Quarantine Service i konfiguriše ISA Server da podrži prisluškivanje mrežnog saobraćaja je korišćenje ConfigureRQSForISA.vbs skripta koji nudi ISA Server 2004.
Sintaksa ovog skripta je:
Cscript ConfigureRQSForISA.vbs /install SharedKey1SharedKey2 pathto RQS.exe |
- /install command line switch instalira listener servis. Ako želimo da deinstaliramo listener servis, koristimo /remove.
- SharedKey iznos je ključ koji će konfiguracioni komponent poslati listener komponentu. Notification poruka koju šalje Rqc.exe sadrži tekst string koji ukazuje na to da je verzija karantin skripta startovana. Ovaj string je konfigurisan za Rqc.exe kao deo command line parametara, koji će biti startovan iz karantin skripta. Rqs.exe poredi ovaj tekst string sa tekst stringom koji se nalazi u redzistriju kompjutera na kojem radi ISA Server. Ako se poklapaju, uslovi karantina se uklanjaju iz konekcije. Ako je klijent dao Shared Key koji nije u dozvoljenom setu, konekcija će se prekinuti.
- Staza ka RQS.exe definiše gde se nalazi listener -exe
Skript odrađuje sledeće akcije:
- Instalira RQS kao servis i podešava ga da radi u sigurnosnom kontekstu lokalnog sistemskog naloga. Ime servisa je Network Quarantine Service.
- Kreira ISA Server pravilo pristupa koje dozvoljava komunikaciju preko RQS porta 7250 od VPN klijenatske i karantirane VPN klijentske mreže ka lokal Host mreži (ISA Serveru). Ovo je potrebno da bi kompjuter na kojem radi ISA Server mogao da proveri da li klijent ispunjava zahteve za konekcijom (connection requirements)
- Modifikuje registry ključeve na kompjuteru na kojem radi ISA Server tako da RQS može da radi zajedno sa ISA Serverom.
- Startuje RQS servis.
U slučaju da smo kreirali svoju Listener komponentu, ona mora da bude dizajnirana da sluša i čeka poruke od Notification komponente i koristi MprAdminConnectionRemoveQuarantine aplikacijski programski interfejs (API) da ukloni karantin restrikcije sa konekcija za udaljeni pristup. API mora da pozove Vpnplgin.dll (nalazi se u ISA Server instalacionom direktorijumu), a ne Mprapi.dll, koji se koristi za RRAS.
Konfiguracija internet autentifikacionog servisa za karantin kontrolu
Ako imamo ISA server koji radi na Windows Server 2003, možemo da omogućimo karantin koristeći RADIUS polisu ili koristeći ISA Server polisu. Kada startujemo ISA Server na Windows Server 2000, možemo samo da omogućimo karantin koristeći ISA Server polisu. Ako smo omogućili karantin koristeći RADIUS polisu, možemo da koristimo autentifikacioni servis na Windows Server 2003 ili Windows 2000 Serveru da se ponaša kao RADIUS Server.
U situaciji u kojoj imamo nekoliko manjih kancelarija (branch office), i svaka ima ISA Server 2004, možda ćemo želeti da omogućimo karantin koristeći RADIUS polisu da centralizujemo karantin kontrolu na jedan RADIUS server koji će da servisira sve kancelarije.
Ako koristimo RADIUS da upravljamo postavkama za karantin, moramo da instaliramo Listener komponentu na RADIUS server i nakon toga da konfigurišemo polisu za udaljeni pristup koja konfiguriše postavke za karantin. RADIUS koristi dve postavke u Remote access policy (polisa za udaljeni pristupa) da primora klijente na karantin:
- MS-Quarantine-IPFilter setting - Ova postavka se koristi da konfiguriše paket filtere koje ubacuju udaljene klijente u karantin dok ne stigne obaveštenje (Notifying Component) u kojem Remote Access klijent obaveštava da je klijentski kompjuter kompatibilan sa postavkama u karantin polisi.
- MS-Quarantine-Session-Timeout - Možemo da iskoristimo MS-Quarantine-Session-Timeout atribut da odredimo koliko dugo će remote access server čekati obaveštenje da je skript startovan uspešno pre nego što prekine konekciju.
Nakon što smo konfigurisali IAS i ISA Server da koristi RADIUS, VPN klijentski zahtevi prolaze kroz ISA Server i idu ka IAS Serveru. Polisa udaljenog pristupa na IAS Serveru određuje da li je zahtev za konekciojom prošao kroz ISA Server. Nakon što je Routing and Remote Access polisa verifikovana, klijent odmah postaje član VPN Clients mreže.
Konfiguracija karantin pravila pristupa
Finalni korak u konfiguraciji karantin kontrole za VPN klijente je konfiguracija pravila pristupa koja će dozvoliti ili zabraniti pristup resursima na drugim mrežama VPN klijentima koji se nalaze u karantinu.
Da bi dozvolili pristup resursima, potrebno je da kreiramo pravilo pristupa sa Quarantined VPN Clients Network kao izvornom mrežom i serverom koji je odredišni kompjuter. Da bi konfigurisali ovakvo pravilo, kreiramo Computer rule elemenat za svaki server, tako da on može da se iskoristi u pravilu pristupa. Kao alternative, možemo da kreiramo set kompjutera koji će sadržati sve kompjutere kojima karantirani klijenti zahtevaju pristup, i nakon toga kreiramo pravilo pristupa sa karantin VPN klijentskom mrežom kao izvorom (source network) i kompjuter setom kao odredištem.
Slede primeri tipa pristupa koje ćemo najčešće dodeljivati karantiranim VPN klijentima:
- For Rqc.exe-notification traffic, use destination TCP port 7250. (This is the default TCP port used by Rqs.exe.)
- Allow queries to LDAP servers on the internal network.
- Allow traffic to domain controllers or RADIUS servers.
- Allow quarantined VPN clients to issue DNS queries to DNS servers.
- Allow quarantined VPN clients to access WINS servers.
- Allow quarantined VPN clients to use Hypertext Transfer Protocol (HTTP) to access internal Web servers.
- Allow quarantined VPN clients to use NetBIOS over TCP/IP using destination TCP port 139 to enable access to file shares on the internal network.
Druga opcija je da dizajniramo našu mrežu tako da svi serveri kojima pristupaju VPN klijenti budu na istoj podmreži, i nakon toga definišemo Subnet Rule elemenat (elemenat pravila podmreže) koji će se koristiti u pravilu pristupa. U ovoj konfiguraciji, možemo da dozvolimo pristup na određenu podmrežu koristeći sve protokole, ili ograničiti pristup na samo zahtevane protokole.