strumenti di gestione iptables per ambienti su larga scala

L'ambiente in cui opero è un'operazione di web hosting di grandi size (diverse centinaia di server in gestione, quasi tutti gli indirizzi pubblici, ecc., Quindi è improbabile che funziona bene qualsiasi cosa che parli di gestire i collegamenti ADSL) ricercando qualcosa che sia comodo gestire sia le regole core (circa 12.000 voci in iptables al count corrente) che le regole basate sull'host che gestire per i clienti. Le nostre regole di router core cambiano poche volte al giorno e le regole basate sull'host dovrebbero cambiare forse 50 volte al mese (in tutti i server, quindi forse una modifica per cinque server al mese).

Attualmente stiamo usando filtri (che sono le palle in generale e le super-palline alla nostra scala di funzionamento), e ho usato lo shorewall in passato in altri lavori (che sarebbe preferibile filtrare, ma mi sembra che sia necessario essere qualcosa là fuori che è meglio di quello).

I "must" che abbiamo trovato per qualsiasi sistema di sostituzione sono:

  • Deve generare una regola abbastanza rapidamente (un filter gestito sulle nostre regole richiede 15-20 minuti, questo è solo folle) – questo è legato al prossimo punto:
  • Deve generare un file di stile di ripristino di iptables e caricare in un solo colpo, non call iptables per each inserto di regola
  • Non deve togliere il firewall per un periodo prolungato mentre le regole vengono ricaricate (questa è una conseguenza del punto precedente)
  • Deve supportre IPv6 (non implementiamo nulla di nuovo che non sia compatibile con IPv6)
  • Deve essere DFSG-free
  • È necessario utilizzare file di configuration di text normale (come eseguire tutto tramite il controllo di revisione e utilizzando gli strumenti standard di manipolazione di text Unix sono il nostro SOP)
  • Deve supportre sia RedHat che Debian (preferito confezionato, ma alless non deve essere apertamente ostile a tutti gli standard della distro)
  • Deve supportre la possibilità di eseguire comandi iptables arbitrari per supportre funzionalità che non fanno parte della "lingua madre" del sistema

Tutto ciò che non soddisfa tutti questi criteri non verrà considerato. Quello che segue è il nostro "simpatico":

  • Dovrebbe supportre il file di configuration "frammenti" (cioè, è ansible scaricare un mucchio di file in una directory e dire al firewall "includere tutto in questa directory nelle regole"; utilizziamo ampiamente la gestione delle configurazioni e vorremmo utilizzare questa funzionalità per fornire automaticamente le regole specifiche del servizio)
  • Dovrebbe sostenere i tavoli grezzi
  • Dovrebbe consentire di specificare ICMP particolare in entrambi i pacchetti in arrivo e le regole REJECT
  • Dovrebbe supportre graziosamente hostnames che risolvono a più di un indirizzo IP (ci è stato catturato da questo poche volte con filter, è un dolore piuttosto reale nel culo)
  • Le caratteristiche più opzionali / stranamente iptables che lo strumento support (in modo nativo o tramite plugin esistenti o facilmente scrivibili) è meglio. Ora usiamo stranezze di iptables e più di quelli che "lavorano solo", meglio per tutti.

5 Solutions collect form web for “strumenti di gestione iptables per ambienti su larga scala”

Se forse vuoi fare un passaggio da un approccio basato su regole per "descrivere lo stato finale richiesto" per fare le cose, date un'occhiata a fwbuilder.

Professionisti:

  • più firewall supportti – le tue core + basate su host – da un insieme di oggetti
  • SQL-esque "mi dica quello che vuoi" piuttosto che "mi dica come farlo" approccio (NB non sto dicendo che c'è un SQL in esso! Solo che è descrittivo Vs procedurale 🙂
  • È una GUI, un po 'come le interfacce dei fornitori di hardware hardware commerciale, quindi è ansible spingere alcune attività in giù per il dipendente / stack di competenze
  • sostiene l'utilizzo più "wierd" che ho provato
  • può generare regole per una varietà di implementazioni f / w – BSD / cicso / iptables / etc
  • separa front-end dal compilatore di regole, che mi fa sperare che la velocità sia una preoccupazione per gli autori. NB Non ho niente vicino alla scala a cui state alludendo
  • Il formato di file non è binario
  • fa IPv6
  • Crea una configuration stylee iptables-save per il caricamento atomico e rapido

Contro:

  • È una GUI
  • Spostamento delle regole esistenti è improbabile che sia privo di dolore
  • Mentre in GPL e in Debian, i client Windows + OSX sono 30 giorni eval, poiché nessuno ha ancora compilato una versione gratuita per quei sisthemes operativi; quindi il arm commerciale dei devs ha un monopolio su questi binari
  • Il formato di file è tecnicamente XML; NB non lasciatevi scoraggiare: date un'occhiata agli strumenti che forniscono (puoi usare il binario gui per manipolarlo per esempio tramite CLI), gli strumenti XML CLI già esistenti e ricordati che – al tuo scala – qualche parvenza di metadati + struttura non è un / no / cosa! Si diffonde abbastanza bene attraverso le modifiche, IIRC.

Link: http://www.fwbuilder.org

scrivi il tuo. seriamente – a questa scala è ragionevole.

utilizzare ipset e / o un sacco di tabelle iptable / sottostrutture. quando ansible ricaricare solo alcuni sottoattivi / alcuni set di ipset – questo accelera la riconfiguration.

probabilmente lo fai già, ma ancora vale la pena ricordare – utilizzare tabelle nidificate per ridurre il carico sul router e il numero medio di ricerche necessarie per i pacchetti che creano nuove connessioni. ovviamente -A FORWARD -m state –STATE ESTABLISHED, RELATED è la tua regola più alte.

palle santa (mantenere il tema in vita!) uomo … 12.000 regole fondamentali?

Suppongo di aver preso in considerazione tutte le opzioni più facili come semplicemente cadere i set in CVS? Puppet o CFengine?

Onestamente, dall'ampia panoramica che hai fornito, vorrei fortemente suggerire di riesaminare il tuo progetto di networking. Probabilmente sono un po 'troppo semplicistico, ma semplicemente non riesco a capire un design che richiederebbe 12k regole iptables. Questo suona davvero come qualcosa che avrebbe più vantaggio da una soluzione a tipo SLB che un modo migliore per gestire le regole del firewall.

Su una nota laterale, come si aggiunge un commento contro l'aggiunta di una "risposta"?

12000 regole? sei pazzo? Non hai problemi di performance con questa quantità di filtraggio in corso? Non riesco a capire perché avresti bisogno di 12.000 regole? Come si fa a verificare che le regole impostate effettivamente attua la politica?

Qual è la politica?

Come prova la tua politica?

12.000 regole possono rompere each regola di sicurezza nel libro.

puoi anche provare una soluzione SAAS per la gestione di iptables -> https://www.efw.io/Forum può anche eseguire l'integrazione di cloud AWS.

Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.