VyOS
VyOS est un système d'exploitation réseau libre basé sur la distribution Debian. Il permet de concenvoir ses propres routeurs/pare-feux avec une simple machine virtuelle ou un PC physique.
Installation
Configuration de base
Configuration du clavier Azerty
Tout d'abord on peut reconfigurer le clavier en azerty pour que la machine soit plus simple à configurer avec la commande suivante :
sudo dpkg-reconfigure keyboard-configuration
Suivre les étapes et redémarrer la machine.
Le mode configuration
Le mode configuration de VyOS est l'environnement utilisateur qui permet de modifier la configuration du routeur. Hormis les commandes “show” qui servent seulement à afficher des informations sur la configuration de VyOS, toutes les commandes de paramétrage spécifiques à VyOS se font dans ce mode.
Pour entrer en mode de configuration :
configure
Pour appliquer les réglages effectués (toujours en mode de configuration) :
commit
Puis pour les sauvegarder (toujours en mode de configuration) :
save
Pour annuler une commande, reprendre la commande et remplacer le verbe “set” au début par “delete”.
delete interfaces dummy dum1
Enfin pour sortir du mode configuration :
exit
Paramètres généraux
Afficher TOUTE la configuration de VyOS (fonctionne en mode normal) :
show configuration | less
Afficher les interfaces de VyOS (fonctionne en mode normal) :
show interfaces
Régler le fuseau horaire sur Paris :
set system time-zone Europe/Paris
Renommer la machine :
set system host-name <hostname>
Attribuer un nom de domaine à la machine :
set system domain-name <domaine>
Activer SSH
Activer le protocole SSH pour l'administration à distance sur le port 22 :
set service ssh port 22
Définir les adresses IP sur lesquelles le serveur SSH sera à l'écoute (il peut y en avoir plusieurs, mais pour cela il faut refaire la commande à chaque nouvelle IP ajoutée) :
set service ssh listen-address 192.168.1.254
Configuration des interfaces réseau
Ajouter une description à une interface Ethernet :
set interfaces ethernet eth0 description interface-WAN
Attribuer une adresse IP dynamiquement à une interface Ethernet :
set interfaces ethernet eth0 address dhcp
Attribuer une adresse IP statiquement à une interface Ethernet :
set interfaces ethernet eth0 address 192.168.1.254/24
Supprimer une adresse IP statique :
delete interfaces ethernet eth0 address 192.168.1.254/24
Désactiver une interface réseau :
set interface ethernet eth0 disable
Réactiver une interface désactivée :
delete interfaces eth0 disable
Sous-interfaces avec encapsulation dans un VLAN
Pour utiliser le protocole 802.1Q sur une interface physique de la machine avec VyOS, il faut activer une sous-interface de l'interface trunk physique pour chaque VLAN.
Activer une sous-interface avec encapsulation des paquets dans le VLAN 100 :
set interfaces ethernet eth3 vif 100
Changer l'adresse de la sous-interface dans le VLAN 100 :
set interfaces ethernet eth3 vif 100 address 192.168.100.254
Attribuer une description à cette même sous-interface :
set interfaces ethernet eth3 vif 100 description vlan100
Interfaces virtuelles (loopback)
VyOS permet aussi de gérer les interfaces IP logicielles (loopback chez Cisco), afin d'avoir une adresse toujours joignable en fonction de l'état des interfaces physiques. Chez VyOS, ces interfaces sont nommées Dummy interfaces et commencent toujours par dum suivies d'un chiffre.
Elles ne peuvent pas récupérer d'adresse IP de façon dynamique, il faut absolument leur en attribuer une statiquement :
set interfaces dummy dum0 address 2.2.2.2/22
On pourra aussi leur ajouter une description, comme pour les autres :
set interfaces dummy dum0 description loopback0
Routage
Routage statique
Afficher la table de routage :
show ip route
Définir le routeur 203.0.113.1 comme passerelle par défaut (route par défaut) :
set protocols static route 0.0.0.0/0 next-hop 203.0.113.1 distance '1'
Ajouter une route vers le réseau 20.30.0.0/16 via la passerelle 18.59.81.6 :
set protocols static route 20.30.0.0/16 next-hop 18.59.81.6 distance '1'
distance fait référence à la métrique de la route
Supprimer une route :
delete protocols static route 195.51.14.132/12
Routage dynamique
A rédiger
Translation d'adresses sources (NAT Source)
Créer une règle de NAT Source (basé sur la source des paquets) en indiquant l'interface sur laquelle les paquets à modifier arriveront :
set nat source rule 10 outbound-interface 'eth1'
Définir le réseau source dont on va remplacer les adresses réseau (le LAN) :
set nat source rule 10 source address '192.168.1.0/24'
Activer la traduction de ces adresses sources :
set nat source rule 10 translation address 'masquerade'
Indiquer les protocoles concernés par la translation d'IP (ici TCP & UDP) :
set nat source rule 20 protocol tcp_udp
Rappel : Pour annuler une commande, reprendre la commande et remplacer “set” par “delete”.
Translation d'adresses et de ports destination (NAT/PAT Destination)
Créer une règle de NAT destination (basé sur la destination des paquets) en indiquant l'interface sur laquelle les paquets à modifier arriveront :
set nat destination rule 20 inbound-interface eth1
Indiquer les protocoles concernés par la translation d'IP (ici UDP) :
set nat destination rule 20 protocol udp
Indiquer les ports concernés par la translation (ici 3389) :
set nat destination rule 100 destination port '3389'
Indiquer l'IP de destination après translation :
set nat destination rule 100 translation address '192.168.100.2'
Services réseau
Serveur DHCP
Configuration de base
Déclarer une étendue DHCP pour un sous-réseau en spécifiant la passerelle par défaut :
set service dhcp-server shared-network-name DHCP1 subnet 192.168.1.0/24 default-router 192.168.1.254
Configurer les serveurs DHCP de l'étendue précédemment créée :
set service dhcp-server shared-network-name DHCP1 subnet 192.168.1.0/24 dns-server 1.1.1.1 1.0.0.1
Paramétrer la durée d'un bail DHCP (en secondes, par défaut 86400 si le paramètre n'est pas spécifié par l'utilisateur) :
set service dhcp-server shared-network-name DHCP1 subnet 192.168.1.0/24 lease 3600
Spécifier un domaine aux clients de l'étendue :
set service dhcp-server shared-network-name DHCP1 subnet 192.168.1.0/24 domain-name nocterie.fr
Plage dynamiquement adressable
Configurer la plage d'IP adressables dans le sous-réseau (à partir de l'adresse spécifiée en fin de ligne) :
set service dhcp-server shared-network-name DHCP1 subnet 192.168.1.0/24 range 100 start 192.168.1.100
Ajouter une exclusion d'adresse dans une plage DHCP :
set service dhcp-server shared-network-name DHCP1 subnet 192.168.1.0/24 exclude 192.168.1.104
Reservation d'adresse
Créer une reservation d'adresse IP pour l'adresse MAC FF:02:FC:FA:15:63 :
set service dhcp-server shared-network-name DHCP1 subnet 192.168.1.0/24 static-mapping SRV1 mac-address FF:02:FC:FA:15:63
Associer une adresse IP à l'appareil identifié juste au dessus pour son adresse MAC :
set service dhcp-server shared-network-name DHCP1 subnet 192.168.1.0/24 static-mapping SRV1 ip-address 192.168.1.10
Découverte LLDP
Activer la découverte LLDP :
set service lldp
Désactiver la découverte LLDP :
unset service lldp
Activer un protocole de découverte réseau propriètaire (CDP=Cisco, EDP=Extreme Networks, etc…) :
service lldp legacy-protocols <cdp|edp|fdp|sonmp>