COMMANDE DE BASE CISCO

Packet Tracer

no ip domain lookup
Packet Tracer a pour attitude par défaut de prendre n’importe quelle commande invalide comme un nom d’hôte à contacter, ce qui prend du temps pendant lequel le prompt est bloqué. Cette commande permet de changer cela.

Commandes génériques

 wr :   write configuration, permet d’enregistrer la configuration courante.  
 sh ip int brief    :   Montre un résumé des interfaces  
 do show vlan   :   Montre les vlans configurées  

do permet d’exécuter les commandes qui ne pourraient l’être que depuis le menu enable (et pas depuis un des sous menus)

show ip route    :  montre les routes  
#(conf) int range 0/12 – 24  

→ permet de configurer une plage de ports d’un coup

#(conf-if-range) switchport mode access  
#(conf-if-range) switchport access vlan {vlan_id}  

Les interfaces Cisco suivent la nomenclature bande-passante (fastethernet ou gigabit) numero de module / numero de port sur le module.
Les interfaces peuvent être écrites de plusieurs manières :
f0/0 revient à écrire fastethernet 0/0,
g0/1, gigabitethernet 0/1

Configurer le routage

>enable
#config t
#(config) int {iface_name}
#(config) int fasthethernet 0/0
#(config-if) no shutdown
#(config-if) ip addr {static_ip} {mask}
#(config-if) ip addr 192.168.0.254 255.255.255.0
#(config) ip routing  

Cette série de commandes configure un port du routeur, en commençant par l’allumer (no shutdown) puis lui donnant une adresse IP fixe, que l’on devra choisir pour qu’elle corresponde au réseau que l’on souhaite interconnecter.

Ici, on configure le port fastethernet 0/0 de ce routeur, pour qu’il puisse faire transiter les paquets venant du réseau 192.168.0.0/24, en lui donnant une adresse dans ce même réseau : 192.168.0.254. On active enfin le routage sur l’équippement.

Activer les Vlans

>enable
#config t
#(conf) int {iface}.{vlan_id}
#(conf) interface fastethernet0/1.10
#(config-if) encapsulate dot1Q {vlan_id}
#(config-if) encapsulate dot1Q 10
#(config-if) ip address {static_ip} {mask}
#(config-if) ip address 192.168.10.254 255.255.255.0

L'interface est optionnelle, mais necessaire pour taguer un port. On peut l'omettre si l'on ne souhaite que renseigner un VLAN à faire circuler par l'équipement

Ne concerne que les VLANs autres que la VLAN native (par défaut la VLAN 1). La VLAN native ne met pas d’étiquette aux paquets qui circulent dans son réseau.
Cette série de commandes permet à un port d’un routeur Cisco de pouvoir recevoir les paquets tagués par une VLAN. Il faut spécifier chaque VLAN que l’on souhaite que le routeur puisse interconnecter. On fait cela en créant une sous-interface virtuelle (sous la forme interface.vlan_id), à laquelle on demande d’écouter les paquets taggés dans la VLAN voulue (encapsulation dot1Q {vlan_id}), tout en lui donnant une IP dans le réseau de cette même VLAN (afin de pouvoir communiquer avec les autres hôtes de la VLAN).

Ici on configure le port fastethernet0/1 d’un routeur Cisco, pour qu’il puisse communiquer avec la VLAN 10. Pour ce faire, on crée la sous-interface virtuelle, à laquelle on pourra demander d’écouter les paquets taggés par la VLAN 10 (encapsulation dot1Q 10) ainsi que lui attribuer une IP (192.168.10.254) dans le réseau correspondant à la VLAN 10 pour lequel on a choisi ici (arbitrairement) 192.168.10.0/24.

Activer le mode trunk

>en
#config t
#(config) int {port_to_configure}   

#(config) int g0/12
#(config-if) switchport mode trunk

Si cela ne fonctionne pas la première fois :

switchport mode access
switchport mode trunk

Cette série de commandes permet de configurer un port de switch afin qu’il puisse recevoir et commuter les paquets tagués dans les VLANS que le switch connait. Les 2 ports reliés doivent être configurés en mode trunk. Il est impératif que les VLANs à commuter soient configurées dans tous les switchs, c’est à dire même les VLANs qui ne sont présentes que dans un seul des switchs. Car si un switch ne reconnaît pas l’étiquette d’un VLAN dans un paquet, il agira comme s’il provenait de la VLAN native, et donc pourra potentiellement détruire l’information de la VLAN de départ.

Ici on configure le port gigabitethernet 0/12 pour qu’il puisse recevoir l’ensemble des VLANS d’un autre switch.

Relais DHCP

