Recentemente, lanciando uno sh access-list su un Cisco SOHO 97, ho notato la presenza della seguente ACL:
Extended IP access list sl_def_acl
10 deny tcp any any eq telnet log
20 deny tcp any any eq www log
30 deny tcp any any eq 22 log
40 permit tcp any any eq 22 log
Dopo aver cercato un pò sul Web, ho notato che tale ACL è strettamente legata con una feature introdotta nelle IOS a partire dalla 12.3(4)T, ovvero il login quiet mode. In questo modo, quando il router si accorge di un attacco bruteforce diretto ad uno dei suoi servizi in ascolto, applica tale ACL in ingresso alle interfacce vty.
Nella fattispecie, il comando per abilitare il login quiet mode è il seguente:
Router(config)# login quiet-mode access-class
Definiamo inoltre quali sono i parametri che identificano un attacco bruteforce:
Router(config)# login block-for <secondi> attempts <numero tentativi> within <secondi>
Lanciamo un copy run start ed è fatta.
See ya.
PS: come potete notare l'ACL sl_def_acl ha due regole discordanti, ovvero la 30 e la 40. Infatti, le ACL seguono una logica top-down, per cui quando un pacchetto matcha una entry, quelle successive non vengono valutate. Nello specifico, se viene intercettato un tentativo di connessione SSH al router ed è in vigore l'ACL in questione, il permit tcp any any eq 22 non ha alcun senso. Un ottimo workaround consiste nel definire un'ACL custom da dare in pasto al comando login quiet-mode access-class {nostra ACL}.