Analyser son réseau informatique

Temps de lecture approximatif : 24 minutes

OUTIL PERMETTANT  D’ANALYSER SON RESEAU INFORMATIQUE.

Les outils suivants sont indispensables à connaître lorsque l’on utilise un système sous Linux.

On ne peut ici donner toutes les options de ces commandes. N’oubliez donc pas que l’on peut avoir plus d’aide en tapant la commande suivie de –help, mais aussi

man nom_commande

Exemple:

netstat --help

ou

man netstat

Enfin souvenez-vous que sous Linux, on ne peut utiliser indifféremment les majuscules et les minuscules (la commande ping existe, pas la commande Ping).

 

+>>>>>>+
| PING |
+>>>>>>+

Cette commande est normalement connue de tous. Elle existe dans tous les systèmes. Elle permet de vérifier si une machine
distante répond. La syntaxe est des plus simple ping -c 5 192.168.0.1 pour envoyer 5 pings à la machine dont l’adresse
IP est 192.168.0.1.
On peut aussi utiliser le nom de la machine, si celle-ci est renseignée dans votre fichier Hosts ou dans un serveur DNS.
On peut par exemple utiliser ping pour vérifier si la connexion est toujours active ou pour la monter.
Si vous ne placez pas l’option -c 5 pour n’envoyer que 5 pings, la commande ne s’arrête pas. Utilisez alors Ctrl C.

Ajuster son MTU:
********************

Sous linux

On peut contrôler la valeur du MTU qui sera admis sur le réseau avec la commande:

ping -s <valeur du mtu souhaite> <adresse ip>

On peut aussi utiliser l’outil tracepath pour tunner le MTU

tracepath 193.51.184.89
1?: [LOCALHOST] pmtu 1500
1: nri-a-gi1-0-0-140.cssi.renater.fr.183.51.193.in-addr.arpa (193.51.183.186) 0.447ms
2: nri-b-g14-0-0-101.cssi.renater.fr (193.51.187.18) asymm 9 7.893ms
3: reims-pos2-0.cssi.renater.fr (193.51.179.150)
asymm 8 8.094ms
4: nancy-pos1-0.cssi.renater.fr (193.51.179.138)
asymm 7 7.898ms
5: strasbourg-pos2-0.cssi.renater.fr (193.51.180.42)
7.903ms
6: sonde-gip-strasbourg.cssi.renater.fr (193.51.184.89) 8.222ms reached
Resume: pmtu 1500 hops 6 back 6

Si le message affiché est de type « Le paquet doit être fragmenté, mais paramétré DF » alors il faut diminuer jusqu’à afficher un ping correct.

Sous Windows

ping -f -l <valeur du mtu souhaite> <adresse ip>

Pour connaitre toutes les machines qui répondent sur le réseau, faire un ping sur l’adresse de broadcast.

ping -b 10.0.80.255

ou

root@monserveur:~# time for ip in $(seq 1 254); do ping -c 1 192.168.20.$ip>/dev/null; [ $? -eq 0 ] && echo "192.168.20.$ip est en ligne" || : ; done
192.168.20.1 est en ligne
192.168.20.2 est en ligne
192.168.20.50 est en ligne
192.168.20.51 est en ligne
192.168.20.100 est en ligne
192.168.20.151 est en ligne
192.168.20.152 est en ligne
192.168.20.154 est en ligne
192.168.20.231 est en ligne
192.168.20.232 est en ligne
192.168.20.250 est en ligne
192.168.20.252 est en ligne
real 12m7.084s
user 0m0.160s
sys 0m0.068s
root@monserveur:~#

 

+>>>>>>>>>>+
| IFCONFIG |
+>>>>>>>>>>+

ifconfig permet de connaître la configuration de vos cartes réseau, mais aussi de changer celle-ci.
Pour changer la configuration de votre carte réseau, vous devez taper

# ifconfig eth0 192.168.0.2 netmask 255.255.255.0 broadcast 192.168.0.255

Comme les valeurs que je viens de donner sont standards, vous pouviez simplement taper ifconfig ETH0 192.168.0.2
(le netmask et broadcast proposés sont ceux correspondant à une adresse de classe C).
Attention au redémarrage de la machine ce changement sera perdu. Il vous faut donc modifier en même temps le fichier « /etc/sysconfig/network-script/ifcfg-eth0 ».
Vous pouvez utiliser linuxconf pour faire plus simplement le même travail.
On peut aussi désactiver une carte réseau ifconfig eth0 down et bien sûr la réactiver ifconfig eth0 up

 

+>>>>>+
| ARP |
+>>>>>+
La commande arp permet de mettre en correspondance des adresses IP et les adresses MAC. Les options possibles importantes sont:

arp -a pour avoir toutes les entrées ARP de la table
arp -d nom_de_la_machine pour supprimer une entrée de la table
arp -s nom_de_la_machine adresses_mac pour ajouter une nouvelle entrée dans la table.

