9 déc. 2015

Commande NETSTAT : utilisations pratiques

J'ai compilé ici des articles ayant un intérêt sur la commande netstat. Tout en réalisant les tests des commandes sur ma propre machine de test. Vous trouverez les sources.


Commande netstat utilisation basique

source http://openmaniak.com/fr/netstat.php

Netstat (NETwork STATistics) est un outil de ligne de commande qui fournit des informations sur votre configuration réseau ainsi que son activité.

Afficher la table de routage

#netstat -rn
-r: Tables de routage du noyau Linux.
-n: Affichage des adresses numériques à la place des noms d'hôtes.

root@VM-UBUNTU-01:~# netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         10.250.0.10     0.0.0.0         UG        0 0          0 eth0
10.250.0.0      0.0.0.0         255.255.255.0   U         0 0          0 eth0
Afficher les statistiques rapides des interfaces

#netstat -i
-i: Interface

root@VM-UBUNTU-01:~# netstat -i
Kernel Interface table
Iface   MTU Met   RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0       1500 0   5631321      0    143 0       2403793      0      0      0 BMRU
lo        65536 0      7752      0      0 0          7752      0      0      0 LRU
 Afficher les statistiques complètes des interfaces

#netstat -ie
-i: Interface
-e: Information étendue

root@VM-UBUNTU-01:~# netstat -ie
Kernel Interface table
eth0      Link encap:Ethernet  HWaddr 00:0c:29:e8:cc:d3
          inet addr:10.250.0.150  Bcast:10.250.0.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fee8:ccd3/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:5631385 errors:0 dropped:143 overruns:0 frame:0
          TX packets:2403806 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:3038943399 (3.0 GB)  TX bytes:3907704626 (3.9 GB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:7752 errors:0 dropped:0 overruns:0 frame:0
          TX packets:7752 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:704050 (704.0 KB)  TX bytes:704050 (704.0 KB)
On peut souligner que la commande "netstat -e" est équivalente à la commande "ifconfig -a".

Afficher toutes les sockets réseaux ouvertes

#netstat -uta
-u: UDP
-t: TCP
-a: All

root@VM-UBUNTU-01:~# netstat -uta
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 *:ssh                   *:*                     LISTEN
tcp        0      0 localhost:mysql         *:*                     LISTEN
tcp        0      0 10.250.0.150:ssh        10.250.0.50:40373       ESTABLISHED
tcp        0      0 10.250.0.150:ssh        10.250.0.50:46060       ESTABLISHED
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN
tcp6       0      0 [::]:http               [::]:*                  LISTEN

 Les sockets dans l'état listen sont incluses dans la sortie écran seulement lorsqu'on spécifie les options --listening (-l) ou --all (-a).

Les états possibles des sockets sont les suivants:
(repris de la page "man netstat")


ESTABLISHED:
SYN_SENT:
SYN_RECV:
FIN_WAIT1:
FIN_WAIT2:
TIME_WAIT:
 
CLOSED:
CLOSE_WAIT:
LAST_ACK:
LISTEN:
 
CLOSING:
 
UNKNOWN:
La socket a une connexion établie.
La socket attend activement d'établir une connexion.
Une requête de connexion a été reçue du réseau.
La socket est fermée, et la connexion est en cours de terminaison.
La connexion est fermée, et la socket attend une terminaison du distant.
La socket attend le traitement de tous les paquets encore sur le réseau avant d'entreprendre la fermeture.
La socket n'est pas utilisée.
Le distant a arrêté, attendant la fermeture de la socket.
Le distant termine, et la socket est fermée. Attente d'acquittement.
La socket est à l'écoute de connexions entrantes. Ces sockets ne sont affichées que si le paramètre -a,--listening est fourni.
Les deux prises sont arrêtées mais toutes les données locales n'ont pas encore été envoyées.
L'état de la prise est inconnu.

 Afficher toutes les sockets réseaux ouvertes (informations étendues)

#netstat -aute
-a: All
-u: UDP
-t: TCP
-e: Information étendue

 root@VM-UBUNTU-01:~# netstat -aute
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       User       Inode
tcp        0      0 *:ssh                   *:*                     LISTEN      root       9022
tcp        0      0 localhost:mysql         *:*                     LISTEN      mysql      2310050
tcp        0      0 10.250.0.150:ssh        10.250.0.50:40373       ESTABLISHED root       2686139
tcp        0    320 10.250.0.150:ssh        10.250.0.50:46060       ESTABLISHED root       2696343
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN      root       9024
tcp6       0      0 [::]:http               [::]:*                  LISTEN      root       2311284

 Afficher toutes les sockets en état "listen"

#netstat -lt
-t: TCP
-l: Socket en état listen

root@VM-UBUNTU-01:~# netstat -lt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 *:ssh                   *:*                     LISTEN
tcp        0      0 localhost:mysql         *:*                     LISTEN
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN
tcp6       0      0 [::]:http               [::]:*                  LISTEN
Afficher les statistiques par protocole

#netstat -s
-s: Statistiques résumées pour chaque protocole.

root@VM-UBUNTU-01:~# netstat -s
Ip:
    1778352 total packets received
    0 forwarded
    0 incoming packets discarded
    1778351 incoming packets delivered
    1244698 requests sent out
    1727 outgoing packets dropped
Icmp:
    3626 ICMP messages received
    0 input ICMP message failed.
    ICMP input histogram:
        destination unreachable: 3626
    3626 ICMP messages sent
    0 ICMP messages failed
    ICMP output histogram:
        destination unreachable: 3626
IcmpMsg:
        InType3: 3626
        OutType3: 3626
Tcp:
    4310 active connections openings
    124 passive connection openings
    0 failed connection attempts
    75 connection resets received
    2 connections established
    1766668 segments received
    2385158 segments send out
    47 segments retransmited
    0 bad segments received.
    104 resets sent
Udp:
    0 packets received
    3626 packets to unknown port received.
    0 packet receive errors
    3628 packets sent
UdpLite:
TcpExt:
    2 invalid SYN cookies received
    1480 TCP sockets finished time wait in fast timer
    7072 delayed acks sent
    18 delayed acks further delayed because of locked socket
    Quick ack mode was activated 24 times
    33 packets directly queued to recvmsg prequeue.
    4425586 bytes directly in process context from backlog
    7126 bytes directly received in process context from prequeue
    518714 packet headers predicted
    2240 packets header predicted and directly queued to user
    1076152 acknowledgments not containing data payload received
    115565 predicted acknowledgments
    21 times recovered from packet loss by selective acknowledgements
    24 congestion windows recovered without slow start after partial ack
    21 fast retransmits
    25 other TCP timeouts
    TCPLossProbes: 151
    TCPLossProbeRecovery: 54
    25 DSACKs sent for old packets
    89 DSACKs received
    40 connections reset due to early user close
    TCPDSACKIgnoredNoUndo: 51
    TCPSackShifted: 62
    TCPSackMerged: 47
    TCPSackShiftFallback: 68
    TCPDeferAcceptDrop: 55
    TCPRcvCoalesce: 181682
    TCPOFOQueue: 189
    TCPSpuriousRtxHostQueues: 31
IpExt:
    InMcastPkts: 2
    InBcastPkts: 4919
    InOctets: -1516352654
    OutOctets: -1698348110
    InMcastOctets: 72
    InBcastOctets: 1059047
    InNoECTPkts: 3222497
 Aller plus loin?

"Lister les ports ouverts avec Netstat"


source : http://www.memoinfo.fr/netstat-lister-ports-ouverts-linux.html

 La commande Netstat permet de lister tous les ports ouverts sur une machine, les connexions établies et enfin globalement les services réseaux en écoute.
Grâce à cette commande nous allons pouvoir vérifier tous les services installés, vérifier qu’ils fonctionnent bien sur les bons ports.
On pourra également, en profiter pour voir des services qui n’ont pas besoin d’être lancés et par conséquent les arrêter.
Et enfin, la commande Nestat permettra, en listant les ports ouverts, de configurer le firewall en fonction de nos besoins.

La commande netstat Linux peut prendre de nombreux paramètres. Mais voici une bonne base :

netstat -paunt

    -a : Tous les ports
    -t : Tous les ports TCP
    -u : Tous les ports UDP
    -l : Tous les ports en écoute
    -n : Affiche directement les IP. Pas de résolution de nom.
    -p : Affiche le nom du programme et le PID associé.

Ce qui donne un affichage du genre :

root@VM-UBUNTU-01:~# netstat -paunt
Active Internet connections (servers and established)
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      820/sshd
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      26331/mysqld
tcp        0      0 10.250.0.150:22         10.250.0.50:40373       ESTABLISHED 19027/sshd: stanisl
tcp        0      0 10.250.0.150:22         10.250.0.50:46060       ESTABLISHED 19532/3
tcp6       0      0 :::22                   :::*                    LISTEN      820/sshd
tcp6       0      0 :::80                   :::*                    LISTEN      11762/apache2
 Comment lire les résultats de la commande netstat, par colonnes :

  •     Proto : le protocole utilisé. Les classiques TCP et UDP mais également TCP6 et UDP6 pour les variantes IPV6.
  •     Recv-Q : Le nombre de Bytes dans la file d’attente de réception. Devrait toujours être à zéro
  •     Send-Q : Le nombre de Bytes dans la file d’attente d’envoi. Devrait toujours être à zéro
  •     Adresse locale : l’adresse et le port utilisé sur la machine locale
  •     Adresse distante : l’adresse et le port utilisé par la machine distante
  •     Etat : LISTEN quand le programme écoute et attend une connexion. ESTABLISHED lorsque la connexion est établie.
  •     PID/Program name : Le numéro de processus et le nom du programme

Vous savez tout sur la commande netstat Linux. A vos analyses !

bref RTFM

# man netstat

http://linux.die.net/man/8/netstat

Aucun commentaire:

Enregistrer un commentaire