L'environnement dans lequel j'opère est une opération d'hébergement Web à grande échelle (plusieurs centaines de serveurs sous gestion, adressage presque tout public, etc. - il est donc peu probable que tout ce qui traite de la gestion des liens ADSL fonctionne bien), et nous ' Nous recherchons quelque chose qui sera confortable pour gérer à la fois l'ensemble de règles de base (environ 12 000 entrées dans iptables au nombre actuel) ainsi que les ensembles de règles basés sur l'hôte que nous gérons pour les clients. Notre ensemble de règles de routeur principal change plusieurs fois par jour, et les ensembles de règles basés sur l'hôte changeraient peut-être 50 fois par mois (sur tous les serveurs, donc peut-être un changement pour cinq serveurs par mois).
Nous utilisons actuellement filtergen (qui est des balles en général, et des super-balles à notre échelle de fonctionnement), et j'ai déjà utilisé shorewall dans d'autres emplois (ce qui serait préférable à filtergen, mais je pense qu'il faut être quelque chose de mieux que ça).
Les «moûts» que nous avons trouvés pour tout système de remplacement sont:
- Doit générer un ensemble de règles assez rapidement (un filtrage exécuté sur notre ensemble de règles prend 15 à 20 minutes; c'est juste fou) - cela est lié au point suivant:
- Doit générer un fichier de style de restauration iptables et le charger en une seule fois, pas appeler iptables pour chaque insertion de règle
- Ne doit pas supprimer le pare-feu pendant une période prolongée pendant le rechargement de l'ensemble de règles (encore une fois, c'est une conséquence du point ci-dessus)
- Doit prendre en charge IPv6 (nous ne déployons rien de nouveau qui n'est pas compatible IPv6)
- Doit être sans DFSG
- Doit utiliser des fichiers de configuration en texte brut (car nous exécutons tout par le biais du contrôle des révisions et l'utilisation d'outils de manipulation de texte Unix standard est notre SOP)
- Doit prendre en charge RedHat et Debian (préférablement empaqueté, mais au moins ne doit pas être ouvertement hostile aux normes des distributions)
- Doit prendre en charge la possibilité d'exécuter des commandes iptables arbitraires pour prendre en charge des fonctionnalités qui ne font pas partie de la «langue maternelle» du système
Tout ce qui ne répond pas à tous ces critères ne sera pas pris en compte. Ce qui suit est notre "agréable à avoir":
- Devrait prendre en charge les "fragments" du fichier de configuration (c'est-à-dire que vous pouvez déposer une pile de fichiers dans un répertoire et dire au pare-feu "inclure tout dans ce répertoire dans le jeu de règles"; nous utilisons largement la gestion de la configuration et aimerions utiliser cette fonctionnalité pour fournir automatiquement des règles spécifiques au service)
- Devrait prendre en charge les tables brutes
- Devrait vous permettre de spécifier un ICMP particulier dans les paquets entrants et les règles REJECT
- Devrait prendre en charge gracieusement les noms d'hôte qui se résolvent en plusieurs adresses IP (nous avons été surpris par celle-ci à quelques reprises avec filtergen; c'est une douleur plutôt royale dans le cul)
- Les fonctionnalités iptables les plus optionnelles / étranges que l'outil prend en charge (nativement ou via des plugins existants ou facilement inscriptibles) sont les meilleures. Nous utilisons de temps en temps des fonctionnalités étranges d'iptables, et plus celles qui "fonctionnent", mieux c'est pour tout le monde.