Cikkek

Biztonság a Windows 7 tűzfalával

kategória: Biztonság — forrás: Microsoft TechNet — dátum: 2009-09-03 — értékelés: 5.00Nyomtató

Akik eddig idegenkedtek a Windows tűzfalától, ebben a cikkben teljesebb képet kaphatnak a beállítási lehetőségekről, és remélem el tudom oszlatni sokak kételyét a Windows beépített tűzfaláról.

Tűzfalakról röviden

A tűzfalakat két típusba sorolhatjuk. Az első az úgynevezett network firewalls - hálózati tűzfalak -, amelyek a belső és külső hálózat határán védik a belső hálózatot. Ezek lehetnek hardveres, szoftveres vagy a kettő kombinációjából létrehozott tűzfalak. Az egyik ilyen hálózati tűzfal a Microsoft Internet Security and Acceleration (ISA) Server, újabban Forefront TMG.

A másik típusú tűzfal a host based vagyis a kliensoldali. Mivel a hálózati tűzfalak nem tudják ellenőrizni a kliensek által generált forgalmat a belső hálózaton (hiszen ezen forgalom nem is jut el az ISA Serverig), ezért kell valamilyen kliensoldali megoldás is. A beépített tűzfal ezen segít nekünk, hiszen megakadályozza az illetéktelen hozzáférést (és természetesen a támadásokat) a gépünkhöz a hálózaton keresztül.

Windows tűzfal régen és most

A felhasználók többsége két dolgot telepit először: víruskeresőt és tűzfalat. Míg a vírukeresők inkább a felhasználókat saját maguktól védik, addig a tűzfal a teljes gépet felhasználóstól, szoftverestől (megfelelően konfigurálva). Megállítja a támadást még mielőtt esélye lenne elérni a rendszerünket. A Windows XP tűzfala a bejövő forgalmat szűrte, de nem volt lehetőségünk a kimenő forgalom szabályozására. Trójai és egyéb kártékony programok bármilyen adatot ki tudtak küldeni az internetre. Mostanáig.

Foglaljuk össze, hogy egy mai korszerű tűzfalnak milyen kihívásoknak kell megfelelnie:

  • Mobileszközök, illetve a nem helyhez kötött dolgozók többféle hálózathoz csatlakoznak akár napjában többször is, így nehéz megakadályozni az illetéktelen hozzáférést.
  • Vírus és különböző férgek támadása az internet felől (rosszabb esetben a belső hálózatból).
  • Egy vállalatnál az adatok mennyisége előbb-utóbb elér egy olyan kritikus mennyiséget, amit már védeni kell az illetéktelen hozzáférésektől, miközben meg kell tartani a könnyű és egyszerű hozzáférhetőséget a jogosultak számára.


Sokan még Windows XP-t használnak, ezért elsőnek először pár szembetűnő különbséget nézzünk meg a két tűzfal között. Az első ilyen különbség - mint fentebb említettem -, hogy képesek vagyunk a kimenő forgalmat is szűrni, valamint hogy a tűzfalat és az IPSecet integrálták. Az IPSec széles körben elterjedt protokoll (ráadásul része az Ipv6 protokollnak), és szintén a kommunikáció szűrésére használják. A különbség a tűzfalban található. Máshogy határozunk meg egy szabályt és máshogy egy IPSec kommunikációt, ráadásul így elkerülhető a két védelmi mechanizmus közti ütközés. A tűzfal és az IPSec is ugyanabból a konzolból érhető el, ezzel könnyítve a konfigurálást. Nem kell aggódni, hogy a beállítani kívánt szűrés vajon IPSec vagy tűzfalszabály. Lényegében egy nézetben lehet látni minden olyan, a hálózatról jövő támadási felületet, ami segít ezek minimalizálásában.

A Windows 7 követi a Vistában megismert tűzfalkonzolt, kiegészítve egy-egy új funkcióval, gombbal, részletesebb beállítási lehetőségekkel. Ezen kívül egy sor új algoritmus támogatása került bele (AES, SHA 256, SHA 384*), valamint a tartományi környezetben igencsak jól használható Network Access Protection (NAP).

