A hozzáférési lista (ACL) olyan szabályok listája, amelyek a forgalmat a forrás és a cél IP-címek vagy portszámok alapján szabályozzák és szűrik. Ez úgy történik, hogy vagy engedélyezi a csomagokat, vagy blokkolja a csomagokat egy útválasztó, kapcsoló, tűzfal stb. egy interfészéről.
A hozzáférési listák egyes bejegyzéseit vagy utasításait hozzáférési vezérlő bejegyzéseknek (ACE) nevezzük. Minden ACE-bejegyzés egy forgalomáramlást (forrás/cél) határoz meg, amely vagy engedélyezett vagy blokkolt lesz.
A hálózaton belüli forgalomszabályozás és szűrés mellett az ACL-ek biztonsági intézkedésként is használhatók az útválasztóhoz való csatlakozáshoz, mivel csak a szükséges IP-címeket vagy hálózatokat engedélyezik az útválasztó telnet (vagy lehetőleg SSH) útján történő eléréséhez.
Ezeken kívül számos más felhasználási módjuk is van, mint például a menedzsment hozzáférések ellenőrzése, útvonalhirdetések szűrése, debug kimenet szűrése, VPN forgatókönyvekben a forgalom azonosítása titkosításhoz stb.
A hozzáférési listák alapvetően egy eszköz az érdekes csomagok megfeleltetésére, amelyeket aztán különböző speciális műveleteknek vethetünk alá.
A Cisco eszközökön két fő ACL típus létezik. Ezek a Standard Access Control Lists és a Extended Access Control Lists.
- Standard Access Lists
A standard hozzáférési listák a hozzáférési listák alapvető formája a Cisco útválasztókon, amelyek a csomagfejlécben található forrás IP cím mező alapján használhatóak a csomagok megfeleltetésére. Ezeket a hozzáférési listákat egyszerűbb létrehozni és megérteni, de a csomagok megfeleltetési lehetőségei is csak a forráscímre korlátozódnak.
- Kiterjesztett hozzáférési listák
Ha a forrás IP-címen kívül más alapján is szeretnénk megfeleltetni a csomagokat, akkor kiterjesztett hozzáférési listára van szükség: számozott vagy névre szólóra. A kiterjesztett hozzáférési listák szűrhetnek a forrás és a cél IP-címek, vagy a címek és számos más mező, például a TCP/UDP portok stb. kombinációja alapján.
A szabványos és a kiterjesztett hozzáférési listák egyaránt írhatók számozott vagy nevesített formátumban, amelyek csak a hozzáférési listák írásának különböző módjai.
Funkcionalitás szempontjából a számozott és a nevesített hozzáférési listák egyenértékűek. Amit egy számozott hozzáférési listával elérhetünk, azt elérhetjük egy ezzel egyenértékű névvel ellátott hozzáférési listával is, és ez vonatkozik mind a szabványos, mind a kiterjesztett ACL-ekre.
Néhányan a névvel ellátott formátumot részesítik előnyben, mivel az valószínűleg olvashatóbb, de a gyakorlatban mindkét formátumot széles körben használják, és mindkettő fontos a Cisco minősítő vizsgához.
Az 1. táblázatból megtudhatjuk, hogy milyen számok között lehet szabványos és kiterjesztett számozott hozzáférési listákat létrehozni.
Táblázat 1. Hozzáférési lista számtartományok
A hozzáférési lista típusa | számtartomány |
IP standard hozzáférési listák | 1-99 |
IP standard hozzáférési listák (bővített tartomány) | 1300-1999 |
IP kiterjesztett hozzáférési listák | 100-199 |
IP kiterjesztett hozzáférési listák (bővített tartomány) | 2000-2699 |
Ezeket a hozzáférés-szabályozási listákat fogjuk figyelembe venni, hogyan működnek, és hogyan konfigurálhatjuk őket a Cisco útválasztókon.
Kérem, tekintse meg az alábbi 1. ábrát, amelyet minden konfigurációs példánkhoz használni fogunk.
A forgatókönyv egyetlen R1 routerből áll, amelynek két, Fa0/0 és Fa0/1 interfésze a belső hálózathoz, illetve az internethez kapcsolódik.
A hozzáférési listák célja a belső hálózat felhasználói internet-hozzáférésének ellenőrzése lenne. Ezeket a hozzáférési listákat a Fa0/0 interfészen alkalmaznák befelé irányuló irányban.
1. ábra Hozzáférési lista alkalmazása
Standard hozzáférési lista konfigurációs példák
A standard hozzáférési lista lehetővé teszi, hogy egy adott forrás IP-címről vagy IP-hálózatról érkező forgalmat engedélyezzük vagy megtagadjuk.
Számozott szabványos hozzáférési listák létrehozása
A szabványos hozzáférési lista konfigurálásával kezdünk, először számozott, majd megnevezett formátumban. A hozzáférési listának lehetővé kell tennie Bob számára, hogy hozzáférjen az internethez, miközben blokkolnia kell minden hozzáférést Smith számára, továbbá naplóznia kell Smith sikertelen próbálkozásait.
Lássuk, hogyan tudjuk ezt megtenni egy számozott formátumú szabványos hozzáférési lista segítségével.
R1>enable
R1#configure terminal
Konfigurációs parancsok bevitele, soronként egyet. A CNTL/Z-vel fejezzük be.
R1(config)#access-list 1 permit host 192.168.1.3
R1(config)#access-list 1 deny host 192.168.1.7 log
R1(config)#
A fenti konfigurációs példában a host kulcsszót használtuk az egyes hosztok azonosítására, de ugyanez az eredmény elérhető a 0 inverz maszk használatával is.0.0.0.0.
Most alkalmazzuk ezt a hozzáférési listát a Fa0/0 interfészre bejövő irányban.
R1(config)#interface Fa0/0
R1(config-if)#ip access-group 1 ?
in bejövő csomagok
out kimenő csomagok
R1(config-if)#ip access-group 1 in
R1(config-if)#end
R1#
A megnevezett hozzáférési listák száma 1-től 99-ig terjed. Amikor hozzáférési listát helyezünk el egy routeren, akkor a hozzáférési listákat egy számmal kell azonosítani, pl. a fenti módon az 1-es hozzáférési listát.
Minden hozzáférési listában lesz egy implicit deny all az ACL végén, még akkor is, ha ezt nem adjuk meg explicit módon. Tehát ha így konfigurálnád a hozzáférési listádat, akkor a következőt tenné.
show access-list 1
A kimenet a következő lesz:
access-list 1 permit host 192.168.1.3
access-list 1 deny host 192.168.1.1.7 log
access-list 1 deny any
Névre szóló szabványos hozzáférési listák létrehozása
Elkészítünk most egy névre szóló hozzáférési listát, és a Fa0/0 interfészre alkalmazzuk, hogy ugyanezt a hatást érjük el. Itt a host kulcsszó helyett az inverz maszkot használnánk az egyes hosztok megfeleltetésére.
R1>enable
R1#configure terminal
Konfigurációs parancsok bevitele, soronként egy-egy. A CNTL/Z-vel fejezze be.
R1(config)#ip access-list standard Filter
R1(config-std-nacl)#permit 192.168.1.3 0.0.0.0.0
R1(config-std-nacl)#deny 192.168.1.7 0.0.0.0.0 log
R1(config-std-nacl)#interface Fa0/0
R1(config-if)#ip access-group Filter in
R1(config-if)#end
R1#
Kiterjesztett hozzáférési listák konfigurációs példái
A kiterjesztett hozzáférés-vezérlési lista lehetővé teszi, hogy megtagadja vagy engedélyezze a forgalmat bizonyos IP-címekről és portokról.
Azt is lehetővé teszi, hogy szabályozza az átvihető protokollok típusát, például ICMP, TCP, UDP és így tovább. A kiterjesztett hozzáférés-vezérlési listák tartománya 100-tól 199-ig terjed a számozott ACL-ek esetében.
Példa egy számozott kiterjesztett ACL-re:
access-list 110 permit tcp 92.128.2.0 0.0.0.0.0.255 any eq 80
A 110-es ACL engedélyezi a 92.128.2.0 hálózat (forráshálózat) bármely címéről a 80-as porton lévő bármely cél-IP felé érkező forgalmat.
Az ‘any’ utasítás azért van itt, hogy engedélyezze a 80-as porton lévő bármely IP-célpont felé irányuló forgalmat. Az access-list parancsban az első hálózati utasítás (azaz a 92.128.2.0 0.0.0.0.255) a forgalom forrására, a második hálózati utasítás (példánkban az “any” kulcsszó) pedig a forgalom céljára utal.
Egy másik példa:
access-list 111 permit ip 192.168.1.0 0.0.0.0.255 192.168.2.0 0.0.0.0.0.255
A fenti konfiguráció minden IP forgalmat engedélyez a forráshálózatból 192.168.1.0/24 felé a 192.168.2.0/24 célhálózat felé.
Megjegyezzük azt is, hogy az ACL konfigurációban az alhálózati maszk mindig fordított maszkkal szerepel (azaz a 255.255.255.255.0 helyett 0.0.0.0.255-t használunk).
Numerált kiterjesztett hozzáférési listák létrehozása
Most először számozott, majd nevesített formátumban konfigurálunk egy kiterjesztett hozzáférési listát. A hozzáférési listának lehetővé kell tennie Bob számára (a fenti hálózati ábránkon), hogy hozzáférjen az internetes webkiszolgálókhoz, miközben Smith számára blokkolnia kell minden webes hozzáférést, továbbá naplóznia kell Smith sikertelen kísérleteit egy weboldal megnyitására.
Lássuk, hogyan tehetjük ezt meg egy számozott formátumú kiterjesztett hozzáférési lista segítségével.
R1>enable
R1#configure terminal
Konfigurációs parancsok bevitele, soronként egyet. Befejezés: CNTL/Z.
R1(config)#access-list 100 permit tcp host 192.168.1.3 any eq www
R1(config)#access-list 100 deny tcp host 192.168.1.1.7 any eq www log
R1(config)#interface Fa0/0
R1(config-if)#ip access-group 100 in
R1(config-if)#end
R1#
Nevezett kiterjesztett hozzáférési listák létrehozása
Most konfiguráljuk ugyanezt a kiterjesztett hozzáférési listát nevesített formában.
R1>enable
R1#configure terminal
Konfigurációs parancsok bevitele, soronként egyet-egyet. A CNTL/Z-vel fejezze be.
R1(config)#ip access-list extended Filter
R1(config-ext-nacl)#permit tcp 192.168.1.3 0.0.0.0.0 any eq www
R1(config-ext-nacl)#deny tcp 192.168.1.7 0.0.0.0.0 any eq www log
R1(config-ext-nacl)#interface Fa0/0
R1(config-if)#ip access-group Filter in
R1(config-if)#end
R1#
A hozzáférési listákat röviden tárgyaltuk ebben a cikkben. A show access-lists paranccsal ellenőrizheted, hogy milyen hozzáférési listák léteznek a Cisco eszközödön.
A hozzáférési listák végső tesztje úgy történik, hogy ténylegesen generálsz olyan forgalmat, amelyet a hozzáférési listának engedélyeznie vagy megtagadnia kell, és megnézed az eredményeket.
Hogyan alkalmazzuk az ACL-t
Az ACL beállítása után meg kell adnunk, hogy milyen irányban szeretnénk, hogy az alkalmazott interfészen működjön (befelé vagy kifelé).
Az “in” például azt jelenti, hogy befelé az interfészre, az “out” pedig azt, hogy kifelé az interfészről. Az ACL-t ezután az “access-group” paranccsal alkalmazzuk egy adott interfészen.
A hozzáférési listát a fentiek szerint egy név vagy szám megadásával azonosíthatjuk. A következő parancsokat használhatod:
Router(config)#interface serial 0
Router(config-if)#ip access-group 111 out
A hozzáférési listák használata a routerhez való Telnet hozzáférés biztosításához
A router telnet vonalait is biztosíthatod ACL segítségével. Ez lehetővé teszi, hogy csak bizonyos hosztok vagy hálózatok számára engedélyezze a telnet bejelentkezést. Íme egy minta konfiguráció arra, hogy hogyan kell ezt megtenni.
access-list 25 permit 192.168.2.0 0.0.0.0.255
line vty 0 4
access-class 25 in
Ezzel az ACL-lel csak a 192.168.2.0/24 hálózaton lévő hostoknak engedélyezi a hozzáférést a VTY bejelentkezéshez. Minden más hálózatról érkező próbálkozás blokkolva lesz.
Másik példa: Tegyük fel, hogy van egy bizonyos menedzsmentállomásunk (10.1.1.1.1), amelynek engedélyezni kell, hogy telneten keresztül hozzáférjen a routerhez. Minden más állomásnak blokkolva kell lennie.
access-list 10 permit host 10.1.1.1
line vty 0 4
access-class 10 in