Commandes Réseau Essentielles Sous Linux

Commandes Réseau Essentielles Sous Linux

Linux est un pilier dans la gestion de réseau. Que ce soit pour l'administration de serveurs, le diagnostic réseau ou la maintenance de sécurité, les commandes réseau sous Linux offrent des capacités robustes.

  1. Configuration des Interfaces Réseau

1.1 ip (Remplacement moderne de ifconfig)

La commande ip est l'outil moderne et plus puissant pour gérer la configuration réseau. Elle remplace avantageusement ifconfig.

Afficher toutes les interfaces réseau et leurs adresses IP

ip addr show

Exemple de sortie :

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: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
       link/ether 08:00:27:4e:66:a1 brd ff:ff:ff:ff:ff:ff
       inet 192.168.1.100/24 brd 192.168.1.255 scope global dynamic eth0
          valid_lft 86329sec preferred_lft 86329sec
       inet6 fe80::a00:27ff:fe4e:66a1/64 scope link
          valid_lft forever preferred_lft forever

Ajouter une adresse IP à une interface

sudo ip address add 192.168.1.101/24 dev eth0

Supprimer une adresse IP d'une interface

sudo ip address del 192.168.1.101/24 dev eth0

Activer/Désactiver une interface réseau

sudo ip link set eth0 up
   sudo ip link set eth0 down

1.2 ping

Utilisée pour tester la connectivité avec un hôte distant en envoyant des paquets ICMP Echo Request.

Vérifier la connectivité de base

ping google.com

Exemple de sortie :

PING google.com (142.250.72.14) 56(84) bytes of data.
   64 bytes from muc11s06-in-f14.1e100.net (142.250.72.14): icmp_seq=1 ttl=115 time=21.3 ms
   64 bytes from muc11s06-in-f14.1e100.net (142.250.72.14): icmp_seq=2 ttl=115 time=20.6 ms

Options courantes

  • Spécifier le nombre de pings : ping -c 4 google.com
  • Définir la taille des paquets : ping -s 128 google.com

1.3 traceroute

Permet de visualiser le chemin emprunté par les paquets pour atteindre une destination.

Afficher la route vers un hôte

traceroute google.com

Exemple de sortie :

traceroute to google.com (142.250.72.14), 30 hops max, 60 byte packets
    1  192.168.1.1 (192.168.1.1)  2.374 ms  2.361 ms  2.350 ms
    2  10.0.0.1 (10.0.0.1)  8.259 ms  8.243 ms  8.228 ms
    3  142.250.72.14 (142.250.72.14)  19.085 ms  19.068 ms  19.051 ms

Options courantes

  • Limiter le nombre de sauts : traceroute -m 20 google.com
  • Utiliser le protocole ICMP : traceroute -I google.com

1.4 mtr

Combine les fonctionnalités de ping et traceroute pour un diagnostic réseau en temps réel et interactif.

Utilisation de base

mtr google.com

Options courantes

  • Définir le nombre d'échantillons : mtr -c 10 google.com
  • Générer un rapport statique : mtr -r google.com
  1. Diagnostic DNS

2.1 nslookup

Outil pour interroger les serveurs DNS et résoudre des noms de domaine.

Requête de base

nslookup google.com

Exemple de sortie :

Server:		8.8.8.8
   Address:	8.8.8.8#53

   Non-authoritative answer:
   Name:	google.com
   Address: 142.250.72.14

Intreroger un serveur DNS spécifique

nslookup google.com 8.8.8.8

2.2 dig

Un outil plus avancé et flexible pour interroger les serveurs DNS.

Obtenir les enregistrements A (adresses IPv4)

dig google.com

Exemple de sortie :

; <<<<< DiG 9.16.1-Ubuntu >>>>> google.com
   ;; global options: +cmd
   ;; Got answer:
   ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12345
   ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

   ;; QUESTION SECTION:
   ;google.com.                    IN      A

   ;; ANSWER SECTION:
   google.com.             299     IN      A       142.250.72.14

   ;; Query time: 20 msec
   ;; SERVER: 192.168.1.1#53(192.168.1.1)
   ;; WHEN: Sat Jul 06 10:00:00 UTC 2024
   ;; MSG SIZE  rcvd: 55

Interroger des types d'enregistrements spécifiques

  • Enregistrements MX (Mail Exchanger) : dig google.com MX
  • Enregistrements NS (Name Server) : dig google.com NS
  1. Analyse de Trafic Réseau

3.1 tcpdump

Un puissant analyseur de paquets en ligne de commande pour capturer et examiner le trafic réseau.

Capture de trafic

sudo tcpdump

Exemple de sortie :

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
   listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
   10:00:00.000000 IP myhost.local > 192.168.1.1: ICMP echo request, id 12345, seq 1, length 64
   10:00:00.000001 IP 192.168.1.1 > myhost.local: ICMP echo reply, id 12345, seq 1, length 64