>en
#config t
#(config) int vlan {vlan_id_to_send_DHCP}
#(config) int vlan 50
#(config-if) ip address {static_ip} {mask}
#(config-if) ip address 192.168.50.253 255.255.255.0
#(config) int vlan {vlan_id_to_receive_DHCP}
#(config) int vlan 10
#(config-if) ip helper-address {DHCP_server_ip}
#(config-if) ip helper-address 192.168.50.250
#(config-if) ip address {static_ip} {mask}
#(config-if) ip address 192.168.10.253 255.255.255.0

Le relais DHCP permet d’étendre la portée d’un service DHCP hors de son domaine de diffusion. Le routeur relayant les requêtes doit avoir une IP dans chaque domaine de diffusion que le serveur DHCP doit atteindre, ainsi que dans le réseau contenant le serveur DHCP.

On veut relayer le service DHCP sur la vlan 10, on commence par créer l’interface de la VLAN sur laquelle on va attribuer une IP fixe qui servira à faire transiter les requêtes DHCP entre le réseau dans lequel se trouve le serveur DHCP et le réseau d’où provient la requête DHCP.

On indique l’adresse IP du serveur DHCP au routeur en exécutant la commande

ip helper-address sur chaque interface de réseau dans lequel on veut relayer le DHCP.

Configuration du NAT

>en
# config
#(config) int {iface_client}
#(config-if) ip address {static_ip} {mask}
#(config-if) ip nat inside
#(config) int {iface_sortie}
#(config-if) ip address {static_ip} {mask}
#(config-if) ip nat outside

Routage inter-VLAN (commutateur niveau 3, routeur)

>en
#config t
#(config) int vlan {vlan_id}
#(config) int vlan 10
#(config) int vlan 20
#(config-if) ip address {static_ip} {mask}
#(config-if) ip address 192.168.10.253 255.255.255.0
#(config-if) ip address 192.168.20.253 255.255.255.0
…
#(config) ip routing

Un switch de niveau 3 permet de pouvoir commuter des paquets sans avoir à interroger un routeur.
Sur un commutateur Cisco de niveau 3, cela implique de créer des interfaces aux VLANs que l’on souhaite router, ainsi qu’à attribuer une IP dans leur réseau respectif.
Ici on crée deux interfaces de VLANs 10 et 20, auxquelles on attribue des IPs dans leur sous-réseau respectif.
On peut ainsi démarrer le routage entre ces 2 VLANs avec la commande

ip routing

Routage (WAN | LAN) <-> LAN

Exemple de routage entre 2 routeurs, dont un masquant un LAN derrière une IP publique, et l'autre divisant deux segments de réseaux locaux.

Schema Exemple

R1

Interface IP
g0/1 80.10.10.75
g0/0 172.16.255.254

R2

Interface IP
g0/1 172.16.255.253
g0/0 192.168.0.254

1. Configuration pour le traffic NAT entrant

L’interface d’entrée des hôtes sur le routeur qui vont avoir leurs adresses traduites afin de pouvoir communiquer avec les hôtes dans le WAN :

#R1 (config) int g0/0
#R1 (config-if) ip addr 172.16.255.254 255.255.0.0
#R1 (config-if) ip nat inside
#R1 (config-if) exit
#R2 (config) int g0/1
#R2 (config-if) ip addr 172.16.255.253 255.255.0.0
#R2 (config-if) exit
#R2 (config) int g0/0
#R2 (config-if) ip addr 192.168.0.254 255.255.255.0
#R2 (config-if) ip nat outside
#R2 (config-if) exit
#R2 (config) ip routing  

2. Configuration pour le traffic NAT sortant

L’interface qui va conserver son IP pour communiquer hors du sous-réseau Local.

#R1 (config) int g0/1
#R1 (config-if) ip addr 80.10.10.75 255.0.0.0
#R1 (config-if) ip nat outside

Le NAT s’appuie sur la fonction d’access-list afin de déterminer le comportement du routeur vis-à-vis de la traduction des hôtes vers le réseau étendu.

3. Access-List et activation du NAT

#(config) access-list {1-99} {permit-deny} [{any-none} | {network_address} {wildcard_mask}]
#(config) ip nat inside source list {access_list_nb} interface {iface_sortie} overload

NAT sur routeur 1

#R1 (config) access-list 1 permit any
#R1 (config) ip nat inside source list 1 interface g0/1 overload

Est ici équivalent à :

#R1 (config) access-list 1 permit 172.16.0.0    0.0.255.255
#R1 (config) ip nat inside source list 1 interface g0/1 overload

NAT sur routeur 2

#R2 (config) access-list 1 permit any
#R2 (config) ip nat inside source list 1 interface g0/0 overload

#debug ip nat
…
#no debug ip nat
#show ip nat translations

