Säkerhet med ACL

Åtkomstkontrollistor (ACL) filtrerar vanligtvis inkommande eller utgående trafik på ett interface. Men en ACL kan också användas för att säkra fjärradministrativ åtkomst till en enhet via vty-linjerna (virtuella terminaler).

Följ dessa två steg för att säkra fjärradministrativ åtkomst till vty-linjerna:

  • Skapa en ACL för att identifiera vilka administrativa datorer som ska tillåtas fjärråtkomst.
  • Tillämpa ACL på inkommande trafik på vty-linjerna.

Använd följande kommando för att tillämpa en ACL på vty-linjerna:

R1(config-line)# access-class {access-list-number | access-list-name} { in | out }

Nyckelordet in används vanligen för att filtrera inkommande vty-trafik. Parametern out filtrerar utgående vty-trafik och tillämpas sällan.

Följande bör beaktas när åtkomstlistor konfigureras på vty-linjer:

  • Både namngivna och numrerade ACL kan tillämpas på vty-linjer.
  • Identiska restriktioner bör sättas på alla vty-linjer, eftersom en användare kan försöka ansluta till någon av dem.

Exempel på säker åtkomst via VTY

Topologin i figuren används för att demonstrera hur en ACL konfigureras för att filtrera vty-trafik. I detta exempel kommer endast PC1 att tillåtas använda Telnet för att ansluta till R1.

Obs: Telnet används här endast i demonstrationsändamål. SSH bör användas i en produktionsmiljö.

För att öka säkerheten skapas ett användarnamn och lösenord för att kunna använda autentiseringsmetoden login local. Kommandot i exemplet skapar en lokal databaspost för användaren ADMIN och lösenordet class.

En namngiven standard ACL kallad ADMIN-HOST skapas och identifierar PC1. Notera att deny any har konfigurerats för att spåra antalet gånger åtkomst har nekats.

Vty-linjerna på routern R1 konfigureras för att använda den lokala databasen för autentisering, tillåta Telnet-trafik och använda ADMIN-HOST ACL för att styra inkommande trafik.

R1(config)# username ADMIN secret class
R1(config)# ip access-list standard ADMIN-HOST
R1(config-std-nacl)# remark This ACL secures incoming vty lines
R1(config-std-nacl)# permit 192.168.10.10
R1(config-std-nacl)# deny any
R1(config-std-nacl)# exit
R1(config)# line vty 0 4
R1(config-line)# login local
R1(config-line)# transport input telnet
R1(config-line)# access-class ADMIN-HOST in
R1(config-line)# end
R1#

Notera att i en produktionsmiljö skulle du konfigurera vty-linjerna för att endast tillåta SSH, som visas i exemplet.

R1(config)# line vty 0 4
R1(config-line)# login local
R1(config-line)# transport input ssh
R1(config-line)# access-class ADMIN-HOST in
R1(config-line)# end
R1#

Verifiera att VTY-porten är säkrad

Efter konfiguration av en ACL för att styra åtkomst till vty-linjerna är det avgörande att säkerställa att den fungerar enligt förväntningarna. Som illustreras i bilden, när PC1 ansluter till R1 via Telnet, kommer användaren att uppmanas att ange användarnamn och lösenord innan tillträde till kommandotolken ges.

Detta bekräftar att PC1 har åtkomst till R1 för administrativa syften. Nästa steg är att testa anslutningen från PC2. Som framgår av bilden nekas PC2:s Telnet-försök att ansluta.

För att kontrollera ACL-statistiken, använd kommandot show access-lists. Notera de informativa meddelandena på konsolen som relaterar till administratörsanvändaren. Ett informativt meddelande visas även när en användare loggar ut från vty-linjen.

Observera de två matchningarna i ACE-posten 10 permit indikerar på en framgångsrik Telnet-anslutning från PC1. De två matchningarna i ACE-posten 20 deny indikerar däremot två misslyckade försök att upprätta en Telnet-anslutning.

R1#
Oct 9 15:11:19.544: %SEC_LOGIN-5-LOGIN_SUCCESS: Login Success [user: admin] [Source: 192.168.10.10] [localport: 23] at 15:11:19 UTC Wed Oct 9 2019
R1# show access-lists
Standard IP access list ADMIN-HOST
10 permit 192.168.10.10 (2 matches)
20 deny any (2 matches)
R1#