Anno írtam egy cikket a Windows 7 tűzfalról a magyarországi Technetnek. Ezt a cikket ide is kirakom, ha már átmásoltam a spaces oldalamat ide a wordpressre. Megjegyezném, hogy a spaces hiába álltotta, hogy az összes eddigi bejegyézesm automatikusan átkerül ide, nem került. Manuálisan hoztam át párat.
Következzen maga a cikk (16 oldal 🙂 )
Biztonság a Windows 7 tűzfalával
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 kliens oldali. 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 szerverig) ezért kell valamilyen kliens oldali 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:
- Mobil eszkö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 XPt 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űzfal konzolt 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 melyek 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őek a Windows Server 2008 támogatja a csoportházirendekkel való kliens oldali tűzfalmódosításokat.
A tűzfal
Természetesen a Windows 7 tűzfala egy kliens alapú applikáció mely 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őek a vezérlőpulton keresztül, az Advanced configuration 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űzfal szabá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ájl rendszer 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 XPben 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űzfal beállítások a három fé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űzfal szabályokat, 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 végre ha a kapcsolat egyik fentebb 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 alap beá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 XPben 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 bal oldalán 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 bal oldalán lévő menüpontokban tudjuk részletesen konfigurálni (szabályok és monitorozás). A konzol jobb oldalá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őek:
- 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űzfal beá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 es 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: a kapcsolat specifikus (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: log fájl neve.
- Size limit: a log fájl mérete alapértelmezetten 4096KB.
- 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: kulcs csere, autentikációs metódusok és adat titkosí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 jobb oldalon az Enable Rule opcióval kapcsoljuk be. Kikapcsoláshoz természetesen a Disable Rulet kell választani. 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 fül:
- 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 – szabály bekapcsolása
- Action –
- Allow the connections: engedélyezi 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 – 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 – helyi gép portszáma.
- Remote port – távoli gép portszáma
- ICMP Settings – ICMP beállítása. Ez az opció csak akkor érhető el ha előzőleg ICMPv4 vagy 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 – az 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ály tí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 Rulest és indítsuk el a New Rule varázslót. Az alábbi kép fogad minket.
§ 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 Netshval
Netsh parancssori paranccsal hálózat kezelésen kívül a tűzfal beállításokat is tudjuk módosítani. Scriptelve pedig bármilyen beállítást, szabályt betudunk á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 az alábbi 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 kiexportálni.
- help – elérhető parancsok listája.
- import – tűzfal beá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 – 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 ruleok létrehozása.
- firewall – tűzfal szabályok létrehozása.
- monitor – monitorozás beállítása
Nézzünk egy példát
Mondjuk, ha szeretnénk a 12345 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 ruleokat 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
- Connection Security Rules: itt természetesen a fentebb beállított kapcsolat fü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 netshn keresztül