Le système de NAT permet à un routeur de masquer un sous-réseau derrière une IP. Il fait cela en mémorisant les adresses locales d’hôtes envoyant des requêtes qui sortent du réseau et en attribuant un port (entre 1024 et 65535) à la connexion qui en résulte, permettant donc au routeur de retrouver l’adresse de l’hôte à la source de la requête dans le réseau local, afin de lui envoyer la réponse attendue.

Ici on indique que l’on veut que chaque hôte dans le réseau 172.16.0.0/16 puisse communiquer hors de son réseau local en utilisant l’interface ayant une adresse IP dans le réseau étendu, g0/1. NAT STATIQUE + PAT

Port Address Translation

Exemple de redirection de requete http sur un serveur derrière le routeur R2 ayant comme adresse 192.168.0.250

>en
#config t
#(conf) int {iface_out}

#(conf) int g0/1
#(conf-if) ip nat outside
#(conf) int {iface_in}

#(conf) int g0/0
#(conf-if) ip nat inside
#(conf) ip nat inside source static {protocole} {destination_IP} {destination_port} {source_IP} {source_port}

R1 #(conf) ip nat inside source static tcp 172.16.255.253       80  80.10.10.75 80
R2 #(conf) ip nat inside source static tcp 192.168.0.250    80  172.16.255.253 80

La traduction de port permet à un hôte dans le réseau étendu de pouvoir communiquer avec un service se trouvant sur un hôte masqué derrière un routeur avec des règles de NAT.
Pour cela, on attribue un port sur le routeur, que l’on choisira selon le type de service, qui servira de passerelle entre le client et le serveur.

Le client n’aura plus qu’à renseigner l’adresse du routeur ainsi que le port correspondant au service voulu, le routeur redirigera la requête sur le serveur dans le réseau local, ainsi que la réponse de celui-ci vers le client.

Pour le réseau actuel, il nous faut 2 règles pour qu’un client dans le réseau étendu (WAN) puisse atteindre notre serveur web :

-> Une règle sur le routeur 1 pour qu’il sache qu’il doit rediriger la requête sur le routeur 2 -> Une règle sur le routeur 2 pour qu’il dirige enfin la requête sur l’adresse du serveur.

Filtrage des requêtes / pare-feu

Exemple d’interdiction de l’accès depuis un sous-réseau particulier :

#(conf) access-list 11 deny 192.168.10.0     0.0.0.255
#(conf) access-list 11 permit any

Les règles sont lues dans l’ordre où elles ont été entrées.

Administration à distance

Repose sur les access-group

#(conf) int {iface_to_filter}
#(conf) int g0/0
#(conf-if) ip access-group {list_nb} {in|out}
#(conf-if) ip access-group 11 in

Cette série de commandes fait en sorte que les hôtes du réseau 192.168.10.0/24 ne puissent pas accéder au réseau de l’interface g0/0.

Une seule liste par entrée et sortie d’interface, elle se termine automatiquement par un deny any de ce qui n’est pas listé.

Ne pas Autoriser l'accès par TELNET

> en
#conf t
#(conf) int vlan {vlan_id}
#(conf) int vlan 1
#(conf-if) ip address {static_ip} {mask}
#(conf-if) ip address 192.168.1.253 255.255.255.0
#(conf-if) no shutdown
#(conf-if) exit
#(conf) ip default-gateway {gw_ip}
#(conf) ip default-gateway 192.168.1.254
#(conf) line vty {connection_line_start} {connection_line_end}
#(conf) line vty 0 5
#(config-line) password {password}
#(config-line) password poseidon
#(config-line) {account_type}
#(config-line) login

Création d'un mot de passe d'administration

#(conf) enable password {password}

Sécuriser le port console (password)

#(conf) line console 0
#(config-line) password {password}

Sécuriser l'accès à distance

Commutateur

Pour pouvoir accéder à l’administration à distance via ssh, un équipement Cisco doit remplir les conditions suivantes :

  • avoir un hostname
  • la commande enable doit avoir un mot de passe
  • être dans un domaine
  • avoir une adresse IP sur une interface de VLAN
  • avoir une clé de chiffrement
  • avoir un compte utilisateur avec un mot de passe
  • avoir une passerelle par défaut
#(conf) hostname {name}
#(conf) hostname SW-1
#(conf) enable {password}
#(conf) enable poseidon
#(conf) int {interface_pr_la_connexion_ssh}
#(conf) int vlan 1
#(conf-if) ip addr {ip} {mask}
#(conf-if) ip addr 192.168.1.253 255.255.255.0
#(conf-if) exit
#(conf) ip default-gateway {ip_passerelle}
#(conf) ip default-gateway 192.168.1.254
#(conf) ip domain-name {domain_name}
#(conf) ip domain-name example.local
#(conf) crypto key generate rsa general-keys modulus 1024
#(conf) ip ssh version 2

