En Access Control List (ACL) är en lista med regler som kontrollerar och filtrerar trafik baserat på käll- och destinations-IP-adresser eller portnummer. Detta sker genom att antingen tillåta paket eller blockera paket från ett gränssnitt på en router, switch, brandvägg etc.
Enskilda poster eller uttalanden i en åtkomstlista kallas access control entries (ACEs). Varje ACE-post definierar ett trafikflöde (källa/destination) som antingen tillåts eller blockeras.
Förutom trafikstyrning och filtrering i ett nätverk kan ACL:er också användas som en säkerhetsåtgärd för anslutning till routern genom att endast tillåta de nödvändiga IP-adresserna eller nätverken för åtkomst till routern via telnet (eller helst med SSH).
De har också flera andra användningsområden, t.ex. åtkomstkontroll för hantering, filtrering av ruttannonsering, filtrering av felsökningsutdata, identifiering av trafik för kryptering i VPN-scenarier etc.
Accesslistor är i grund och botten ett verktyg för att matcha intressanta paket som sedan kan utsättas för olika typer av specialoperationer.
På Cisco-enheter finns det två huvudtyper av ACL:er. Dessa är Standard Access Control Lists och Extended Access Control Lists.
- Standard Access Lists
Standard accesslistor är den grundläggande formen av accesslistor på Ciscos routrar som kan användas för att matcha paket efter fältet för käll-IP-adress i pakethuvudet. Dessa åtkomstlistor är enklare att skapa och förstå, men alternativen för paketmatchning är också begränsade till endast källadressen.
- Extended Access Lists
Om du vill matcha paket på något annat än käll-IP-adressen behöver du en utökad åtkomstlista: numrerad eller namngiven. Utökade åtkomstlistor kan filtrera på käll- och destinations-IP-adresser, eller en kombination av adresser och flera andra fält som TCP/UDP-portar etc.
Både standard- och utökade åtkomstlistor kan skrivas i numrerat eller namngivet format, vilket bara är olika sätt att skriva åtkomstlistor.
I fråga om funktionalitet är numrerade och namngivna åtkomstlistor likvärdiga. Det du kan åstadkomma med en numrerad åtkomstlista kan också åstadkommas med en motsvarande namngiven åtkomstlista, och detta gäller både standard- och utökade ACL:er.
Vissa personer föredrar det namngivna formatet eftersom det troligen är mer lättläst, men båda formaten används i stor utsträckning i praktiken och båda är viktiga för ditt Cisco-certifieringsprov.
Se tabell 1 för att få reda på vilket antal nummer som kan användas för att skapa standard- och utökade numrerade åtkomstlistor.
Tabell 1 Nummerintervall för åtkomstlistor
Typ av åtkomstlista | Nummerintervall |
IP-standardåtkomstlistor | 1-99 |
IP-standardåtkomstlistor (utökat intervall) | 1300-1999 |
IP Extended Access Lists | 100-199 |
IP Extended Access Lists (expanded range) | 2000-2699 |
Vi kommer att överväga dessa åtkomstkontrollistor, hur de fungerar och hur man konfigurerar dem på Cisco-routrar.
Se figur 1 nedan som vi kommer att använda för alla våra konfigurationsexempel.
Scenariot består av en enda router R1 med två gränssnitt Fa0/0 och Fa0/1 som är anslutna till det interna nätverket respektive Internet.
Accesslistorna skulle syfta till att styra tillgången till Internet för användare i det interna nätverket. Dessa åtkomstlistor skulle tillämpas på gränssnitt Fa0/0 i inkommande riktning.
Figur 1 Tillgångslistetillämpning
Standardkonfiguration av åtkomstlistor Exempel
Den standardiserade åtkomstkontrollistan gör det möjligt för dig att antingen tillåta eller neka trafik från en specifik käll-IP-adress eller ett IP-nätverk.
Skapa numrerade standardåtkomstlistor
Vi börjar med att konfigurera en standardåtkomstlista först i numrerat och sedan i namngivet format. Tillgångslistan ska tillåta Bob att få tillgång till Internet medan den blockerar all åtkomst för Smith och även loggar Smiths misslyckade försök.
Vi ska se hur vi kan göra detta med hjälp av en standardtillgångslista i numrerat format.
R1>enable
R1#configure terminal
Ge in konfigurationskommandon, ett per rad. Avsluta med CNTL/Z.
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)#
I ovanstående konfigurationsexempel använde vi nyckelordet host för att identifiera enskilda värddatorer, men samma resultat kan också uppnås med hjälp av den inversa mask 0.0.0.0.0.
Låt oss nu tillämpa denna åtkomstlista på gränssnitt Fa0/0 i den inkommande riktningen.
R1(config)#interface Fa0/0
R1(config-if)#ip access-group 1 ?
in in inbound packets
out outbound packets
R1(config-if)#ip access-group 1 in
R1(config-if)#end
R1#
Namngivna åtkomstlistor har ett nummer från 1 till 99. När du lägger in en åtkomstlista på en router måste du identifiera åtkomstlistorna med ett nummer, t.ex. åtkomstlista 1 som visas ovan.
I varje åtkomstlista kommer det att finnas en implicit deny all i slutet av ACL:n även om du inte anger den uttryckligen. Så om du konfigurerar din åtkomstlista så här skulle den göra:
show access-list 1
Utmatningen blir:
access-list 1 permit host 192.168.1.3
access-list 1 deny host 192.168.1.3
access-list 1 deny host 192.168.1.7 log
access-list 1 deny any
Skapa namngivna standardåtkomstlistor med namn
Låt oss nu skapa en åtkomstlista i det namngivna formatet och tillämpa den på gränssnittet Fa0/0, för att uppnå samma effekt. Här skulle vi använda den omvända masken i stället för nyckelordet host för att matcha enskilda värdar.
R1>enable
R1#configure terminal
Ge in konfigurationskommandon, en per rad. Avsluta med CNTL/Z.
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#
Konfigurationsexempel på utökade åtkomstlistor
En utökad åtkomstkontrollista gör det möjligt att neka eller tillåta trafik från specifika IP-adresser och portar.
Den ger dig också möjlighet att kontrollera vilken typ av protokoll som kan överföras, till exempel ICMP, TCP, UDP och så vidare. Området för de utökade åtkomstkontrollistorna är från 100 till 199 för numrerade ACL:
Ett exempel på en numrerad utökad ACL:
access-list 110 permit tcp 92.128.2.0 0.0.0.0.255 any eq 80
Accesslistan 110 tillåter trafik som kommer från vilken adress som helst i nätverket 92.128.2.0 (källnätet) mot vilken destinations-IP som helst på port 80.
Den ”any”-angivelsen finns där för att tillåta trafik mot vilken IP-destination som helst på port 80. Den första nätverksangivelsen i accesslistkommandot (dvs. 92.128.2.2.0 0.0.0.255) avser trafikens källa, och den andra nätverksangivelsen (nyckelordet ”any” i vårt exempel) avser trafikens destination.
Ett annat exempel:
access-list 111 permit ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.0.255
Ovanstående konfiguration tillåter all IP-trafik från källnätverket 192.168.1.0/24 till destinationsnätverket 192.168.2.0/24.
Bemärk också att subnätmasken i ACL-konfigurationen alltid representeras med en omvänd mask (dvs. i stället för att använda 255.255.255.255.0 använder vi 0.0.0.0.255).
Skapande av numrerade utökade åtkomstlistor
Vi kommer nu att konfigurera en utökad åtkomstlista först i numrerat och sedan i namngivet format. Tillgångslistan ska tillåta Bob (från vårt nätverksdiagram ovan) att få tillgång till webbservrar på Internet samtidigt som den blockerar all webbåtkomst för Smith och även loggar misslyckade försök av Smith att öppna en webbplats.
Låt oss se hur vi kan göra detta med hjälp av en utökad åtkomstlista i numrerat format.
R1>enable
R1#configure terminal
Ge in konfigurationskommandon, ett per rad. Avsluta med 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.7 any eq www log
R1(config)#interface Fa0/0
R1(config-if)#ip access-group 100 in
R1(config-if)#end
R1#
Skapande av namngivna utökade åtkomstlistor
Nu konfigurerar vi samma utökade åtkomstlista i namngivet format.
R1>enable
R1#configure terminal
Gör konfigureringskommandon, ett per rad. Avsluta med CNTL/Z.
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#
Vi behandlade kortfattat åtkomstlistor i denna artikel. Du kan kontrollera vilka åtkomstlistor som finns på din Cisco-enhet med hjälp av kommandot show access-lists.
Ett sista test av åtkomstlistor görs genom att faktiskt generera trafik som åtkomstlistan ska tillåta eller neka och se resultatet.
Hur du tillämpar ACL
När du har satt ACL:n på plats måste du ange i vilken riktning du vill att den ska fungera på gränssnittet som ska tillämpas (inkommande eller utgående).
Till exempel betyder ”in” inkommande till gränssnittet och ”out” utgående från gränssnittet. ACL:n tillämpas sedan på ett specifikt gränssnitt med hjälp av kommandot ”access-group”.
Du kan identifiera en åtkomstlista genom att ge den ett namn eller ett nummer som diskuterats ovan. Här är en uppsättning kommandon som du skulle använda:
Router(config)#interface serial 0
Router(config-if)#ip access-group 111 out
Användning av åtkomstlistor för att säkra telnet-åtkomst till en router
Du kan också säkra dina telnet-linjer på en router via ACL. På så sätt kan du tillåta åtkomst till telnet-inloggning endast för vissa värdar eller nätverk. Här är ett exempel på en konfiguration som visar hur du kan göra detta.
access-list 25 permit 192.168.2.0 0.0.0.255
line vty 0 4
access-class 25 in
Med den här ACL:n på plats kommer du bara att tillåta värdar i nätverket 192.168.2.0/24 att få åtkomst till VTY-anslutningen. Alla försök från andra nätverk blockeras.
Ett annat exempel: Låt oss säga att vi har en specifik hanteringsstation (10.1.1.1.1) som ska få tillgång till routern via telnet. Alla andra värdar ska blockeras.
access-list 10 permit host 10.1.1.1.1
line vty 0 4
access-class 10 in