root@monserveur:~\ NEW$ arp -a
 ? (192.168.10.80) at 52:54:00:d3:6d:72 [ether] on eth0
 IT134.mondomaine.fr (192.168.10.43) at 3c:d9:2b:5d:4f:73 [ether] on eth0
 IT110.mondomaine.fr (192.168.10.97) at 2c:41:38:a5:57:68 [ether] on eth0
 IT123.mondomaine.fr (192.168.10.15) at 3c:d9:2b:49:8a:ac [ether] on eth0
 IT102.mondomaine.fr (192.168.10.41) at 00:1d:60:a4:76:8e [ether] on eth0
 ? (192.168.10.243) at 00:26:55:86:55:06 [ether] on eth0
 monserveur1.mondomaine.ch (192.168.10.242) at 00:e0:81:76:b8:4c [ether] on eth0
 IT002.mondomaine.fr (192.168.10.93) at 00:17:31:8f:69:d9 [ether] on eth0
 IT132.mondomaine.fr (192.168.10.83) at 2c:27:d7:48:60:07 [ether] on eth0
 router.mondomaine.fr (192.168.10.1) at 00:30:18:4b:8f:61 [ether] on eth0
 IT133.mondomaine.fr (192.168.10.79) at 2c:27:d7:44:6f:01 [ether] on eth0
 IT121.mondomaine.fr (192.168.10.73) at e8:39:35:50:07:f0 [ether] on eth0
 ? (192.168.10.238) at 52:54:00:c7:74:d2 [ether] on eth0
 IT135.mondomaine.fr (192.168.10.20) at 3c:d9:2b:5e:14:96 [ether] on eth0
 ldap.mondomaine.fr (192.168.10.254) at 00:21:53:76:22:54 [ether] on eth0
 IT144.mondomaine.fr (192.168.10.55) at 6c:3b:e5:0c:cb:1b [ether] on eth0
 IT139.mondomaine.fr (192.168.10.14) at e8:39:35:4a:e3:46 [ether] on eth0
 ? (192.168.10.250) at 1c:c1:de:e8:76:f2 [ether] on eth0
 IT111.mondomaine.fr (192.168.10.19) at 2c:41:38:a1:b2:04 [ether] on eth0
 ? (192.168.10.16) at 00:11:85:11:cc:0e [ether] on eth0
 root@monserveur:~\ NEW$

 

+>>>>>>>+
| ROUTE |
+>>>>>>>+
Cette commande permet de voir, d’ajouter ou d’enlever les routes se trouvant déclarées sur votre machine.
Ainsi pour indiquer à votre machine où aller trouver les adresses qui ne sont pas les adresses de votre réseau local,
vous devez lui indiquer la passerelle (ou gateway) vers laquelle elle doit envoyer tous les paquets.
Pour voir les routes indiquer :

route -n

(on peut aussi utiliser netstat -nr) L’option -n permet de ne pas avoir la résolution des noms.
Pour ajouter une route par defaut :

route add default gateway 192.168.0.1

(La passerelle vers qui j’envoie tous les paquets
qui ne sont pas pour le réseau local).

Pour détruire cette route:

 route del default

Pour ajouter une route vers une machine indiquer :

route add -host 195.98.246.28 gateway 192.168.0.1

(Indiquer le netmask si celui-ci n’est pas un mask correspondant à la classe de votre adresse).
Pour ajouter une route vers un réseau indiquer

route add -net 195.98.246.0 netmask 255.255.0.0 gateway 192.168.0.1

Enfin pour supprimer une de ces routes remplacer add par del.
La gateway ou passerelle correspond la plupart du temps à votre routeur.
Pour avoir la route que vous venez d’ajouter à chaque démarrage placer la commande dans le fichier /etc/rc.d/rc.local par exemple.
On peut aussi utiliser linuxconf pour faire la même chose.

 

+>>>>>>>>>+
| NETSTAT |
+>>>>>>>>>+
Voilà une commande moins connue et pourtant très utile. Je ne peux ici commenter toutes les options, je vous propose de
lire le man netstat. Elle permet en effet de connaître les ports en écoute sur votre machine, sur quelles interfaces,
avec quels protocoles de transport (TCP ou UDP), les connexions actives et de connaître les routes.
Pour voir les connexions actives

netstat -nt

pour 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 utilisez alors

netstat -nr | grep 195.98.246.28

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.

 

+>>>>>>+
| LSOF |
+>>>>>>+
lsof permet de lister les fichiers ouverts et les processus actifs.

lsof -i 

…indique les processus de type internet.

On peut ne demander que pour un protocol:

lsof -ni tcp:25

ou que vers une machine:

lsof -ni @192.168.0.1:25

Pour connaître tous les fichiers ouverts sur /hda1, utiliser

lsof /dev/hda1

Pour connaître tous les ports réseau ouvert par le processus 1234 (-a est interprété comme AND).

lsof -i -a -p 1234

Pour 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

Il existe des commandes pour faire cela (fuser,ps, netstat..), mais celle ci est très complète.

 

+>>>>>>>>>>>>+
| TRACEROUTE |
+>>>>>>>>>>>>+
Traceroute permet de déterminer la route prise par un paquet pour atteindre sa cible sur internet.
On peut utiliser soit l’adresse IP, soit le nom d’hôte. Attention certains FireWall ou routeurs ne se laissent pas voir
avec la commande traceroute.
La commande traceroute est très utile pour savoir ou peut se trouver un blocage (plutôt ralentissement). Il existe un grand
nombre d’options, entre autre il est possible de choisir les gateway (jusqu’à 8) pour atteindre une machine. Je vous conseille
donc encore une fois de lire le man traceroute.
Sous Windows, la commande similiaire est « tracert ».

 

