Les Commandes Réseaux

-< Les Commandes Réseaux >-

 

1- Configuration d'interface : la commande ifconfig (plus d'info man ifconfig)


ifconfig [interface]

ifconfig interface [aftype] options | adresse ...


Utilitaire principal. Permet d'assigner une adresse IP (par défaut) à une interface et de préciser des paramètres tels que le masque de sous-réseau.
Permet aussi de modifier l'adresse matérielle (adresse MAC) si les drivers et cartes réseau le permettent.

Permet enfin de visualiser les caractéristiques des interfaces configurées (sans option) ou de toutes les interfaces présentes(avec l'option -a).

ifconfig est utilisable pour d'autres protocoles que IP. Il permet de configurer des adresses IPV6 bien évidemment mais aussi des adresses IPX, X25 où AppleTalk (ddp).

L'affectation d'une adresse IPv4 (fonctionnement par défaut) configure généralement aussi un routage minimal. Par exemple si on affecte l'adresse 192.168.1.100 à l'interface eth0 la table de routage sera augmentée d'une route vers le réseau 192.168.1.0 via l'interface configurée eth0.

Exemples :

#ifconfig eth0 192.168.1.100

#ifconfig eth0 192.168.1.200 netmask 255.255.255.0 broadcast 192.168.1.255 gw 192.168.1.254

exemple en donnant un nom de machine au lieu du numéro IP
#ifconfig eth0 goodspeedreseau

Il est alors nécessaire que l'adresse IP figure dans le fichier /etc/hosts sur une ligne de la manière suivante :

192.168.100.100 goodspeedreseau


Il est possible d'inhiber une interface avec l'argument down et d'effectuer la remise en service avec l'argument up.

#ifconfig eth0 down

#ifconfig eth0 up

Particularité IPv6 :

Dans ce mode il est inutile de préciser une adresse. La commande ifconfig eth0 up suffira. Le module noyau IPv6 affecte automatiquement une adresse "lien local" qui commence par fe80: et se termine par l'adresse MAC étendue sur 64 bits (par ajout au milieu de fffe et par inversion du second bit de poids faible du premier octet).
Si en outre il existe un routeur sur le réseau et que celui-ci soit configuré pour autoriser l'autoconfiguration des interfaces, alors une adresse de portée globale (une adresse officielle Internet IPv6) sera affectée à l'interface.


2- Interroger un serveur de nom : la commande nslookup


L'utilitaire nslookup permet d'interroger un serveur de nom (serveur dns) afin d'avoir des informations sur un domaine ou sur une machine. Par défaut nslookup utilise le serveur de nom configuré sur votre machine, vous pouvez toutefois interroger un autre serveur de nom.
#nslookup
Default Serveur: localhost Car j'ai un serveur dns sur ma machine
Address: 127.0.0.1

>help Pour avoir de l'aide
>set type = MX Pour lister les entrées de type MX (à savoir les serveurs SMTP du domaine).
>ac-creteil.fr Le nom du domaine dont vous voulez avoir des MX
Remplacer MX par le type d'enregistrement que vous souhaitez avoir. Par exemple NS pour les serveurs de nom d'un domaine, SOA pour start of authority, PTR pour le reverse, A pour une machine.
Pour avoir toutes les informations
set type=ANY puis le nom du domaine.
On peut aussi utiliser la commande ls -t CNAME nom_du_domaine pour avoir tous les enregistrements de type cname (les alias).
Pour interroger un autre serveur DNS que votre serveur par défaut server NAME 195.98.246.50.

3- host


Commande presque équivalente à nslookup, mais dont l’usage est plus simple.
#host –a wanadoo.fr 193.252.19.1 Donne de informations sur le domaine wanadoo.fr
#host –v –t mx wanadoo.fr 193.252.19.1 Donne des informations sur les MX du domaine Wanadoo (vous pouvez indiquer un autre DNS).
#host –l –t any wanadoo.fr pour obtenir toutes les machines du domaine Wanadoo. Ici je n’ai pas indiqué de DNS. Le DNS par défaut sera utilisé, mais si ce serveur DNS n’est pas le DNS du domaine il indiquera qu’il n’est pas authoritative.


4- Configuration au boot : commande ifup

La commande ifup permet de configurer toutes les interfaces de la machine, y compris la boucle locale lo au moment du boot. En réalité il ne s'agit que d'une utilité permettant d'appeler l'incontournable ifconfig et cela pour toutes les interfaces à configurer.
ifup trouve les paramètres de configuration dans des fichiers spécifiques aux interfaces.
Sous Debian il s'agit du fichier /etc/network/interfaces.

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 91.XXX.XXX.21X
netmask 255.255.255.0
network 91.XXX.XXX.0
broadcast 91.XXX.XXX.255
gateway 91.XXX.XXX.254

5- Configuration du routage : commande route

route [-CFvnee]
route [-v] [-A famille] add [-net|-host] cible [netmask
Nm] [gw Gw] [metric N] [mss M] [window W] [irtt I]
[reject] [mod] [dyn] [reinstate] [[dev] If]
route [-v] [-A famille] del [-net|-host] cible [gw Gw]
[netmask Nm] [metric N] [[dev] If]
route [-V] [--version] [-h] [--help]

Cette commande permet de paramétrer le routage d'une machine (routage statique) et de visualiser la table de routage (sans options ou avec l'option -n).
Pour fixer une route normale (hors route par défaut) il est nécessaire de préciser le netmask associé soit avec l'option netmask soit en notation CIDR avec un "/" suivi par le nombre de bits du masque.