A cikkben megnézzük mind a két tűzfalkonzolt, amelyek a Windows Firewall és a Windows Firewall with Advanced Security névre hallgatnak. Nagyobb hangsúlyt fog kapni az Advanced Security rész, hiszen itt tudjuk finom hangolni a hálózati forgalmunkat. A beállítások távolról is kezelhetők, a Windows Server 2008 támogatja a csoportházirendekkel való kliensoldali tűzfalmódosításokat.

A tűzfal

Természetesen a Windows 7 tűzfala egy kliensalapú applikáció, amely beállításoktól függően blokkolja/engedélyezi a bejövő, illetve a kimenő forgalmat a gépünkön. A tipikus felhasználói beállítások továbbra is elérhetők a vezérlőpulton keresztül, az Advanced configuration pedig egy beépülő MMC modult kapott. Az MMC integrációnak köszönhetően természetesen ezzel a beépülő modullal nemcsak a helyi, hanem a távoli gépek tűzfalszabályait is képesek vagyunk kezelni (a csoportházirendeket nem is említve).

A tűzfal egyik fontos része a réteges biztonsági modell, amely képes kétirányú hálózati forgalom szűrésére, vagyis minden ki és befele jövő illetéktelen kommunikációt blokkol. A Network Location Awareness (NLA) biztosítja számunkra, hogy amint másik hálózatba kerül a gépünk (pl. munkahelyről haza), a tűzfal alkalmazkodjon az új hálózathoz, és az adott hálózatban beállított szabályokat lépteti életbe.

Nézzük meg a legfontosabb tulajdonságokat:

  • Megakadályozza, hogy valamilyen kártékony kód a Windows szolgáltatásait használja a fájlrendszer-, illetve a registry-módosításokhoz vagy valamilyen hálózati tevékenységhez.
  • Alapértelmezetten blokkolja (pár kivétellel) az összes bejövő kapcsolatot. Windows XP-ben még csak TCP, UDP és ICMP portokra tudtunk szűrni. Ezt bővítették ki.
  • Kimenő és bejövő kapcsolatok szűrése.
  • Különböző tűzfalbeállítások a háromféle tűzfal profilhoz.
  • IPSec hitelesítéssel lehetőség van megkerülni egy a tűzfal által definiált blokkolási szabályt oly módon, hogy az IPSec kommunikáció a hitelesített számítógépek között megengedett.
  • Létrehozhatunk olyan szabályokat, amelyek a kapcsolatokat szűrik gép, felhasználó vagy tartományi csoportok szerint.
  • IPv6 támogatás.
  • 3rd party tűzfalak szelektíven kikapcsolhatnak funkciókat, valamint új egyéni funkciókat adhatnak meg.


A három hálózati kategória:

  • Tartományi: a gép egy Active Directory tartomány tagja. Amint csatlakozunk a tartományhoz, ez a profil lesz aktív.
  • Publikus: olyan hálózat, ami közvetlenül kapcsolódik az internetre. Minden nem tartományi hálózat publikus hálózatként jelenik meg.
  • Privát: egy hálózatot akkor tekintünk privátnak, ha a felhasználó vagy egy program az adott hálózatot annak jelöli, többségében az otthoni hálózatot jelenti.


Amikor a felhasználó csatlakozik egy nem tartományi hálózathoz, a Windows 7 kéri, hogy a felhasználó azonosítsa a hálózatot publikusként vagy privátként, de privát hálózatot csak rendszergazda tud megadni. A hálózat megadása utána a Windows 7 módosítja a tűzfalszabályokat, és így a hálózatnak megfelelő szabályok jutnak érvényre.

Beállított szabályok kiértékelési sorrendje:



Vagyis:

  • Windows Service Hardening: megakadályozza, hogy valamilyen kártékony kód a Windows szolgáltatásait használja a fájlrendszer-, illetve a registry-módosításokhoz vagy valamilyen hálózati tevékenységhez.
  • Connection Security rules: IPSec kommunikáció beállítása, ki, mikor és hogyan kommunikálhat IPSecen keresztül.
  • Authenticated bypass rules: IPSec hitelesítéssel lehetőség van megkerülni egy a tűzfal által definiált blokkolási szabályt oly módon, hogy az IPSec kommunikáció a hitelesített számítógépek között megengedett.
  • Block rules: bizonyos forgalom blokkolása mind kimenő, mind bejövő kapcsolat esetén.
  • Allow rules: forgalom engedélyezése.
  • Default rules: az itt lévő szabályok akkor hajtódnak verge, ha a kapcsolat egyik szabályban beállított paraméternek sem felel meg.


