La configuration d'un pare-feu peut s'avérer être un sujet très difficile à traiter. Cette configuration est surtout établie en fonction de vos besoins personnels.
L'objectif de ce chapitre est de donner des conseils à suivre pour bien utiliser un pare-feu. Ensuite, nous nous intéresserons aux différentes méthodes d'attaques contre les pare-feux.
Pour bien configurer son pare-feu, il suffit de bien respecter les conseils suivants :
-
Essayez de limiter l'accès à votre réseau à des utilisateurs connus utilisant une adresse IP statique. Vous pourrez ainsi rejeter toutes les autres requêtes venant d'utilisateurs utilisant une adresse IP non autorisée. Vous effectuez de la sorte un filtrage au niveau IP.
-
Fermez tous les ports en écoute sur les différents serveurs et ouvrez seulement ceux dont vous avez besoin.
-
Filtrez ces ports, c'est à dire rejetez toutes les autres requêtes sur les autres ports que ceux en écoute.
-
Empêchez toutes les connexions sortantes sur des services non autorisés. Pour cela, il suffit de définir un nombre limité de services auxquels les serveurs et les clients peuvent accéder (mail, ftp, web...). Ensuite, il faut configurer le firewall pour rejeter les connexions depuis l'intérieur vers l'extérieur sur des services différant de ceux définis.
La première étape lors d'une attaque est de déterminer les règles actives sur le pare-feu. Le but est simple : savoir quels ports ne sont pas filtrés.
Nmap peut déterminer quels ports sont ou ne sont pas filtrés. Voici un exemple :
[root@nowhere.net /root]# nmap 192.168.1.2 Starting nmap V. 2.54BETA31 ( www.insecure.org/nmap/ ) Interesting ports on (192.168.1.2) : (The 1549 ports scanned but not shown below are in state : closed) Port State Service 21/tcp filtered ftp 22/tcp filtered ssh 111/tcp open sunrpc 515/tcp open printer 1024/tcp open kdm Nmap run completed -- 1 IP address (1 host up) scanned in 1 second
Les ports 21 (ftp) et 22 (ssh) sont filtrés.
Protégez-vous contre le scanning (voir section FIXIT scan). Si le scan ne marche pas, d'autres méthodes peuvent être utilisées comme le firewalking.
Cette technique de dévoilement des règles de firewalling repose sur un unique champ de l'en-tête IP, le TTL (Time To Live), ce champ représentant la durée de vie d'un paquet. Il est fixé dès son envoi par la pile de protocole du système et est diminué d'une unité à chaque fois qu'il traverse un équipement assurant le routage ; quand ce champ est égal à 0, le paquet est jeté à la poubelle.
Chaque passage d'un routeur à un autre est appelé un saut.
C'est ce champ qui est utilisé par le logiciel traceroute. Pour tracer une route, le logiciel
envoie un premier paquet UDP avec un TTL de 1 ; au premier routeur,
le TTL est décrémenté à 0. Le routeur renvoie un message ICMP de
type 11 ICMP TTL Exceeded
, ce qui
permet de récupérer l'adresse du premier routeur. Ensuite
traceroute va envoyer un deuxième
paquet avec un TTL de 2, il sera décrémenté au passage du premier
routeur (TTL=1). Le deuxième routeur va le recevoir et le
décrémenter : le champ TTL sera de nouveau égal à 0. Le deuxième
routeur renverra donc un message d'erreur : on récupère ainsi
l'adresse du deuxième routeur.
Si il y a N sauts jusqu'au réseau final, on réitère l'opération N fois.
On peut utiliser cette technique avec différents protocoles : UDP, TCP, ICMP.
Le firewalking repose sur cette technique pour déterminer les règles actives sur un pare-feu. firewalk, le programme implémentant le firewalking, détermine le nombre de routeurs entre la machine source et la machine cible (située derrière le firewall). Ensuite, il envoie des paquets tests avec un TTL égal à ce nombre de routeurs + 1. Si le paquet est accepté, il traverse le firewall et on obtient une réponse ; sinon il n'y a aucune réponse.
firewalk envoie différents types de paquets (TCP, UDP) pour déterminer les règles de firewalling. Néanmoins, de nombreux paramètres comme la congestion du réseau, le nombre de routeurs séparant la cible et l'émetteur peuvent fausser l'analyse.