9 votes

Quelle est la manière canonique de stocker les règles iptables ?

Iptables, le pare-feu standard de Linux, ne sauvegarde pas les règles entre les redémarrages. Vous devez vous en charger vous-même. Il existe de nombreuses façons de le faire. Quelle est la façon canonique de le faire ? Quelles sont les meilleures pratiques ?

Je vais répondre avec ma propre solution, mais je suis intéressé par d'autres / meilleures solutions.

0 votes

Très similaire aussi serverfault.com/questions/4934/

6voto

William Brendel Points 15453

Voici quelques exemples de règles. Enregistrez-les dans /etc/iptables.rules

# Generated by iptables-save v1.3.6 on Wed Oct 24 17:07:29 2007
*filter
:INPUT ACCEPT [89458:132056082]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [263904:15667452]
-A INPUT -i lo -j ACCEPT 
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT 
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT 
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7 
-A INPUT -j DROP 
COMMIT
# Completed on Wed Oct 24 17:07:29 2007

ajoutez cette ligne à la fin de /etc/network/interfaces

pre-up iptables-restore < /etc/iptables.rules

4voto

Kristof Provost Points 12359

Nous utilisons beaucoup de règles iptables Afin de faciliter l'administration, nous procédons comme suit :

  • Les règles sont toutes appelées à partir de scripts - scripts sont appelés à partir de /etc/init.d/firewall (scripts personnalisé)
  • Un fichier de noms de serveurs / noms de réseaux (variables d'adresses ip) est conservé, et inclus dans chaque script d'iptables pour la cohérence.
  • Des scripts séparés sont conservés pour chaque sous-réseau (ie. privé / DMZ / VPN, etc) pour faciliter la recherche. Les règles qui appartiennent à 2 scripts (comme celles qui restreignent la communication entre le privé et le DMZ) sont mises dans le scripts du réseau le plus "sécurisé".
  • Dans la mesure du possible, des boucles et des boucles imbriquées sont utilisées pour garder les scripts aussi courts que possible.
  • chaque nouvelle règle ou modification est documentée par des commentaires précédant la section appropriée du script.

Je ne sais pas si c'est le meilleur de faire cela, mais cela a bien fonctionné pour nous.

3voto

BrewinBombers Points 1122

S'il est vrai que cela dépend de l'environnement et de la plate-forme, j'ai vu deux bonnes approches, selon la plate-forme :

  • RHEL / CentOS : stocker toutes les règles dans un seul fichier /etc/sysconfig/iptables qui est lu par le script de démarrage d'iptables.

  • Debian/Ubuntu : stockez toutes les règles dans des fichiers séparés spécifiques aux services dans le répertoire /etc/iptables.d/. Par exemple, /etc/iptables.d/port_http, /etc/iptables.d/port_dns, où port_service correspond à un nom de service dans /etc/services.

Dans les deux cas, le ou les fichiers sont gérés par un outil de configuration comme Chef ou Puppet, et lus par le script de démarrage 'maître' pour iptables qui s'exécute au démarrage.

1voto

Zooba Points 6440

En plus de iptables-save (et iptables-restore ), les systèmes de pare-feu complexes sont mieux gérés par des programmes dédiés. Par exemple, nous avons utilisé shorewall ("iptables made easy") pour configurer iptables.

Des outils plus simples sont également disponibles, comme bougie d'allumage y kmyfirewall .

1voto

shak Points 235

Cela dépend de la distribution que vous utilisez. Certaines distributions, en particulier celles basées sur une distribution Red Hat, conservent les règles iptables automatiquement, mais dans un répertoire spécifique. Je suis plus familier avec RHEL et les règles iptables peuvent être trouvées dans /etc/sysconfig/iptables. Se familiariser avec la syntaxe des règles iptables peut être délicat au début, mais c'est assez facile une fois qu'on a compris.

Le site web de netfilter contient beaucoup de documentation sur iptables, y compris quelques introductions. Si vous êtes prêt à lire un peu, vous pouvez trouver beaucoup de bonnes informations ici : http://www.netfilter.org/documentation/

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X