Configurazioni base di sicurezza Router Cisco

Continuiamo con la nostra serie di articoli che, attraverso esempi pratici e semplificati, dimostrano l’applicazione di strumenti fondamentali nei rispettivi ambiti. Introduciamo le configurazione di base di un router Cisco rispetto alle opzioni iniziali di sicurezza, indispensabili alla messa in produzione dell’apparato. Il laboratorio mostrerà progressivamente le configurazioni operate su Cisco IOS al fine di proteggere l’accesso privileged EXEC, nonché regolamentare l’accesso console. Infine si abiliteranno gli accessi Telnet e SSH ponendo quest’ultimo come unica possibilità di accesso remota al Router. Ecco di seguito la topologia su cui andremo ad operare con particolare attenzione al Router R1 da porre in sicurezza:

Di seguito lo schema degli indirizzi che caratterizzano la topologia oggetto del laboratorio:

Come prima azione colleghiamoci in console al router R1 e settiamo la password di “enable” per proteggere l’accesso al privileged EXEC mode. Quell’ambito caratterizzato dal massimo livello di autorizzazione, che per default non è protetto da password. Per fare ciò ci portiamo in privileged mode, poi in “configuration terminal” e impostiamo la password desiderata. Successivamente usciamo dal privileged mode con il comando “disable” per verificare di nuovo attraverso il comando “enable” che adesso ci venga richiesta la password. Infine, con il comando  “sh run” appuriamo che la password appena impostata è presente nella configurazione in chiaro: 

R1> enable
R1# conf t
Enter configuration commands, one per line. End with CNTL/Z.
R1(config)#

R1(config)# enable password Password123
R1(config)# end
R1#

R1# disable
R1> enable
Password: Password123
R1#

R1# sh run | inc enable
enable password Password123

Ora aggiungiamo una password di enable ma attraverso il comando “secret”. Nonostante non abbiamo rimosso la precedente password verificheremo come quest’ultima password abbia la precedenza su quella impostata prima. Visualizziamo di nuovo le password memorizzate nella configurazione apprezzando che quella impostata attraverso il comando secret è crittografata (hash MD5 Cisco IOS type 5). Per “camuffare” la password precedentemente inserita, che giace in chiaro nella configurazione, possiamo servirci del comando “service password-encryption”, che applicherà retroattivamente l’hashing Vigenere cipher (Cisco IOS type 7). In verità molto poco robusto, ma meglio di niente:

R1# conf t
Enter configuration commands, one per line. End with CNTL/Z.
R1(config)# enable secret Secret123
R1(config)# end
R1#
R1# disable
R1> enable
Password: Password123
Password: Secret123
R1#
R1# sh run | inc enable
enable secret 4 9h/bNbZRK8Hm9J2ONmwUdf0KoztPJewuR2NseOBKzM6
enable password Password123
R1# conf t
Enter configuration commands, one per line. End with CNTL/Z.
R1(config)# service password-encryption
R1(config)# end
R1# sh run | inc enable
enable secret 4 9h/bNbZRK8Hm9J2ONmwUdf0KoztPJewuR2NseOBKzM6
enable password 7 03345A1815182E5E4A584B56

Dopo aver protetto il nocciolo del router (tutte le strade passano da enable), passiamo alla regolamentazione degli strati più esterni del router (le varie vie di accesso alla shell di configurazione). Iniziamo con la protezione della console. Unica e sola Console Zero. La via di accesso più fisica che esista in quanto realizzabile solo con l’attestazione del cavo console (cavo seriale azzurro) diretto sull’apparato. Utilizziamo quindi la combinazione dei comandi “login” e “password” e modifichiamo anche l’ “exec-timeout” portandolo a 5 minuti dal valore di default di 10 minuti. Questo ultimo parametro determina l’idle time-out oltre il quale, se non si produce attività sulla console, avviene il log-out automatico. Il servizio “service password-encryption” continua a criptare le password. Al fine testiamo la password di console appena impostata:

R1# conf t
Enter configuration commands, one per line. End with CNTL/Z.
R1(config)# line con 0
R1(config-line)# login
% Login disabled on line 0, until 'password' is set
R1(config-line)# password Console123
R1(config-line)# exec-timeout 5
R1(config-line)# end
R1#
R1# sh run | section line
line con 0
exec-timeout 5 0
password 7 080243401A16091243595F
logging synchronous
login
line aux 0
line vty 0 4
login
transport input all
R1# logout
R1 con0 is now available
Press RETURN to get started.

User Access Verification
Password: Console123
R1> en
Password: Secret123
R1#

CORSI CORRELATI:

Consulta il nostro Catalogo Corsi per Tecnologia oppure fai una Ricerca per Vendor o ancora trova uno specifico corso attraverso il motore di ricerca interno: Ricerca Corsi. Contattaci ora al Numero Verde 800-177596, il nostro team saprà supportarti nella scelta del percorso formativo più adatto alla tue esigenze.

Adesso procediamo ad attivare e a proteggere le Line VTY 0 4. Parliamo di attivare il Telnet e le vie di accesso remoto al router attraverso la rete. In questo caso 5 canali che possono essere usate simultaneamente. Riduciamo ulteriormente l’exec-timeout a 30 secondi:

R1# conf t
Enter configuration commands, one per line. End with CNTL/Z.
R1(config)# line vty 0 4
R1(config-line)# login
% Login disabled on line 2, until 'password' is set
% Login disabled on line 3, until 'password' is set
% Login disabled on line 4, until 'password' is set
% Login disabled on line 5, until 'password' is set
% Login disabled on line 6, until 'password' is set
R1(config-line)# password VTYPass
R1(config-line)# exec-timeout 0 30
R1(config-line)# end
R1#

Testiamo adesso dal PC1 la connessione remota appena impostata:

PC1> telnet 10.10.1.1
Trying 10.10.1.1 ... Open
User Access Verification
Password: VTYPass
R1>
R1> en
Password: Secret123
R1#
[Connection to 10.10.1.1 closed by foreign host]
PC1>

Rendiamo più robusto il metodo di accesso Telnet al Router R1 impostando una username anziché una semplice password. Utilizziamo, come già fatto, l’opzione “secret” per segretare la password attraverso una dei protocolli di hashing disponibili:

R1(config)# username admin secret ?
0 Specifies an UNENCRYPTED secret will follow
4 Specifies a SHA256 ENCRYPTED secret will follow
5 Specifies a MD5 ENCRYPTED secret will follow
LINE The UNENCRYPTED (cleartext) user secret
R1(config)# username admin secret Cisco123
R1(config)# do show run | inc user
username admin secret 4 vwcGVdcUZcRMCyxaH2U9Y/PTujsnQWPSbt.LFG8lhTw

Adesso procediamo a impostare l’authentication delle linee VTY al fine di utilizzare il database locale di utenti. (nel nostro caso composto da un unica utenza “admin”). Poi testiamo questo nuovo metodo di autenticazione:

R1(config)# line vty 0 4
R1(config-line)# login local
R1(config-line)# no password
R1(config-line)# end
R1#
PC1> telnet 10.10.1.1
Trying 10.10.1.1 ... Open
User Access Verification
Username: admin
Password: Cisco123
R1>

Passiamo ora a configurare l’accesso SSH. A tal fine dobbiamo generare la coppia di chiavi RSA (Pubblica e Privata). Il prerequisito per generare le chiavi è dotare il router di un nome diverso da quello di default e specificare un dominio (non importa se arbitrariamente scelto). Dopo la generazione delle chiavi il servizio SSH server sarà automaticamente attivo sul router. Scegliamo una chiave da 1024 bits:

R1# conf t
Enter configuration commands, one per line. End with CNTL/Z.
R1(config)# ip domain-name icnd.lab
R1(config)# crypto key generate rsa
The name for the keys will be: R1.icnd.lab
Choose the size of the key modulus in the range of 360 to 4096 for your
General Purpose Keys. Choosing a key modulus greater than 512 may take
a few minutes.
How many bits in the modulus [512]: 1024
% Generating 1024 bit RSA keys, keys will be non-exportable...
[OK] (elapsed time was 0 seconds)
R1(config)#
*Nov 12 12:43:54.804: %SSH-5-ENABLED: SSH 1.99 has been enabled

Incrementiamo il livello di sicurezza passando alla versione SSHv2, che presenta una serie di miglioramenti rispetto alla versione SSHv1. Avendo configurato anche il telnet e lasciato nella configurazione l’opzione “transport input all” sotto la line VTY, il router sarà accessibile sia in Telnet che in SSH. Proviamo dal PC1 entrambi gli accessi:

R1(config)# ip ssh version 2
R1(config)# end
R1#

PC1> telnet 10.10.1.1
Trying 10.10.1.1 ... Open
User Access Verification
Username: admin
Password: Cisco123
R1> exit
[Connection to 10.10.1.1 closed by foreign host]
PC1>

PC1> ssh -l admin 10.10.1.1
Password: Cisco123
R1>>

R1> en
Password: Secret123
R1# show run | section line
line con 0
exec-timeout 5 0
password 7 080243401A16091243595F
logging synchronous
login
line aux 0
line vty 0 4
password 7 0125323D6B0A151C
login local
transport input all

Odiernamente possiamo consentire in produzione solo l’SSH, quindi permettiamo al Router solo questo tipo di collegamento impedendo l’accesso Telnet attraverso il comando “transport input ssh”. Dopo testiamo quanto configurato:

R1# conf t
Enter configuration commands, one per line. End with CNTL/Z.
R1(config)# line vty 0 4
R1(config-line)# transport input ssh
R1(config-line)# end

R1# logout
[Connection to 10.10.1.1 closed by foreign host]
PC1>

PC1> telnet 10.10.1.1
Trying 10.10.1.1 ...
% Connection refused by remote host

PC1> ssh -l admin 10.10.1.1
Password: Cisco123
R1> logout
[Connection to 10.10.1.1 closed by foreign host]
PC1>

Consulta il nostro Catalogo Corsi per Tecnologia oppure fai una Ricerca per Vendor o ancora trova uno specifico corso attraverso il motore di ricerca interno: Ricerca Corsi. Contattaci ora al Numero Verde 800-177596, il nostro team saprà supportarti nella scelta del percorso formativo più adatto alla tue esigenze.

RICHIEDI ORA IL SUPPORTO DI UN NOSTRO SPECIALISTA

Il nostro team, da anni impegnato nella progettazione di piani formativi strutturati nell’ambito dell’ IT, ti supporterà ad orientarti verso la scelta di un percorso formativo certificato rispondente alle tue esigenze.