Csapjunk a lecsóba

Először nézzük meg a tűzfalat a vezérlőpulton keresztül. Látni lehet az otthoni vagy munkahelyi, illetve a privát hálózat alapbeállításait. Erre a szeparációra szükség van, hiszen teljesen más funkciók lehetnek szükségesek egy munkahelyi hálózaton, mint egy publikus net kávézóban (mondjuk a fájl- és nyomtatómegosztás egy támadható felület a rendszerünkön egy publikus hálózatban). Itt ki- és bekapcsolni tudjuk a hálózathoz tartózó tűzfalat, valamint megadhatunk programokat, amiket átengedünk a tűzfalunkon a régi, XP-ben megszokott módon.




Mint már említettem, a Windows 7 Firewall with Advanced Security konfigurálása MMC konzolon keresztül történik, ezért nyissunk egy MMC konzolt, és adjuk hozzá a megfelelő beépülő modult. A másik elérési lehetőség a Control Panel > System and Security > Windows Firewall, majd a panel baloldalán az Advanced settings, illetve a megszokott keresés a "firewall" kulcsszóra.



Az ábrán látható a kezdő képernyő, amely egy áttekintést ad a tűzfalunkról a különböző hálózati profilokban. A tűzfalat a konzol baloldalán lévő menüpontokban tudjuk részletesen konfigurálni (szabályok és monitorozás). A konzol jobboldalán mindig az adott menürészhez tartozó környezetfüggő akciókat látjuk.



Tűzfal tulajdonságok

Minden hálózati profilban ugyanazokat a beállításokat tudjuk megtenni, tehát egy profilon keresztül mutatom be a beállítási lehetőségeket.





A beállítások a következők:

  • Firewall state: itt tudjuk be-, illetve kikapcsolni a profil tűzfalát.
  • Inbound connections: bejövő kapcsolatok szabályozása.
    • Block (default): minden olyan kapcsolatot blokkol, ami nem felel meg egyik aktív szabályunknak sem.
    • Block all connections: minden bejövő kapcsolatot tilt, nem vesz figyelembe egyetlen szabályt sem.
    • Allow: engedélyezi azon bejövő kapcsolatot, amely nem felel meg egy aktív szabálynak sem.
  • Outbound connections: kimenő kapcsolatok szabályozása.
    • Allow (default): minden kapcsolatot enged kifele, amit nem tudunk ráhúzni egyetlen szabályra sem.
    • Block: ennek fordítottja, vagyis mindent tilt, amit nem engedélyeztünk.
  • Protected network: melyik kapcsolatunkat védje a tűzfal.
  • Settings: tűzfalbeállítások.
    • Firewall settings: a tűzfal értesíti a felhasználót, ha blokkol egy bejövő kapcsolatot.
    • Unicast response: itt engedélyezhetjük, hogy a gép válaszoljon-e multicast és broadcast kérésekre.
    • Rule merging:
      • Apply local firewall rules: ezt a lehetőséget csoportházirenddel való konfigurálásnál válasszuk ki, a rendszergazdák ezen keresztül tudnak szabályokat létrehozni. Ha ez az opció nincs kijelölve, szabályokat ugyanúgy létre tudnak hozni, de a szabályok nem kerülnek alkalmazásra.
      • Apply local connection security rules: kapcsolatspecifikus (connection security rule) szabályokat lehet konfigurálni csoportházirenden keresztül. Ha az opció nincs kijelölve, a létrehozott szabályok nem kerülnek alkalmazásra.
  • Logging: naplózási beállítások.
    • Name: a log fájl neve.
    • Size limit: a log fájl mérete alapértelmezetten 4096 KB.
    • Log dropped packets: eldobott csomagok naplózása.
    • Log successful connections: létrejött kapcsolatok naplózása.
  • IPSec settings fül: IPSec beállítások.
    • IPSec defaults: kulcscsere, autentikációs metódusok és adattitkosítási beállítások.
    • IPSec exemptions: ICMP forgalom kivétele az IPSec kommunikációból.
    • IPSec tunnel authorization: itt tudjuk állítani, hogy melyik felhasználótól, géptől fogadunk el IPSec kapcsolatot (természetesen ehhez szükségünk lesz egy kapcsolat-specifikus szabályra).


