Introduction à IPTABLES: configurer un pare-feu sous Linux

iptables

Pour configurer un pare-feu ou un pare-feu sous Linux, nous pouvons utiliser iptables, un outil puissant qui semble oublié par de nombreux utilisateurs. Bien qu'il existe d'autres méthodes, telles que les ebtables et les arptables pour filtrer le trafic au niveau du lien, ou Squid au niveau de l'application, iptables peut être très utile dans la plupart des cas, mettant en œuvre une bonne sécurité dans notre système au niveau du trafic et du transport du réseau.

Le noyau Linux implémente iptables, une partie qui s'occupe du filtrage des paquets et que dans cet article, nous vous apprenons à configurer de manière simple. En termes simples, iptables identifie les informations qui peuvent et ne peuvent pas entrer, isolant votre équipe des menaces potentielles. Et bien qu'il existe d'autres projets comme Firehol, Firestarter, etc., beaucoup de ces programmes de pare-feu utilisent iptables ...

Eh bien, Mettons-nous au travail, avec des exemples vous comprendrez tout mieux (dans ces cas, vous devez avoir des privilèges, utilisez donc sudo devant la commande ou devenez root):

La manière générale d'utiliser iptables créer une politique de filtrage est:

IPTABLES -ARGUMENTS ACTION D'E / S

Où -ARGUMENT est l'argument que nous utiliserons, normalement -P pour établir la politique par défaut, bien qu'il y en ait d'autres comme -L pour voir les politiques que nous avons configurées, -F pour supprimer une politique créée, -Z pour réinitialiser les compteurs d'octets et de paquets, etc. Une autre option est -A pour ajouter une stratégie (pas par défaut), -I pour insérer une règle à une position spécifique et -D pour supprimer une règle donnée. Il y aura également d'autres arguments pour pointer vers les protocoles -p, –sport port source, –dport pour le port de destination, -i interface entrante, -o interface sortante, -s adresse IP source et -d adresse IP de destination.

iptables entrée-sortie

De plus, les E / S représenteraient si la politique Il est appliqué à l'entrée INPUT, à la sortie OUTPUT ou c'est une redirection de trafic FORWARD (il y en a d'autres comme PREROUTING, POSTROUTING, mais nous ne les utiliserons pas). Enfin, ce que j'ai appelé ACTION peut prendre la valeur ACCEPT si nous acceptons, REJECT si nous rejetons ou DROP si nous éliminons. La différence entre DROP et REJECT est que lorsqu'un paquet est rejeté avec REJECT, la machine qui l'a généré saura qu'il a été rejeté, mais avec DROP, il agit en silence et l'attaquant ou l'origine ne saura pas ce qui s'est passé, savoir si nous avons un pare-feu ou si la connexion a échoué. Il y en a aussi d'autres comme LOG, qui envoient un suivi du syslog ...

Pour modifier les règles, nous pouvons éditer le fichier iptables avec notre éditeur de texte préféré, nano, gedit, ... ou créer des scripts avec des règles (si vous voulez les remplacer, vous pouvez le faire en mettant un # devant la ligne pour qu'il soit ignoré comme commentaire) via la console avec des commandes comme nous l'expliquerons ici. Dans Debian et ses dérivés, vous pouvez également utiliser les outils iptables-save et iptables-restore ...

La politique la plus extrême est de tout bloquer, absolument tout le trafic, mais cela nous laissera isolés, avec:

iptables -P INPUT DROP

Pour tout accepter:

iptables -P INPUT ACCEPT

Si on veut ça tout le trafic sortant de notre équipe est accepté:

iptables -P OUTPUT ACEPT

La une autre action radicale serait d'effacer toutes les politiques d'iptables avec:

iptables -F

Passons à des règles plus concrètesImaginez que vous avez un serveur Web et que le trafic via le port 80 doit donc être autorisé:

iptables -A INPUT -p tcp --dport 80 -j ACCEPT

Et si en plus de la règle précédente, on veut une équipe avec iptables être vu uniquement par les ordinateurs de notre sous-réseau et cela passe inaperçu par un réseau externe:

iptables -A INPUT -p tcp -s 192.168.30.0/24 --dport 80 -j ACCEPT

Dans la ligne précédente, ce que nous disons à iptables est d'ajouter une règle -A, afin que les entrées INPUT et le protocole TCP, via le port 80, soient acceptés. Maintenant, imaginez que vous voulez que je le fasse la navigation sur le Web est rejetée pour les machines locales passant par la machine exécutant iptables:

iptables -t filter -A FORWARD -i eth1 -o eth0 -p tcp --dport 80 DROP

Je pense que l'utilisation est simple, compte tenu de ce à quoi sert chaque paramètre d'iptables, nous pouvons ajouter des règles simples. Vous pouvez faire toutes les combinaisons et règles que nous imaginons ... Afin de ne pas m'étendre davantage, ajoutez juste une chose de plus, et c'est que si la machine est redémarrée, les politiques créées seront supprimées. Les tables sont redémarrées et resteront comme avant, donc, une fois que vous aurez bien défini les règles, si vous voulez les rendre permanents, vous devez les faire lancer depuis /etc/rc.local ou si vous avez un Debian ou des dérivés, utilisez les outils qui nous sont fournis (iptables-save, iptables-restore et iptables-apply).


4 commentaires, laissez le vôtre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données : AB Internet Networks 2008 SL
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.

  1.   Jimmy Olano dit

    C'est le premier article que je vois sur IPTABLES qui, bien que dense -exige un niveau moyen de connaissances-, VA DIRECTEMENT AU GRAIN.

    Je recommande à tout le monde de l'utiliser comme un "manuel de référence rapide" car il est très bien condensé et expliqué. 8-)

  2.   Jésus dit

    J'aimerais que vous parliez dans un prochain article de la question de savoir si le changement de systemd dans la plupart des distributions Linux affecte d'une manière ou d'une autre la sécurité de Linux en général, et si ce changement est pour le meilleur ou pour le pire du futur et des distributions Linux. J'aimerais aussi savoir ce que l'on sait du futur de devuan (debian sans systemd).
    Merci beaucoup vous faites de très bons articles.

  3.   Slevin dit

    Pourriez-vous faire un article expliquant la table de mangle?

  4.   Sebastian dit

    Bloquer uniquement Facebook?