Accès distant sécurisé à un routeur CISCO

Dans ce petit tuto nous allons voir comment accèder en SSH à son routeur CISCO la procédure est la même pour un switch 🙂 .

Dans ce tuto on, accède à une machine Debian via notre PC en SSH. Cette mahine Debian nous sert de rebond pour accèder à notre routeur Cisco (en ssh aussi) sur son interface de management par exemple.

Voici le schémas avec les 2 sous réseaux pour mieux comprendre.

192.168.1.0/24 : réseau de ma machine à la machine de rebond.

10.50.50.0/16 : réseau de Management du router connecté à la machine de rebond.

Nous allons tout d’abord configurer les IPs sur le routeur CISCO et sur notre machine de rebond Linux.

1. Configuration des interfaces

Configuration R1 :

R1#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
R1(config)#interface gigabitEthernet 2/0
R1(config-if)#ip address 10.50.50.1 255.255.0.0
R1(config-if)#no shutdown 

On verifie et on enregistre :

R1#show running-config interface gigabitEthernet 2/0
Building configuration...

Current configuration : 89 bytes
!
interface GigabitEthernet2/0
 ip address 10.50.50.1 255.255.0.0
 negotiation auto
end
R1#write memory
Warning: Attempting to overwrite an NVRAM configuration previously written
by a different version of the system image.
Overwrite the previous NVRAM configuration?[confirm]
Building configuration...
[OK]

Configuration de la Machine Debian Rebond :

root@debianrouteur:~# cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug ens33
iface ens33 inet static
	address 10.50.50.11
	netmask 255.255.0.0


auto ens36
iface ens36 inet dhcp
# This is an autoconfigured IPv6 interface
iface ens33 inet6 auto

On redémarre le service networking :

systemctl restart networking.service

Puis on active l’interface :

root@debianrouteur:~# ifup ens33

On vérifie la conf sur la machine de rebond :

root@debianrouteur:~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:3a:4f:9a brd ff:ff:ff:ff:ff:ff
    inet 10.50.50.11/16 brd 10.50.255.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe3a:4f9a/64 scope link
       valid_lft forever preferred_lft forever
3: ens36: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:3a:4f:a4 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.196/24 brd 192.168.1.255 scope global dynamic ens36
       valid_lft 86369sec preferred_lft 86369sec
    inet6 2a01:cb00:10e5:6200:20c:29ff:fe3a:4fa4/64 scope global dynamic mngtmpaddr
       valid_lft 1768sec preferred_lft 568sec
    inet6 fe80::20c:29ff:fe3a:4fa4/64 scope link
       valid_lft forever preferred_lft forever

On vérifie la connectivité avec R1 :

root@debianrouteur:~# ping 10.50.50.1
PING 10.50.50.1 (10.50.50.1) 56(84) bytes of data.
64 bytes from 10.50.50.1: icmp_seq=1 ttl=255 time=27.1 ms
64 bytes from 10.50.50.1: icmp_seq=2 ttl=255 time=1.49 ms
64 bytes from 10.50.50.1: icmp_seq=3 ttl=255 time=7.80 ms

2. Configuration SSH sur R1

On configure le mot de passe enable pour accèder en mode privilégié :

R1(config)#enable secret azerty

On configure le domaine (obligatoire sur CISCO pour activer ssh) :

R1#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
R1(config)#ip domain-name labssh.cisco
R1(config)#crypto key generate rsa
The name for the keys will be: R1.labssh.cisco
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]: 2048
% Generating 2048 bit RSA keys, keys will be non-exportable...
[OK] (elapsed time was 8 seconds)

R1(config)#
*Feb 21 14:53:33.703: %SSH-5-ENABLED: SSH 1.99 has been enabled

On choisit la version 2 de ssh :

ip ssh version 2

On créé un utilisateur :

username deianrebond secret azerty

On chiffre le mot de passe (afin de ne pas l’afficher en clair dans le show run) :

service password-encryption

On configure la console d’accès à distance (vty) :

R1(config)#line vty 0 4
R1(config-line)#login local
R1(config-line)#exit

J’essais de me connecter en SSH sur R1 depuis la machine rebond :

root@debianrouteur:~# ssh debianrebond@10.50.50.1
Unable to negotiate with 10.50.50.1 port 22: no matching cipher found. Their offer: aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc

Je n’y parvient pas. Mais que veut dire ce message ? En gros, il me dit qu’il n’a pas réussit à négocier d’algorithme de chiffrement avec R1.

Pour palier à ce problème, il faut créer un dossier caché « .ssh » s’il n’est pas déja créer et créer un fichier config où vous insérerez cela :

root@debianrouteur:~# cat .ssh/config
Ciphers aes256-ctr,aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc

Après cela, je parviens à y accèder 🙂 :

root@debianrouteur:~# ssh deianrebond@10.50.50.1
The authenticity of host '10.50.50.1 (10.50.50.1)' can't be established.
RSA key fingerprint is SHA256:n4X9omC/8yTjlPs6nGI9k09xPK+JeTtFEoN7yqij/bk.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '10.50.50.1' (RSA) to the list of known hosts.
Password:

R1>enable
Password:
R1#

Terminé ! A bientôt pour la suite 😀 .