Exemples :

#route add -net 192.168.10.0 gateway 192.168.10.1 netmask 255.255.255.0

ou

#route add -net 192.168.10.0/24 gateway 192.168.10.1

Les deux exemples ci-dessus montrent deux manières légèrement différentes de créer une route vers un même réseau sur une même machine. La différence est dans la manière de préciser le netmask, explicitement dans le premier cas, en notation CIDR dans le second.
Route par défaut :

Exemple :

#route add default gateway 192.168.10.1

si la "passerelle" par défaut est 192.168.10.1


Suppression d'une route : paramètre del

exemple :

#route del -net 192.168.10.0/24 gateway 192.168.10.1

Pour voir les routes il suffit d'indiquer :

#route -n

L'option -n permet de ne pas avoir la résolution des noms.

Pour avoir la route que vous venez d'ajouter à chaque démarrage, placer la commande dans le fichier /etc/rc.d/rc.local

6- Visualisation des adresses physiques connues de la machine : commande arp


Cette commande permet de visualiser les adresses de niveau Ethernet connues de la machines et "résolues" par le protocole ARP. Toutes les adresses connues seront affichées avec l'option -a.
Rappel sur ARP

Lorsqu'une machine désire envoyer un paquet IP à une autre machine elle a besoin de connaître l'adresse de niveau 2 de cette machine de destination, son adresse Ethernet s'il s'agit de ce type de réseau. Il s'agit de l'adresse réseau local, ou encore adresse MAC (Medium Access Control dans la terminologie IEEE). Ce type d'adresse n'est généralement pas géré manuellement, les adresses sont affectées par les constructeurs des cartes interfaces.
La machine a donc besoin de construire un datagramme de type Ethernet et de placer dans le champ adresse de destination l'adresse Ethernet de la machine dessinatrice. Celle-ci sera obtenue grâce au protocole ARP (Adress Resolution Protocol)en envoyant une trame en broadcast sur le réseau contenant une requête demandant quelle est l'adresse Ethernet de la machine dont on fournit l'adresse IP dans la requête. Si une machine du réseau se reconnaît, cette dernière répond alors directement en indiquent son adresse MAC.
Cette adresse est stockée dans un cache pendant un petit moment (la résolution n'est pas faite pour chaque paquet IP émis). C'est ce cache que permet de visualiser la commande arp.

#arp -a [nom_machine] : afficher les entrées concernant la machine spécifiée et si une machine n'est pas spécifiée, toutes les entrées ARP de la table

#arp -d nom_de_la_machine : pour supprimer de la table une entrée pour la machine spécifiée ;

#arp -s nom_machine adr_mac : crée manuellement une correspondance d'adresse ARP pour la machine nom_machine avec l'adresse matérielle (MAC) positionnée à adr_mac

7- Obtenir des informations d'état : commande netstat


Avec la commande netstat il est possible d'obtenir de nombreuses informations sur "l'état réseau" de la machine. En particulier avec les options :

-i : liste des interfaces en indiquant le nombre de paquets correctement transmis et reçus sur cette interface ainsi que le nombre de paquets erronés. Le MTU de chaque interface est aussi indiqué.

-a : liste des connexions en cours, aussi bien pour le protocole simplifié UNIX que pour les autres protocoles. Les connexions passives TCP ou UNIX (les points d'accès des serveurs) sont indiqués LISTEN.

-r : affiche la table de routage, de manière identique à la commande route utilisée sans argument (à part -n)

-p : affiche le nom et le numéro des processus associés aux connexions en cours (il faut être « root » pour pouvoir tout visualiser).

Pour voir les connexions actives :

#netstat -nt

Pour voir les ports ouverts :

#netstat -ntl

On peut aussi vérifier s'il existe une route par défaut, par exemple existe-t-il une route par défaut vers la machine 195.98.246.28 en utilisant la commande comme suit :

#netstat -nr | grep 159.128.154.28

autre option :
L'option -a énumère les ports en cours d'utilisation ou ceux qui sont écoutés par le serveur.

L'option -i donne des informations sur les interfaces réseau.

Noms de machines ou numéros IP ?

Les commandes comme route ou netstat -r sans autres arguments affichent la table de routage en tentant d'indiquer les noms de réseaux ou de machines et non les numéros correspondants. En fait ces commandes tentent une traduction nom/numéro via l'un des moyens possibles, à savoir : le fichier /etc/hosts, le service NIS ou le service DNS (selon le paramétrage indiqué dans /etc/nsswitch.conf).

Cette traduction peut parfois être longue et entraîner une lenteur désagréable pour l'utilisateur. Il est recommandé alors d'utiliser l'option -n de ces commandes pour interdire la traduction.

8- Tester la connectivité IP : la commande ping

Lorsqu'une interface est paramétrée sur une machine il convient de tout de suite tester la connectivité de la machine au réseau. Cela se fait avec la commande ping.
Cette commande permet aussi de tester l'accessibilité d'une autre machine n'importe où dans l'Internet, elle permet donc de tester le routage. Elle indique en outre les temps d'aller et retour des paquets IP entre la machine sur laquelle on lance la commande et la machine cible.
ping est la commande de base de l'administrateur réseau, le test premier. Lorsque ping permet d'atteindre une machine on peut être certain que la machine distante est en marche, que la machine locale est raccordée au réseau et que ce raccordement fonctionnne. On peut être certain aussi que le routage entre les deux machines est correct dans les deux sens. Une remarque sur ce dernier point : lorsqu'on met en pace un routage dans un réseau il est possible que les routes soient correctes dans un sens entre deux machines et pas dans l'autre sens. ping , dans ce cas nous indiquera simplement une non accessibilité.

#ping 192.168.1.10

#ping www.google.fr

9- Tester le routage : la commande traceroute

Cette commande permet de donner la liste des routeurs entre la machine sur laquelle on lance la commande et la machine cible. Pour chaque routeur traversé trois paquets de test sont envoyés et les trois temps d'aller et retour sont affichés.
L'option -n permet de ne pas faire les traductions adresses IP <-> nom de machine et permet un affichage plus rapide.
Certains routeurs détectent les paquets traceroute et n'y répondent pas. Certains pare-feux à l'entrée des réseaux d'entreprises filtrent aussi ces paquets (portant le protocole UDP pour un port destination ne correspondant pas à une application dans la machine destinatrice). Ce n'est donc pas un test infaillible, il peut cependant être très utile au sein des réseaux internes.
Par défaut la commande se termine à 30 routeurs traversés mais ce seuil est paramétrable.

#traceroute www.google.fr
traceroute to www.google.fr (209.85.229.99), 30 hops max, 40 byte packets
1 rbx-55-m2.routers.ovh.net (91.XXX.XXX.252) 0.391 ms 0.494 ms 0.487 ms
2 91.121.130.1 (91.121.130.1) 1.216 ms * *
3 * * 20g.ldn-1-6k.routers.chtix.eu (91.121.131.14) 35.011 ms
4 195.66.224.125 (195.66.224.125) 4.196 ms 4.201 ms 4.192 ms
5 64.233.175.27 (64.233.175.27) 4.403 ms 4.371 ms 4.366 ms
6 66.249.95.173 (66.249.95.173) 10.113 ms 10.200 ms 10.192 ms
7 209.85.251.231 (209.85.251.231) 10.257 ms 216.239.49.45 (216.239.49.45) 10.298 ms 209.85.251.231 (209.85.251.231) 10.246 ms
8 ww-in-f99.1e100.net (209.85.229.99) 10.547 ms 10.534 ms 10.695 ms


Les fichiers importants sous Linux

/etc/hosts : contient une liste d'adresses IP et les noms associés à ces adresses. Permet de se passer de DNS

/etc/services : liste des services standards, leur protocole ainsi que leur numéro de port. En général on ne touche pas à ce fichier, on finit même par oublier son existence...

/etc/resolv.conf : contient les informations sur la résolution de noms et d'adresses IP (nom versus adresse) par le service DNS. Ce fichier peut être automatiquement mis à jour lorsque l'adresse IP est configurée via DHCP. Dans les cas d'affectation statique il faut le remplir à la main ou mieux via les interfaces graphiques de paramétrage des interfaces.

/etc/nsswitch.conf : ce fichier permet de contrôler comment on accède aux différents services de nommage pour les utilisateurs (les noms de login) mais aussi pour les services réseaux. La ligne importante de ce fichier est celle commençant par le mot clé « hosts », elle permet d'indiquer comment sont résolues les associations adresses/nom_machine puisqu'il y a au moins trois solutions : le fichier hosts local (sous /etc), le fichier hosts centralisable par le service NIS (il est alors sur un serveur distant) ou alors le DNS. Par exemple, la ligne :

hosts: files nis dns

indique que la résolution prendra en compte successivement les trois possibilités dans cet ordre. Il n'y a pas de problème si le service NIS n'est pas mis en œuvre alors qu'il est indiqué ici.

Sous Debian :

Debian standard, knoppix, etc...

/etc/network/interfaces : la liste des interfaces et leur paramétrage, par exemple

auto lo eth0
iface lo inet loopback
iface eth0 inet dhcp

/etc/modules : fichier dans lequel on indique le nom du module driver correspondant à la carte réseau

Sous Redhat, Mandrake

/etc/sysconfig/network : première liste de paramètres de configuration

/etc/sysconfig/network-scripts/ifcfg-eth0 (ou lo, eth1, eth2...) : liste des paramètres pour l'interface en question.

10- Lister les fichiers ouverts et les processus actifs : La commande Lsof

Pour indiquer les processus de type internet :

#lsof -i

On peut ne demander que pour un protocole

#lsof -ni tcp:25

ou que vers une machine :

#lsof -ni @192.168.1.1:25

Pour connaître tous les fichiers ouverts par/sur /hda1 :

#lsof /dev/hda1

Pour connaître tous les ports réseaux ouverts par le processus 1234 (-a est interprété comme AND) :

#lsof -i -a -p 1234

La forme suivante de la commande permet de connaître tous les fichiers ouverts par l'utilisateur 500 ou toto ou par le processus 1234 ou 12345.

#lsof -p 1234, 12345 -u 500, toto

11- Telnet

Telnet était l'outil indispensable à connaître. Malheureusement, elle pose de sérieux problèmes de sécurité (elle transmet les mots de passe en clair sur le réseau). C'est pourquoi on lui préfère la commande ssh (ou la version autorisée en France ssf) surtout si on doit s'en servir sur un réseau local ou sur internet.

12- Télécharger des fichiers entre machines : la commande Ftp

ftp est un outil qui permet de télécharger des fichiers entre machines. Attention toutefois le serveur ftp pose un problème de sécurité important, utilisez plutôt SFTP, qui est disponible avec SSH.

#ftp localhost

Voici les commandes que vous allez utiliser le plus souvent :

dir pour lister un répertoire
cd nom_du_répertoire pour changer de répertoire
get mon_fichier pour copier un fichier vers votre client (obtenir). Il se place alors dans le répertoire où vous vous trouviez.
mget * copier tous les fichiers du répertoire vers votre station
put mon_fichier pour copier un fichier vers le serveur
mput * pour copier les fichiers se trouvant dans votre répertoire.
binary pour copier en mode binaire.
exit pour quitter



Il existe un grand nombre d'autres commandes. Mais vous avez là les principales, pour copier des fichiers entre machines. La commande ftp vous rendra un grand nombre de services, car elle permet assez simplement d'échanger des fichiers entre linux et windows, sans avoir à installer un client ftp ou à configurer samba.

13- Tcpdump

La commande tcpdump permet de faire des captures de paquets sur votre réseau. Il n'est pas le plus agréable à utiliser des utilitaires de ce type, des plus conviviaux existent. C'est un utilitaire qui peut autant être utilisé par les administrateurs que par des pirates. On peut par exemple l'utiliser pour capturer les mots de passe qui circulent en clair sur son réseau ou encore pour vérifier par exemple lorsque son routeur monte la ligne sans que l'on sache l'origine de cette montée de ligne. Comme de plus cela arrive la nuit (toujours quand on n'est pas là..!), il peut être utile de placer tcpdump et de capturer les paquets à destination de votre routeur et uniquement cela. Au petit matin en analysant le résultat vous savez quelle machine et quel protocole monte la ligne.

Par exemple pour intercepter tous les paquets vers la machine 10.200.56.35 sur le port telnet :

#tcpdump -l -q -x host 10.200.56.35 and port telnet

Pour intercepter tous les paquets d'une machine vers une autre sur le port telnet :

#tcpdump -l -q -x dst 10.200.56.35 and src 10.200.56.12 and port telnet and tcp

Pour avoir tous les paquets qui arrivent sur votre machine 10.200.56.35 ne pas indiquer la source.

14- Scanner les ports ouverts sur une machine distante : la commande Nmap

Pour scanner une machine :

#nmap 192.168.1.1

Pour scanner les machines se trouvant dans le plan d'adressage 192.168.1.0/24 :

#nmap 192.168.1.0/24

Utilisez l'option -v pour avoir plus d'informations. On peut bien sûr ne scanner que certains protocoles, par défaut le protocole scanné est TCP. Pour scanner les deux, TCP et UDP :

#nmap -v -sU -sT 192.168.1.1

Les options disponibles sont :

-sT Scanne les ports TCP -sU pour UDP (attention cela est inscrit dans les fichiers de log de la machine cible).

-sS Est identique au précédent sauf que cela ne laisse pas de trace. (il y a une différence quant à la méthode mais cela n'est pas l'objet de cette présentation).

-sP En fait un ping.

-p 20-140 Ne scanne que les ports entre 20 et 140 ;

-p 1024- scanne tous les ports à partir de 1024 ;

-I Pour avoir plus d'information sur le port ouvert, ne marche que si identd n’est pas utilisé sur la machine cible.

-O Permet de connaître l’os (voir aussi –osscan_guess).

-P0 Permet de scanner les machines qui n’autorisent pas les ICMP echo request.

Exemple :

#nmap -v -sU -sT 192.168.2.1

nmap n'est pas installé par défaut sur votre machine. Evitez de scanner des machines qui ne sont pas les votre. Ce produit a pour vocation de vérifier si votre machine est correctement configurée, pas pour tester les autres.

15- ntop
Un outil indispensable. Il tourne comme daemon et vous pouvez voir les résultats (entre autre ) via une interface web par défaut sur le port 3000 qu'il est possible de changer avec l'option -w.

16- Voir les dernieres connexion à votre machine : la commande last


Cette commande vous permet de voir les dernières connexions ayant eu lieu sur votre machine (en fait il lit le fichier /var/log/wtmp).
#last vous affiche toutes les informations.
#last Jean affiche toutes les connexions de l'utilisateur Jean.
#last reboot affiche tous les reboot de la machine avec la date.
#lastb est une variante de last, dans la mesure ou il ne cherche que les mauvais login (il lit le fichier /var/log/btmp)

Voir toutes les connexions en cours sur tous les ports
#watch lsof -i

 

Voir les utilisateurs connectés : la commande who

#who (ou #w )

 

Off

Rechercher

RizVN Login

Calendar

September 2017
S M T W T F S
27 28 29 30 31 1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

Traffic

Aujourd'hui209
Hier275
Cette semaine1900
Ce mois3124
Total186269

Info Visiteur

  • IP Visiteur : 54.225.26.154

Qui est connecté
1
Online

dimanche 24 septembre 2017 21:10