Catégories
Internet Linux

Netfilter.

Je pense qu’as ce stade, le réseau c’est un peu plus éclaircis, on va donc devoir se protéger, avec un pare-feu (firewall), en l’occurrence on s’intéressera à Netfilter, configurables avec la commandes iptables. On constatera après quelque recherche que nous pouvons filtrer par interfaces (eth0, wlan0 etc..), par port, par adresse de destination ou de sources des paquets et d’autres encore.

Le principe de base des politiques, lorsque votre machine envoie ou reçoit un paquet IP, il y as trois politiques, ACCEPT, REJECT et DROP. Avec la politiques imputés au différent paquet.

Soit ACCEPT et il s’écoule normalement, soit REJECT et il n’est pas retransmis mais la machine source est prévenue et avec la politique DROP le paquet sera tout simplement pas transmis et votre machine n’enverra rien à la machine source.

Il y en as autant pour la directions des paquets (les chaines); INPUT, OUTPUT et FORWARD.

Soit;

INPUT; désignant les paquets entrants.

OUTPUT; désignant les paquets sortants.

FORWARD; désignant les paquets sortants destinés à une troisième machine(par exemple pour utilisé votre machine comme passerelle).

Il y as également les tables suivantes, filter, mangle, nat, raw et security.

La table filter: c’est la table par défaut. Elle contient les chaînes intégrées INPUT, FORWARD et OUTPUT.

La table mangle: Ou, comme j’aime à l’appeler « la broyeuse« ). Les chaines possibles sont les même que la table nat.: PREROUTING, OUTPUT, INPUT, POSTROUTING et en plus la chaine FORWARD.

La table nat: Cette table est assez intéressantes dés lors que l’on veux modifier les entrées et sorties. Quatre chaines lui sont associés tel que, PREROUTING (qui modifie les paquets à leur arrivés), INPUT (qui modifie les paquets entrants pour les sockets locaux), OUTPUT (pour modifier les paquets, localement générés avant leurs sorties) et POSTROUTING (qui modifie les paquets au fur et à mesure qu’ils sortent). (Le support NAT IPv6 est disponible depuis le noyau 3.7.)

La table raw: Cette table s’enregistre avant tout autres et est donc même appelé avant ip_conntrack, ou tout autres tables IP. Elle possèdes deux chaines, PREROUTING (pour tout paquets de n’importe quel interface) OUTPUT (pour vos paquets en sortie).

La table security: Cette table est utilisé pour le contrôle d’accès obligatoire (MAC) des règles de mise en réseau, telles que celles activées par SECMARK et CONNSECMARK. Le contrôle d’accès obligatoire est implémenté par des modules de sécurité Linux tels que SELinux. La table de sécurité est appelée après la table de filtre, elle as les mêmes chaines que pour la table filter.

Je vous rappelle que le man est disponible et plus que conseillé!

Il existe plusieurs manières de faire un script iptables, ici ont va ce contenter d’éditer un fichier iptables.sh (rappelle que là ou votre fichier sera créer, il faudra se trouver à son emplacement pour le lancer avec la console);

sh ./iptables.sh

Exemple de configuration;

On utilise bien entendu la table filter.

*filter

#on vide toutes les anciennes règles

-F INPUT
-F OUTPUT
-F FORWARD

#on instaure une politiques par défaut (sécurisée)

-P INPUT DROP
-P OUTPUT DROP
-P FORWARD DROP

#on autorise l’interface loopback

-I INPUT -i lo -j ACCEPT
-I OUTPUT -o lo -j ACCEPT

#ici on va créer la tables permettant nos sorties spéciale (module ip-conntrack)

-A OUTPUT -m state –state INVALID,UNTRACKED -j ACCEPT

#la on va autoriser le protocole ICMP

-A INPUT -p icmp -m state –state ESTABLISHED -j ACCEPT
-A OUTPUT -p icmp -m state –state NEW,ESTABLISHED -j ACCEPT

#on va autoriser le protocole UDP sur le port 53

-A INPUT -p udp –sport 53 -m state –state ESTABLISHED -j ACCEPT
-A OUTPUT -p udp –dport 53 -m state –state NEW,ESTABLISHED -j ACCEPT

#ici on autorisera le protocole TCP uniquement sur quelques ports

-A INPUT -p tcp -m multiport –sports 25,80,443,993 -m state –state ESTABLISHED -j ACCEPT
-A OUTPUT -p tcp -m multiport –dports 25,80,443,993 -m state –state NEW,ESTABLISHED -j ACCEPT

Voici pour une utilisations simple et sécurisé, si vous voulez faire plus, je vous laisse lire le man. Sachez également que différents modules sont très utiles.

By Platon-y.