Il existe un certain nombre de commandes en ligne qui permettent de vérifier l'état de votre machine vis-à-vis du réseau. Nous allons essayer d'en voir quelques unes et ce que l'on peut en tirer comme informations.
Pour mieux comprendre la suite, rappelons la configuration avec laquelle ces tests vont être effectués:
Le poste de travail est sous Windows 2000, il s'appelle « pchris ». Il est connecté à la passerelle Linux via eth1.
La passerelle GNU/Linux est connectée à l'Internet via eth0, elle s'appelle « gateway1 ». Cette passerelle fait tourner un serveur SAMBA, qui permet d'ajouter les composants NetBIOS pour pouvoir partager des partitions Linux sur un réseau Microsoft. Ce n'est pas une solution exempte de dangers pour la sécurité de la passerelle, mais il est simple de filtrer les ports 137 à139. Par ailleurs, SAMBA permet de définir la plage d'adresses autorisées à accéder aux ressources, ainsi que les interfaces réseau à utiliser. Ce sont des protections supplémentaires à ne pas négliger.
La commande « netstat » est bien instructive, même si elle n'est pas toujours très lisible. Elle affiche les statistiques de protocole et les connexions réseau TCP/IP en cours.
E:\>netstat Connexions actives Proto Adresse locale Adresse distante Etat TCP pchris:1031 gateway1.maison.mrs:netbios-ssn ESTABLISHED**
Tout à fait normal. C'est la session réseau NetBIOS qui est à l'œuvre. En effet, dans mon voisinage réseau, je vois la passerelle.
Une variante de la commande:
E:\>netstat -n Connexions actives Proto Adresse locale Adresse distante Etat TCP 192.168.0.10:1031 192.168.0.250:139 ESTABLISHED**
Elle donne les mêmes informations, mais sans résoudre ni les adresses IP ni les ports.
Si j'arrête le serveur SAMBA sur la passerelle, cette connexion va disparaître, mais je ne verrai plus gateway1 dans mon voisinage réseau.
La liste était simple parce que je ne faisais rien de spécial sur l'Internet. Voici la liste si j'ouvre Internet Explorer sur http://www.altavista.fr :
E\:>netstat Connexions actives Proto Adresse locale Adresse distante Etat TCP pchris:1031 gateway1.maison.mrs:netbios-ssn ESTABLISHED TCP pchris:1296 gateway1.maison.mrs:5901 ESTABLISHED TCP pchris:1304 212.187.226.53:http TIME_WAIT TCP pchris:1311 195.154.216.235:http TIME_WAIT TCP pchris:1318 195.154.216.235:http TIME_WAIT TCP pchris:1327 212.187.226.53:http TIME_WAIT TCP pchris:1331 195.154.216.235:http TIME_WAIT TCP pchris:1333 a213-56-194-51.deploy.akamaitechnologies.com:http ESTABLISHED TCP pchris:1334 a213-56-194-51.deploy.akamaitechnologies.com:http ESTABLISHED TCP pchris:1335 212.187.226.41:http ESTABLISHED TCP pchris:1338 195.154.216.235:http TIME_WAIT
Il convient donc d'être prudent dans l'interprétation des résultats de cette commande qui liste toutes les connexions existant à un instant donné. Pour détecter des « connexions indélicates », il faut être certain que votre poste n'a aucune activité « normale » sur l'Internet (Pas de navigateur ouvert, pas de client de messagerie etc.).
La commande « netstat » dispose de quelques options, voici pour ceux qui voudraient un peu s'amuser avec la documentation extraite de Windows 2000 (je ne garantis pas qu'elle soit entièrement compatible avec Windows 98).
Netstat
Affiche les statistiques de protocole et les connexions réseau TCP/IP en cours. Cette commande est disponible uniquement si le protocole TCP/IP est installé.
netstat [-a] [-e] [-n] [-s] [-p protocole] [-r] [intervalle] | |
Paramètres | |
-a | Affiche toutes les connexions et les ports d'écoute. Les connexions serveur ne sont en principe pas affichées. |
-e | Affiche des statistiques relatives à Ethernet. Ce paramètre peut être combiné avec l'option -s. |
-n | Affiche les adresses et numéros de ports sous forme numérique (au lieu de tenter des recherches par nom). |
-s | Affiche les statistiques des protocoles respectifs. Par défaut, les statistiques de TCP, UDP, ICMP et IP sont affichées. L'option -p peut être utilisée pour spécifier un sous-ensemble des protocoles par défaut. |
-p protocole | Affiche les connexions du protocole spécifié par le paramètre protocole ; ce paramètre peut avoir pour valeur tcp ou udp. Quand il est utilisé avec l'option -s pour afficher des statistiques par protocole, protocol peut prendre la valeur tcp, udp, icmp ou ip. |
-r | Affiche le contenu de la table de routage. |
intervalle | Affiche les statistiques sélectionnées de manière répétée avec un intervalle (en secondes) entre chaque occurrence. Appuyez sur CTRL+C pour interrompre l'affichage des statistiques. Si ce paramètre est omis, netstat n'imprime qu'une seule fois les informations de configuration. |
Affiche et modifie les tables de conversion des adresses physiques IP employées par le protocole ARP (Address Resolution Protocol). Il s'agit ici d'une conversion au niveau du sous réseau. Le protocole ARP permet, dans un sous réseau, d'établir une relation entre adresse IP et adresse MAC, celle qui est employée par la couche d'accès réseau pour acheminer les données.
Autrement dit, si quelqu'un tente de se connecter sur votre machine alors qu'il est dans le même sous réseau que vous (un autre abonné câble de votre branche), vous le verrez. Mais si la tentative vient d'un autre réseau, vous ne verrez qu'une connexion à la passerelle.
Test de la commande « arp » sur le poste de travail:
E:\>arp -a Interface : 192.168.0.10 on Interface 0x1000003 Adresse Internet Adresse physique Type 192.168.0.250 00-20-18-61-90-e3 dynamique**
192.168.0.250, c'est l'adresse de ma passerelle sur eth1.
Même commande sur la passerelle Linux (pour une fois que l'on a les mêmes outils dans les deux environnements):
[root@gateway1 chris]# arp -a ca-ol-marseille-9-1.abo.wanadoo.fr (213.56.56.1) at 00:D0:79:72:5C:00 [ether] on eth0 chris.maison.mrs (192.168.0.10) at 00:20:18:B9:49:37 [ether] on eth1**
J'ai deux connexions:
Il est possible que la commande vous réponde :
E:\>arp -a Aucune entrée ARP trouvée
Ce n'est pas alarmant, si vous n'avez pas utilisé la connexion depuis un certain temps, la table ARP s'est vidée. Ce qui éventuellement peut être plus dérangeant, c'est lorsque votre table ARP indique des connexions multiples et pas forcément faciles à justifier:
Il vous faudra alors essayer d'identifier ces connexions en fonction de ce que vous êtes en train de faire sur votre machine.
Voici les diverses options de la commande « arp »:
Arp Affiche et modifie les tables de conversion des adresses physiques IP (Ethernet ou anneau à jeton) employées par le protocole ARP (Address Resolution Protocol). Cette commande est disponible uniquement si le protocole TCP/IP est installé. arp -a [adr_inet] [-N [adr_si]] arp -d adr_inet [adr_si] arp -s adr_inet adr_ether [adr_si] |
|
Paramètres | |
-a | Affiche les entrées ARP en cours en interrogeant TCP/IP. Si adr_inet est spécifié, seules les adresses physiques et IP du système spécifié apparaissent. |
-g | Identique à -a. |
adr_inet | Spécifie une adresse IP en notation décimale pointée. |
-N | Affiche les entrées ARP pour l'interface réseau spécifiée par adr_si. |
adr_si | Spécifie, le cas échéant, l'adresse IP de l'interface dont la table de conversion des adresses doit être modifiée. Si elle n'est pas spécifiée, la modification est appliquée à la première interface rencontrée. |
-d | Supprime l'entrée spécifiée par adr_inet. |
-s | Ajoute une entrée dans la mémoire cache ARP pour associer l'adresse IP adr_inet à l'adresse physique adr_ether. L'adresse physique se compose de six octets hexadécimaux séparés par des tirets. L'adresse IP est spécifiée en notation décimale pointée. L'entrée est permanente, c'est-à-dire qu'elle est automatiquement supprimée du cache à l'expiration de la temporisation. |
adr_ether | Spécifie une adresse physique. |
Sous Linux, il existe une foule d'outils permettant de tracer le trafic réseau. En général, ces outils sont capables d'afficher ou d'enregistrer (ou les deux) tout ce qui est visible sur une interface réseau, concernant les protocoles TCP, UDP, ICMP et même ARP
Brutalement, ça ressemble un peu à un « sniffer », à part que les trames sont identifiées, mais pas visualisées en entier et que, normalement, seules les trames destinées à l'hôte sont analysées (pas de mode « promiscuité »)..
Ces outils nécessitent la mise en place de règles de filtrage, sans quoi, ils enregistrent absolument tout ce qui entre depuis le réseau concerné.
Ce ne sont pas à proprement parler des outils de protection, mais ils permettent de contrôler le trafic et constituent un excellent moyen d'apprentissage. Bien configurés, ils peuvent servir d'alarme en cas d'activité jugée suspecte.
Parmi les plus connus sous Linux, il y a ippl (qui ne semble plus évoluer), iptraf et bien sûr Snort, TCPDump, Tshark, Fail2ban, etc.
L'audit ne se résume cependant pas aux traces générées par ce genre d'outils. Les systèmes d'exploitation « sérieux » construisent des journaux d'audit du système qui permettent de savoir qui s'est connecté sur la machine, quel service a été démarré, utilisé, arrêté… Autant d'informations qu'il ne faut pas négliger de consulter régulièrement.