Options courantes

  • Spécifier l'interface : sudo tcpdump -i eth0
  • Capturer un nombre limité de paquets : sudo tcpdump -c 10
  • Filtrer par port : sudo tcpdump port 80
  • Sauvegarder les captures : sudo tcpdump -w capture.pcap
  • Lire un fichier de capture : sudo tcpdump -r capture.pcap

3.2 wireshark

Un outil d'analyse réseau graphique, offrant une visualisation détaillée du trafic, plus intuitive que tcpdump pour des analyses approfondies.

Lancement

wireshark

Dans l'interface graphique, sélectionnez l'interface réseau et utilisez les filtres (ex: http, tcp.port==80) pour affiner l'analyse.

  1. Surveillance des Connexions et Services

4.1 ss

Un outil moderne et performant pour l'inspection des sockets et des statistiques réseau, plus rapide que netstat.

Afficher toutes les connexions actives

ss -tulnp

Exemple de sortie :

Netid	State	Recv-Q	Send-Q	Local Address:Port	Peer Address:Port
   tcp	LISTEN	0	128	0.0.0.0:22		0.0.0.0:*	users:(("sshd",pid=1234,fd=3))
   udp	UNCONN	0	0	0.0.0.0:68		0.0.0.0:*	users:(("dhclient",pid=5678,fd=6))

Options courantes

  • Afficher les ports en écoute : ss -l
  • Afficher les connexions TCP : ss -t
  • Afficher les connexions UDP : ss -u
  • Afficher les processus associés aux sockets : ss -p

4.2 netstat

L'outil classique pour afficher les connexions réseau, les tables de routage et les statistiques d'interface.

Afficher toutes les connexions et ports d'écoute

netstat -tulnp

Exemple de sortie :

Active Internet connections (only servers)
   Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
   tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1234/sshd
   udp        0      0 0.0.0.0:68              0.0.0.0:*                           5678/dhclient

Options courantes

  • Afficher la table de routage : netstat -r
  • Afficher les statistiques d'interface : netstat -i
  • Affichage continu : netstat -c
  1. Surveillance du Trafic en Temps Réel

5.1 iftop

Affiche l'utilisation de la bande passante par connexion sur une interface réseau spécifique.

Utilisation de base

sudo iftop

Exemple de sortie :

Interface: eth0
   Hostname: myhost.local
   10.0.0.1           =>  192.168.1.1          0b      0b      0b
   10.0.0.1           <=  192.168.1.1          0b      0b      0b

Options courantes

  • Spécifier l'interface : sudo iftop -i eth0
  • Afficher en octets : sudo iftop -B

5.2 nload

Un outil simple pour surveiller la bande passante réseau en temps réel avec des graphiques.

Utilisation de base

sudo nload

Exemple de sortie :

Device eth0 [10.0.0.1] (1/1):
   In:  0.00 kBit/s
   Out: 0.00 kBit/s

Options courantes

  • Spécifier l'interface : sudo nload eth0
  1. Gestion des Services et Transfert de Fichiers

6.1 systemctl

L'outil de gestion des services et de l'état du système sous les distributions utilisant systemd.

Commandes courantes

  • Démarrer un service : sudo systemctl start <nom_service></nom_service>
  • Arrêter un service : sudo systemctl stop <nom_service></nom_service>
  • Redémarrer un service : sudo systemctl restart <nom_service></nom_service>
  • Vérifier l'état d'un service : sudo systemctl status <nom_service></nom_service>

Exemple de sortie :

● nginx.service - A high performance web server and a reverse proxy server
        Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
        Active: active (running) since Sat 2024-07-08 10:00:00 UTC; 5min ago

Gestion du démarrage automatique

  • Activer au démarrage : sudo systemctl enable <nom_service></nom_service>
  • Désactiver au démarrage : sudo systemctl disable <nom_service></nom_service>
  • Recharger la configuration : sudo systemctl reload <nom_service></nom_service>

6.2 service

Commande traditionnelle pour gérer les services sous les systèmes SysVinit et Upstart, encore fonctionnelle sur certains systèmes.

Commandes courantes

  • Démarrer un service : sudo service <nom_service> start</nom_service>
  • Arrêter un service : sudo service <nom_service> stop</nom_service>
  • Redémarrer un service : sudo service <nom_service> restart</nom_service>
  • Vérifier l'état d'un service : sudo service <nom_service> status</nom_service>

6.3 scp

Permet la copie sécurisée de fichiers entre des hôtes via SSH.

Transferts de base

  • Copier un fichier local vers un hôte distant : scp fichier_local utilisateur@hote_distant:/chemin/distant/
  • Copier un fichier distant vers un hôte local : scp utilisateur@hote_distant:/chemin/distant/fichier_distant chemin_local/
  • Copier un répertoire (récursif) : scp -r repertoire_local utilisateur@hote_distant:/chemin/distant/

Options courantes

  • Spécifier un port SSH : scp -P 2222 fichier_local utilisateur@hote_distant:/chemin/distant/
  • Afficher la progression : scp -v fichier_local utilisateur@hote_distant:/chemin/distant/

6.4 rsync

Outil puissant pour la synchronisation de fichiers et de répertoires, très efficace grâce à son algorithme de transfert delta.

