8. Forgalomszűrés hozzáférési listák használatával
Tartalom 8.1 A hozzáférési listák használata 8.2 A helyettesítő maszk használata 8.3 A hozzáférési listák paraméterezése 8.4 Meghatározott forgalomtípusok engedélyezése és tiltása 8.5 Forgalom szűrés hozzáférési listák alkalmazásával
A hozzáférési listák használata 8.1
Biztonság A vállalati hálózaton belül a biztonság alapvető fontosságú. Illetéktelen felhasználók belépésének megakadályozása. Hálózat védelme a különféle támadásokkal (pl.: DoS támadás) szemben. Mindkét eset idő- és pénzveszteséggel jár a vállalat számára.
Forgalomszűrés Segítségével a hálózati rendszergazda felügyelheti a hálózat különböző részeit. A szűrés a csomagtartalom elemzésének folyamata, amely alapján eldönthető, hogy egy adott csomagot átengedünk vagy blokkolunk. A forgalomszűrés javítja a hálózat teljesítményét.
Forgalomszűrés A forgalom engedélyezése vagy tiltása az alábbiak szerint történhet: Forrás IP-cím Cél IP-cím MAC-cím Protokollok Alkalmazástípus
Forgalomszűrés menete Be kell állítani a forgalomirányítót a nemkívánatos forgalom azonosítására. A nemkívánatos forgalom forráshoz közeli tiltásával a forgalom nem halad keresztül a hálózaton, és nem pazarol el értékes erőforrásokat.
Forgalomszűrés
Forgalomszűréshez használt eszközök Integrált forgalomirányítóba épített tűzfalak Adatbiztonsági funkciókat ellátó célkészülékek Kiszolgálók
Forgalomirányító forgalomszűrés Szinte minden forgalomirányító képes a Forrás és cél IP-cím alapján történő csomagszűrésre. Meghatározott alkalmazások és protokollok (pl. IP, TCP, HTTP, FTP és Telnet) szerinti szűrésre.
ACL - Access Control List A forgalomszűrés legáltalánosabb módja. A hálózatba belépő és az onnan távozó forgalom ellenőrizhető és szűrhető. Lehet egy adott forrásból érkező forgalmat engedélyező vagy tiltó egyetlen parancs, Lehet több száz parancsból álló lista is, ami különböző forrásból érkező csomagok átengedéséről vagy tiltásáról dönt.
ACL további használata A belső állomások meghatározása címfordításhoz. A speciális funkciókhoz (pl. QoS) tartozó forgalom azonosítása és csoportosítása. A forgalomirányítási frissítések tartalmi korlátozása. A hibakeresési üzenetek korlátozása. A forgalomirányítók virtuális terminálról történő elérésének szabályozása.
ACL-ek használatából eredő problémák Az összes csomag ellenőrzése terhelést jelent a forgalomirányítónak. A rosszul megtervezett ACL-ek még nagyobb terhelést okoznak, ami zavart okozhat a hálózat használatában. A nem megfelelően elhelyezett ACL-ek blokkolhatják az engedélyezni kívánt, és engedélyezhetik a blokkolni kívánt forgalmat.
Normál ACL Kiterjesztett ACL Nevesített ACL ACL típusok
Normál ACL (Standard ACL) Forrás IP-cím alapján végzi a szűrést A teljes (pl. IP) protokollműködés alapján engedélyezi vagy tiltja a forgalmat Adott PC vagy LAN számára engedélyezheti vagy tilthatja az összes szolgáltatás elérését Azonosítási száma 1-99, 1300-1999
Kiterjesztett ACL (Extended ACL) Forrás IP-cím, cél IP-cím, protokoll és portszámok alapján szűrhet. Elterjedtebb, mivel specifikusabbak és jobb ellenőrzést tesznek lehetővé. Azonosítási száma 100-199, 2000-2699
Nevesített ACL (Named ACL, NACL) Szám helyett névvel hivatkozunk Normál vagy kiterjesztett hozzáférési lista NACL üzemmód
ACL felépítése A hozzáférési listák egy vagy több utasításból állnak. A forgalmat minden egyes utasítás a megadott paraméterek alapján engedélyezheti vagy tilthatja. Az ACL utolsó utasítása mindig implicit tiltás. Automatikusan odakerül mindegyik ACL végére.
ACL felépítése Az engedélyező utasítást nem tartalmazó ACL minden forgalmat tilt, mivel minden ACL végén szerepel az implicit tiltás. Az ACL tehát minden olyan forgalmat tilt, ami nincs konkrétan engedélyezve.
ACL felépítése A forgalmat sorban össze kell vetni az ACL-ben található utasításokkal míg egyezést nem találunk vagy el nem érjük az utasításlista végét (implicit tiltás). Az implicit tiltás semmilyen forgalmat nem engedélyez. Az implicit tiltás funkció megakadályozza a nemkívánatos forgalom véletlen áthaladását.
ACL elhelyezése A hozzáférési lista akkor lép működésbe ha elkészitése után hozzárendeljük a megfelelő interfészhez. Az ACL az interfészen vagy a bejövő vagy a kimenő forgalmat figyeli. Az irányt mindig a forgalomirányító szemszögéből nézzük.
ACL működése Létezik-e az interfészhez rendelt ACL lista? Az ACL lista a bejövő vagy a kimenő forgalomra vonatkozik? A forgalomra teljesül-e valamely engedélyező vagy tiltó feltétel? Az összes csomag címrészét össze kell hasonlítani az ACL-utasítások megfelelő címrészével.
ACL-ek hatása A forgalomirányító interfészekhez protokollonként és irányonként egy-egy ACL adható meg. Az interfészhez hozzárendelt ACL-ek végrehajtása késlelteti a forgalmat. Akár egyetlen hosszú ACL is észrevehető hatással lehet a forgalomirányító teljesítményére.
Bemenő forgalom
Kimenő forgalom
A helyettesítő maszk használata 8.2
Helyettesítő maszk szerepe Az egyszerű ACL-ek csak egyetlen címet engedélyeznek vagy tiltanak. Több cím vagy egy adott címtartomány szűréséhez több utasítás vagy megfelelő helyettesítő maszk szükséges. Az IP-cím és a helyettesítő maszk együttes használata sokkal rugalmasabb megoldást nyújt.
Helyettesítő maszk szerepe Megmutatja, mely biteket kell figyelembe venni a csomagban szereplő IP-cím és az ACL-ben megadott cím összehasonlításkor. 0-k jelölik ki az IP-cím azon bitjeit, amiknek pontosan egyeznie kell a megadott címmel. Az 1-eseknél nincs szükség egyezésre.
Példa
Példa access-list 1 permit 192.168.1.0 0.0.0.255 A 192.168.1.0 hálózat minden állomását engedélyezi, ugyanakkor minden mást tilt (implicit tiltás) A helyettesítő maszk meghatározza, hogy csupán az első három oktettnek kell illeszkednie.
Helyettesítő maszk Egyetlen állomást engedélyező maszk 0.0.0.0 host paraméter Hálózatot, alhálózatot engedélyező maszk Pl. 0.0.0.255 C osztályú hálózat Minden felhasználót engedélyező maszk 255.255.255.255 any paraméter
Host paraméter Egy bizonyos állomás szűréséhez Például R(config)#access-list 9 deny 192.168.15.99 0.0.0.0 R(config)#access-list 9 deny host 192.168.15.99
Any paraméter Az összes állomás szűréséhez R1(config)#access-list 9 permit 0.0.0.0 255.255.255.255 R1(config)#access-list 9 permit any
Permit any A permit any parancs minden forgalmat engedélyez, amely az ACL-ben nincs konkrétan elutasítva. Implicit deny any utasítás nem léphet életbe soha
Permit any
Alhálózatok Amennyiben a 192.168.77.0 hálózat alhálózatokra osztásához 3 bitet használunk, az alhálózati maszk 255.255.255.224 lesz. Ha a fenti alhálózati maszkot kivonjuk a csupa 255-ből álló 32 bites hálózati maszkból, a 0.0.0.31 helyettesítő maszkot kapjuk.
Példa
Több alhálózat
A hozzáférési listák paraméterezése 8.3
ACL tervezés A megfelelően megtervezett hozzáférési listák pozitív hatással vannak a hálózati teljesítményre és rendelkezésre állásra. Tervezzünk meg a hozzáférési listák létrehozását és elhelyezését a maximális hatás érdekében!
ACL tervezés lépései 1. Forgalomszűrési igények meghatározása. 2. Igényeknek megfelelő ACL típus kiválasztása. 3. Annak a routernek és interfészének kiválasztása amihez az ACL-t rendeljük. 4. Forgalomszűrés irányának meghatározása.
Normál ACL A létrehozása és alkalmazása egyszerű. Kizárólag a forráscím alapján tud szűrni. A több hálózatba vezető útvonalak esetében egy, a forráshoz túl közel elhelyezett ACL akaratlanul is letilthatja az engedélyezni kívánt forgalmat is. A normál ACL-eket a célhoz a lehető legközelebb helyezzük el!
Normál ACL
Kiterjesztett ACL Precízebb szelekciót biztosít. Forrás- és célcím szerinti szűrésre egyaránt képes. Szükség esetén a hálózati és szállítási réteg protokolljai és a portszámok alapján is szűrhet. Lehetővé teszi a biztonsági terv igényeinek megfelelő ACL létrehozását.
Kiterjesztett ACL A kiterjesztett ACL-t mindig a forráscímhez közel helyezzük el! Ha az ACL mind a forrás-, mind a célcímet megvizsgálja, akkor bizonyos célhálózatba szánt csomagokat még azelőtt letilthat, hogy azok elhagynák a forrásforgalomirányítót. Segít a sávszélesség megőrzésében.
Kiterjesztett ACL
Interfész kiválasztása A forgalom szűrését még azelőtt célszerű elvégezni, hogy az elérne egy alacsonyabb sávszélességű soros összeköttetést. Az interfész kiválasztása a forgalomirányító kijelölését követően már általában egyértelmű.
Forgalomszűrés iránya Szemléljük a forgalom áramlását a forgalomirányító szemszögéből. Bejövő forgalom szűrése A forgalomirányító összeveti a beérkező csomagot az ACL-lel, mielőtt megkeresné a célhálózatot az irányítótáblában. Megspórolják az irányítótáblában történő keresést. Befelé szűrő ACL jóval hatékonyabb.
Forgalomszűrés iránya Kimenő forgalom szűrése A kimenő csomagra vonatkozóan a forgalomirányító már elvégezte az irányítási keresést, és a csomagot a megfelelő interfészre kapcsolta. A csomag összevetése az ACL-lel közvetlenül a forgalomirányítóról való távozás előtt történik.
ACL tervezése
ACL elkészítése (azonosító) Mindegyik ACL egyedi azonosítót igényel, amely lehet egy szám vagy egy beszédes név. A számozott hozzáférési listákban a szám meghatározza a létrehozott ACL típusát: A normál IP ACL: 1-99, 1300-1999 A kiterjesztett IP ACL: 100-199 2000-2699 AppleTalk és IPX ACL létrehozása szintén lehetséges.
ACL-ek száma Egy forgalomirányító bármely interfészére protokollonként és irányonként legfeljebb egy ACL-t lehet hozzárendelni. Amennyiben a forgalomirányító kizárólag IP-t futtat, mindegyik interfész legfeljebb két ACL-t kezelhet: egy befelé és egy kifelé szűrőt.
Utasítások létrehozása Utasítások sorrendje Az utasításokat a konkréttól az általános felé haladva kell megadni. Gyakoribb feltételeket a ritkábbak elé helyezni. Utasítások feldolgozása sorrendben történik. Ha egy csomagra nincs illeszkedés eldobódik. Az ACL-be mindig kell egy permit utasítás Implicit tiltás
Utasítások sorrendje
Normál ACL konfigurálása Helyettesítő maszkkal R(confiig)#access-list [acl_száma] [deny/permit] [forráscím] [helyettesítő_maszk][log] Host és any paraméterek használatával R(config)#access-list [acl_száma] [deny/permit] [host/any][forráscím] [log]
ACL interfészhez rendelése Hozzárendelés R(config-if)#ip access-group [acl_száma] [in/out] Eltávolítása R(config-if)#no ip access-group interface Az irány megadása fontos, mert bizonyos IOS-ek esetén a kimenő irány az alapértelmezett.
További konfigurációs lehetőségek Dokumentáljuk az ACL minden részének vagy utasításának a funkcióját a remark parancs segítségével: R(config)#access-list [a lista száma] remark [szöveg] ACL törlése R(config)# no access-list [a lista száma]
Ellenőrzés show ip interface show access-lists [acl_száma] show running-config ping
Kiterjesztett ACL Forrás IP-cím, cél IP-cím, protokolltípus és portszám alapján engedélyez vagy tilt Permit/deny után egy protokollt kell megadása IP teljes IP forgalom IP egy kiválasztott részhalmaza - TCP, UDP, ICMP, OSPF
Kiterjesztett ACL konfigurálása Helyettesítő maszk használatával R(config)# access-list [acl_száma][deny permit] [protokoll] [forráscím] [h_maszk] [célcím] [h_maszk] [illeszkedséi_feltétel][alkalmazás port] Host paraméter használatával [forrás célcím] [h_maszk] host [forrás célcím] Any paraméter használatával [forrás célcím] [h_maszk] any
Utasítások számának minimalizálása Nagy forgalom szűrését az ACL elején végezzük. Nem kell az ACL későbbi utasításaival összevetni. Tartományok használatával vonjunk össze több perimit/deny utasítást egy utasításba. Egy csoport tiltása a vele ellentétes, nagyobb csoport engedélyezése helyett.
Tartományok összevonása
Nevesített ACL Cisco IOS 11.2 verziótól használható ACL-hez rendelt névnek egyedinek kell lenni Normál és a kiterjesztett ACL-ekhez is használható
Nevesített ACL létrehozása NACL konfigurációs almódba lépés R(config)#ip access-list [standard extended] név ACL sorainak bevitele [deny permit] [forráscím] [h_maszk] [deny permit] [protokoll] [forráscím] [h_maszk] [célcím] [h_maszk] Használhatók a host és any paraméterek
Nevesített ACL
ACL módosítása Törlés Korábbi IOS - ACL egy sora nem törölhető, az egész ACL-t törölni kell Újabb IOS törölhető egy sora az ACL-nek Módosítás Korábbi IOS új sorok a lista végére kerülnek Újabb IOS beszúrható egy sor az ACL-be Szövegszerkesztővel érdemes létrehozni!
ACL módosítás menete Az IOS régebbi verzióiban Az ACL kimásolása egy szövegszerkesztőbe. Az ACL eltávolítása a forgalomirányítóról. Az ACL ismételt létrehozása, majd a szerkesztett változat alkalmazása. Sajnos a fenti folyamat a szerkesztési ciklus végéig minden forgalmat átenged az interfészen biztonsági rések
ACL módosítás menete Az ACL-ek sorai számozva (10, 20, 30, stb.) jelennek meg. A sorokhoz tartozó számok megtekinte R#show access-lists Sor eltávolítása R(config)#no line number A sorhoz tartozó számmal adjuk ismét hozzá ugyanazt a sort az ACL-hez!
Virtuális terminál alapú hozzáférés Távoli routerre történő bejelentkezéshez a Telnet, a Secure Shell (SSH) használható. Telnet nem biztonságos. SSH a felhasználónevet/jelszót titkosítva küldi.
Virtuális terminál alapú hozzáférés Vty porthoz rendelt ACL kizárólag meghatározott IP-címeket engedélyez. Problémát okozhat, ha a rendszergazdának különböző helyekről és IP-címekről kell a kapcsolódni. A Telnet és az SSH sávon belüli hálózatfelügyeleti eszköz. Szüksége van az IP-protokollra és a működő hálózati kapcsolatra.
Virtuális terminál alapú hozzáférés
Virtuális terminál alapú hozzáférés ACL vty vonalhoz való hozzárendelése R(config)#line vty 0 4 R(config-line)#access-class [acl_száma] [in out]
Meghatározott forgalomtípusok engedélyezése és tiltása 8.4
Kiterjesztett ACL szűrés Szűrési feltételek Forrás- és a cél IP-cím Protokoll: IP, TCP, UDP, ICMP Célport száma
eq gt lt Portszámok megadása egyenlő (equals) nagyobb, mint (greater than) kisebb, mint (less than) range tartomány
Portszámok Ismernünk kell az alkalmazás portszámát vagy nevét. Portszám vagy név kiderítése IP-címek bejegyzésével foglalkozó oldalt (pl.: http://www.iana.org) Szoftver dokumentációja Szoftvergyártó weboldala Csomagvizsgáló (packet sniffer) segítségével? lehetőség az access-list parancshoz
Portszámok
Több portszám alkalmazása Néhány alkalmazás egynél több portszámot használ. FTP adatátvitel a 20-as porton Kapcsolatvezérlés a 21-s porton Az FTP forgalom teljes tiltásához mindkét portot le kell tiltanunk! R1(config)#access-list 181 deny tcp any 192.168.77.0 0.0.0.255 range 20 21
Külső erőforrások használata Az ACL-nek engedélyeznie kell a bentről kért, külső válasz csomagok bejutását. R(config)#access-list 101 permit tcp any any established Állapottartó csomagvizsgálat (Stateful Packet Inspection, SPI) Belső felhasználó külső eszközöket pingelhessen, de fordítva ne.
Külső erőforrások elérése
Külső erőforrások elérése
NAT, PAT Külön figyelmet igényel a rendszergazdától, ha egy olyan interfészen alkalmaz ACL-t, amin egyébként címfordítás is történik. Ha egy forgalomirányítón címfordítást és ACL-t együtt használunk, legyünk tisztában ezek együttműködésének módjával!
NAT, PAT 1. Ha egy bejövő csomag érkezik a címfordítást végző külső interfészre, akkor a forgalomirányító: Alkalmazza a bejövő ACL-t. A célcímet külsőről belsőre (globálisról lokálisra) fordítja. Továbbítja a csomagot.
NAT, PAT 2. Ha egy csomag kifelé távozik a címfordítást végző külső interfészről, akkor a forgalomirányító: A forráscímet belsőről külsőre (lokálisról globálisra) fordítja. Alkalmazza a kimenő ACL-t.
ACL és a NAT Az ACL-t úgy tervezzük meg, hogy a címfordításhoz való viszonyától függően vagy csak a privát, vagy csak a publikus címeket szűrje! Amennyiben a címfordítást végző külső interfészre bejövő vagy onnan kimenő forgalomról van szó, akkor a publikus címeket kell szűrni.
NAT és az ACL
Elemzés Még a tényleges használat előtt meg kell vizsgálnia az ACL minden utasításának hatását. Egy interfészhez rendelt, de rosszul megtervezett ACL problémákhoz vezethet. Hamis biztonságérzettől, a forgalomirányító felesleges terhelésén keresztül, a működésképtelen hálózatig terjedhetnek.
ACL elemzése Mely szolgáltatásokat tiltja az utasítás? Mi a forrás, és mi a cél? Mely portszámokat tiltja? A tcp kulcsszó szűri az FTP, HTTP, Telnet protokollokat is Az IP kulcskifejezés szűri a teljes IP-forgalmat (TCP, UDP, ICMP)
ACL elemzése Mi történne, ha az ACL-t áthelyeznénk egy másik interfészre? Mi történne, ha az ACL a másik irányú forgalmat szűrné? Okoz-e bármiféle problémát a hálózati címfordítás?
Példa
Példa
Példa
Példa
VLAN-ok közötti forgalomirányítás Szükség lehet az egyik VLAN-ból a másikba tartó forgalom szűrésére. Az ACL-eket rendeljük közvetlenül a forgalomirányító VLAN interfészeihez vagy alinterfészeihez éppen úgy, mint a fizikai interfészek esetében!
Forgalom szűrés hozzáférési listák alkalmazásával 8.5
Egyezések száma Egy ACL megírása és interfészhez rendelése után a hálózati rendszergazdának érdemes megvizsgálnia az egyezések számát. Segít annak megítélésében, hogy az ACL utasítások elérik-e a kívánt hatást.
R#show access-list Egyezések száma Utasításonként megmutatják, hány csomagegyezés történt. A kimenet a csomag forrását vagy célját, sem pedig a használt protokollt nem jelzi.
Egyezések száma
Naplózás Minden ACL utasításra külön aktiválható [log] Konzolra történik a naplózás Növeli a router terhelését, csak tesztelési időre indítsuk el
Naplózás
Syslog A naplózandó információt egy külső kiszolgálóra küldi Ezek az ún. syslog üzenetek lehetővé teszik az információk valós idejű vagy egy későbbi időpontban történő megtekintését.
Syslog súlyossági szintek A syslog esemény-üzenetek nyolc súlyossági szint valamelyikébe sorolhatók. A 0. szint vészhelyzetet vagy használhatatlan rendszert jelent, a 7. pedig információs (pl.: hibakeresési) üzeneteket azonositja.
Súlyossági szintek
Értesítés Értesítés e-mailben, személyi hívón vagy mobiltelefonon Az egyéb beállítási lehetőségek Értesítés az újonnan érkezett üzenetekről. Az üzenetek rendezése és csoportosítása. Az üzenetek súlyossága alapján történő szűrés. Az összes vagy csak a kijelölt üzenetek törlése.
Syslog naplózás létrehozása Egy syslog kiszolgáló használatához telepítsük a programot egy kiszolgálóra. Állítsuk be a forgalomirányítón, hogy a naplózott eseményeket erre a syslog kiszolgálóra küldje. Ellenőrizzük a dátum és idő beállításokat. R#Show clock
Naplózás syslog kiszolgálóra Naplózás beállítása az ACL utasítások végén [log] Az időzóna beállítása R1(config)#clock timezone CST -6 Az idő beállítása R1#clock set 10:25:00 Sep 10 2007
Naplózás syslog kiszolgálóra Időbélyeg szolgáltatás engedélyezése R1(config)#service timestamps Syslog szolgáltatás engedélyezése R1(config)#logging IP_cím Konzolra történő naplózás kikapcsolása R(config)#no logging console
Bevált megoldások Időt kell szakítani a tervezésre. Szövegszerkesztőben érdemes létrehozni ACL-t. ACL-ek alkalmazása előtt mindig ellenőrizzük a kapcsolatok meglétét. Naplózás esetén az utolsó sorba írjuk be a deny ip any utasítást. Távoli elérés használata során alkalmazzuk a reload in 30 parancsot.
Ez a minősített tanári segédanyag a HTTP Alapítvány megbízásából készült. Felhasználása és bárminemű módosítása csak a HTTP Alapítvány engedélyével lehetséges. www.http-alapitvany.hu info@http-alapitvany.hu A segédanyag a Cisco Hálózati Akadémia CCNA Discovery tananyagából tartalmaz szöveges idézeteket és képeket. A tananyag a Cisco Inc. tulajdona, a cég ezzel kapcsolatban minden jogot fenntart.