Analyser le réseau et filtrer le trafic avec un pare-feu¶
host www.google.com- renvoie l’adresse ip du site
- pour voir les associations (~DNS) locales :
- -> /etc/hosts
whois google.com- obtenir des infos sur un site (installer d’abord le package whois)
ifconfig- liste des interfaces réseau
lo: c’est la boucle locale. Tout le monde devrait avoir cette interface. Elle correspond à une connexion à… vous-mêmes. C’est pour cela qu’on l’appelle la boucle locale : tout ce qui est envoyé par là vous revient automatiquement. Cela peut paraître inutile, mais on a parfois besoin de se connecter à soi-même pour des raisons pratiques. ifconfig eth0 down/up- activer/désactiver une interface
netstat- statistiques sur le réseau
netstat -i- statistiques des interfaces réseau
netstat -utalister toutes les connexions ouvertes
Options :
-u: afficher les connexions UDP ;-t: afficher les connexions TCP ;-a: afficher toutes les connexions quel que soit leur état.-n: affiche les n° de port plutôt que leur description-l: affiche les connexions en état d’écoute
Statuts :
ESTABLISHED: la connexion a été établie avec l’ordinateur distantTIME_WAIT: la connexion attend le traitement de tous les paquets encore sur le réseau avant de commencer la fermetureCLOSE_WAIT: le serveur distant a arrêté la connexion de lui-même (peut-être parce que vous êtes restés inactifs trop longtemps ?)CLOSED: la connexion n’est pas utiliséeCLOSING: la fermeture de la connexion est entamée mais toutes les données n’ont pas encore été envoyéesLISTEN: à l’écoute des connexions entrantes. Les connexions à l’état LISTEN ne sont pas utilisées actuellement mais qu’elles « écoutent » le réseau au cas où quelqu’un veuille se connecter à votre ordinateur
netstat -s- statistiques résumées
iptables -Lafficher les règles
Chain INPUT: correspond aux règles manipulant le trafic entrant ;Chain FORWARD: correspond aux règles manipulant la redirection du trafic ;Chain OUTPUT: correspond aux règles manipulant le trafic sortant.target: ce que fait la règle. Ici c’est ACCEPT, c’est-à-dire que cette ligne autorise un port et / ou une IPprot: le protocole utilisé (tcp, udp, icmp). Je rappelle que TCP est celui auquel on a le plus recourt. ICMP permet à votre ordinateur de répondre aux requêtes de type « ping »source: l’IP de source. Pour INPUT, la source est l’ordinateur distant qui se connecte à vousdestination: l’IP de destination. Pour OUTPUT, c’est l’ordinateur auquel on se connecte- la dernière colonne : elle indique le port après les deux points « : ». Ce port est affiché en toutes lettres, mais avec -n vous pouvez obtenir le numéro correspondant
iptables -F- réinitialise les règles du pare-feu (attention : efface tout le travail fait auparavant sur le pare-feu…)
Ajouter et supprimer des règles :
Voici les principales commandes à connaître :
-A chain: ajoute une règle en fin de liste pour la chain indiquée (INPUT ou OUTPUT, par exemple).-D chain rulenum: supprime la règle n° rulenum pour la chain indiquée.-I chain rulenum: insère une règle au milieu de la liste à la position indiquée par rulenum. Si vous n’indiquez pas de position rulenum, la règle sera insérée en premier, tout en haut dans la liste.-R chain rulenum: remplace la règle n° rulenum dans la chain indiquée.-L: liste les règles (nous l’avons déjà vu).-F chain: vide toutes les règles de la chain indiquée. Cela revient à supprimer toutes les règles une par une pour cette chain.-P chain regle: modifie la règle par défaut pour la chain. Cela permet de dire, par exemple, que par défaut tous les ports sont fermés, sauf ceux que l’on a indiqués dans les règles.-m (--match): Specifies a match to use, that is, an extension module that tests for a specific property. The set of matches make up the condition under which a target is invoked. Matches are evaluated first to last as specified on the command line and work in short-circuit fashion, i.e. if one extension yields false, evaluation will stop.
iptables -A (chain) -p (protocole) --dport (port) -j (décision)- ajouter une règle. Remplacez chain par la section qui vous intéresse (
INPUTouOUTPUT), protocole par le nom du protocole à filtrer (TCP, UDP, ICMP…) et enfin décision par la décision à prendre :ACCEPTpour accepter le paquet,REJECTpour le rejeter ou bienDROPpour l’ignorer complètement.
exemple : iptables -A INPUT -p tcp --dport ssh -j ACCEPT
iptables -A INPUT -p icmp -j ACCEPT- autoriser les pings (protocole ICMP)
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
- La première règle autorise tout le trafic sur l’interface de loopback locale grâce à -i lo. Il n’y a pas de risque à autoriser votre ordinateur à communiquer avec lui-même, d’autant plus qu’il en a parfois besoin !
- La seconde règle autorise toutes les connexions qui sont déjà à l’état ESTABLISHED ou RELATED. En clair, elle autorise toutes les connexions qui ont été demandées par votre PC. Là encore, cela permet d’assouplir le pare-feu et de le rendre fonctionnel pour une utilisation quotidienne.
iptables -P INPUT DROP- on refuse tout ce qui n’est pas aurtorisé (faire de même pour OUTPUT)
ATTENTION : ces règles seront perdues au redémarrage ! pour que ça ne soit pas le cas -> ajouter un script shell