Gestione delle regole di iptables in Linux


17

Ho molte regole per la mia configurazione di iptables (routing, ban ssh ecc.) Ho anche preso un elenco di IP da vietare da qui http://blacklist.linuxadmin.org e ora sta diventando davvero complicato.

Il mio /etc/sysconfig/iptablesè davvero lungo. C'è un modo per gestire le regole includendo regole da file esterni?

Per esempio:

#include "pre_routing_rules"
#include "ssh_bans"

Ciò includerà le regole aggiunte nei file "pre_routing_rules" e "ssh_bans" In questo modo posso facilmente gestire le mie regole senza andare in giro cat /etc/sysconfig/iptables.

Risposte:


11

Prova gli ipset di iptables . gli ipset sono configurati separatamente e questi sono anche più veloci se hai abbastanza indirizzi IP da gestire.

La regola di iptables può fare riferimento a ipset in questo modo:

iptables -A FORWARD -m set --set blocklist src, dst -j DROP


Il mio problema più grande è con l'indirizzo IP, quindi posso usarlo.

Sto usando questa funzione. La mia lista nera / lista bianca IP sono i più grandi, quindi possono andare in un ipset. Penso che le cose pre-routing possano rimanere nella lista di configurazione principale

Questo thread del forum ha alcuni esempi di script che usano ipset: forum.gentoo.org/viewtopic-t-863121.html
mivk

3

Una soluzione semplice è quella di utilizzare più script bash per ogni sezione qualcosa come:

iptables-routing.sh
iptables-ssh-bans.sh
iptables-blacklist.sh

Ed esegui questi file da uno script principale.


Beh sì, è quello che faccio. Ma se devo visualizzare l'elenco delle regole di iptables (es. Cat / etc / sysconfig / iptables), mi mostrerà tutte le regole che sono state aggiunte tramite iptables-routing.sh iptables-blacklist.sh

2

iptables non legge direttamente il file, fatto da un programma chiamato iptables-restore. Questo di solito viene chiamato da uno dei tuoi script init.

È possibile aggiungere ulteriori file di input alla linea di ripristino di iptables. Dovrai trovare dove si trova questa linea sul tuo sistema ma nella mia casella Debain, è in /etc/init.d/nat

La riga attualmente recita così:

/sbin/iptables-restore < /etc/network/iptables

Forse potrebbe essere cambiato in qualcosa del genere:

cat /etc/network/iptables \
    /etc/network/pre_routing_tables \
    /etc/network/ssh_bans | /sbin/iptables-restore

2

Tendo a usare uno dei tanti script / strumenti di firewall on-top-of-iptables, come Firestarter o Shorewall, vengono forniti con molti file, separati per scopo, aggiungono regole interessanti per proteggere contro alcuni tipi di pacchetti fasulli e di solito funzionano bene.


Sono utilizzabili dalla riga di comando? Il mio server è remoto e non preferisco davvero fare X su SSH

Shorewall è un insieme di file di testo semplici che generano regole iptables. È molto utilizzabile dalla riga di comando e offre ottimi strumenti di documentazione e diagnostica.
Paul Gear,

0

Non sono sicuro di quale distro stai eseguendo, dal momento che il mio non possiede il file a cui ti riferisci, ma in genere i file che contengono regole iptables sono solo script di shell, quindi dovresti essere in grado di fare quello che vuoi con una linea ad esempio :

. / Etc / sysconfig / pre_routing_rules

o ad esempio nella parte superiore del file iptables a cui ti riferisci.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.