erlug
[Top] [All Lists]

Re: [Erlug] script di configurazione per iptables

To: ERLug <erlug@xxxxxxxxxxxxxx>
Subject: Re: [Erlug] script di configurazione per iptables
From: Davide Alberani <alberanid@xxxxxxxx>
Date: Sat, 27 Oct 2001 14:58:09 +0200
On Oct 27, Pierluigi Perri <perri@xxxxxxxxxxxxxxx> wrote:

> cercavo, se esiste, uno script come quello di MrShark però studiato
> per configurare iptables.

Hmmm... se ben ricordo, nelle sue regole, gli IP di alcuni server
(e.g. il mail server del tuo provider) vengono usati per discriminare
cosa accettare e cosa no; questa e` - in generale - una pratica errata.

Per farla breve puoi avere un firewall minimo, con iptables, con
un paio di righe che utilizzino l'estensione 'state': la prima
per accettare ESTABLISHED,RELATED ; la seconda per accettare i NEW
che *NON* provengano dall'interfaccia che ti connette col mondo
esterno.  Poi metti la policy per la catena INPUT a REJECT o DROP.
A naso dovrebbe (leggi "potrebbe") funzionare.

Volendo complicare le cose & fare i fichetti:

# tiriam nel cesso le regole precedenti.
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD

# consenti ogni sorta di porcata in locale.
# da NON loggare.  Eventualmente aggiungi altre interfacce.
iptables -A INPUT -j ACCEPT --destination 0/0 --source 0/0 --in-interface lo
iptables -A OUTPUT -j ACCEPT --destination 0/0 --source 0/0 --out-interface lo

# setta le policy di default (per una macchina dial-up singola).
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP

# per non avere timeout con servizi che richiedono identd.
# ha senso farla precedere da una regola che logghi le richieste.
iptables -A INPUT -p tcp -j REJECT --destination 1.2.3.4 --source 0/0 --destina
ion-port 113

# logga i tentativi di aprire dall'esterno nuove connessioni
# ed i pacchetti non appartententi a connessioni aperte dall'interno.
iptables -A INPUT -m state -m limit -j LOG --destination 1.2.3.4 --source 0/0 
--state NEW,INVALID

# accetta i pacchetti facenti parte di connessioni
# aperte dall'interno.
# da NON loggare.
iptables -A INPUT -m state -j ACCEPT --destination 1.2.3.4 --source 0/0 --state 
ESTABLISHED,RELATED


Note sparse:
- sto improvvisando; non e` detto che funzioni al primo colpo. :-)

- nello script si suppone 1.2.3.4 tuo IP locale ($PPP_LOCAL se
  fai partire lo script da /etc/ppp/ip-up.d/)

- puo` essere una buona idea definire per le varie regole l'interfaccia
  cui si applicano ($PPP_IFACE in /etc/ppp/ip-up.d/)

- nelle regole LOG ha senso usare l'estensione 'limit'.

- Per una macchina casalinga, negli script di init metterei:
        echo 0 > /proc/sys/net/ipv4/tcp_ecn
        echo 0 > /proc/sys/net/ipv4/ip_forward
        echo 1 > /proc/sys/net/ipv4/conf/all/log_martians
        echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

- no, non chiedere per il masquerading perche` a casa ho una
  macchina singola :-)

- pur usandolo, il target DROP - *a naso* - mi ispira in determinate
  circostanze meno fiducia di un REJECT (niente che crei problemi
  ad una macchina dial-up, comunque).

- se cerchi su groups.google.com troverai un altro mio script
  in un articolo apparso su it.comp.os.linux.iniziare

- non mi assumo la responsabilita` di niente. :-)

Salumi e braci,
-- 
(=---= alberanid@xxxxxxxx =-------------= PGP KeyID: 0x465BFD47 =--=)
 )                        Davide Alberani                          (
(=--= http://digilander.iol.it/alberanid/ =-= ICQ UIN: 83641305 =--=)


<Prev in Thread] Current Thread [Next in Thread>