-
Router
- Plusieurs interfaces réseaux interconnectées à des sous réseaux différnets
- Fait passer le trafic d’une interface à l’autre (et donc d’un sous-réseau à l’autre)
-
Table de routage
- default via → passerelle pour sortir du réseau
- scope link → connection direct au réseau (sans passage vers la passerelle)
-
schéma routeur
-
configurer en mode routeur
- vim /etc/sysctl.d/10-ipforward.conf
- Enable net.ipv4.ip_forward=1
- Activer directement echo 1 > /proc/sys/net/ipv4/ip_forward
- Ou redemarrer la machine
- vim /etc/sysctl.d/10-ipforward.conf
-
Attention
- Les paquets addressés au routeur spécifie l’adresse du réseau du routeur, mais cette adresse n’est pas connue de pfsense (la passerelle du routeur)
- Donc pas possible d’addresser au client car adresse inconnue
- NAT → transforme l’adresse client en adresse du routeur (qui elle est connue) puis inversément
- Solution utilisée
- Route statique, connexion du gateway pfsense au réseau du routeur afin d’être connu
- Les paquets addressés au routeur spécifie l’adresse du réseau du routeur, mais cette adresse n’est pas connue de pfsense (la passerelle du routeur)
-
Configuration NAT
- link to network course about it
- nft add table ip nat
- voir firewall
- nft add chain nat postrouting { type nat hook postrouting priority 100 ; }
- voir firewall
- nft add rule nat postrouting ip saddr 172.18.1.0/24 masquerade
- Translate les addresses du sous réseau 172.18.1.x vers celle du routeur courant
- rendre config permanente
- nft list ruleset > /etc/nftables/default.nft
-
Outils réseaux
- tcpdump → capturer et analyser le trafic réseau
- wireshark → interface graphique
- discret
- nmap
- lister les ports ouverts, identifier des services, etc
- peut être considéré comme un acte hostile → attention
- nmap -A -T4 127.0.0.1
- -A OS detection, etc → additional information
- -T4 → aggressive mode → fera beaucoup de paquets
- 127.0.0.1 adresse de la machine à scanner
- nmap -sn 172.18.1.0/24
- Utilise ping pour identifier toutes les adresses actives sur le réseau
- Pas de tests de port
- Souvent bloqués par les firewall
- Utilise ping pour identifier toutes les adresses actives sur le réseau
- nmap -p 80 172.18.1.0/24
- Retourne toutes les machines du réseau avec un serveur web → port 80
- telnet
- telnet mail.helmo.be 110
- ouvre connexion TCP non sécurisée
- permet de faire des tests simple et obtenir des informations sur les services ou versions
- openssl s_client -connect pop.google.com:995 -servername pop.google.com
- Equivalent de telnet mais sécurisée avec SSL/TLS
- telnet mail.helmo.be 110
- hping3
- Lancer une commande ping sans paquet ICMP bloqué par les firewall → construction de paquets IP
- hping3 -S www.swila.be -p 80
- Va faire un ping sur le port 80 sur www.swila.be
- Si flag = SA → port ouvert
- Si flag = RA → port fermé
- hping3 -S www.swila.be -p ++80
- Scanner les ports ouverts sur une machine (Va tester tous les ports à partir de 80)
- hping3 -z -t 1 -S www.swila.be -p 80
- -z augmente le ttl lorsqu’il recoit CTRL+Z
- -t 1 met le TTL à 1 par défault (donc un seul pont)
- Va tester le nombre de ponts entre le client et la destination comme un traceroute mais sans ICMP
- Plus discret pour les firewall
- —flood dos attack
- tcpdump → capturer et analyser le trafic réseau
-
Définir une machine comme cliente du routeur
- Créer une interfae commune de celle du routeur
- Configurer l’adresse IP de l’interface via nmtui et définir la passerelle (gateway) à l’adresse du routeur et le DNS à un serveur DNS existant (exemple : 1.1.1.1)
- Voir schéma du cours sur le sujet
-
Services réseaux de base
- SSH
- port 22
- systemctl enable —now sshd
- connexion à une machine distante et échange de fichiers
- configuration
- /etc/ssh/ssh_config pour le client
- /etc/ssh/sshd_conifg pour le serveur
- voir configuration locale pour les clés SSHs
- Création clé
- ssh-keygen -t rsa -b 4096
- taille recommandée, par défault ssh-keygen fait de l’RSA 3072
- ssh-keygen -t ed25519
- pas toujours supporté mais est le futur rempacement de RSA
- ssh-keygen -t rsa -b 4096
- Ajout de la clé sur un serveur
- ssh-copy-id username@host
- Spécifier un nom custom pour la clé pour le service lui-même
- cp ~/.ssh/id_rsa ~/.ssh/nom_du_service
- cp ~/.ssh/id_rsa.pub ~/.ssh/nom_du_service.pub
- Lier automatiquemnet avec une configuration ssh locale
- nano ~/.ssh/config
- SSH
Host alias
HostName IP_OR_DOMAIN_NAME
Port 22
User debian
IdentityFile ~/.ssh/nom_du_service.pub
-
ssh alias ou ssh-copy-id -i ~/.ssh/nom_du_service.pub alias
-
Gestion des clés dans ~/.ssh/authorized_keys
-
Gestion des hotes dnas ~/.ssh/known_hosts
- TOFU (Trust On First Use)-like security
-
attention clé privée secrete comparée à clé publique
-
ouvrir application graphique ssh -X
-
code verouillage et agent
-
ne pas devoir reptaper le mdp d’une clé
- ne pas mettre un mdp sur la clé
- ou utilsier ssh-agent pour retenir la clé en mémoire vive
- eval $(ssh-agent)
- ssh-add ~/.ssh/id_rsa
-
accéder à un service local sur le serveur
- ssh -L 8000:127.0.0.1:80 user@host
- Va représenter le localhost:80 de la machine serveur au port local 8000
- AllowTcpForwarding doit être activée dans le sshd_config
- /etc/hosts pour éviter les problèmes avec le HTTPS qui indique un problème de sécurité
- ssh -L 8000:127.0.0.1:80 user@host
-
ssh change password → passwd
-
service dhcpd
- Indispensable sur la plupart des réseaux
- Distributin de la configuration réseau au postes clients
- Très important car la plus part des appareils aujourd’hui sont nomades (PC portables, téléphones, etc)
- ici seulement sur l’IPV4 car pour l’ipv6 il y a le protocole NDP (DHCPv6 ne servant pas à grand chose)
- Renomé kea car dhcpcd est en fin de vie
-
Configuration dans /etc/kea
-
kea-ctrl-agent.conf → interface REST pour configurer et administrer le serveur kea
-
keactrl.conf → services activés au sein de kea
- Désactiver le service dhcp6
- Désactiver le service ctrl_agent
- Plus facile pour analyser des problèmes de configuration par après
-
kea-dhcp4.conf → description du service DHCPv4
- Exemple de code simplifié depuis la configuration par défault
-
Configuration des interfaces réseaux et des sous-réseaux contrôlés par dhcp (dans nos cas il n’y aura qu’un seul sous réseau)
-
Information sur la base de donnée utilisée pour dhcp (et lfc-interval est l’interval entre deux nettoyage de la base de donnée)
-
Temps de bail DHCP (valid-lifetime)
- 4 heures lorsqu’il y a beaucoup d’appareils mobiles
- 8 heures lorsqu’il y a un peu d’appareils mobiles
- 1 jour
- 8 jours lorsqu’il y a majoritairement des PC fixes
-
Définition du sous réseau, de son interface, l’étendue des adresses IP pouvant être attribuées
- Les informations devant être envoyées au client à propos de la configuration
- Routeurs pour sortir du réseau
- IP des DNS à envoyer au client
- Le suffixe DNS à utiliser pour le réseau
- Les informations devant être envoyées au client à propos de la configuration
-
Les réservations hardcodées
-
Association d’un e addresse MAC (phyisque) à une adresse IP précise
-
-
kea-dhcp6.conf → description du service DHCPv6 → pas utilisé ici car NDP
-
kea-dhcp-ddns.conf → configuration du lien DDNS (dont clé “TSIG”) pour s’inscrire automatique des entrées dans le DNS
-
ATTENTION ! Il ne peut y avoir qu’un seul service DHCP actif sur un sous réseau à un instant donné sinon les clients risquent de recevoir des configurations réseaux contradictoires
- Faites bien attention à désactiver ce service dans la configuratoin de pfsense
-
Démarrage et activation du service dhcp
sudo systemctl start kea-dhcp4 sudo systemctl enable kea-dhcp4
- Debug de la configuration
sudo systemctl status kea-dhcp4
-
Les bails sont enregistrés dans le fichier /var/lib/kea-leases4.csv
-
Les postes client doivent être configuré en “automatique” pour utiliser la configuration dhcp du réseau dans NetworkManager
-
NTP
- Network Time Protocol
- Synchronisation du temps aux machines et à l’équipement réseua
- Service “chrony”
- /etc/chrony.conf
- server pool → serveur ntp auquel se synchroniser, stratum 1 pour les qulaité les meilleur avec un système atomique
- driftfile → fichier qui observe les différences de temps observées
- allow-deny pour sépcifier les adresses IP ou réseaux qui ont accès ou non au service chrony
- Important pour être en mode serveur et pas seulement client. Par défault allow est exclusif, donc seul celui-la pourra se connecter et personne d’autre
- Si pas de allow, personne ne peut s’y connecter, chrony est alors seulement un client pour un autre serveur sur la machine
- chronyd -q ‘server ntp1.oma.be iburst’
- Synchronisation une première fois afin de ne pas perturber le système en cours de fonctionnement en cas de différence de temps importante
- AVANT le démarrage du service
- systemctl enable —now chronyd
- systemctl status chronyd
- Voir les sources, la fiabilité, les synchornisations en cours, etc → chronyc sources
- /etc/chrony.conf