Azok, akik ismerik a hozzáférés-vezérlési listákat, valószínűleg tudják, hogy a hozzáférés-vezérlési listáknak számos típusa létezik. Vannak hozzáférés-vezérlési listák az IP 4-es verziójához, az IP 6-os verziójához, az IPX-hez, a DECnethez, az AppleTalkhoz, és a lista még hosszan folytatható. Melyikért vagy felelős? Jelenleg a 4-es IP-verzióért vagyunk felelősek, és erre összpontosítunk, a 4-es IP-verzióra. Az IP 4-es verziójú hozzáférés-vezérlési listákat két különböző típusra oszthatjuk, a szabványosra és a kiterjesztettre. Mi a különbség?
- Standard ACL
- Az ACL forráscímét ellenőrzi
- Megengedi vagy megtagadja a teljes protokollcsomagot
- Extended ACL
- Az egész protokollcsomagot ellenőrzi. forrás- és célcím
- általában engedélyez vagy megtagad bizonyos protokollokat és alkalmazásokat
- forrás és cél TCP és UDP portok
- protokolltípus (IP, ICMP, UDP, TCP vagy protokollszám)
Hát ez az, hogy milyen paramétereket keresnek, és szeretném, ha elolvasnád a szabványt, mit keres itt ez a szabvány? Mit ellenőriz? Szeretném, ha elolvasnád. És megmutatom, hogyan lehet ezt megjegyezni. Tehát látod, hogy a standard nem nézi meg a célállomást, ami gyakorlatilag nem túl hasznos. A célállomás keresésének hiánya eléggé korlátozó, általában azt akarod megnézni, hogy honnan jön és hová megy. De a szabványos hozzáférési listának van valami köze a forráscímhez, nem igaz? Ez az S betű, ami remekül emlékeztet arra, hogy a szabványos hozzáférési listák csak a forrást nézik.
A kiterjesztett hozzáférés-vezérlési listák, vagy kiterjesztett ACL-ek viszont sokkal erősebbek, képesek a forrást és a célt is nézni, képesek a szállítási réteg protokolljait, például a TCP-t és a User Data Protocol-t, vagyis az UDP-t is nézni. A TCP és az UDP felett az alkalmazási réteg protokolljait, például a HTTP-t, az FTP-t, a Trivial File Transport Protocol-t (TFTP), a DNS-t, a Secure Sockets Layer-t és a Secure Shell-t is vizsgálhatják. Ez soknak hangzik, így hogyan emlékezzünk arra, hogy a kiterjesztett hozzáférési listák sokkal többre is megfelelhetnek, mint a szabványos hozzáférés-vezérlési listák? Nos, amikor a szabványos hozzáférés-vezérlési listákra utaltunk, rámutattunk, hogy az csak a forráscímet ellenőrzi. A szabványos S-sel kezdődik, a forrás is S-sel kezdődik.
Szóval úgy emlékszem, hogy szabványos, csak forrás, S és S, míg a kiterjesztettnél minden más is megvan. Tehát az E segít abban, hogy mindenre emlékezzünk. Most vannak bizonyos dolgok, amiket nem tudunk megfeleltetni. Nem tudjuk egyeztetni a szekvencia számokat, a nyugtázási számokat, nem tudjuk egyeztetni például a TCP sok flag-jét, de az egyiket egyeztethetjük, és küldhetünk bitet. De ez sokkal átfogóbb, és így közelebb vagyunk mindenhez. Ne feledje, hogy amikor ezeket beírjuk, kétféle szintaxisunk van, a régi és az új szintaxis. És mindkettőnek ki fogunk téged tenni.
A régi szintaxis számozott, az új szintaxis megnevezett, és a számozott szintaxis, ez egy kicsit trükkös. Nem találkozunk olyan gyakran numerikus nevekkel. A számozott szabványos hozzáférési listában egytől 99-ig van. Van egy kibővített tartomány, amitől távol maradunk, nincs okunk többé használni. Az 1300-tól 1999-ig terjedő tartományt nem használjuk, oké, kerüljük el. De az egytől 99-ig a szabványos, a 100-tól 199-ig a kiterjesztett, és ezt a tartományt úgy kell megjegyezni, hogy mindig 99-re végződik, minden egyes tartomány 99 valamivel végződik. És amikor három számjegyű értékre bővítjük, amikor két számjegyről három számjegyűre ugrunk, akkor bővítjük, és ezért kapjuk a kiterjesztett IP hozzáférési lista tartományt.
IPv4 ACL típusa | Számtartomány / azonosító |
---|---|
Számtartomány Standard | 1-99, 1300-1999 |
Számtartomány Extended | 100-199, 2000-2699 |
Named (Standard és Extended) | Name |
De ez az a szintaxis, amiért őszintén szólva inkább mi vagyunk felelősek, de már több mint egy évtizede megvannak a névvel ellátott hozzáférés-ellenőrzési listák. Valójában már több mint egy évtizede, miközben beszélünk. Mi az előnye a nevesített hozzáférés-szabályozási listának? Nos, az elnevezett hozzáférés-ellenőrzési lista először is lehetővé teszi, hogy leíró nevet adjunk. Tehát ahelyett, hogy a hozzáférés-ellenőrzési listánkat 79-nek hívnánk, megadhatunk egy leíró nevet, és ez a név segíthet megérteni, hogy a hozzáférés-ellenőrzési lista mire szolgál. De ami igazán előnyös a nevesített hozzáférés-vezérlési listák használatában, az a szerkesztésük, a bejegyzések hozzáadása és törlése az ACL-en belül.
A számozott hozzáférés-vezérlési listák esetében, ha hozzá kell adnunk egy bejegyzést, amikor a parancssori felületre lépünk, és hozzá akarunk adni egy bejegyzést, azt a már meglévő bejegyzés előtt nézi meg a rendszer. Most nem tudsz csak úgy bemenni oda, és csak úgy beírni, nincs rá mód, hogy ezt megtehesd a létrehozás szintaxisával. Tehát korlátozott a szerkesztési képességed, mit kell tenned? Töröld ki az egészet, és hozd létre újra. Szóval a Notepad jól jön. Rendben, de a név szerinti hozzáférés-vezérlési listával lehetőségünk van arra, hogy belépjünk a név szerinti hozzáférés-vezérlési lista szintaxisába, hozzáadjuk, áthelyezzük, töröljük, megváltoztassuk a bejegyzéseket a hozzáférés-vezérlési listában, ahogy jónak látjuk.
A név szerinti hozzáférés-vezérlési lista szintaxisa tehát sokkal erősebb. De ne értsen félre minket itt. A számozott hozzáférés-vezérlési lista azonosítása, mint például 1, 2, 3, 4 vagy 100 vagy 150, az még mindig a hozzáférés-vezérlési lista neve. És később látni fogja, használja a megnevezett hozzáférés-vezérlési lista szintaxisát egy számozott hozzáférés-vezérlési lista szerkesztéséhez. Ez elég menő, és lehetőséget adunk arra, hogy szerkessze és kijavítsa a hibáit a számozott hozzáférés-vezérlési listával anélkül, hogy az egészet el kellene törölni és eltávolítani. Szóval egy igazán nagyszerű szintaxis, és meg fogod tanulni, és szeretni fogod, és látni fogjuk az egészet, az összes szintaxist, ahogy együtt haladunk előre ezen a tanfolyamon.
Szabványos számozott ACL-ek
Szabványos hozzáférési lista, mit keresnek? Azt kérdezem tőled, hogy mit keresnek? A forrásparamétert keresik, és itt láthatjuk ezt. Tehát nem fognak aggódni a 2. rétegű keret fejléce miatt, a csomag fejlécét fogják nézni, a forrásmezőt fogják nézni a csomag fejlécében, és kizárólag ez alapján fognak egyezni. Tehát nem mennek mélyebbre a szállítási rétegbe. És ezek közül egyik sem megy bele az adatokba, oké. Néhány fejlett tűzfal funkciót kellene használnod ahhoz, hogy az adatok alapján szűrj.
Itt van, amire vártunk, a szintaxis, és nem túl bonyolult, ezt jegyezd meg. Nem túlságosan bonyolult. Mindenekelőtt a globális konfigurációs módban konfiguráljuk a számozott hozzáférés-vezérlési listákat. Beírjuk az access-list-et, majd megadjuk a hozzáférési lista számát. Ezek tehát szabványos IPv4-es hozzáférés-vezérlési listák, mik a számtartományok? 1-től 99-ig és 1300-tól 1999-ig. Ha ezek közül a lehetséges értékek közül bármelyik számot megadjuk, a routerünk automatikusan tudja, hogy szabványos IPv4-es hozzáférés-vezérlési listát hozunk létre, és megadja a helyes szintaxis használatát.
Nem engedi meg, hogy olyan paramétereket adjunk meg, amelyek nem elfogadhatóak a szabványos IP 4-es verziójú hozzáférés-vezérlési lista számára. Tehát ha rossz számot írsz be, ha 101-et írsz be, amikor egy szabványos IP 4-es verziójú hozzáférés-vezérlési listát próbálsz létrehozni, akkor a kiterjesztett hozzáférés-vezérlési lista szintaxisát fogja megadni, igaz? Tehát légy óvatos a számozással, válaszd ki a megfelelő számokat, és aztán meg fogod adni, hogy mit akarsz, mi történjen ezzel a forgalommal. Engedélyezni akarod? Meg akarod tagadni? Megjegyzést is tehetsz, mi az a megjegyzés? Ez csak egy leírás. Tehát leírhatod ezt a hozzáférés-ellenőrzési listát, így amikor később felülvizsgálod a hozzáférés-ellenőrzési listát, tudni fogod, hogy mire való.
R1(config)#R1(config)#access-list 1 ?deny A visszautasítandó csomagok megadásapermit A továbbítandó csomagok megadásaremark Access list entry commentR1(config)#access-list 1 permit ?Hostnév vagy A.B.C.D Cím, amelyre illeszkedikany Bármilyen forrású állomáshost Egyetlen állomás címeR1(config)#access-list 1 permit 172.16.0.0 ?/nn vagy A.B.C.D Wildcard biteklog Naplózza a bejegyzést<cr>R1(config)#access-list 1 permit 172.16.0.0.0.0.0.255.255 ?log Log találatok erre a bejegyzésre<cr>R1(config)#access-list 1 permit 172.16.0.0 0.0.0.255.255.255R1(config)#
Ezután megvan a forrásunk, mi a forrás? Emlékezzünk, korábban, amikor a címeket és a wildcard maszk kombinációkat néztük… Nos, a forrás a forráscím, az a kiindulási pont, amelyet a tartomány-összehasonlításhoz használni akarunk. Tehát ha megnézzük a példánkat, a 172.16.0.0 a cím, a forrás és a maszk. Mi a maszk? Legyünk óvatosak, ez nem, ismétlem, ez nem az alhálózati maszk. Ez a wildcard maszk. Ez az a hely, ahová beírjuk a vadkereszt maszkot. Tehát a mi példánkban 0.0.255.255.255, tehát mi az a címtartomány, amit ez a hozzáférés-vezérlési lista, amit épp most készítettünk, ellenőrizni fog? 172.16.0.0-tól 172.16.255.255.255-ig.
Szóval látod, milyen fontos ez a wildcard maszk, és ha megérted, hogy mit csinál, az segíteni fog a létrehozásukban és az olvasásukban. Itt azt írja, hogy van egy alapértelmezett vadkártyás maszk, ezt ne vedd rossz néven, az operációs rendszered általában nem fogadja el többé a szintaxist, ha olyan bejegyzést teszel a hozzáférés-vezérlési listádon belül, amelyből hiányzik a vadkártyás maszk. Oké, ez egy régi viselkedés, és nem jellemző semmi újdonságra. Amikor egy olyan bejegyzést teszünk be, mint amilyet a globális konfigurációs módban látunk a hozzáférési listával, az csak egy bejegyzés. Tartsuk észben, hogy ha újabb bejegyzést szeretnénk hozzáadni, akkor még mindig az access-list 1 marad, és akkor felépítjük a következő permit vagy deny szekvenciát. access-list 1 újra, access-list 1 újra, ha egyre nagyobb és nagyobb hozzáférés-vezérlési listát akarunk felépíteni. Mi a minimális mérete egy hozzáférés-vezérlési listának?
A minimális méret egy engedélyező utasítás lenne. Igen, azt hiszem, nem lehet csak egy deny utasítás, az haszontalan lenne, hacsak nem naplózol, de az nem engedne át semmit. A maximum pedig annyi, amennyit csak ki tudsz álmodni, és amennyit csak bírsz. Miután tökéletesítetted a hozzáférés-vezérlési listádat a globális konfigurációs módban, ahogy itt látjuk, érvényesítheted. De a hozzáférési listák megjelenítéséhez a parancs, és ez valójában az összes hozzáférési listát megmutatja, IPv4, IPv6, Mac-cím hozzáférési lista, IPX, AppleTalk, de általában csak IPv4 és talán manapság néhány IPv6.
R1#show access-listsStandard IP hozzáférési lista 110 permit 172.16.0.0, wildcard bitek 0.0.255.255
És látjuk az egyetlen bejegyzést. Most várjunk egy percet, várjunk egy percet, beírtuk a permit 172.16-ot ezzel a wildcard maszkkal, mi ott a 10-es? Mi az a 10, ami épp most kelt életre a hozzáférési listánkon belül? A 10 egy automatikus sorszám, ami hozzáadódik a hozzáférési listához. Alapértelmezés szerint 10 lesz. Ha létrehoznánk egy másik bejegyzést… tehát beírnánk, hogy access-list 1 permit 192.168.1.0 0.0.0.0.255, akkor automatikusan kapna egy sorszámot. És ez lenne a 20, a következő a listában és a következő a 30 és a 40 és az 50, így tartjuk számon őket, a sorszám, a sorrend, amiben létrehoztuk őket.
És ez fontos, emlékszel, hogy azt mondtuk, ha szerkeszteni akarjuk a hozzáférés-vezérlési listát, esetleg itt-ott hozzá akarunk adni egy bejegyzést, de ezt csak név szerinti szintaxissal tudjuk megtenni, itt nem tudjuk megtenni ezzel a szabványos számozási szintaxissal, de ezek a sorszámok lesznek a meghatározó tényezői annak, hogy hova kerül a bejegyzésünk. Ha hozzáadunk, áthelyezünk, törölünk vagy módosítunk, és ezt majd később fogjuk látni, ezt majd csak később fogjuk látni, amikor belépünk a megnevezett hozzáférés-vezérlési lista szintaxisába, hogyan használhatjuk és manipulálhatjuk ezeket a sorszámokat az előnyünkre.
Egy hozzáférési lista eltávolítása nagyon egyszerű, emlékezzünk az erős no parancsra, írjuk be a no access-list-et, majd annak a hozzáférési listának a számát, amit el akarunk távolítani. Légy óvatos, légy óvatos! Tegyük fel, hogy beírtad a no access-list 1 permit 172.16.0.0 0.0.0.255.255 parancsot. Tehát egy korábban létrehozott szabványos hozzáférési lista bejegyzést szeretnél eltávolítani. Beírod a no-t, és megadod az egész parancsot, amit korábban beírtál, ez csak azt az egy bejegyzést fogja eltávolítani? Megismétlem, csak ezt az egy bejegyzést fogja eltávolítani? Első gondolatra igen, ez az első gondolat, de ha ezt kipróbálod és teszteled? Nem, nem ez fog történni. Nem fogja eltávolítani csak azt az egy bejegyzést, mit fog csinálni? Megszabadul az egésztől, tehát néhányan önök közül már találkoztak ezzel. Ez tényleg bizarr viselkedés az IOS-ben.
R1#config t
Konfigurációs parancsok bevitele, soronként egy-egy. A CNTL/Z-vel fejezzük be.
R1(config)#no access-list 1
R1(config)#end
R1#sh access-lists
R1#
Normális esetben, amikor beírunk egy adott parancsot és beírjuk no-ként, akkor csak azt az egy parancsot távolítja el. Itt nagyon óvatosnak kell lennünk a szintaxissal, nem számít, hogy mit mondunk, azt mondjuk, hogy no access list, adjunk meg egy számot. Nem érdekel, mi történik utána, az egész hozzáférési listát szétzúzza, és sok rossz napot okozott már ez a viselkedés.