Les commandes shell et le réseau

ifconfig

La commande ifconfig vous permet de connaitre les paramètres (IP) de vos cartes réseau.

Exemple :

ifconfig
enp0s3    Link encap:Ethernet  HWaddr 08:00:27:4a:44:ed  
          inet adr:10.0.2.15  Bcast:10.0.2.255  Masque:255.255.255.0
          adr inet6: fe80::e31f:a516:3438:1fa9/64 Scope:Lien
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Packets reçus:297 erreurs:0 :0 overruns:0 frame:0
          TX packets:305 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:1000 
          Octets reçus:28449 (28.4 KB) Octets transmis:27242 (27.2 KB)

lo        Link encap:Boucle locale  
          inet adr:127.0.0.1  Masque:255.0.0.0
          adr inet6: ::1/128 Scope:Hôte
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          Packets reçus:165 erreurs:0 :0 overruns:0 frame:0
          TX packets:165 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:1 
          Octets reçus:14284 (14.2 KB) Octets transmis:14284 (14.2 KB)


ip address

Sous Debian 9 « Stretch », la commande ifconfig est remplacée par ip address.

Exemple :

ip address
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    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 pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:79:b3:bb brd ff:ff:ff:ff:ff:ff
    inet 10.0.2.15/24 brd 10.0.2.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:fe79:b3bb/64 scope link 
       valid_lft forever preferred_lft forever

ping

La commande ping permet de tester l’accessibilité d’une autre machine à travers un réseau IP. Elle utilise le protocole ICMP (couche 3, réseau, du modèle OSI) qui doit donc être autorisé en entrée et en sortie par le pare-feu.

Exemple, je ping ma box :

ping 192.168.1.1
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=63 time=7.85 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=63 time=3.69 ms
64 bytes from 192.168.1.1: icmp_seq=3 ttl=63 time=3.90 ms
64 bytes from 192.168.1.1: icmp_seq=4 ttl=63 time=3.64 ms

Je peux par exemple faire un ping du site google.fr :

ping google.fr

Pour stopper l’exécution de la commande ping sous Linux, j’utilise la combinaison de touches [Ctrl]+[C].

traceroute

La commande traceroute (tracert sous Windows) permet de suivre les chemins empruntés par un paquet de données IP  entre deux machines connectées. Comme pour le ping c’est le protocole ICMP qui est utilisé avec le paramètre Time-To-Live (TTL).

Exemples :

traceroute 8.8.8.8
traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets
 1  192.168.1.1 (192.168.1.1)  2.349 ms  3.965 ms  5.543 ms
 2  80.10.125.18 (80.10.125.18)  52.046 ms  53.512 ms  55.226 ms
 3  10.123.212.74 (10.123.212.74)  58.307 ms 10.123.212.10 (10.123.212.10)  60.194 ms  62.762 ms
 4  ae41-0.nipoi201.Poitiers.francetelecom.net (81.253.130.1)  64.625 ms  66.235 ms  67.954 ms
 5  193.252.137.14 (193.252.137.14)  74.183 ms ae40-0.nipoi202.Poitiers.francetelecom.net (193.252.160.46)  70.586 ms  72.368 ms
 6  209.85.172.150 (209.85.172.150)  76.094 ms  29.468 ms 193.252.137.14 (193.252.137.14)  50.041 ms
 7  108.170.244.161 (108.170.244.161)  51.840 ms 108.170.244.225 (108.170.244.225)  53.647 ms 108.170.244.161 (108.170.244.161)  55.356 ms
 8  108.170.244.225 (108.170.244.225)  57.183 ms 108.170.244.161 (108.170.244.161)  59.574 ms 216.239.58.33 (216.239.58.33)  63.589 ms
 9  google-public-dns-a.google.com (8.8.8.8)  65.886 ms 72.14.232.107 (72.14.232.107)  68.542 ms google-public-dns-a.google.com (8.8.8.8)  70.462 ms
traceroute google.fr

route

La commande route permet d’afficher la table de routage.

Exemple :

route -n
Table de routage IP du noyau
Destination     Passerelle      Genmask         Indic Metric Ref    Use Iface
0.0.0.0         10.0.2.2        0.0.0.0         UG    100    0        0 enp0s3
10.0.2.0        0.0.0.0         255.255.255.0   U     100    0        0 enp0s3
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 enp0s3

Sous Windows on utilisera la commande route print ou netstat -r.


arp

La commande arp permet de manipuler la table ARP. Dans cette table, on trouve la correspondance entre adresse IP et MAC. Une requête ARP est émise pour connaître l’adresse MAC d’une machine dont on connaît l’IP.

Exemple, pour afficher la table arp :

arp -an
? (10.0.2.2) à 52:54:00:12:35:02 [ether] sur enp0s3

Adresse IP, couche 3, réseau, du modèle OSI

Adresse MAC, couche 2, du modèle OSI

La table CAM sur un commutateur (switch) contient les adresses MAC associées à ses ports.


netstat

La commande netstat permet de voir sur quel port écoute un processus démon. Les ports ainsi que les protocoles TCP et UDP sont utilisés par la couche 4, transport, du modèle OSI.

Exemples :

netstat -anp --inet
netstat -antp
Connexions Internet actives (serveurs et établies)
Proto Recv-Q Send-Q Adresse locale          Adresse distante        Etat       PID/Program name
tcp        0      0 127.0.1.1:53            0.0.0.0:*               LISTEN      1284/dnsmasq

Plus d’informations sur les ports.

Voir les ports ouverts sous Linux :

Ports Linux

Lien entre services et ports (UNIX-Linux) :

Services et ports

Avoir un aperçu rapide du trafic réseau avec la commande iftop :

Iftop surveiller le trafic réseau depuis un terminal Sous Ubuntu ou Linux Mint et Debian


Mes notes concernant les lignes de commande que j’ai utilisées dans le cadre de l’installation de serveurs sous Debian 7 ( DNS, Apache, NFS…). On peut y retrouver d’autres informations sur les commandes Shell et le réseau :

Quelques commande utiles sous Linux


Pour aller plus loin

Nmap sert à explorer un réseau informatique et à obtenir de nombreuses informations.

Nmap

Wireshark est un célèbre logiciel libre qui permet l’analyse des paquets en transit sur un réseau en les interceptant. Des filtres permettent de n’afficher que les paquets répondant à certains critères.

Wireshark

UFW (Uncomplicated Firewall) permet de simplifier la gestion du pare-feu de Linux. C’est un logiciel en ligne de commandes (utile sur un serveur).

UFW-La gestion du pare-feu (Ubuntu-Debian)