Gérer les règles iptables sous Linux


17

J'ai beaucoup de règles pour ma configuration iptables (routage, interdictions ssh, etc.) J'ai également récupéré une liste d'adresses IP à interdire à partir d'ici http://blacklist.linuxadmin.org et maintenant ça devient vraiment compliqué.

Mon /etc/sysconfig/iptablesest vraiment long. Existe-t-il un moyen de gérer les règles en incluant des règles provenant de fichiers externes?

Par exemple:

#include "pre_routing_rules"
#include "ssh_bans"

Cela inclura les règles ajoutées dans les fichiers "pre_routing_rules" et "ssh_bans". De cette façon, je peux facilement gérer mes règles sans chercher cat /etc/sysconfig/iptables.

Réponses:


11

Essayez les ipsets d'iptables . les ipsets sont configurés séparément, et ils sont également plus rapides si vous avez suffisamment d'adresses IP à gérer.

La règle iptables peut faire référence à un ipset comme ceci:

iptables -A FORWARD -m set --set blocklist src, dst -j DROP


Mon plus gros problème est avec l'adresse IP, donc je peux l'utiliser.

J'utilise cette fonctionnalité. Mes IP de liste noire / liste blanche sont les plus grandes, donc elles peuvent aller dans un ipset. Je pense que le pré-routage peut rester dans la liste de configuration principale

Ce fil de discussion contient quelques exemples de scripts utilisant des ipsets: forums.gentoo.org/viewtopic-t-863121.html
mivk

3

Une solution simple consiste à utiliser plusieurs scripts bash pour chaque section, quelque chose comme:

iptables-routing.sh
iptables-ssh-bans.sh
iptables-blacklist.sh

Et exécutez ces fichiers à partir d'un script maître.


Eh bien, c'est ce que je fais. Mais si je dois afficher la liste des règles iptables (par exemple, cat / etc / sysconfig / iptables), cela me montrera toutes les règles qui ont été ajoutées via iptables-routing.sh iptables-blacklist.sh

2

iptables ne lit pas directement le fichier, ce qui est fait par un programme appelé iptables-restore. Ceci est généralement appelé à partir de l'un de vos scripts d'initialisation.

Vous pouvez ajouter des fichiers d'entrée supplémentaires à votre ligne de restauration iptables. Vous devrez trouver où cette ligne se trouve sur votre système mais sur ma boîte Debain, elle se trouve dans /etc/init.d/nat

La ligne se lit actuellement comme suit:

/sbin/iptables-restore < /etc/network/iptables

Peut-être que cela pourrait être changé en quelque chose comme ceci:

cat /etc/network/iptables \
    /etc/network/pre_routing_tables \
    /etc/network/ssh_bans | /sbin/iptables-restore

2

J'ai tendance à utiliser l'un des nombreux scripts / outils de pare-feu sur iptables, comme Firestarter ou Shorewall, ils sont livrés avec de nombreux fichiers, séparés par objectif, ajoutent des règles intéressantes pour se protéger contre certains types de faux paquets et ils fonctionnent généralement bien.


Sont-ils utilisables via la ligne de commande? Mon serveur est distant et je ne préfère vraiment pas faire X avec SSH

Shorewall est un ensemble de fichiers texte plats qui génèrent des règles iptables. Il est très utilisable depuis la ligne de commande et dispose d'excellents outils de documentation et de diagnostic.
Paul Gear

0

Je ne suis pas sûr de la distribution que vous exécutez, car le mien ne possède pas le fichier auquel vous faites référence - mais généralement les fichiers qui contiennent des règles iptables ne sont que des scripts shell - vous devriez donc être en mesure de faire ce que vous voulez en ayant une ligne tel que :

. / etc / sysconfig / pre_routing_rules

ou comme en haut du fichier iptables auquel vous vous référez.


J'exécute Fedora et CentOS
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.