Synchronisation de base

  • Synchroniser un répertoire local vers un répertoire distant : rsync -avz repertoire_local/ utilisateur@hote_distant:/chemin/distant/
  • Synchroniser un répertoire distant vers un répertoire local : rsync -avz utilisateur@hote_distant:/chemin/distant/ repertoire_local/

Options courantes

  • Supprimer les fichiers dans la destination qui n'existent pas dans la source : rsync -av --delete repertoire_local/ utilisateur@hote_distant:/chemin/distant/
  • Simuler l'opération (dry run) : rsync -avn repertoire_local/ utilisateur@hote_distant:/chemin/distant/

6.5 sftp

Protocole de transfert de fichiers sécurisé basé sur SSH, offrant une interface interactive similaire à FTP.

Connexion et commandes

  • Se connecter à un serveur : sftp utilisateur@hote_distant
  • Téléverser un fichier : put fichier_local
  • Télécharger un fichier : get fichier_distant
  • Lister les fichiers distants : ls
  • Changer de répertoire distant : cd repertoire_distant
  • Quitter : bye

Options courantes

  • Spécifier un port SSH : sftp -P 2222 utilisateur@hote_distant
  1. Sécurité Réseau et Pare-feu

7.1 iptables

L'outil fondamental sous Linux pour configurer le pare-feu au niveau du noyau (filtrage de paquets).

Afficher les règles actuelles

sudo iptables -L -v -n

Exemple de sortie :

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
    pkts bytes target     prot opt in     out     source               destination

   Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
    pkts bytes target     prot opt in     out     source               destination

   Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
    pkts bytes target     prot opt in     out     source               destination

Opérations courantes

  • Ajouter une règle (autoriser le port SSH en entrée) : sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
  • Supprimer une règle : sudo iptables -D INPUT -p tcp --dport 22 -j ACCEPT
  • Sauvegarder les règles (Debian/Ubuntu) : sudo iptables-save > /etc/iptables/rules.v4

7.2 ufw

Un pare-feu simplifié (Uncomplicated Firewall) pour une gestion plus aisée des règles iptables, courant sous Ubuntu/Debian.

Gestion de base

  • Activer UFW : sudo ufw enable
  • Désactiver UFW : sudo ufw disable
  • Afficher le statut : sudo ufw status verbose

Exemple de sortie :

Status: active

   To                         Action      From
   --                         ------      ----
   22/tcp                     ALLOW       Anywhere
   80/tcp                     ALLOW       Anywhere

Gestion des règles

  • Autoriser un port : sudo ufw allow 22/tcp
  • Bloquer un port : sudo ufw deny 22/tcp
  • Supprimer une règle : sudo ufw delete allow 22/tcp

7.3 fail2ban

Logiciel de prévention des intrusions qui analyse les journaux système et bannit temporairement les adresses IP suspectes (ex: tentatives de connexion SSH échouées répétées).

Configuration

Modifiez le fichier de configuration pour activer et personnaliser les règles.

sudo nano /etc/fail2ban/jail.local

Exemple de configuration pour SSH :

[sshd]
   enabled = true
   port = ssh
   logpath = /var/log/auth.log
   maxretry = 3

Gestion du service

  • Démarrer : sudo systemctl start fail2ban
  • Statut : sudo fail2ban-client status sshd

Exemple de sortie :

Status
   |- Number of jail:      1
   `- Jail list:   sshd
  1. Outils Avancés

8.1 ethtool

Utilisé pour configurer et afficher les informations détaillées des cartes réseau Ethernet.

Afficher les paramètres d'une interface

sudo ethtool eth0

Exemple de sortie :

Settings for eth0:
       Supported ports: [ TP ]
       Supported link modes:   10baseT/Half 10baseT/Full
                               100baseT/Half 100baseT/Full
                               1000baseT/Full
       Speed: 1000Mb/s
       Duplex: Full
       Port: Twisted Pair
       Auto-negotiation: on

Opérations courantes

  • Modifier la vitesse et le duplex : sudo ethtool -s eth0 speed 1000 duplex full autoneg on
  • Afficher les informations du pilote : sudo ethtool -i eth0

8.2 nmap

Un scanner de réseau puissant pour découvrir des hôtes, des ports ouverts et des services sur un réseau.

Scans de base

  • Scanner un hôte : nmap example.com
  • Scanner des ports spécifiques : nmap -p 22,80,443 example.com
  • Scanner une plage d'adresses IP : nmap 192.168.1.0/24
  • Détection du système d'exploitation et des versions de services : nmap -A example.com

Exemple de sortie :

Starting Nmap 7.80 ( https://nmap.org ) at 2024-07-08 10:00 UTC
   Nmap scan report for example.com (93.184.216.34)
   Host is up (0.010s latency).
   Not shown: 998 filtered ports
   PORT    STATE  SERVICE
   80/tcp  open   http
   443/tcp open   https

Étiquettes: Linux réseau commandes diagnostic Sécurité

Publié le 13 juillet à 00h28