Szabályok

A szabályok lehetővé teszik, hogy általunk meghatározott programokat, protokollokat, szolgáltatásokat engedjünk át a tűzfalunkon (pl. RDP). Az alábbi ábrán látjuk a szabályokat. Külön csoportot képeznek a kimenő és bejövő kapcsolatokat szűrő szabályok.



Egy szabály bekapcsolásához válasszuk ki a szabályt, majd a jobboldalon az Enable Rule opcióval kapcsoljuk be. Kikapcsoláshoz természetesen a Disable Rulet kell választani. A szabály megtekintését és módosítását a Properties opció kiválasztásával érhetjük el.

Szabályok (Rules)





Beállítható tulajdonságok:

  • General:
    • Name: a szabály neve.
    • Description: leírás a szabályról, később tudjuk azonosítani, hogy miért hoztuk létre.
    • Enabled: a szabály bekapcsolása.
    • Action:
      • Allow the connections: engedélyez minden olyan kapcsolatot, amely megfelel a szabálynak. Nem ellenőzi, hogy a forgalom IPSec által védett vagy sem.
      • Allow only secure connections: ezt választva egy újabb részletes beállítási panelhoz jutunk, itt az IPSec-re vonatkozó beállításokat tehetjük meg, ekkor csak az a kapcsolat lesz engedélyezve, ami megfelel a szabálynak és az IPSec beállításoknak.
      • Block: blokkol minden szabályban definiált kommunikációt.
  • Programs and Services:
    • Programs: mely program kommunikációjára legyen érvényes a szabály.
    • Services: mely szolgáltatásra vonatkozzon a szabály.
  • Users and Computers:
    • Authorized Computers / Users: a beállított szabályt a tűzfal csak meghatározott gépektől/felhasználóktól jövő kommunikációkor dolgozza fel. A máshonnan jövő csomagokat eldobja. Ez az opció csak akkor aktív, ha előzőleg beállítottuk az Allow only secure connections opciót.
  • Protocols and Ports:
    • Protocol Type: a protokoll típusa (TCP, UDP, IGMP, GRE stb.). Emlékezzünk a jó öreg XP tűzfalra, ott ugye csak TCP és UDP között választhattunk.
    • Protocol Number: ha nem előre definiált listából választunk, akkor itt a protokoll számát kell megadnunk (nem összetévesztendő a port számmal).
    • Local port: a helyi gép portszáma.
    • Remote port: a távoli gép portszáma.
    • ICMP Settings: az ICMP beállítása. Ez az opció csak akkor érhető el, ha előzőleg az ICMPv4 vagy az ICMPv6 protokollt választottunk.
  • Scope:
    • Local and Remote IP address: helyi és távoli gép IP címek, IP tartomány, amelyekre a szabály vonatkozik.
  • Advanced:
    • Profiles: mely profilokra vonatkozzon a szabály.
    • Interface types: melyik interfészre vonatkozzon a szabály.
    • Edge traversal: lehetővé teszi, hogy a gépünk a hálózaton lévő routertől/tűzfaltól érkező kéretlen csomagokat elfogadjon/blokkoljon.


Új szabály létrehozása



Az alábbi szabálytípusokat tudjuk létrehozni:

  • Program rule: egy, a felhasználó által megadott programra fog vonatkozni a szabály.
  • Port rule: TCP vagy UDP portra, port-tartományra vonatkozó szabály.
  • Predefined rule: előre beállított szabály, vagyis Windows funkciókhoz tudunk beállítani szabályokat. Tulajdonképpen egy olyan szabályhalmaz, amivel a Windows funkciók hálózati kommunikációját tudjuk szabályozni.
  • Custom rule: ha a fenti típusok nem felelnek meg számunkra, itt tudunk teljesen testreszabott szabályokat létrehozni.


Connection Security Rule létrehozása

Itt lehetőségünk van IPSec alapú titkosított kapcsolatot beállítani két gép között. A gépek a kapcsolat kialakítása előtt létrehoznak egy biztonságos csatornát, majd ezek után kezdik meg az adást egymásnak. Ez a kapcsolat mindig kényszerítve van, vagyis az adás előtt mindig felépül a biztonságos csatorna. Válasszuk ki a Connection Security Rules-t, és indítsuk el a New Rule varázslót. Az alábbi kép fogad minket.



