Translation(s): English - Italiano


ferm è un frontend per iptables, che fornisce un modo di scrivere insiemi di regole gestibili, senza sacrificare la flessibilità. Per usare ferm, è necessario conoscere come scrivere le regole per iptables.

Informazioni generali

La maggior parte degli script per iptables eseguono il comando iptables ripetutamente per inserire varie regole. ferm fornisce un modo per scrivere un unico file di configurazione per il proprio firewall e applicarlo tutto in una volta.

Vantaggi:

Esempio

Ecco uno script di esempio per iniziare.

# regole del firewall di ferm
# http://ferm.foo-projects.org

# Politiche per le chain
domain (ip ip6) {
 table filter {
  chain (INPUT FORWARD) policy DROP;
  chain OUTPUT policy ACCEPT;
 }
}

# loopback
domain (ip ip6) table filter {
 chain INPUT interface lo ACCEPT;
 chain OUTPUT outerface lo ACCEPT;
}

# ipv6
domain ip table filter chain (INPUT OUTPUT) protocol ipv6 ACCEPT;

# icmp (il kernel usa il rate-limiting)
domain (ip ip6) table filter chain (INPUT OUTPUT) protocol icmp ACCEPT;

# invalidi
domain (ip ip6) table filter chain INPUT mod state state INVALID DROP;

# connessioni stabilite/correlate
domain (ip ip6) table filter chain (INPUT OUTPUT) mod state state (ESTABLISHED RELATED) ACCEPT;

# non permette più di 8 tentativi ssh in 5 minuti da una singola fonte IP
domain (ip ip6) table filter chain INPUT {
 protocol tcp dport ssh @subchain {
  mod recent name SSH {
   set NOP;
   update seconds 300 hitcount 8 @subchain {
    LOG log-prefix "Blocked-ssh: " log-level warning;
    DROP;
   }
  }
  ACCEPT;
 }
}

# Respingere (REJECT) per la chain FORWARD
domain (ip ip6) table filter chain FORWARD REJECT;

# registrare tutto il resto dell'INPUT
domain (ip ip6) table filter chain INPUT {
 mod limit limit 3/min limit-burst 10 LOG log-prefix "INPUT-rejected: " log-level debug;
 REJECT;
}

Vedere anche