outils de gestion iptables pour environnement à grande échelle

15

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.
womble
la source
Je vais mordre-- que signifient les termes "balles" et "super balles" dans votre message? Je suppose que vous ne parlez pas de sphères en caoutchouc rebondissantes, mais je ne peux pas en déduire si le contexte signifie «bon» ou «mauvais».
Evan Anderson
balles == mauvaises. Super balles == extra mauvais.
womble
Avec autant de règles, assurez-vous d'avoir une règle ACCEPT en haut acceptant les connexions établies et connexes. Les PC n'ont pas de TCAM et de nombreuses règles affectent les performances. Beaucoup.
Thomas
@thomas: Oui, il y a une certaine optimisation qui va dans le jeu de règles. Avoir cette "connaissance" de l'optimisation dans n'importe quel outil de pare-feu choisi serait un bonus, bien sûr.
womble

Réponses:

4

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:

  • plusieurs pare-feu pris en charge - vos règles principales + basées sur l'hôte - à partir d'un ensemble d'objets
  • SQL-esque "dites-moi ce que vous voulez" plutôt que "dites-moi comment faire" (NB je ne dis pas qu'il y a du SQL dedans! Juste que c'est descriptif Vs procédural :-)
  • C'est une interface graphique, un peu comme le matériel commercial avec les interfaces des fournisseurs, il est donc possible de pousser certaines tâches vers le bas de la pile des employés / compétences
  • prend en charge la plupart des utilisations "bizarres" que j'ai essayées
  • peut générer des règles pour une variété d'implémentations f / w - BSD / cicso / iptables / etc
  • sépare le front-end du compilateur de règles, ce qui me fait espérer que la vitesse est une préoccupation pour les auteurs. NB Je n'ai rien à l'échelle à laquelle vous faites allusion
  • Le format de fichier n'est pas binaire
  • fonctionne IPv6
  • Crée une configuration de style iptables-save pour un chargement atomique et rapide

Les inconvénients:

  • C'est une GUI
  • Il est peu probable que le déplacement de votre ensemble de règles existant soit indolore
  • Tandis que GPL et Debian, les clients Windows + OSX sont évalués sur 30 jours, car personne n'a encore compilé une version gratuite pour ces OS; d'où le bras commercial des développeurs a le monopole de ces binaires
  • Le format de fichier est techniquement XML; NB ne vous laissez pas décourager: jetez un œil aux outils qu'ils fournissent (vous pouvez utiliser le binaire gui pour le manipuler via la CLI par exemple), les outils XML CLI qui existent déjà, et rappelez-vous que - à votre échelle - un semblant de métadonnées + structure n'est pas une / mauvaise / chose! Il diffère assez bien d'une édition à l'autre, IIRC.

Lien: http://www.fwbuilder.org

Jonathan Matthews
la source
Hrm ... je vais jeter un oeil. L'existence d'une interface graphique (sans parler du XML) me fait trembler assez violemment, mais vous soulevez quelques idées intéressantes (ensemble unique de règles pour l'ensemble de l'infrastructure). La chose OS X ne va pas être un problème.
womble
Je suis d'accord, une interface graphique m'a fait WTF à l'origine, mais j'étais également satisfait de ce que j'ai vu du côté CLI. Quelle est la dynamique de votre configuration, de toute façon? Serait-ce 10 changements par jour ou 10 changements par an? Cela pourrait être un facteur utile à détailler ici. En outre, une fonction intéressante du format de fichier XML pourrait être que, en utilisant des outils compatibles XML, vous pouvez avoir toute la configuration dans un fichier, en utilisant des objets à définition unique, mais produire un journal des modifications spécifique au nœud pour documenter les configurations et les ensembles de modifications de chaque serveur. . Juste une pensée ...
Jonathan Matthews
@Jonathan: Vous avez raison, il est important de connaître le dynamisme de l'ensemble de règles. J'ai édité la question; c'est plusieurs fois par jour la plupart des jours ouvrables pour le jeu de règles de base.
womble
3

é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.

pQd
la source
"Ecrire le nôtre" n'est pas en jeu, mais c'est ce qui nous a amené à filtrer en premier lieu - il a été écrit par un ancien employé. Nous préférons ne pas produire encore un autre outil de gestion de pare-feu si cela est possible.
womble
IPSET est ultra rapide pour les grands ensembles de règles. "stockez plusieurs adresses IP ou numéros de port et comparez-les à la collecte par iptables d'un seul coup; mettez à jour dynamiquement les règles iptables par rapport aux adresses IP ou aux ports sans perte de performances; exprimez des ensembles de règles complexes basés sur les adresses IP et les ports avec une seule règle iptables et profitez de la vitesse d'ensembles IP "Je l'utilise avec shorewall. Je n'ai AUCUNE idée de la performance de Shorewall à votre échelle.
artifex
2

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"?

Greeblesnort
la source
Vous avez besoin d'un minimum de réputation pour commenter. Lorsque vous effectuez un lien apparaîtra.
jay_dubya
Il y a probablement une certaine redondance dans nos règles iptables, mais cela est largement dû au fait que filtergen n'est peut-être pas aussi efficace qu'il le pourrait. Nous avons cependant un / 19 d'espace IP, et des VLAN par client, et une "politique par défaut" assez restrictive (nécessitant des exceptions par IP pour ouvrir les ports comme requis par les clients). Nous ne pourrons certainement pas nous débarrasser de plus de quelques-unes de ces règles. Oh, et oui, nous utilisons déjà Puppet, et nous ne sommes pas sur le point de commencer à écrire des ensembles de règles à la main à notre échelle d'opérations.
womble
eh bien, vous maintenez certainement un espace IP plus grand que moi, mais je trouve toujours difficile de justifier en quelque sorte autant de règles. Avez-vous pensé à les répartir en une structure arborescente où vous pourriez utiliser des configurations de règles d'automne aux points d'étranglement? c'est-à-dire, tous les serveurs Web uniquement dans le sous-réseau X, tous les serveurs Web + SMTP dans le sous-réseau Y? Vous n'auriez pas à les sous-réseauter, regroupez-les logiquement derrière un pare-feu à plusieurs niveaux ... désolé si j'ajoute juste du bruit à ce stade ... Je ne suis peut-être tout simplement pas assez sophistiqué pour celui-ci. J'aime mes règles de pare-feu courtes et brutales =)
Greeblesnort
Nous ne sommes pas vraiment en mesure de «hiérarchiser» les choses comme ça; nous sommes en grande partie un fournisseur d'hébergement de serveurs dédié, de sorte que ce que nos clients décident de faire avec leurs machines au jour le jour pourrait changer, ce qui nécessiterait beaucoup plus de danse que si nous ne faisions qu'une infrastructure dédiée pour un service interne.
womble
0

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.

Le concierge Unix
la source
-2

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.

Paul Ma
la source
Je doute qu'une offre SaaS soit sans DFSG.
womble