+>>>>>>>>+
| TELNET |
+>>>>>>>>+
Telnet est l’outil indispensable à connaître. Il existe en tant que client sur tous les systèmes. Par contre Linux dispose en plus d’un serveur telnet permettant d’administrer à distance une machine (quoiqu’il existe maintenant un serveur telnet sur windows 2000). On peut ainsi administrer une machine linux depuis un Microsoft quelconque et, mais cela va de soi, depuis une autre machine linux.
En tant que client, telnet vous permet d’envoyer et de lire vos messages.
Pour pouvoir administrer à distance, il faut que le serveur telnet soit installé sur la machine que vous souhaitez administrer. Pensez aussi à vérifier que cela est autorisé dans le fichier « /etc/inetd.conf » et dans « /etc/hosts.allow » et « /etc/hosts.deny » (voir tcp wrappers).
Si vous devez vous en servir sur un réseau local ou sur internet, préférez lui SSH (ou la version autorisée en France SSF), car alors les mots de passe ne se promènent pas en clair sur le réseau.
Par défaut il n’est pas possible de se connecter en root avec une connexion telnet. Vous devez utiliser un autre compte et utiliser la commande su.

 

+>>>>>+
| FTP |
+>>>>>+
ftp est un outil qui permet de télécharger des fichiers entre machines. Vous connaissez les clients ftp comme ws_ftp.
Sous Linux il existe un serveur ftp, que vous activez dans « /etc/inetd.conf ». Il est installé par défaut dans toutes
les distributions. Ce serveur ftp n’est pas lié à l’installation d’apache, comme pour les systèmes Microsoft où vous devez installer IIS pour bénéficier de ce service. Attention toutefois le serveur ftp pose un problème de sécurité important, utilisez plutôt SFTP, qui est disponible avec SSH.
Vous disposez aussi d’un client ftp en ligne de commande sous Linux comme sous Microsoft. La syntaxe étant pratiquement la même.

[utilisateur@poste1 /]$ ftp www.metanetwork.fr
Connected to www.metanetwork.fr.
220 poste1.mondomaine.fr FTP server (Version wu-2.6.0(1) Mon Feb 28 10:30:36 EST
2000) ready.
Name (www.metanetwork.fr:utilisateur): utilisateur
331 Password required for utilisateur.
Password:
230 User utilisateur logged in.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> binary
200 Type set to I.
ftp> mget *

Voici les commandes que vous allez utiliser le plus :

dir                : pour lister un répertoire
cd nom_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.

 

+>>>>>>>>>>+
| 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.

 

+>>>>>>+
| HOST |
+>>>>>>+
Commande presque équivalente, mais dont l’usage est plus simple.

host –a un_domaine.fr 178.254.30.34

Donne de informations sur le domaine « un_domaine.fr »

host –v –t mx un_domaine.fr 178.254.30.34

Donne des informations sur les MX du
domaine « un_domaine.fr » (vous pouvez indiquer un autre DNS).

 host –l –t any un_domaine.fr

Pour obtenir toutes les machines du domaine « un_domaine.fr ». 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 ».

 

+>>>>>+
| WHO |
+>>>>>+
Cette commande permet de connaître les personnes qui sont loguées sur votre machine.

[root@mdubuntu opt]# who
moi :0 2014-10-04 12:15 (:0)
[root@mdubuntu opt]# 

 

+>>>>>>+
| 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          => sans rien, vous affiche toutes les informa-
                 tions.
last toto     => toutes les connexions de l'utilisateur toto.

last reboot   => 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).

 

+>>>>>>>>>>+
| TCPDUMP|
+>>>>>>>>>>+

Tcpdump permet de faire des captures de paquets sur votre réseau.
Mon but n’est pas ici de vous montrer comment devenir un pirate (en capturant les mots de passe qui circulent en clair sur votre réseau),
mais plus de vous permettre de vérifier par exemple lorsque votre routeur monte la ligne sans que vous ne soyez capable
de donner 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.

– Connaître les interfaces disponible pour l’utilisation de Tcpdump

 root@phlox1:~# tcpdump -D
 1.eth0
 2.ppp0
 3.tun0
 4.eth1
 5.eth2
 6.any (Pseudo-device that captures on all interfaces)
 7.lo
 root@phlox1:~#

– Filtrer sur tous les interfaces sur le port 80 avec comme @IP source 10.12.0.6

root@phlox1:~# tcpdump -i any port http and src 10.12.0.6
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
 listening on any, link-type LINUX_SLL (Linux cooked), capture size 65535 bytes
 15:34:53.311624 IP 10.12.0.6.58584 > 10.0.20.90.www: Flags [S], seq 3940698543, win 14220, options [mss 1348,sackOK,
 TS val 3816321 ecr 0,nop,wscale 6], length 0
 15:34:53.311703 IP 10.12.0.6.58584 > 10.0.20.90.www: Flags [S], seq 3940698543, win 14220, options [mss 1348,sackOK,
 TS val 3816321 ecr 0,nop,wscale 6], length 0
 ...

– Filtrer uniquement le protocol ICMP

root@poirier:~# tcpdump -i any -v icmp
tcpdump: listening on any, link-type LINUX_SLL (Linux cooked), capture size 96 bytes
 14:05:21.468901 IP (tos 0x0, ttl 58, id 0, offset 0, flags [DF], proto ICMP (1), length 84)
 10.12.0.6 > poirier.cbp.monclient_1.ch: ICMP echo request, id 4449, seq 11, length 64
 14:05:21.468901 IP (tos 0x0, ttl 58, id 0, offset 0, flags [DF], proto ICMP (1), length 84)
 10.12.0.6 > poirier.cbp.monclient_1.ch: ICMP echo request, id 4449, seq 11, length 64
...

– Pour intercepter tous les paquets vers la machine 10.100.1.5 sur le port telnet

 tcpdump -l -q -x host 10.100.1.5 and port telnet

– Pour intercepter tous les paquets d’une machine vers une autre sur le port telnet

tcpdump -l -q -x dst 10.100.1.5 and src 10.100.1.19 and port telnet and tcp

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

