Linux Firewall - ipchains

Tout trafic dans un réseau est envoyé sous forme de paquets. La tête de chaque paquet dit où il va, d'où il vient et le type de paquet. Cette tête est appelée "Header".

Certains protocoles, comme TCP, qui sont utilisés pour le trafic web, mail et les "logins" à distance utilisent le concept de connexion càd qu'avant l'arrivée des paquets avec les données, il y des paquets de configuration (avec des "headers") spéciaux) qui disent "je veux me connecter", "OK" et "merci". Ensuite les paquets de données sont échangés.

Un filtre de paquets est un logiciel qui vérifie les "header" des paquets lorsqu'ils arrivent et qui décide du sort de ces paquets, soit le rejeter comme s'il n'avait jamais été reçu, soit l'accepter soit le rejeter mais avec un message expédié à la source du paquet.

ipchains

L'outil ipchains insère ou supprime des "règles" de la section "filtrage" du noyau. Ce qui signifie que toute configuration sera perçue lors d'un "reboot". Pour rendre les règles permanentes utiliser les scripts "ipchains-save" et "ipchains-restore".
Taper:

# ipchains-save > /etc/ipchains.rules

Cela crée un script à mettre très tôt dans la procédure de démarrage




Commandes ipchains

  1. Créer une nouvelle chaîne (-N).
  2. Supprimer une chaîne vide (-X).
  3. Changer la politique d'une chaîne (-P).
  4. Lister les règles d'une chaîne (-L).
  5. Vider ("Flush") les règles hors d'une chaîne (-F)
  6. "Zéro" les compteurs de paquet et d'octet sur toutes les règles dans une chaîne (-Z).

    Pour manipuler les règles à l'intérieur d'une chaîne:

  7. "Append" une nouvelle règle (-A).
  8. Insérer une nouvelle règle (-I).
  9. Remplacer une règle à une position précise (-R).
  10. Supprimer une règle à une position précise (-D).




    Bloquer les tentatives de connexions de l'extérieur

    Il ne faut pas bloquer les connexions entrantes mais seulement les tentatives de connexions càd les paquets SYN:

    Pour cela on rajoute l'option -y:

    #Refuse les connexions vers 192.168.0.1 ipchains -A input -p tcp -s 0.0.0.0/0 - REJECT -y




    Protection anti-spoofing

    L'IP spoofing est une méthode qui consiste à se faire passer pour un PC que l'on n'est pas. En clair, cela signifie que quelqu'un envoie des paquets avec comme origine "théorique" une machine du réseau local.
    Pour se protéger de cela, voilà ce qu'il faut rajouter dans le script de firewall:

    /sbin/ipchains -A input -i ! eth0 -s 192.168.0.0/24 -d 0.0.0.0/0 -j DENY

    Cela signifie que si des paquets arrivent de votre connexion adsl (eth0) (ou modem ppp0) ayant pour adresse une adresse du réseau local, ils seront littéralement éjectés sans avertissement.