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.
Réponses:
Si vous souhaitez peut-être passer d'une approche basée sur des règles à une méthode de "description de l'état final requis", jetez un œil à fwbuilder.
Avantages:
Les inconvénients:
Lien: http://www.fwbuilder.org
la source
écrivez votre propre. sérieusement - à cette échelle, il est raisonnable.
utilisez un ipset et / ou de nombreuses tables / sous-tables iptables. dans la mesure du possible, ne rechargez que quelques sous-tables / certains ensembles d'ipsets - cela accélérera la reconfiguration.
vous l'avez probablement déjà fait, mais il convient de le mentionner - utilisez des tables imbriquées pour réduire la charge sur le routeur et le nombre moyen de recherches nécessaires pour les paquets établissant de nouvelles connexions. évidemment -Un état FORWARD -m --state ESTABLISHED, RELATED est votre règle la plus élevée.
la source
boules sacrées (garder le thème vivant!) homme ... 12 000 règles de base?
Je suppose que vous avez considéré toutes les options faciles comme simplement déposer les ensembles dans CVS? Marionnette ou CFengine?
Honnêtement, d'après le large aperçu que vous avez donné, je vous suggère fortement de réévaluer la conception de votre réseau. Je suis probablement un peu trop simpliste, mais je ne peux tout simplement pas imaginer un design qui nécessiterait des règles iptables de 12k. Cela ressemble vraiment à quelque chose qui bénéficierait davantage d'une solution de type SLB qu'une meilleure façon de gérer les règles de pare-feu.
En passant, comment ajouter un commentaire par rapport à l'ajout d'une "réponse"?
la source
12000 règles? Es-tu fou? Ne souffrez-vous pas de problèmes de performances avec cette quantité de filtrage en cours? Je ne vois pas pourquoi vous auriez besoin de 12 000 règles? Comment vérifiez-vous que votre ensemble de règles applique réellement la stratégie?
Quelle est la politique?
Comment testez-vous votre police?
12 000 règles violent éventuellement toutes les règles de sécurité du livre.
la source
vous pouvez également essayer une solution SAAS pour gérer iptables -> https://www.efw.io/Forum, il peut également intégrer l'intégration cloud AWS.
la source