– Pour intercepter des paquets uniquement sur certains ports

root@rose:~# tcpdump -i eth0 -n port 67 and port 68
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
 listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
10:06:06.722642 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 00:0f:fe:f8:aa:94, length 305
 10:06:06.722969 IP 192.168.10.251.67 > 255.255.255.255.68: BOOTP/DHCP, Reply, length 300
 10:06:08.396086 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 00:0f:fe:f8:aa:94, length 300
 10:06:09.001897 IP 192.168.10.251.67 > 192.168.10.75.68: BOOTP/DHCP, Reply, length 310
 10:06:09.002623 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 00:0f:fe:f8:aa:94, length 311
 10:06:09.048039 IP 192.168.10.251.67 > 192.168.10.75.68: BOOTP/DHCP, Reply, length 342
 ...

– Intercepter des paquets provenant uniquement d’un réseau et correspondant à un ping

cycas:~# tcpdump -i any dst "net 192.168.20.0/24" and icmp -n
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
 listening on any, link-type LINUX_SLL (Linux cooked), capture size 65535 bytes
15:55:47.980171 IP 192.168.10.242 > 192.168.20.1: ICMP echo request, id 62723, seq 1, length 64
 15:55:47.980250 IP 192.168.10.242 > 192.168.20.1: ICMP echo request, id 62723, seq 1, length 64
 15:55:48.984104 IP 192.168.10.242 > 192.168.20.1: ICMP echo request, id 62723, seq 2, length 64
 ...
 ^C
 20 packets captured
 32 packets received by filter
 0 packets dropped by kernel
 cycas:~#

– Pour capturer le résultat dans un fichier

# tcpdump -w /tmp/capture_test_ext.dump

– Pour lire le fichier ensuite

# tcpdump -r /tmp/capture_test_ext.dump

– Pour capturer et enregistrer des trame VOIP

tcpdump -nqt -s 0 -A -vvv -i venet0 port 5060 -w /opt/tcpdump_voip_pendant-communication.cap

– Voici le résultat par exemple pour l’extension « 859123 »

tcpdump -vvv -r ./tcpdump_voip_pendant-communication.cap | less
...
...
11:29:44.130069 IP (tos 0x68, ttl 62, id 2488, offset 0, flags [none], proto UDP (17), length 995)
192.168.166.60.sip > 192.168.165.253.sip: [udp sum ok] SIP, length: 967
INVITE sip:0033675243429@192.168.165.253 SIP/2.0
Via: SIP/2.0/UDP 192.168.166.60:5060;branch=z9hG4bK-64913516
From: "JEAN TOTO FR" <sip:859123@192.168.165.253>;tag=1312206744e65beeo0
To: <sip:0033675243429@192.168.165.253>
Call-ID: 2360609b-65c7f94a@192.168.166.60
CSeq: 101 INVITE
Max-Forwards: 70
Contact: "JEAN TOTO FR" <sip:859123@192.168.166.60:5060>
Expires: 240
User-Agent: Cisco/SPA504G-7.4.9c
Content-Length: 405
Allow: ACK, BYE, CANCEL, INFO, INVITE, NOTIFY, OPTIONS, REFER, UPDATE
Supported: replaces
Content-Type: application/sdp
v=0
o=- 205694634 205694634 IN IP4 192.168.166.60
s=-
c=IN IP4 192.168.166.60
t=0 0
m=audio 16404 RTP/AVP 0 2 8 9 18 96 97 98 101
a=rtpmap:0 PCMU/8000
a=rtpmap:2 G726-32/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:9 G722/8000
a=rtpmap:18 G729a/8000
a=rtpmap:96 G726-40/8000
a=rtpmap:97 G726-24/8000
a=rtpmap:98 G726-16/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=ptime:30
a=sendrecv
0x0000: 494e 5649 5445 2073 6970 3a30 3033 3336
0x0010: 3735 3234 3334 3239 4031 3932 2e31 3638
0x0020: 2e31 3635 2e32 3533 2053 4950 2f32 2e30
0x0190: 5350 4135 3034 472d 372e 342e 3963 0d0a
0x01a0: 436f 6e74 656e 742d 4c65 6e67 7468 3a20
0x01b0: 3430 350d 0a41 6c6c 6f77 3a20 4143 4b2c
0x01c0: 2042 5945 2c20 4341 4e43 454c 2c20 494e
...
...
0x0380: 6d61 703a 3130 3120 7465 6c65 7068 6f6e
0x0390: 652d 6576 656e 742f 3830 3030 0d0a 613d
0x03a0: 666d 7470 3a31 3031 2030 2d31 350d 0a61
0x03b0: 3d70 7469 6d65 3a33 300d 0a61 3d73 656e
0x03c0: 6472 6563 760d 0a
11:29:44.130228 IP (tos 0x60, ttl 64, id 12022, offset 0, flags [none], proto UDP (17), length 571)
192.168.165.253.sip > 192.168.166.60.sip: [udp sum ok] SIP, length: 543
SIP/2.0 401 Unauthorized
Via: SIP/2.0/UDP 192.168.166.60:5060;branch=z9hG4bK-64913516;received=192.168.166.60
From: "JEAN TOTO FR" <sip:859123@192.168.165.253>;tag=1312206744e65beeo0
To: <sip:0033675243429@192.168.165.253>;tag=as520a28a4
Call-ID: 2360609b-65c7f94a@192.168.166.60
CSeq: 101 INVITE
Server: FPBX-2.10.1(10.12.2)
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH
Supported: replaces, timer
WWW-Authenticate: Digest algorithm=MD5, realm="asterisk", nonce="42c7f3eb"
Content-Length: 0
0x0000: 5349 502f 322e 3020 3430 3120 556e 6175
0x0010: 7468 6f72 697a 6564 0d0a 5669 613a 2053
0x0020: 4950 2f32 2e30 2f55 4450 2031 3932 2e31
0x0030: 3638 2e31 3636 2e36 303a 3530 3630 3b62
0x0040: 7261 6e63 683d 7a39 6847 3462 4b2d 3634
0x0050: 3931 3335 3136 3b72 6563 6569 7665 643d
...
...
0x00f0: 6134 0d0a 4361 6c6c 2d49 443a 2032 3336
0x0100: 3036 3039 622d 3635 6337 6639 3461 4031
0x0110: 3932 2e31 3638 2e31 3636 2e36 300d 0a43
0x0120: 5365 713a 2031 3031 2049 4e56 4954 450d

 

