Standard IPv4 ACL

I ett tidigare avsnitt diskuterade vi vad en åtkomstlista (ACL) är och dess betydelse. I detta avsnitt kommer vi att utforska hur man skapar numrerade och namngivna standard ACL:er samt hur de tillämpas. Det är viktigt att noggrant planera alla åtkomstlistor, särskilt de som omfattar flera åtkomstkontrollposter (ACE).

När du konfigurerar en komplex ACL rekommenderas det att du:

  • Använder en textredigerare och skriver ut detaljerna i den policy som ska implementeras.
  • Lägger till IOS-konfigurationskommandon för att utföra dessa uppgifter.
  • Inkluderar kommentarer för att dokumentera ACL:en.
  • Kopierar och klistrar in kommandona på enheten.
  • Alltid noggrant testar en ACL för att säkerställa att den korrekt tillämpar den önskade policyn.

Dessa rekommendationer möjliggör en noggrann uppbyggnad av ACL:er utan att riskera påverka nätverkstrafiken negativt.

Numrerad standard IPv4 ACL syntax

För att skapa en numrerad standard ACL, används följande kommando inom den globala konfigurationsläget:

Router(config)# access-list access-list-number {deny | permit | remark text} source [source-wildcard] [log]

Använd kommandot no access-list access-list-number i den globala konfigurationen för att ta bort en numrerad standard ACL.

Tabellen nedan ger en detaljerad förklaring av syntaxen för en standard ACL.

Parameter Beskrivning
access-list-number 
  • Detta är det decimala numret för ACL.
  • Standard ACL-nummerområde är 1 till 99 eller 1300 till 1999.
deny Detta nekar åtkomst om villkoret matchas.
permit Detta tillåter åtkomst om villkoret matchas.
remark text
  • (Frivilligt) Detta lägger till en textpost för dokumentationsändamål.
  • Varje kommentar är begränsad till 100 tecken.
source
  • Detta identifierar source-nätverket eller host-adress för filtrering.
  • Använd nyckelordet any för att specificera alla nätverk.
  • Använd nyckelordet host ip-address eller ange enbart en ip-adress (utan nyckelordet host) för att identifiera en specifik IP-adress.
source-wildcard (Frivilligt) Detta är en 32-bitars wildcard-mask som appliceras på källan. Om den utelämnas antas en standard nätmask på 0.0.0.0.
log
  • (Frivilligt) Detta nyckelord genererar och skickar ett informationsmeddelande varje gång ACE matchas.
  • Meddelandet inkluderar ACL-nummer, matchat villkor (dvs. tillåtet eller nekat), source-adress och antal paket.
  • Detta meddelande genereras för det första matchade paketet.
  • Detta nyckelord bör endast implementeras vid felsökning eller säkerhet.

Namngiven standard IPv4 ACL syntax

Som tidigare nämnt underlättar namngivna ACL:er förståelsen av deras funktion eller syfte jämfört med när de endast är numrerade. För att skapa en namngiven standard ACL, använd följande kommando i den globala konfigurationen:

Router(config)# ip access-list standard access-list-name

Detta kommando aktiverar konfigurationsläget för den namngivna standard-ACL, där du kan konfigurera åtkomstkontrollposterna (ACE).

ACL-namn är alfanumeriska, skiftlägeskänsliga (case sensitive) och måste vara unika. Att skriva ACL-namn med versaler är inte nödvändigt, men gör dem mer framträdande när du granskar filen running-config. Det minskar också risken för att oavsiktligt skapa två olika ACL med samma namn men med olika användning av versaler och gemener, exempelvis NO_Access och NO_ACCESS.

Observera: Använd kommandot no ip access-list standard access-list-name i den globala konfigurationen för att ta bort en namngiven standard IPv4 ACL.

I exemplet skapas en namngiven standard IPv4 ACL som kallas NO_ACCESS. Observera att prompten ändras till konfigurationsläget för namngiven standard ACL (config-std-nacl)#. ACE-instruktioner, eller villkor, anges i konfigurationsläget för den namngivna standard ACL. Använd hjälpfunktionen för att se alla tillgängliga alternativ för ACE-poster i den namngivna standard ACL.

R1(config)# ip access-list standard NO-ACCESS
R1(config-std-nacl)# ?
Standard Access List configuration commands:
<1-2147483647> Sequence Number
default        Set a command to its defaults
deny            Specify packets to reject
exit              Exit from access-list configuration mode
no                Negate a command or set its defaults
permit        Specify packets to forward
remark        Access list entry comment
R1(config-std-nacl)#

De tre framhävda alternativen konfigureras liknande både för numrerade och namngivna standard-ACL. I kontrast till den numrerade metoden krävs inte upprepning av det inledande kommandot ip access-list för varje ACE. Detta förenklar ACL-konfigurationen, gör den mer överskådlig och underlättar hantering samt felsökning av nätverkssäkerhetspolicyn.

Tillämpa en standard IPv4 ACL

När en standard IPv4 ACL är konfigurerad måste den tillämpas till ett interface eller en funktion. Följande kommando kan användas för att tillämpa en numrerad eller namngiven standard IPv4 ACL till ett interface:

Router(config-if)# ip access-group {access-list-number | access-list-name} {in | out}

