
Les informations fournies par la commande :
Ou peut-on trouver la configuration ip?
|
|
root@pingu# vi /etc/xinetd.d/telnet service telnet { flags = REUSE socket_type = stream wait = no user = root server = /usr/sbin/in.telnetd log_on_failure += USERID disable = yes } |
Dans ce cas de figure, le service telnet est désactivé. Pour l'activer, 2 étapes :
1. Modifier le fichier /etc/xinetd.d/telnet en remplaçant yes par no dans la variable disable.
2. Relancer xinetd pour la prise en compte de ce nouveau paramètre :
ps -ef | grep xinetd
root 973 1 0 Oct09 ? 00:00:00 xinetd -stayalive -reuse -pidfil
kill -HUP 973
#
Standalone : il s'agit d'un service qui n'est pas géré par le super démon xinetd.
Chkconfig permet de configurer le démarrage d'un service :
chkconfig fournit une interface simple en ligne de commande pour maintenir l'arborescence /etc/rc[0-6].d en évitant à l'administrateur d'avoir à manipuler les liens symboliques de cette arborescence.
Les principaux outils de diagnostic réseau
Il permet de détecter par l'envoi de paquets si une machine répond.
Ceci permet d'approfondir le test. On vérifiera :
La commande route, tout comme ifconfig sert à la fois à connaître l'état de la table de routage de l'hôte et à configurer de nouvelles routes au besoin.
Pour info : U = routeur installé et opérationnel ; G = passerelle distante ; H = destination est un hôte et non un réseau. Vous ne parvenez pas à atteindre une URL ou un poste donné...
Traceroute renvoie les informations sur la route suivie pour atteindre un hôte. Le résultat obtenu donne la liste des routeurs traversés.
On a ici une adresse située à l'extérieur, tous les routeurs traversés sont indiqués et numérotés.
Évidemment, la première chose à faire consiste à désactiver tous les serveurs inutiles ! Pour ce faire, il faut modifier la liste des services qu'on active dans les niveaux d'exécution (runlevels) qu'on utilise. On peut faire ça à l'aide d'outils ad-hoc (linuxconf, ntsysv, chkconfig...) ou bien en déplaçant à la main les liens symboliques dans /etc/rc.d/rc
On peut aussi utiliser l'interface de gestion mcc/services (sous Mandriva) et désactiver les services désirés.
Ces modifications n'étant prises en compte qu'au prochain redémarrage, il faut aussi tuer les serveurs qui tournent déjà. Oui, évidemment, on peut aussi réamorcer la machine pour obtenir ce résultat, mais c'est pas très sport ;-). La façon propre de tuer ces serveurs consiste à utiliser les scripts qui s'occupent normalement de leur lancement et de leur arrêt. Par exemple, si on veut arrêter sendmail, on tape /etc/rc.d/init.d/sendmail stop.
exemple :
- mon serveur Apache ne fonctionne pas.
/usr/local/apache2/bin/apachectl status
httpd est arrêté
- on démarre le serveur Apache
/etc/rc.d/init.d/httpd start
Démarrage de httpd : [ OK ]
- on vérifie l'état du serveur
/etc/rc.d/init.d/httpd status
httpd (pid 14113 14112 14111 14110 14109 14106) en cours d'exécution
* Configurer le démarrage d'un service (cas général, applicable quelle que soit la distribution) : il suffit de créer le script de gestion du service dans /etc/rc.d/init.d puis les liens symboliques de démarrage et d'arrêt dans les répertoires d'état de marche.
Exemple : je veux que mon service bidule démarre aux niveaux 3, 4 et 5. On va procéder en 2 étapes :
- création d'un script de gestion des arguments start / stop : /etc/rc.d/init.d/bidule
- création des liens symboliques suivants :
ln -s /etc/rc.d/init.d/bidule /etc/rc.d/rc0.d/K05bidule
ln -s /etc/rc.d/init.d/bidule /etc/rc.d/rc1.d/K05bidule
ln -s /etc/rc.d/init.d/bidule /etc/rc.d/rc2.d/K05bidule
ln -s /etc/rc.d/init.d/bidule /etc/rc.d/rc3.d/S95bidule
ln -s /etc/rc.d/init.d/bidule /etc/rc.d/rc4.d/S95bidule
ln -s /etc/rc.d/init.d/bidule /etc/rc.d/rc5.d/S95bidule
ln -s /etc/rc.d/init.d/bidule /etc/rc.d/rc6.d/K05bidule
Cette implémentation de chkconfig est dérivée de la commande chkconfig présente sur IRIX. Plutôt que de maintenir des informations de configuration en dehors de l'arborescence /etc/rc[0-6].d, cette version gère directement les liens dans /etc/rc[0-6].d. Cela permet d'avoir au même endroit toutes les informations de configuration indépendemment des services lancés par init.
chkconfig propose cinq fonctions : ajouter un nouveau service à gérer, supprimer un service à gérer, lister l'état actuel des services à démarrer, changer les informations de démarrage des services et vérifier les informations de démarrage d'un service en particulier.
Exécuté sans argument, chkconfig renvoie sa syntaxe. Si seul le nom d'un service est fourni, il cherche si le service est configuré pour démarrer dans le niveau d'exécution courant. Si c'est le cas, chkconfig renvoie true, sinon il renvoie false. L'option --level peut être utilisé pour interroger un autre niveau d'exécution que celui en cours.
Si on spécifie un des paramètres on, off, ou reset après le nom d'un service , chkconfig change les informations de démarrage pour ce service. Les options on et off feront respectivement démarrer ou arrêter le service pour le niveau d'exécution spécifié. L'option reset réinitialise les informations de démarrage en fonction de ce qui est spécifié dans le script d'init du service.
Par défaut, les options on et off agissent sur les niveaux d'exécution 3, 4 et 5, alors que reset agit sur tous les niveaux d'exécution. L'option --level est utilisée pour spécifier quels niveaux d'exécution sont impactés.
Pour chaque service, il existe un script de démarrage ou d'arrêt dans chacun des niveaux d'exécution. Lorsque init change de niveaux d'exécution, il ne relancera pas un service déjà actif et n'arrêtera pas un service inactif.
OPTIONS
--level niveaux
Indique les niveaux d'exécution impactés. niveaux étant un chiffre de 0 à 7. Par exemple, --level 35 indique les niveaux d'exécution 3 et 5.
--add service
Cette option demande à chkconfig de prendre en charge un nouveau service. Lors de l'ajout d'un service, chkconfig vérifie que ce service possède bien un script de démarrage ou d'arrêt dans chaque niveau d'exécution. S'il en manque, chkconfig les créera en fonction des informations contenues dans le script d'init.
--del service
Le service ne sera plus géré par chkconfig, et tous les liens symboliques concernant ce service dans /etc/rc[0-6].d seront supprimés.
--list service
Liste tous les services gérés par chkconfig et indique s'ils doivent être lancés ou non pour chaque niveau d'exécution. Si un nom de service est fourni, seules les informations de ce service sont affichées.
Outils
arp
Permet de visualiser et modifier la table arp stockée en cache. La table arp est une table de correspondance entre adresses IP et adresses matérielles (ou MAC).
Elle est générée au fur et à mesure grâce au protocole ARP et stockée en cache.
Chaque machine connectée au réseau possède un numéro d'identification de 48 bits. Ce numéro est un numéro unique qui est fixé dès la fabrication de la carte en usine. Toutefois la communication sur Internet ne se fait pas directement à partir de ce numéro (car il faudrait modifier l'adressage des ordinateurs à chaque fois que l'on change une carte réseau) mais à partir d'une adresse dite logique attribuée par un organisme: l'adresse IP.
Ainsi, pour faire correspondre les adresses physiques aux adresses logiques, le protocole ARP interroge les machines du réseau pour connaître leur adresse physique, puis crée une table de correspondance entre les adresses logiques et les adresses physiques dans une mémoire cache.
Lorsqu'une machine doit communiquer avec une autre, elle consulte la table de correspondance. Si jamais l'adresse demandée ne se trouve pas dans la table, le protocole ARP émet une requête sur le réseau. L'ensemble des machines du réseau vont comparer cette adresse logique à la leur. Si l'une d'entre-elles s'identifie à cette adresse, la machine va répondre à ARP qui va stocker le couple d'adresses dans la table de correspondance et la communication va alors pouvoir avoir lieu...
La commande permet de détecter 2 types de problèmes : le fonctionnement au niveau hardware de la carte et la bonne correspondance entre une adresse IP et une carte réseau au moyen de son adresse MAC.
(cf. double attribution d'une adresse IP sur un réseau, spoofing, ...).
Exemple : Vous voulez vérifier que la seconde carte réseau appelée eth1 est opérationnelle. Dans un 1er temps, on va pinger la carte, ce qui va permettre d'alimenter la table arp.
ping 192.168.0.4
Une fois la table alimentée, on vérifie son contenu : la présence de l'adresse IP ET de l'adresse MAC
arp -a
? (192.168.0.4) at 52:54:05:F5:AD:0C [ether] on eth1
? (192.168.0.1) at 00:04:76:8E:B2:90 [ether] on eth1
En cas d'erreur dans la table, il est inutile de pousser plus avant le diagnostic.
Ping
Exemple : Diagnostic de mon réseau
ping 192.168.0.3
PING 192.168.0.5 (192.168.0.5) from 192.168.0.3 : 56(84) bytes of data.
From 192.168.0.3 icmp_seq=1 Destination Host Unreachable
Plusieurs causes de non-fonctionnement : je vérifie:
- que l'adresse IP existe
- que le masque de sous-réseau est cohérent (ifconfig)
- que ma résolution de nom est opérationnelle (/etc/resolv.conf)
- que le routage est correctement configuré (commande route vue plus loin)
Si la commande ping fonctionne alors ce n'est ni un problème matériel, ni un problème de configuration IP. Toutefois le réseau peut subir des dysfonctionnements tout simplement parce qu'il est chargé.
On augmente alors la taille des paquets envoyés.
Exemple :
ping -s 128 192.168.0.1
PING 192.168.0.1 (192.168.0.1) from 192.168.0.3 : 128(156) bytes of data.
136 bytes from 192.168.0.1: icmp_seq=1 ttl=128 time=0.583 ms
136 bytes from 192.168.0.1: icmp_seq=2 ttl=128 time=0.598 ms
136 bytes from 192.168.0.1: icmp_seq=3 ttl=128 time=0.640 ms
136 bytes from 192.168.0.1: icmp_seq=4 ttl=128 time=0.578 ms
--- 192.168.0.1 ping statistics ---
4 packets transmitted, 4 received, 0% loss, time 3008ms
rtt min/avg/max/mdev = 0.578/0.599/0.640/0.038 m
- les numéros de séquences (icmp_seq) : ils sont séquentiels et numérotent les paquets envoyés. Une surcharge réseau ou un câblage de mauvaise qualité par exemple entraine la perte de paquets (voir % loss).
- le temps de transmission (time) : plus il est long, plus le réseau est chargé.
Attention : si vous lancez un ping sur un serveur et que celui-ci ne répond pas, cela ne signifie pas forcément qu'il y ait un problème. En effet, les firewalls peuvent bloquer toute réponse à un ping et faire échouer toute tentative de ping sur eux.
La sortie de la commande ping permet aussi de connaître :
* L'adresse IP correspondant au nom de la machine distante ;
* Le numéro de séquence ICMP ;
* La durée de vie du paquet (TTL, Time To Live). Le champ de durée de vie (TTL) permet de connaître le nombre de routeurs traversés par le paquet lors de l'échange entre les deux machines. Chaque paquet IP possède un champ TTL positionné à une valeur relativement grande. A chaque passage d'un routeur, le champ est décrémenté. S'il arrive que le champ arrive à zéro, le routeur interprétera que le paquet tourne en boucle et le détruira. ;
* Le temps de propagation en boucle (round-trip delay) correspondant à la durée en millisecondes d'un aller-retour entre la machine source et la machine cible. Un paquet doit en règle générale posséder un temps de propagation inférieur à 200 ms ;
* Le nombre de paquets perdus.
Route
Une commande équivalente est netstat -r. La commande affiche la table de routage et effectue la résolution de nom dès que possible.
Les commandes route -n ou netstat -rn affichent le table de routage sans résolution de nom.
Exemple :
route
Table de routage IP du noyau
Destination Passerelle Genmask Indic Metric Ref Use Iface
192.168.0.0 * 255.255.255.0 U 10 0 0 eth1
82.216.92.0 * 255.255.252.0 U 10 0 0 eth0
default ip-1.net-82-216 0.0.0.0 UG 10 0 0 eth0
route -n
Table de routage IP du noyau
Destination Passerelle Genmask Indic Metric Ref Use Iface
192.168.0.0 0.0.0.0 255.255.255.0 U 10 0 0 eth1
82.216.92.0 0.0.0.0 255.255.252.0 U 10 0 0 eth0
0.0.0.0 82.216.92.1 0.0.0.0 UG 10 0 0 eth0
Un examen de la table de routage vous permet de vérifier par exemple que la machine sur laquelle vous travaillez et qui se situe derrière une passerelle a bien une route par défaut qui lui permet d'aller vers l'extérieur (Destination : default).
Vous ne pouvez pas atteindre l'extérieur car vous n'avez pas cette route, 2 solutions :
* vous ajoutez la route pour la session en cours :
route add default gw adresseIP_de_la_passerelle
* vous modifiez le fichier de configuration du routage de manière à ce que la table contienne la route pour toutes les sessions : /etc/sysconfig/network
Vous ne pouvez pas atteindre l'extérieur car vous avez une route erronée, 2 solutions :
* vous modifiez la route pour la session en cours :
route del default gw adresseIP_de_la_passerelle_erronée
route add default gw adresseIP_de_la_passerelle_correcte
* vous modifiez le fichier de configuration du routage de manière à ce que la table contienne la route correcte pour toutes les sessions : /etc/sysconfig/network
Traceroute
Exemple :
traceroute to 192.168.0.3 (192.168.0.3), 30 hops max, 38 byte packets
1 mandriva (192.168.0.1) 2999.774 ms !H 3000.121 ms !H 3000.197 ms !H
Il s'agit d'une machine locale. Elle est située sur le même réseau, aucun routeur n'est traversé, l'adresse de destination est donc atteinte directement.
traceroute google.fr
traceroute to google.fr (216.239.59.104), 30 hops max, 38 byte packets
1 10.57.128.1 (10.57.128.1) 4.707 ms 5.303 ms 6.193 ms
2 10.1.56.13 (10.1.56.13) 6.284 ms 4.834 ms 6.216 ms
3 * * *
4 * 82.138.72.33 (82.138.72.33) 31.651 ms *
5 te3-1.core01.par01.atlas.cogentco.com (130.117.1.173) 20.092 ms 20.611 ms 20.077 ms
6 p5-0.core02.par02.atlas.cogentco.com (130.117.1.229) 20.605 ms 21.038 ms 20.262 ms
7 p15-0.core01.fra03.atlas.cogentco.com (130.117.0.17) 30.247 ms 34.641 ms 30.597 ms
8 t4-3.mpd01.fra03.atlas.cogentco.com (130.117.0.246) 30.112 ms 30.063 ms 30.146 ms
Dans l'exemple ci-dessus, l'hôte recherché a été trouvé. En cas de défaut, cette commande est très utile pour repérer le routeur sur lequel se situe le problème d'interconnexion.
En cas de défaillance sur le réseau ,traceroute s'avère utile comme dans l'
Exemple :
traceroute 192.168.0.5
traceroute to 192.168.0.5 (192.168.0.5), 30 hops max, 38 byte packets
1 192.168.0.3 (192.168.0.3) 2999.119 ms !H 2994.720 ms !H 2999.823 ms !H
Cette fois-ci la commande nous donne des informations différentes : il lui est impossible de trouver la route et il affiche directement la destination avec un des codes d'erreur suivant :
!H : host unreachable
!N : network unreachable
!P : protocol unreachable
Netstat
La commande permet également d'obtenir des informations détaillées sur les connexions tcp ouvertes sur la machine :
Exemple :
netstat -i
Table d'interfaces noyau
Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 1500 0 10556560 0 0 0 516330 0 0 0 BMRU
eth1 1500 0 240227 0 0 0 304969 0 0 0 BMRU
lo 16436 0 61397 0 0 0 61397 0 0 0 LRU
Table d'interfaces noyau
Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 1500 0 20103 0 0 0 18666 0 0 0 BMRU
eth1 1500 0 18453 0 0 0 19879 0 0 0 BMRU
lo 16436 0 466 0 0 0 466 0 0 0 LRU
ppp0 1492 0 20056 20103 0 0 18619 0 0 0 MOPRU
RX paquets reçus
TX paquets envoyés (transmis)
OK paquets reçus/envoyés correctement
ERR paquets reçus/envoyés avec des erreurs
DRP paquets reçus/envoyés droppés
OVR paquets reçus/envoyés retransmis
Exemple :
[deny@ip-106 log]$ netstat -tu
Connexions Internet actives (sans serveurs)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 mandriva:squid mandriva:54076 TIME_WAIT
tcp 1 0 mandriva:59775 mandriva:squid CLOSE_WAIT
tcp 0 0 mandriva:squid mandriva:54077 TIME_WAIT
tcp 0 8760 ip-106.net-82-216-95.r:http ::ffff:195.77.63.25:42512 ESTABLISHED
[deny@ip-106 log]$
Utilisée avec l'argument -a, la commande netstat affiche l'ensemble des connexions et des ports en écoute sur la machine.
Utilisée avec l'argument -e, la commande netstat affiche les statistiques Ethernet.
Utilisée avec l'argument -n, la commande netstat affiche les adresses et les numéros de port en format numérique, sans résolution de noms.
Utilisée avec l'argument -o, la commande netstat détaille le numéro du processus associé à la connexion.
Utilisée avec l'argument -p suivi du nom du protocole (TCP, UDP ou IP), la commande netstat affiche les informations demandées concernant le protocole spécifié.
Utilisée avec l'argument -r, la commande netstat permet d'afficher la table de routage.
Utilisée avec l'argument -s, la commande netstat affiche les statistiques détaillées par protocole
Il s'agit d'un outil qui permet de visualiser les paquets qui circulent vers et/ou à partir d'une interface réseau et ce, en temps réel.
C'est à la fois un outil de diagnostic sécurité mais aussi un outil de détection d'anomalies de la configuration IP ou matérielle.
# tcpdump
tcpdump: listening on eth0
Il est possible de sélectionner les paquets à "écouter" en fonction d'expressions. Ainsi, ne seront affichées / traitées que les informations pour lesquelles le résultat de l'expression est vérifié. Une expression est composée d'un mot clé suivi d'une valeur numérique ou autre. Ainsi, il est possible de classer les mots clés en catégories :
# Les mots clés permettant de définir une direction. Entrent dans cette catégorie les mots src (source) et dst (destination). Il est possible de combiner ces deux mots clés avec les opérations logiques and (et) et or (ou). On peut ainsi définir avec précision la source et/ou la destionation des paquets qui nous intéressent.
# Les mots clés permettant de définir le type de valeur que nous préciserons. Il peut s'agir d'un hôte (host), d'un réseau (net) ou encore d'un port (port).
# Enfin, nous avons les mots clés concernant les protocoles. Ici, les mots sont suffisamment clairs pour se passer d'explications (par exemple, ip, tcp, udp ...)
Si tout ceci ne vous paraît pas limpide, nous allons tâcher de clarifier cela avec quelques exemples :
# tcpdump src 192.168.0.1
Ici, les seuls paquets affichés sont ceux en provenance de 192.168.0.1. Nous pouvons également préciser nos préférences en ajoutant un critère :
# tcpdump src 192.168.0.1 and port 80
Là, le seul port qui nous intéresse est 80 (http). Si nous poussons le vice, nous pouvons spécifier l'ensemble des paramètres nécessaires :
# tcpdump src host 192.168.0.1 and dst host 212.208.225.1 and port 53 and udp
Voici une ligne complète qui ne laisse vraiment passer que les paquets qui nous intéressent, c'est à dire, en provenance de 192.168.0.1 vers 212.208.225.1, sur le port 53 en udp. Et ce qui nous intéresse ici, ce sont les requêtes sur le serveur DNS du provider Internet.
Pour faire vos tests, utilisez cette commande (adaptée à vos besoins) sur une console virtuelle et sur une seconde console, lancez une requête sur le serveur DNS (nslookup www.linux.org par exemple). Vous verrez alors apparaître des lignes ressemblant à ceci sur la première console :
tcpdump: listening on eth0
22:33:29.070616 raven.32778 > ns1.rmcnet.fr.domain: 47038+[|domain] (DF)
22:33:29.072863 raven.32779 > ns1.rmcnet.fr.domain: 45315+[|domain] (DF)
22:33:29.128966 raven.32780 > ns1.rmcnet.fr.domain: 47039+[|domain] (DF)
Pour poursuivre avec cet exemple, nous allons maintenant utiliser deux des options de la commande tcpdump. Attention, il s'agit d'options qui ne concernent en rien la composition des expressions de filtrage :
# tcpdump -x -X -s 0 src host 192.168.0.1 and dst host 212.208.225.1 and port 53 and udp
Nous avons demandé l'affichage du contenu des paquets au format hexadécimal et ascii (-x -X) et ce, quelle que soit leur taille (-s 0). Nous obtenons les informations désirées
Mais la partie la plus interessante concerne les accès à un serveur POP3. Comme nous l'avons fait pour l'exemple précédent, nous pouvons capturer le contenu de paquets à destination d'un serveur POP3
# tcpdump -X -s 0 dst host 192.168.0.10 and src host 192.168.0.1 and port 110 and tcp
Et voici le suprenant résultat :
|
20:51:50.690745 193.253.217.180.42034 > 193.252.19.209.pop3: P 0:11(11) ack 79 win 5808 (DF) 0x0000 4500 003f 0000 4000 4006 c939 c1fd d9b4 E..?..@.@..9.... 0x0010 c1fc 13d1 a432 006e b862 482d 520a 6b11 .....2.n.bH-R.k. 0x0020 8018 16b0 c3cf 0000 0101 080a 00a9 c278 ...............x 0x0030 0bfa 1f75 7573 6572 206f 6b6b 690d 0a ...uuser.bidon.. 20:51:50.745300 193.253.217.180.42034 > 193.252.19.209.pop3: P 11:25(14) ack 84 win 5808 (DF) 0x0000 4500 0042 0000 4000 4006 c936 c1fd d9b4 E..B..@.@..6.... 0x0010 c1fc 13d1 a432 006e b862 4838 520a 6b16 .....2.n.bH8R.k. 0x0020 8018 16b0 33d0 0000 0101 080a 00a9 c27e ....3..........~ 0x0030 0bfa 1f7a 7061 7373 2079 746b 6b76 7875 ...zpass.coucou 0x0040 0d0a |
La partie intéressante est bien sûr les deux derniers paquets. On lit clairement dans leur contenu ASCII les mentions "user.bidon" et surtout, "pass.coucou". En effet, dans la RFC 1725 décrivant le protocole Post Office en Version 3 (POP3), on découvre que les informations d'identification et d'authentification circulent de manière non chiffrée entre le client et le serveur.
Il serait possible en une seule journée de récupérer, grâce à tcpdump et un script Perl ou Awk, l'ensemble des noms d'utilisateurs et des mots de passe POP3 de toutes les personnes possédant un compte email dans une entreprise. Mais, dans la réalité, ceci est encore plus simple ...
Les scanners de ports sont indispensables à ceux qui veulent attaquer un système. Les différentes méthodes pour la préparation d'une attaque sont les suivantes :
Remote operating system guess: Linux Kernel 2.4.0 - 2.4.17 (X86)
* scanner une machine ou un réseau, observer les services en cours et les systèmes qui les exécutent et s'appuyer sur les vulnérabilités connues de ces services ou de ces systèmes.
* scanner une machine ou un réseau à la recherche d'un service ou d'un système particulier (incluant la vérification de la version) dont la vulnérabilité est connue.
Pour cette raison, un administrateur préoccupé par la sécurité, devra scanner son réseau et y chercher les points faibles avant que d'autres, aux intentions moins avouables, ne s'en chargent.
Plusieurs scanners sont disponibles, mais dans cet article nous traiterons de nmap qui est certainement l'un des plus complets.
La syntaxe : nmap
Exemple :
# nmap -sS -O 192.168.0.3
Starting nmap V. 2.54BETA31 ( www.insecure.org/nmap/ )
Interesting ports on (192.168.0.3):
(The 1544 ports scanned but not shown below are in state: closed)
Port State Service
21/tcp open ftp
53/tcp open domain
80/tcp open http
3306/tcp open mysql
Uptime 2.279 days (since Fri Oct 4 16:24:45 2002)
Nmap run completed -- 1 IP address (1 host up) scanned in 4 seconds:!
Le scan réalisé ici permet de vérifier quels sont les ports ouverts et donc potentiellement vulnérables (grâce aux options -sS) et le système d'exploitation de la machine testée (grâce à l'option -O).
nmapfe est quant à lui une interface graphique (front end) à nmap.
La forme de scan la plus commune consiste à utiliser l'option -sT. Ce mode se base sur l'établissement de la connexion par TCP, plus connu sous le nom de "three way handshake".
Starting nmap 3.81 ( http://www.insecure.org/nmap/ ) at 2006-04-25 08:09 CEST
Interesting ports on mandriva (192.168.0.1):
(The 1655 ports scanned but not shown below are in state: closed)
PORT STATE SERVICE
22/tcp open ssh
53/tcp open domain
80/tcp open http
443/tcp open https
3128/tcp open squid-http
3306/tcp open mysql
6000/tcp open X11
8080/tcp open http-proxy
Nmap finished: 1 IP address (1 host up) scanned in 0.348 seconds
LiSt Open Files est une commande utile et puissante qui permet de lister les fichiers ouverts par les processus tournant sur le système. Sous Unix tout est fichier: les pipes sont des fichiers ainsi que les sockets ip, les repertoires et les devices et les inodes ...
Voir les fichiers utilisés par un processus réseau :
|
lsof|grep proftpd COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME proftpd 2136 root cwd DIR 22,2 4096 2 / proftpd 2136 root rtd DIR 22,2 4096 2 / proftpd 2136 root txt REG 22,2 236456 244504 /usr/local/sbin/proftpd proftpd 2136 root mem REG 22,2 89547 1661383 /lib/ld-2.2.5.so proftpd 2136 root mem REG 22,2 23575 1661394 /lib/libcrypt-2.2.5.so proftpd 2136 root mem REG 22,2 35340 1661460 /lib/libpam.so.0.75 proftpd 2136 root mem REG 22,2 12102 1661396 /lib/libdl-2.2.5.so proftpd 2136 root mem REG 22,2 45415 1661416 /lib/libnss_files-2.2.5.so proftpd 2136 root mem REG 22,2 46117 1661424 /lib/libnss_nisplus-2.2.5.so proftpd 2136 root mem REG 22,2 89424 1661400 /lib/libnsl-2.2.5.so proftpd 2136 root mem REG 22,2 16051 1661413 /lib/libnss_dns-2.2.5.so proftpd 2136 root mem REG 22,2 68925 1661428 /lib/libresolv-2.2.5.so proftpd 2136 root mem REG 22,21401027 651528 /lib/i686/libc-2.2.5.so proftpd 2136 root 0u IPv4 19073 TCP *:ftp (LISTEN) proftpd 2136 root 1u IPv4 19074 TCP *:46000 (LISTEN) proftpd 2136 root 2u IPv4 19075 TCP *:47000 (LISTEN) proftpd 2136 root 3u unix 0xc4a6c0a0 16891 socket proftpd 2136 root 4r REG 22,2 1585 213675 /etc/passwd proftpd 2136 root 5r REG 22,2 657 212895 /etc/group |
| COMMAND | nom du processus |
| PID | numéro de processus (obtenu aussi par la commande ps |
| USER | identité sous laquelle est lancé le processus |
| FD | file descriptor - mem : memory-mapped file ; txt : program text (code and data)... |
| TYPE | type de noeud (ou inode) CHR :fichier spécial en mode caractère ; DIR : répertoire... plus de détails dans le man de lsof |
| DEVICE | major et minor number pour un fichier spécial, protocole... |
| SIZE | taille du fichier |
| NODE | numéro d'inode |
| NAME | nom du fichier ou point de montage |
Ce fichier permet la configuration d'un client DNS.
C'est lui qui permet l'utilisation de serveurs DNS pour la résolution de noms en adresse IP (ce qui vous permet par exemple de taper une URL dans un navigateur et non une adresse IP). Un fichier mal configuré vous empêchera notamment de surfer.
Rappel de la syntaxe :
cat /etc/resolv.conf
domain nom_de_domaine
nameserver adresseIP_DNS_Primaire
nameserver adresseIP_DNS_Secondaire
Attention : nameserver est un mot-clé à recopier tel que.domain contient le nom de domaine du provider qui vous a fourni les DNS ou celui de votre domaine, si vous disposez d'un serveur DNS
Telnet permet d'acceder à une machine distante. C'est aussi un excellent outil de diagnostic et de vérification du fonctionnement ou non d'un service en se connectant sur son port. Il permet également de vérifier la validité d'une règle de firewall.
La syntaxe : telnet
Exemple :
Je souhaite vérifier le bon fonctionnement de mon service ftp. Après vérification dans /etc/services, je sais que le port correspondant au serveur ftp est le 21.
* 1er cas de figure :
telnet 192.168.0.3 21
Trying 192.168.0.3...
Connected to 192.168.0.3.
Escape character is '^]'.
220 ProFTP Server Ready
La connexion est réussie, le serveur est opérationnel.
* 2e cas de figure :
telnet 192.168.0.3 21
Trying 192.168.0.3...
telnet: connect to address 192.168.0.3: Connection refused
La connexion est impossible, le service n'est pas disponible.
Le whois est l'annuaire mondial des responsables de sites internet qui est constitué à l'occasion de l'enregistrement des noms de domaine.
Une requête Whois permet de connaître des informations sur un nom de domaine
Exemple:
whois google.fr
Ci-dessous, trois autres outils qui vous permettront de faire de la résolution de nom ou de la résolution inverse avec des informations complémentaires sur l'identité du serveur :
* nslookup : utilisable en mode interactif ou non, à partir d'une adresse IP ou d'un nom.
Exemple :
nslookup
root@ip-106 log]# nslookup google.fr
Server: 81.220.255.4
Address: 81.220.255.4#53
La commande vous donne les infos suivantes :
o Server, Address : le serveur DNS qui effectue la résolution
o Non-authoritative answer : si la ligne est présente, cela signifie que l'adresse était présente dans le cache du serveur DNS.
o Name, Addresse : résultat de la commande
* dig : la commande nslookup tombant en désuétude, elle est remplacée aujourd'hui de plus en plus par dig. Elle dispose de fonctionnalités supplémentaires.
Exemple :
# dig google.fr
La sortie standard de la commande est sensiblement la même avec quelques précisions supplémentaires (durée de réalisation de la requête, DNS du domaine...)
* host : sans option, la sortie est extrêmement simple, il s'agit uniquement de la résolution.