+>>>>>>+
| NMAP|
+>>>>>>+

nmap est un outil pour scanner les ports ouverts sur une machine distante. Son utilisation est des plus simple

nmap 192.168.0.1 

– Pour scanner une machine

nmap 192.168.0.0/24

– Pour scanner les machines se trouvant dans le plan d’adressage 192.168.0.0/24. Utilisez l’option -v pour avoir plus d’informations. On peut bien sur scanner que certains protocoles, par défaut le
protocole scanné est TCP. Pour scanner les deux

nmap -v -sU -sT 192.168.0.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,  
             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 –os
             scan_guess).
-P0       => Permet de scanner les machines qui n’autorisent
             pas le ICMP echo request.
[root@monserveur]# nmap -v -sU -sT 10.1.123.1
Starting nmap V. 2.30BETA17 by fyodor@insecure.org ( www.insecure.org/nmap/ )
Host (10.1.123.1) appears to be up ... good.
Initiating TCP connect() scan against (10.1.123.1)
Adding TCP port 139 (state Open).
Adding TCP port 25 (state Open).
Adding TCP port 110 (state Open).
Adding TCP port 21 (state Open).
Adding TCP port 135 (state Open).
Adding TCP port 80 (state Open).
Adding TCP port 1026 (state Open).
The TCP connect scan took 1 seconds to scan 1534 ports.
Initiating FIN,NULL, UDP, or Xmas stealth scan against (10.1.123.1)
The UDP or stealth FIN/NULL/XMAS scan took 4 seconds to scan 1534 ports.
Interesting ports on (10.1.123.1):
Port State Service
21/tcp open ftp
25/tcp open smtp
80/tcp open http
110/tcp open pop-3
135/tcp open loc-srv
137/udp open netbios-ns
138/udp open netbios-dgm
139/tcp open netbios-ssn
1026/tcp open nterm
Nmap run completed -- 1 IP address (1 host up) scanned in 5 seconds

– Lister toutes les machines avec le port 80 ouvert sur un réseau:

nmap -sS -O -p80 192.168.10.0/24

Il n’est pas installé par défaut sur votre machine, mais on commence à le trouver sur le CD d’installation des distributions.
Il existe une interface graphique (installer nmap-frontend en version rpm).
Evitez de scanner des machines qui ne sont pas vos machines. Ce produit a pour vocation de vérifier si votre machine
est correctement configurée, pas pour tester les autres 😉

 

+>>>>>>+
| 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.

 

+>>>>>>>>+
| IPTRAFE|
+>>>>>>>>+

#iptrafe
--> Choix "trafic monitor"
--> Choix "ppp1"

 

+>>>>>>>+
| VNSTAT|
+>>>>>>>+

Vnstat est également un outil permettant de surveiller la bande passante. En plus des fonctions de supervision temps réel que l’on peut trouver dans « bmon » et « ifstat », il propose de stocker les informations dans une base de données, ce qui lui permet d’afficher des rapports et des graphes.

 

+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>+
| EXEMPLE DE TEST DE BANDE PASSANTE|
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>+

