Académique Documents
Professionnel Documents
Culture Documents
14.1 Présentation
L'accès au réseau est une caractéristique clé de la plupart des systèmes
Linux. Les utilisateurs veulent surfer sur le net, envoyer et recevoir des e-mails
et transférer des fichiers avec d'autres utilisateurs.
Généralement, les programmes qui exécutent ces fonctions, tels que les
navigateurs Web et les clients de messagerie, sont relativement faciles à
utiliser. Cependant, ils reposent tous sur une caractéristique importante : la
capacité de votre ordinateur à communiquer avec un autre ordinateur. Pour avoir
cette communication, vous devez savoir comment configurer le réseau de votre
système.
Linux vous fournit plusieurs outils pour configurer votre réseau et surveiller ses
performances.
1
communique via un réseau avec un
autre appareil.
2
Un Une fonctionnalité fournie par un
service hébergeur est un service . Un exemple
de service serait lorsqu'un hôte fournit
des pages Web à un autre hôte.
3
14.3 Terminologie des fonctionnalités
de mise en réseau
En plus des termes de mise en réseau abordés dans la dernière section, il existe
des termes supplémentaires avec lesquels vous devez vous familiariser. Ces
termes se concentrent davantage sur les différents types de services de mise en
réseau couramment utilisés, ainsi que sur certaines des techniques utilisées pour
communiquer entre les machines.
4
Nom Chaque hôte sur un réseau peut avoir
d'hôte son propre nom d' hôte car les noms
sont plus naturels à retenir pour les
humains que les chiffres, ce qui nous
permet d'adresser plus facilement les
paquets réseau à un autre hôte. Les
noms d'hôte sont traduits en adresses IP
avant que le paquet réseau ne soit
envoyé sur le réseau.
5
fournit ces informations.
6
TCP/IP Le protocole de contrôle de
transmission/protocole Internet
(TCP/IP) est un nom fantaisiste pour un
ensemble de protocoles (rappelez-vous,
protocole = ensemble de règles) qui sont
utilisés pour définir comment la
communication réseau doit avoir lieu
entre les hôtes. Bien qu'il ne s'agisse pas
du seul ensemble de protocoles utilisés
pour définir la communication réseau,
c'est le plus souvent utilisé. Par
exemple, TCP/IP inclut la définition du
fonctionnement des adresses IP et des
masques de réseau.
14.4 Adresses IP
Comme mentionné précédemment, les hôtes adressent les paquets réseau en
utilisant l'adresse IP de la machine de destination. Le paquet réseau comprend
également une adresse de retour , qui est l'adresse IP de la machine émettrice.
Il existe en fait deux types d'adresses IP différentes : IPv4 et IPv6 . Pour
comprendre pourquoi il existe deux types différents, vous devez comprendre un
bref historique de l'adressage IP.
Pendant de nombreuses années, la technique d'adressage IP utilisée par tous les
ordinateurs était IPv4. Dans une adresse IPv4, un total de quatre nombres de 8
bits sont utilisés pour définir l'adresse. Ceci est considéré comme une adresse 32
bits (4 x 8 = 32). Par example:
192.168.10.120.
7
pour diverses raisons. De plus, de nombreuses organisations n'ont pas utilisé
toutes les adresses IP dont elles disposent.
Bien qu'il semble qu'il devrait y avoir beaucoup d'adresses IP, divers facteurs ont
conduit à un problème : Internet a commencé à manquer d'adresses IP.
Ce problème a encouragé le développement d'IPv6. IPv6 a été officiellement
créé en 1998. Dans un réseau IPv6, les adresses sont beaucoup plus grandes, des
adresses 128 bits qui ressemblent à ceci :
2001:0db8:85a3:0042:1000:8a2e:0370:7334
8
Néanmoins, la plupart des experts s'accordent à dire qu'IPv6 remplacera
éventuellement IPv4, il est donc recommandé de comprendre les bases des deux
pour ceux qui travaillent dans l'industrie informatique.
Filaire ou sans fil ? La configuration d'un appareil sans fil est
légèrement différente de la configuration d'un appareil filaire en
raison de certaines des fonctionnalités supplémentaires que l'on
trouve généralement sur les appareils sans fil (telles que la
sécurité).
DHCP ou adresse statique ? Rappelez-vous qu'un serveur DHCP
fournit des informations sur le réseau, telles que votre adresse IP et
votre masque de sous-réseau. Si vous n'utilisez pas de serveur
DHCP, vous devrez fournir manuellement ces informations à votre
hôte, qui est appelé à l'aide d'une adresse IP statique.
9
14.5.1.1 Fichier de configuration IPv4
primaire
Sur un système CentOS, le fichier de configuration principal pour une interface
réseau IPv4 est le /etc/sysconfig/network-scripts/ifcfg-eth0 fichier. La machine
virtuelle de ce chapitre est basée sur Debian et n'a donc pas le sysconfig
dossier. Cependant, à des fins de démonstration uniquement, ce qui suit montre
à quoi ressemble ce fichier lorsqu'il est configuré pour une adresse IP statique
10
14.5.1.2 Fichier de configuration IPv6
primaire
Sur un système CentOS, le fichier de configuration IPv6 principal est le même
fichier dans lequel la configuration IPv4 est stockée ; le /etc/sysconfig/network-
scripts/ifcfg-eth0dossier. Si vous souhaitez que votre système ait une adresse
IPv6 statique, ajoutez ce qui suit au fichier de configuration :
IPV6INIT=oui
IPV6ADDR=<Adresse IP IPv6>
IPV6_DEFAULTGW=<Adresse de passerelle IP IPv6>
Si vous souhaitez que votre système soit un client DHCP IPv6, ajoutez le
paramètre suivant :
DHCPV6C=oui
NETWORKING_IPV6=oui
Considère ceci
La méthode largement acceptée pour apporter des modifications à une interface
réseau consiste à désactiver l'interface à l'aide d'une commande telle que ifdown
eth0, à apporter les modifications souhaitées au fichier de configuration, puis à
remettre l'interface en service à l'aide d'une commande telle que ifup eth0.
Une autre méthode moins spécifique consiste à redémarrer entièrement la mise
en réseau du système, avec une commande telle que service network restart, qui
désactive TOUTES les interfaces, relit tous les fichiers de configuration
associés, puis redémarre la mise en réseau du système.
Le redémarrage du service réseau peut perturber bien plus que la simple
interface qu'un utilisateur souhaitait modifier, utilisez donc les commandes les
plus limitées et les plus spécifiques pour redémarrer l'interface si possible.
L'exemple suivant montre comment la servicecommande devrait être exécutée
sur un système CentOS :
[root@localhost ~]# redémarrage du réseau de service
Arrêt de l'interface eth0 : État de l'appareil : 3 (déconnecté)
11
[ D'accord ]
Arrêt de l'interface de bouclage : [ OK ]
Affichage de l'interface de bouclage : [ OK ]
Affichage de l'interface eth0 : état de la connexion active : activé
Chemin de connexion actif :
/org/freedesktop/NetworkManager/ActiveConnection/1
[ D'accord ]
12
14.5.1.4 Fichiers de configuration
réseau
La résolution de noms sur un hôte Linux est réalisée par 3 fichiers critiques : les
fichiers /etc/hosts, /etc/resolv.confet /etc/nsswitch.conf. Ensemble, ils décrivent
l'emplacement des informations de service de noms, l'ordre dans lequel vérifier
les ressources et où aller pour ces informations.
Des dossiers Explication
Sortie omise...
Sortie omise...
14
signifie que le /etc/hosts fichier sera analysé pour une
correspondance avec le nom demandé.
2. Deuxièmement, le système consultera le /etc/hosts fichier pour
tenter de résoudre le nom. Si le nom correspond à une entrée
dans /etc/hosts, il est résolu.
Il ne basculera pas (ou ne continuera pas) vers l'option DNS, même
si la résolution est inexacte. Cela peut se produire si l'entrée
dans /etc/hosts pointe vers une adresse IP non attribuée.
3. Troisièmement, si le /etc/hosts fichier local n'aboutit pas à une
correspondance, le système utilisera les entrées de serveur DNS
configurées contenues dans le /etc/resolv.conf fichier pour tenter de
résoudre le nom.
Le /etc/resolv.conf fichier doit contenir au moins deux entrées pour
les serveurs de noms, comme le fichier d'exemple ci-dessous :
root@localhost : ~ # ifconfig
eth0 Link encap:Ethernet HWaddr b6:84:ab:e9:8f:0a
adresse inet : 192.168.1.2 Bcast : 0.0.0.0 Masque : 255.255.255.0
adresse inet6 : fe80 :: b484: abff: fee9: 8f0a/64 portée : lien
UP BROADCAST EN COURS MULTICAST MTU : 1 500 Métrique : 1
Paquets RX : 95 erreurs : 0 abandonnées : 4 dépassements : 0 trame : 0
Paquets TX : 9 erreurs : 0 abandonnées : 0 dépassements : 0 porteuse : 0
collisions:0 txqueuelen:1000
Octets RX : 25 306 (25,3 Ko) Octets TX : 690 (690,0 B)
lo Link encap:Local Loopback
adresse inet : 127.0.0.1 Masque : 255.0.0.0
inet6 addr: ::1/128 Portée:Hôte
BOUCLE HAUTE EN COURS MTU : 65536 Métrique : 1
Paquets RX : 6 erreurs : 0 abandonnées : 0 dépassements : 0 trame : 0
Paquets TX : 6 erreurs : 0 abandonnées : 0 dépassements : 0 porteuse : 0
16
collisions:0 txqueuelen:0
Octets de réception : 460 (460,0 B) Octets de transmission : 460 (460,0 B)
Le lo périphérique est appelé périphérique de bouclage . Il s'agit d'un
périphérique réseau spécial utilisé par le système lors de l'envoi de données
basées sur le réseau à lui-même.
La ifconfigcommande peut également être utilisée pour modifier temporairement
les paramètres réseau. En règle générale, ces modifications doivent être
permanentes, il ifconfigest donc relativement rare d'utiliser la commande pour
effectuer de telles modifications.
14.6.2 La commande ip
La ifconfigcommande devient obsolète dans certaines distributions Linux
(obsolète) et est remplacée par une forme de la ipcommande, en particulier ip
addr show.
La ipcommande diffère de ifconfigplusieurs manières importantes, principalement
en raison de ses fonctionnalités accrues et de son ensemble d'options, elle peut
presque être un guichet unique pour la configuration et le contrôle de la mise en
réseau d'un système. Le format de la ipcommande est le suivant :
17
root@localhost : ~ # ifconfig
eth0 Link encap:Ethernet HWaddr 00:0c:29:71:f0:bb
adresse inet : 172.16.241.140 Bcast : 172.16.241.255 masque :
255.255.255.0
adresse inet6 : fe80 :: 20c: 29ff: fe71: f0bb/64 Portée : lien
UP BROADCAST EN COURS MULTICAST MTU : 1 500 Métrique : 1
Paquets RX : 8506 erreurs : 0 abandonnées : 0 dépassements : 0 trame : 0
Paquets TX : 1201 erreurs : 0 abandonnées : 0 dépassements : 0 porteuse :
0
collisions:0 txqueuelen:1000
Octets de réception :8933700 (8,9 Mo) Octets de transmission :117237
(117,2 Ko)
18
2 : eth0 : <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc
pfifo_fast state UP group default qlen 1000
lien/éther 00:0c:29:71:f0:bb brd ff:ff:ff:ff:ff:ff
inet 172.16.241.140/24 brd 172.16.241.255 portée globale eth0
valid_lft pour toujours prefer_lft pour toujours
lien de portée inet6 fe80 :: 20c: 29ff: fe71: f0bb/64
valid_lft pour toujours prefer_lft pour toujours
Les deux affichent le type d'interface, les protocoles, le matériel et les adresses
IP, les masques de réseau et diverses autres informations sur chacune des
interfaces actives du système.
root@localhost : ~ # route
Table de routage IP du noyau
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 * 255.255.255.0 U 0 0 0 eth0
par défaut 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
La première ligne en surbrillance dans l'exemple précédent indique que tout
paquet réseau envoyé à une machine du 192.168.0 réseau n'est pas envoyé à une
machine passerelle (le * indique pas de passerelle). La deuxième ligne en
surbrillance indique que tous les autres paquets réseau sont envoyés à l'hôte avec
l'adresse IP de 192.168.1.1(le routeur).
Certains utilisateurs préfèrent afficher ces informations avec des données
numériques uniquement, en utilisant l' -noption de la routecommande. Par
exemple, comparez les éléments suivants et concentrez-vous sur l'endroit où la
sortie précédente affichait le motdefault :
root@localhost : ~ # route -n
Table de routage IP du noyau
19
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
Le 0.0.0.0fait référence à toutes les autres machines et est identique à la valeur
par défaut .
La routecommande devient obsolète dans certaines distributions Linux (obsolète)
et est remplacée par une forme de la ipcommande, spécifiquement ip routeou ip
route show. Notez que les mêmes informations mises en évidence ci-dessus
peuvent également être trouvées à l'aide de cette commande :
20
--- 192.168.1.2 statistiques de ping ---
4 paquets transmis, 4 reçus, 0% de perte de paquets, temps 2999ms
rtt min/moy/max/mdev = 0,043/0,052/0,064/0,007 ms
Il est important de noter que ce pingn'est pas parce que la commande échoue que
le système distant est inaccessible. Certains administrateurs configurent leurs
machines (et même des réseaux entiers !) pour ne pas répondre aux pingrequêtes
car un serveur peut être attaqué par ce qu'on appelle une attaque par déni de
service . Dans ce type d'attaque, un serveur est submergé par un nombre
considérable de paquets réseau. En ignorant les pingrequêtes, le serveur est
moins vulnérable.
Par conséquent, la pingcommande peut être utile pour vérifier la disponibilité des
machines locales, mais pas toujours pour les machines en dehors de votre propre
réseau.
Considère ceci
De nombreux administrateurs utilisent la pingcommande avec un nom d'hôte, et
si cela échoue, utilisez l'adresse IP pour voir si le problème réside dans la
résolution du nom d'hôte du périphérique. Utiliser d'abord le nom d'hôte permet
de gagner du temps ; si cette pingcommande réussit, la résolution de nom est
correcte et l'adresse IP fonctionne également correctement.
21
14.6.5 La commande netstat
La netstat commande est un outil puissant qui fournit une grande quantité
d'informations sur le réseau. Il peut être utilisé pour afficher des informations
sur les connexions réseau ainsi que pour afficher la table de routage similaire à
la routecommande.
Par exemple, pour afficher des statistiques sur le trafic réseau, utilisez l' -ioption
de la netstatcommande :
root@localhost : ~ # netstat -i
Tableau d'interface du noyau
Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-
DRP TX-OVR Flg
eth0 1500 0 137 0 4 0 12 0 0 0 BMRU
lo 65536 0 18 0 0 0 18 0 0 0 LRU
Les statistiques les plus importantes de la sortie ci-dessus sont les TX-OKet TX-
ERR. Un pourcentage élevé de TX-ERRpeut indiquer un problème sur le réseau,
tel qu'un trafic réseau trop important.
Pour utiliser la netstatcommande afin d'afficher les informations de routage,
utilisez l' -roption :
root@localhost : ~ # netstat -r
Table de routage IP du noyau
Destination Gateway Genmask Drapeaux MSS Window irtt Iface
192.168.1.0 * 255.255.255.0 U 0 0 0 eth0
par défaut 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
22
qui permet aux utilisateurs distants de se connecter doit être démarré (ce qui est
généralement le cas pour la plupart des distributions Linux).
Pour voir une liste de tous les ports actuellement ouverts, utilisez la commande
suivante :
23
Sur certaines distributions, vous pouvez voir le message suivant dans la page de
manuel de la netstatcommande :
REMARQUE
Ce programme est obsolète. Le remplacement de netstat est ss . Le
remplacement de
netstat -r est ip route . Le remplacement de netstat -i est ip -s link .
Le remplacement de netstat -g est ip maddr .
14.6.6 La commande ss
La sscommande est conçue pour afficher les statistiques de socket et prend en
charge tous les principaux types de paquets et de sockets. Conçu pour remplacer
et avoir une fonction similaire à la netstatcommande, il affiche également
beaucoup plus d'informations et a plus de fonctionnalités.
La principale raison pour laquelle un utilisateur utiliserait la sscommande est de
voir quelles connexions sont actuellement établies entre sa machine locale et des
machines distantes, des statistiques sur ces connexions, etc.
Semblable à la netstatcommande, vous pouvez obtenir de nombreuses
informations utiles à partir de la sscommande seule, comme indiqué dans
l'exemple ci-dessous.
root@localhost : ~ # ss
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
u_str ESTA 0 0 * 104741 * 104740
u_str ESTAB 0 0 /var/run/dbus/system_bus_socket 14623 * 14606
u_str ESTAB 0 0 /var/run/dbus/system_bus_socket 13582 * 13581
u_str ESTAB 0 0 /var/run/dbus/system_bus_socket 16243 * 16242
u_str ESTA 0 0 * 16009 * 16010
24
u_str ESTAB 0 0 /var/run/dbus/system_bus_socket 10910 * 10909
u_str ESTAB 0 0 @/tmp/dbus-LoJW0hGFkV 15706 * 15705
u_str ESTA 0 0 * 24997 * 24998
u_str ESTA 0 0 * 16242 * 16243
u_str ESTAB 0 0 @/tmp/dbus-opsTQoGE 15471 * 15470
25
root@localhost : ~ # ss -s
Total : 1000 (noyau 0)
TCP : 7 (établi 0, fermé 0, orphelin 0, synrecv 0, timewait 0/0), ports 0
Considère ceci
La sscommande affiche généralement de nombreuses lignes de données, et il
peut être quelque peu intimidant d'essayer de trouver ce que vous voulez dans
toute cette sortie. Envisagez d'envoyer la sortie à la lesscommande pour rendre la
sortie plus gérable. Les téléavertisseurs permettent à l'utilisateur de faire défiler
vers le haut et vers le bas, d'effectuer des recherches et de nombreuses autres
fonctions utiles à l'intérieur des paramètres de la lesscommande.
Bien que la sscommande offre de nombreuses options différentes pour collecter
et afficher des informations, les exemples ci-dessus sont les plus courants, et
tout le reste serait en dehors de la portée des objectifs de l'examen à ce niveau.
26
;; options globales : +cmd
;; J'ai eu la réponse :
;; ->>HEADER<<- opcode : QUERY, statut : NOERROR, id : 45155
;; drapeaux : qr aa rd ra ; REQUÊTE : 1, RÉPONSE : 1, AUTORITÉ : 1,
SUPPLÉMENTAIRE : 0
;; SECTION DE RÉPONSE :
exemple.com. 86400 DANS UN 192.168.1.2
;; SECTION AUTORITÉ :
exemple.com. 86400 IN NS example.com.
D'autres options existent pour interroger les différents aspects d'un DNS comme
un CNAME nom canonique -alias :
Une liste complète des informations DNS concernant example.com peut être
trouvée en utilisant l' option -a all :
;; SECTION DE RÉPONSE :
28
exemple.com. 86400 IN Exemple SOA.com. cserver.exemple.com. 2 604800
86400 2419200 604800
exemple.com. 86400 IN NS example.com.
exemple.com. 86400 DANS UN 192.168.1.2
;; SECTION SUPPLÉMENTAIRE :
exemple.com. 86400 DANS UN 192.168.1.2
bob@test : ~ $ sortie
29
Se déconnecter
Connexion au test fermée.
root@localhost : ~ #
Avertissement
Attention, si vous utilisez la exitcommande trop de fois, vous fermerez la fenêtre
du terminal dans laquelle vous travaillez !
30
c2:0d:ff:27:4c:f8:69:a9:c6:3e:13:da:2f:47:e4:c9.
Veuillez contacter votre administrateur système.
Ajoutez la clé d'hôte correcte dans /home/sysadmin/.ssh/known_hosts pour vous
débarrasser de ce message.
Clé incriminée dans /home/sysadmin/.ssh/known_hosts:1
La clé d'hôte RSA pour le test a changé et vous avez demandé une vérification
stricte.
La vérification de la clé de l'hôte a échoué.
Cette erreur peut indiquer qu'un hôte non autorisé a remplacé l'hôte
correct. Vérifiez auprès de l'administrateur du système distant. Si le système
était récemment réinstallé, il aurait une nouvelle clé RSA, ce qui causerait cette
erreur.
Dans le cas où ce message d'erreur est dû à une réinstallation d'une machine
distante, vous pouvez supprimer le ~/.ssh/known_hostsfichier de votre système
local (ou simplement supprimer l'entrée pour cette machine) et essayer de vous
reconnecter :
31
Voulez-vous vraiment continuer la connexion (oui/non) ? oui
Avertissement : Ajout permanent de 'test' (RSA) à la liste des hôtes connus.
Mot de passe de bob@test :
Dernière connexion : ven. 4 oct. 16:14:39 CDT 2013 depuis localhost
32