On peut aussi utiliser les access-list pour limiter la possibilité de connexion à distance à un groupe restreint d’intervenants, car les administrateurs d’un réseau ont tout intérêt à réserver l’accès aux équipements au plus petit groupe possible, pour diminuer le risque d’attaque sur les équipements.

#(conf) access-list {list_nb} {permit|deny} {adresse_IP} {wildcard_mask}
#(conf) access-list 11 permit 192.168.1.0 0.0.0.255
#(conf) username {name} password {password}
#(conf) username admin password poseidon
#(conf) line vty {connection_line_start} {connection_line_end}
#(conf) line vty 0 5

*on veut englober toutes les lignes de connexion : on trouve le max en entrant : line vty 0 ?

Utilisation de la base de données des utilisateurs créés sur le switch pour l’authentification :

#(conf-line) login local

1 Créer un Mot de passe sur un compte sans Nom Utilisation d’un compte sans nom, avec juste un mot de passe

#(conf-line) password {password}

2 Administration à distance SSH

Oblige à l’utilisation de SSH pour l’administration à distance :

#(conf-line) transport input ssh

3 Configurer une Access-List

#(conf-line) access-class {access_list_nb} {in|out}
#(conf-line) access-class 11 in
#(conf-line) exit

4 Configurer un mot de passe

Pour devenir administrateur (enable) obligatoire pour pouvoir administrer à distance :

#(conf) enable password {password}

Ici on a donc configuré un switch pour qu’il ait la capacité d’être administré à distance :

  • on lui a donné un nom : hostname SW-1
  • on donne un mot de passe à la commande enable : enable password poseidon
  • on a créé une interface de vlan pour que l’on puisse contacter le service d’administration sur celle-ci : interface vlan 1
  • n lui a ensuite donnée une adresse : ip addr 192.168.1.253 255.255.255.0
  • on lui a donné sa passerelle par défaut : ip default-gateway 192.168.1.254
  • on lui a donné un nom de domaine : ip domain-name example.local
  • à ce stade il est possible de générer une clé de chiffrement, qui permettra d’encrypter les communications avec les clients ssh : crypto key generate rsa general-keys modulus 1024
  • on crée alors une access-list qui nous permettra de restreindre les possibilités d’accès au service d’administration : seuls les hôtes provenant du réseau 192.168.1.0/24 peuvent y accéder
  • on a ensuite créé le compte qui aura accès à distance : username admin password poseidon
  • on peut ensuite configurer le terminal virtuel qui s’occupera de la session à distance : line vty 0 5
  • on lui précisera que l’on souhaite que les comptes créés localement puissent se connecter : login local
  • on interdira toute méthode de connexion autre que ssh : transport input ssh
  • on finira par lui préciser la liste de contrôle d’accès qu’il devra suivre : access-class 11 in

Ce qui fait que pour nous connecter à distance sur le switch, il nous faudra y accéder depuis le réseau 192.168.1.0/24, sur un terminal supportant la commande ssh, en utilisant le compte admin avec le mot de passe Poseidon :

ssh -l admin 192.168.1.253  
Password : Poseidon  
Routeur

Les utilisateurs pouvant administrer les routeurs doivent appartenir à la base AAA

#(conf) hostname {name}
#(conf) hostname R-1
#(conf) ip domain-name {domain_name}
#(conf) ip domain-name example.local
#(conf) crypto key generate rsa general-keys modulus 1024
#(conf) ip ssh version 2

1 Créer un utilisateur Base de Données AAA

#(conf) username {name} password {password}
#(conf) username bob password poseidon
#(conf) aaa new-model
#(conf) aaa authentication login {rule_name} local
#(conf) aaa authentication login admin local

2 Appliquer le modèle du Switch

#(conf) line vty {line_nb} {max_concurrent_users}
#(conf) line vty 0 15

*on veut englober toutes les lignes de connexion : on trouve le max en entrant : line vty 0 ?

#(conf-line) login authentication {rule_name}
#(conf-line) login authentication admin
#(conf-line) transport input ssh

Ici on nomme le routeur R-1 : hostname R-1
On le place dans le domaine example.local : ip domain-name example.local
On crée le modèle de compte admin, que l’on précisera qu’il représente les comptes créés localement sur le routeur : aaa authentication login admin local
On indique au terminal virtuel les modèles de comptes qu’il devra autoriser : login authentication admin
Ce qui fait que le compte bob, créé localement et donc faisant parti du modèle admin, peut se connecter à distance en ssh sur le routeur
On avait préalablement configuré l’interface du routeur dans le réseau 192.168.1.0/24 avec l’adresse 192.168.1.254.
On va donc pouvoir configurer le routeur, à distance, avec la commande :

ssh -l bob 192.168.1.254  
Password : poseidon