elephant:~# wget http://test-debit.free.fr/16384.rnd
--2010-08-18 23:33:19-- http://test-debit.free.fr/16384.rnd
Résolution de test-debit.free.fr... 212.27.60.49
Connexion vers test-debit.free.fr|212.27.60.49|:80...connecté.
requête HTTP transmise, en attente de la réponse...200 OK
Longueur: 16777216 (16M) [text/plain]
Saving to: `16384.rnd'
100%[=======================================================>]
16'777'216 1.84M/s in 8.9s
2010-08-18 23:33:28 (1.80 MB/s) - « 16384.rnd » sauvegardé
[16777216/16777216]

1,80MB/s cela fais en gros 10Mbits/s.
Autre test en téléchargeant un cd de debian:

guepe:/tmp# wget http://cdimage.debian.org/debian-cd/6.0.4/i386/iso-cd/debian-6.0.4-i386-CD-1.iso
--2012-03-19 10:45:45-- http://cdimage.debian.org/debian-cd/6.0.4/i386/iso-cd/debian-6.0.4-i386-CD-1.iso
Résolution de proxy... 192.168.9.254
Connexion vers proxy|192.168.9.254|:3128...connecté.
requête Proxy transmise, en attente de la réponse...302 Moved Temporarily
Emplacement: http://napoleon.acc.umu.se/debian-cd/6.0.4/i386/iso-cd/debian-6.0.4-i386-CD-1.iso [suivant]
--2012-03-19 10:46:01-- http://napoleon.acc.umu.se/debian-cd/6.0.4/i386/iso-cd/debian-6.0.4-i386-CD-1.iso
Connexion vers proxy|192.168.9.254|:3128...connecté.
requête Proxy transmise, en attente de la réponse...200 OK
Longueur: 678428672 (647M) [application/octet-stream]
Sauvegarde en : debian-6.0.4-i386-CD-1.iso
0% [ ] 6'502'784 622K/s eta 17m 33s ^C
guepe:/tmp#

Ou encore…

wget http://test-debit.free.fr/image.iso -O /dev/null

Voici uneautre  astuce qui permet de tester rapidement le débit réseau entre deux machines Linux. La première commande crée un fichier de 100Mo, tandis que la seconde va le transférer vers /dev/null de la machine cible, tout en affichant le débit.
Vous pouvez lancer ces deux commandes en une seule fois de la manière suivante (pensez également à adapter
le login et l’adresse IP du serveur) :

dd if=/dev/zero of=test bs=100M count=1; scp test user@server:/dev/null;

J’obtiens par exemple un taux de transfert de 11 Mo/s chez moi entre deux machines câblées en 100 MB/s :

test 100% 100MB 11.1MB/s 00:09

Et un taux de 50 Mo/s entre deux machine câblées en 1 Gb/s :

test 100% 500MB 50.0MB/s 00:10

 

+>>>>>>>>+
| TSHARK|
+>>>>>>>>+

Exemple de commande:

tshark -l -i ethnet -o column.format:'"No.", "%m", "Time", "%t", "Source", "%s", "Destination", "%d", "srcport", "%uS", "Protocol", "%p", "dstport", "%uD"' -R "!(eth.dst[0] & 1) && not ntp && not dns && not icmp && not snmp && not arp && !(ip.src == 215.157.22.165 and udp.srcport == 1194) && !(ip.dst == 215.157.22.165 and udp.dstport == 1194) && !(ip.src == 192.168.3.0/24 or ip.src == 215.157.22.165 and tcp.srcport == 80 or tcp.dstport == 80) && !(ip.src == 192.168.3.0/24 and tcp.port eq 514) && !(sip.from.host eq fourn.res.voip.ch or sip.to.host eq sip.res.voip.ch)" -a duration:30

 

 

+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>+
| EXEMPLE DE TESTS DE BANDE PASSANTE AVEC IPERF|
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>+

  •  Exemple 1:  Liaison client-serveur en VPN

Côté serveur: connection Ethernet en LOCAL;  interface virtuelle venet0:0; machine virtuelle OpenVZ container.

root@gaston:~# iperf -s -i 5
-----------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[ 4] local 192.168.3.27 port 5001 connected with 10.9.0.34 port 51240
[ ID] Interval Transfer Bandwidth
[ 4] 0.0- 5.0 sec 0.00 Bytes 0.00 bits/sec
[ 4] 5.0-10.0 sec 0.00 Bytes 0.00 bits/sec
[ 4] 0.0-10.4 sec 5.50 MBytes 4.42 Mbits/sec 

Côté Client: connection Wifi;  interface wifi wlan0;
machine physique Laptop

$ sudo iperf -c 192.168.3.27 -i 5
------------------------------------------------------------
Client connecting to 192.168.3.27, TCP port 5001
TCP window size: 21.1 KByte (default)
------------------------------------------------------------
[ 3] local 10.9.0.34 port 51240 connected with 192.168.3.27 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0- 5.0 sec 2.38 MBytes 3.98 Mbits/sec
[ 3] 5.0-10.0 sec 3.00 MBytes 5.03 Mbits/sec
[ 3] 0.0-10.4 sec 5.50 MBytes 4.45 Mbits/sec

 

  • Exemple 2:  Liaison client-serveur LOCAL

Côté serveur:  connexion Ethernet;  interface virtuelle venet0:0;
machine virtuelle OpenVZ container.

root@gaston:~# iperf -s -i 5
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[ 4] local 192.168.3.27 port 5001 connected with 192.168.3.200 port 48769
[ ID] Interval Transfer Bandwidth
[ 4] 0.0- 5.0 sec 0.00 Bytes 0.00 bits/sec
[ 4] 5.0-10.0 sec 0.00 Bytes 0.00 bits/sec
[ 4] 0.0-10.0 sec 317 MBytes 266 Mbits/sec 

Côté client: connexion Ethernet en LOCAL; interface virtuelle bridgé eth0; machine virtuelle OpenVZ Container.

root@buzz:~# iperf -c 192.168.3.27 -i 5
------------------------------------------------------------
Client connecting to 192.168.3.27, TCP port 5001
TCP window size: 16.0 KByte (default)
------------------------------------------------------------
[ 3] local 192.168.3.200 port 48769 connected with 192.168.3.27 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0- 5.0 sec 158 MBytes 266 Mbits/sec
[ 3] 5.0-10.0 sec 159 MBytes 267 Mbits/sec
[ 3] 0.0-10.0 sec 317 MBytes 266 Mbits/sec
root@buzz:~#

 

  • Exemple 3:  Liaison client-serveur LOCAL

Côté serveur:  connexion Ethernet en LOCAL; interface virtuelle venet0:0; machine virtuelle Openvz container.

root@gaston:~# iperf -s -i 5
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[ 4] local 192.168.3.27 port 5001 connected with 192.168.3.253 port 53138
[ ID] Interval Transfer Bandwidth
[ 4] 0.0- 5.0 sec 0.00 Bytes 0.00 bits/sec
[ 4] 5.0-10.0 sec 0.00 Bytes 0.00 bits/sec
[ 4] 0.0-10.0 sec 332 MBytes 279 Mbits/sec

Côté client:  connexion Ethernet en LOCAL; interface bridge br0;
machine physique OpenVZ hôte.

root@bart:~# iperf -c 192.168.3.27 -i 5
------------------------------------------------------------
Client connecting to 192.168.3.27, TCP port 5001
TCP window size: 16.0 KByte (default)
------------------------------------------------------------
[ 3] local 192.168.3.253 port 53138 connected with 192.168.3.27 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0- 5.0 sec 166 MBytes 279 Mbits/sec
[ 3] 5.0-10.0 sec 166 MBytes 279 Mbits/sec
[ 3] 0.0-10.0 sec 332 MBytes 279 Mbits/sec
root@bart:~#

 

  • Exemple 4: Liaison client-serveur LOCAL

Côté serveur: connexion Ethernet en LOCAL; interface physique bridgé br0; machine physique OpenVZ hôte.

root@bart:~# iperf -s -i 5
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[ 4] local 192.168.3.253 port 5001 connected with 192.168.3.27 port 41960
[ ID] Interval Transfer Bandwidth
[ 4] 0.0- 5.0 sec 0.00 Bytes 0.00 bits/sec
[ 4] 5.0-10.0 sec 0.00 Bytes 0.00 bits/sec
[ 4] 0.0-10.0 sec 156 MBytes 130 Mbits/sec

Côté client: connexion Ethernet en LOCAL;  interface virtuelle venet0:0; machine virtuelle Openvz container.

root@gaston:~# iperf -c 192.168.3.253 -i 5
------------------------------------------------------------
Client connecting to 192.168.3.253, TCP port 5001
TCP window size: 16.0 KByte (default)
------------------------------------------------------------
[ 3] local 192.168.3.27 port 41960 connected with 192.168.3.253 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0- 5.0 sec 77.2 MBytes 130 Mbits/sec
[ 3] 5.0-10.0 sec 78.3 MBytes 131 Mbits/sec
[ 3] 0.0-10.0 sec 156 MBytes 130 Mbits/sec
root@gaston:~#

 

  • Exemple 6:  Liaison client-serveur LOCAL

Côté serveur: connexion Ethernet en LOCAL; interface bridge br0;
machine physique OpenVZ hôte.

root@bart:~# iperf -s -i 5
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[ 4] local 192.168.3.253 port 5001 connected with 192.168.3.252 port 59256
[ ID] Interval Transfer Bandwidth
[ 4] 0.0- 5.0 sec 0.00 Bytes 0.00 bits/sec
[ 4] 5.0-10.0 sec 0.00 Bytes 0.00 bits/sec
[ 4] 0.0-10.0 sec 1.10 GBytes 941 Mbits/sec

Côté client: connexion Ethernet en LOCAL; interface bridge br0;
machine physique OpenVZ hôte.

root@ulysse:~# iperf -c 192.168.3.253 -i 5
------------------------------------------------------------
Client connecting to 192.168.3.253, TCP port 5001
TCP window size: 16.0 KByte (default)
------------------------------------------------------------
[ 3] local 192.168.3.252 port 59281 connected with 192.168.3.253 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0- 5.0 sec 564 MBytes 946 Mbits/sec
[ 3] 5.0-10.0 sec 561 MBytes 940 Mbits/sec
[ 3] 0.0-10.0 sec 1.10 GBytes 943 Mbits/sec
root@ulysse:~#

 

  • Exemple 7: Liaison client-serveur LOCAL

Côté serveur: connexion Ethernet en LOCAL; interface bridge br0;
machine physique OpenVZ hôte.

root@bart:~# iperf -s -i 5
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[ 4] local 192.168.3.253 port 5001 connected with 192.168.3.133 port 44252
[ ID] Interval Transfer Bandwidth
[ 4] 0.0- 5.0 sec 0.00 Bytes 0.00 bits/sec
[ 4] 5.0-10.0 sec 0.00 Bytes 0.00 bits/sec
[ 4] 0.0-10.1 sec 113 MBytes 93.9 Mbits/sec

Côté client: connexion Ethernet en LOCAL; interface physique eth0;
machine physique.

root@tournesol:~# iperf -c 192.168.3.253 -i 5
------------------------------------------------------------
Client connecting to 192.168.3.253, TCP port 5001
TCP window size: 16.0 KByte (default)
------------------------------------------------------------
[ 3] local 192.168.3.133 port 44252 connected with 192.168.3.253 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0- 5.0 sec 56.5 MBytes 94.8 Mbits/sec
[ 3] 5.0-10.0 sec 56.4 MBytes 94.7 Mbits/sec
[ 3] 0.0-10.0 sec 113 MBytes 94.7 Mbits/sec
root@tournesol:~#

 

  • Exemple 8: Liaison client-serveur LOCAL

Côté serveur: connexion Ethernet en LOCAL; interface physique eth0; machine physique.

root@gogol:~# iperf -s -i 5
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[ 4] local 192.168.3.106 port 5001 connected with 192.168.3.133 port 38571
[ ID] Interval Transfer Bandwidth
[ 4] 0.0- 5.0 sec 0.00 Bytes 0.00 bits/sec
[ 4] 5.0-10.0 sec 0.00 Bytes 0.00 bits/sec
[ 4] 0.0-10.1 sec 113 MBytes 93.9 Mbits/sec

Côté client: connexion Ethernet en LOCAL; interface physique eth0,
machine physique.

root@tournesol:~# iperf -c 192.168.3.106 -i 5
------------------------------------------------------------
Client connecting to 192.168.3.106, TCP port 5001
TCP window size: 16.0 KByte (default)
------------------------------------------------------------
[ 3] local 192.168.3.133 port 38571 connected with 192.168.3.106 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0- 5.0 sec 56.6 MBytes 94.9 Mbits/sec
[ 3] 5.0-10.0 sec 56.8 MBytes 95.3 Mbits/sec
[ 3] 0.0-10.0 sec 113 MBytes 94.8 Mbits/sec
root@tournesol:~#

 

  • Exemple 9: Liaison client-serveur LOCAL

Côté serveur: connexion Ethernet en LOCAL; interface virtuelle bridge eth0; machine virtuelle OpenVZ Container)

root@intern:/# iperf -s -i 5
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[ 4] local 192.168.3.199 port 5001 connected with 192.168.3.133 port 60372
[ ID] Interval Transfer Bandwidth
[ 4] 0.0- 5.0 sec 0.00 Bytes 0.00 bits/sec
[ 4] 5.0-10.0 sec 0.00 Bytes 0.00 bits/sec
[ 4] 0.0-10.1 sec 113 MBytes 93.9 Mbits/sec
root@intern:/#

Côté client: connexion Ethernet en LOCAL; interface physique eth0;
machine physique.

root@tournesol:~# iperf -c 192.168.3.199 -i 5
------------------------------------------------------------
Client connecting to 192.168.3.199, TCP port 5001
TCP window size: 16.0 KByte (default)
------------------------------------------------------------
[ 3] local 192.168.3.133 port 60372 connected with 192.168.3.199 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0- 5.0 sec 56.6 MBytes 94.9 Mbits/sec
[ 3] 5.0-10.0 sec 56.7 MBytes 95.2 Mbits/sec
[ 3] 0.0-10.0 sec 113 MBytes 94.8 Mbits/sec
root@tournesol:~#

 

  • Exemple 10: Liaison client-serveur en VPN

Côté serveur: connexion Ethernet en LOCAL; interface virtuelle venet0:0; machine virtuelle.

root@diorama:/# iperf -s -i 5
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[ 4] local 192.168.165.253 port 5001 connected with 192.168.3.133 port 47715
[ ID] Interval Transfer Bandwidth
[ 4] 0.0- 5.0 sec 0.00 Bytes 0.00 bits/sec
[ 4] 5.0-10.0 sec 0.00 Bytes 0.00 bits/sec
[ 4] 0.0-10.3 sec 8.10 MBytes 6.57 Mbits/sec

Côté client: connexion Ethernet en LOCAL; interface physique eth0;
machine physique.

root@tournesol:~# iperf -c 192.168.165.253 -i 5
------------------------------------------------------------
Client connecting to 192.168.165.253, TCP port 5001
TCP window size: 16.0 KByte (default)
------------------------------------------------------------
[ 3] local 192.168.3.133 port 47715 connected with 192.168.165.253 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0- 5.0 sec 4.03 MBytes 6.76 Mbits/sec
[ 3] 5.0-10.0 sec 4.06 MBytes 6.82 Mbits/sec
[ 3] 0.0-10.1 sec 8.10 MBytes 6.75 Mbits/sec
root@tournesol:~#

 

+>>>>>>>>>>>+
| TRACEPATH|
+>>>>>>>>>>>+

apt-get install iputils-tracepath

root@tournesol:~# tracepath 192.168.165.254
1: tournesol.lan.monentreprise.com 0.061ms pmtu 1500
1: spiderman.lan.monentreprise.com 1.106ms
1: spiderman.lan.monentreprise.com 1.039ms
2: 10.5.0.1 59.797ms
3: 192.168.165.254 57.042ms reached
Resume: pmtu 1500 hops 3 back 62
root@tournesol:~#
root@tournesol:~# tracepath www.google.ch
1: tournesol.lan.monentreprise.com 0.048ms pmtu 1500
1: spiderman.lan.monentreprise.com 1.075ms
1: spiderman.lan.monentreprise.com 1.040ms
2: spiderman.lan.monentreprise.com 1.035ms pmtu 1430
2: spiderman.lan.monentreprise.com 1.098ms reached
Resume: pmtu 1430 hops 2 back 64
root@tournesol:~#

 

+>>>>>>>>+
| NUTTCP|
+>>>>>>>>+
Côté serveur

root@diorama:/# nuttcp -S --nofork

Côté client

root@gaston:/opt# nuttcp -b -u -R 256 -t 192.168.165.253
0.3057 MB / 10.02 sec = 0.2559 Mbps 100 %TX 0 %RX 0 / 313 drop/pkt 0.00 %loss
root@gaston:/opt#

 

+>>>>>>>>>>>>>>>>+
| LA COMMANDE IP|
+>>>>>>>>>>>>>>>>+

root@genepi:~\ NEW $ ip route list
192.168.30.247 dev eth0 scope link
192.168.1.0/24 via 192.168.30.251 dev eth0
192.168.30.0/24 dev eth0 proto kernel scope link src 192.168.30.209
10.13.0.0/16 via 192.168.30.100 dev eth0
default via 192.168.30.251 dev eth0
root@genepi:~\ NEW $

 

 

SOURCES:

http://guide.ovh.com/printPage/ManuelLesOutilsBase

– Ma propre expérience 😉

 


“La connaissance a plus de valeur et s’accroît rapidement lorsqu’elle est partagée et accessible librement…”

Ce document est publié sous licence Creative Commons
Attribution, Partage à l’identique, Contexte non commercial 3.0 : http://creativecommons.org/licenses/by-nc/3.0/

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Le temps imparti est dépassé. Merci de saisir de nouveau le CAPTCHA.