För att ta bort en ACL från ett interface, använd först kommandot no ip access-group i interfacets konfigurationsläget. ACL:n kommer dock fortfarande att vara konfigurerad på routern. För att ta bort ACL:n från routern, använd kommandot no access-list i den globala konfigurationsläget.

Numrerad standard IPv4 ACL exempel

Topologin i bilden används för att demonstrera konfiguration och tillämpning av numrerade och namngivna standard IPv4 ACL på ett interface.

Exempel 1: Anta att endast PC1 är tillåten att ansluta till internet. För att aktivera denna policy kan en standard ACL med en ACE-post appliceras utgående på S0/1/0, som visas i bilden.

R1(config)# access-list 10 remark ACE permits ONLY host 192.168.10.10 to the internet
R1(config)# access-list 10 permit host 192.168.10.10
R1(config)# do show access-lists
Standard IP access list 10
10 permit 192.168.10.10

Observera att kommandot show access-lists inte visar kommentarer. Kommentarer till ACL visas i konfigurationsfilen running-config. Även om kommandot remark inte påverkar konfigurationsfunktionerna, rekommenderas det starkt för dokumentations ändamål.

Exempel 2: Enligt en ny nätverkspolicy ska nu alla datorer i LAN 2 också få tillgång till internet. Därför kan en ny ACE läggas till i samma ACL 10, som visas i exemplet nedan:

R1(config)# access-list 10 remark ACE permits all hosts in LAN 2
R1(config)# access-list 10 permit 192.168.20.0 0.0.0.255
R1(config)# do show access-lists
Standard IP access list 10
10 permit 192.168.10.10
20 permit 192.168.20.0, wildcard bits 0.0.0.255
R1(config)#

Tillämpa ACL 10 utgående (outbound) på interface Serial 0/1/0.

R1(config)# interface Serial 0/1/0
R1(config-if)# ip access-group 10 out
R1(config-if)# end
R1#

Resultatet av ACL 10 är att endast datorn 192.168.10.10 och alla datorer i LAN 2 får passera genom Serial 0/1/0-interfacet. Övriga enheter i nätverket 192.168.10.0 kommer inte att ha åtkomst till internet. Använd kommandot show running-config för att granska ACL-inställningarna. Notera att kommentarer också inkluderas.

R1# show run | section access-list
access-list 10 remark ACE permit host 192.168.10.10
access-list 10 permit 192.168.10.10
access-list 10 remark ACE permit all hosts in LAN 2
access-list 10 permit 192.168.20.0 0.0.0.255
R1#

Slutligen, använd kommandot show ip interface för att verifiera om ett interface har en ACL tillämpad på det. I exemplet nedan visas specifikt interfacet Serial 0/1/0.

R1# show ip int Serial 0/1/0 | include access list
Outgoing Common access list is not set
Outgoing access list is 10
Inbound Common access list is not set
Inbound access list is not set
R1#

Namngiven standard IPv4 ACL exempel

Detta exempel visar implementeringen av en namngiven standard IPv4 ACL. Topologin är upprepad i figuren för din bekvämlighet.

Anta att endast PC1 är tillåten att ansluta till internet. För att möjliggöra denna policy kan en namngiven standard ACL som kallas PERMIT-ACCESS appliceras utgående på S0/1/0.

Först ta bort den tidigare konfigurerade numrerad ACL 10 och skapa en ny namngiven standard ACL som heter PERMIT-ACCESS med syfte att ge tillgång till Internet. Lägg nu till en ACE-post som enbart tillåter datorn 192.168.10.10 i nätverket 192.168.10.0/24 och en annan ACE som tillåter alla datorer i LAN 2 192.168.20.0/24.

R1(config)# no access-list 10
R1(config)# ip access-list standard PERMIT-ACCESS
R1(config-std-nacl)# remark ACE permits host 192.168.10.10
R1(config-std-nacl)# permit host 192.168.10.10
R1(config-std-nacl)# remark ACE permits all hosts in LAN 2
R1(config-std-nacl)# permit 192.168.20.0 0.0.0.255
R1(config-std-nacl)# exit
R1(config)#

Applicera ACL PERMIT-ACCESS outbound på interfacet Serial 0/1/0.

R1(config)# interface Serial 0/1/0
R1(config-if)# ip access-group PERMIT-ACCESS out
R1(config-if)# end
R1#

Använd kommandot show access-lists och show running-config för att granska ACL i konfigurationen:

R1# show access-lists
Standard IP access list PERMIT-ACCESS
10 permit 192.168.10.10
20 permit 192.168.20.0, wildcard bits 0.0.0.255
R1# show run | section ip access-list
ip access-list standard PERMIT-ACCESS
remark ACE permits host 192.168.10.10
permit 192.168.10.10
remark ACE permits all hosts in LAN 2
permit 192.168.20.0 0.0.0.255
R1#

Slutligen, använd kommandot show ip interface för att verifiera om ett interface har en ACL tillämpad på det. Sök efter texten “access list”.

R1# show ip int Serial 0/1/0 | include access list
Outgoing Common access list is not set
Outgoing access list is PERMIT-ACCESS
Inbound Common access list is not set
Inbound access list is not set
R1#