Magyarázat:

  • Isolation: izolációs szabályokkal a kapcsolatokat tudjuk szabályozni tartományi tagság vagy a gép biztonsági állapota alapján.
  • Authentication Exemption: hitelességi mentesség. Olyan kapcsolatokat tudunk definiálni, amelyek nem igényelnek hitelesítést. Az itt megadott IP címről / IP tartományból jövő kapcsolatoknál a kapcsolat felépítése előtt a tűzfal nem kér autentikációt.
  • Server to Server: 2 végpont között tudunk biztonságos kapcsolatot létrehozni.
  • Tunnel: lehetővé teszi, hogy védett kapcsolatot hozzunk létre 2 végpont között. Tipikus felhasználási területe, ha az interneten keresztül csatlakozunk valamilyen távoli géphez, és szeretnénk titkosított csatornát.
  • Custom: egyéni szabályok definiálása.


Tűzfal konfigurálása netsh-val

A netsh parancssori paranccsal a hálózatkezelésen kívül a tűzfalbeállításokat is tudjuk módosítani. Szkriptelve pedig bármilyen beállítást, szabályt be tudunk állítani több gépen egyszerre. Természetesen a beállításokat is megtudjuk jeleníteni vele.

Parancssorban gépeljük be, hogy "netsh".

A prompt ezek után megváltozik: ">netsh".

Itt gépeljük be a következő parancsot: "advfirewall".

Máris tudjuk konfigurálni a tűzfalunkat (rendszergazdaként természetesen).

Nézzünk meg néhány fontosabb parancsot ízelítőként:

  • export: a jelenlegi tűzfal konfigurációt tudjuk fájlba exportálni.
  • help: elérhető parancsok listája.
  • import: tűzfalbeállítások importálása fájlból.
  • reset: visszaállítja a gyári beállításokat.
  • set: ezzel további konfigurációs beállítást tudunk megejteni.
  • set file: a konzol kimenetet egy fájlba tudjuk irányítani.
  • set machine: megadhatjuk a gépet, amin a módosításokat hajtjuk végre.


A  profilokat külön-külön tudjuk kezelni a set egyéb parancsaival:

  • show: a profilok már meglévő beállításait jeleníti meg.
    • show allprofiles: az összes profil beállitásai.
    • show domainprofile: tartomáyi profil.
    • show privateprofile: privát profil.
    • show publicprofile: publikus profil.


Az advfirewall kontextus tartalmaz további alkontextusokat. Például:

  • consec: connection security rule-ok létrehozása.
  • firewall: tűzfalszabályok létrehozása.
  • monitor: monitorozás beállítása.


Nézzünk egy példát!

Mondjuk ha szeretnénk a 12345-ös portot blokkolni kimenő forgalmunkban, akkor az alábbi paranccsal tudjuk ezt megtenni:

netsh advfirewall firewall add rule name="Block 12345"
dir=out action=block enable=yes profile=public
localIP=any remoteIP=any remoteport=12345 protocol=TCP interfacetype=any

A parancssorral közvetlen a szabály megalkotásakor megadhatjuk az interfészt is, amire a szabályt érvényesíteni szeretnénk. Ebben az a jó, hogy a grafikus felületen a szabályt létre kell hoznunk, majd tulajdonságok és elkattintgatni az interfészek listájához.

Monitoring

A beépített tűzfal tartalmaz egy monitorozó rendszert is. Itt tudjuk monitorozni a tűzfalat, a connection security rule-okat, illetve a security associationöket.

Tűzfal/Firewall

Itt az összes aktív szabályunkat látjuk, valamint egy szabályt kiválasztva megtekinthetjük a beállításait.



Connection Security Rules

Itt természetesen a fentebb beállított kapcsolatfüggő szabályainkat tudjuk megnézni.

Security associations

A felépült és működő IPSec sessionöket (SA - security associations) látjuk ebben a nézetben.

  • Main Mode: itt a végpontok IP címei jelennek meg az éppen aktív kapcsolatainknál.
  • Quick Mode: végpontok és azok beállításai.


*- Vistán is elérhetőek netsh-n keresztül.

 

Szerző: Dorner Péter

A fenti cikk a Microsoft TechNet Windows 7 pályázat egyik pályaműve, gratulálunk a szerzőnek!