erlug
[Top] [All Lists]

Re: [Erlug] Forse non ho capito nulla...

To: ERlug - Lista Pubblica <erlug@xxxxxxxxxxxxxx>
Subject: Re: [Erlug] Forse non ho capito nulla...
From: Davide Alberani <da@xxxxxxxxxxxxxx>
Date: Sun, 24 Feb 2013 15:40:44 +0100
On Sun, Feb 24, 2013 at 2:37 PM, sandman42@xxxxxxxxx
<sandman42@xxxxxxxxx> wrote:
>
> Significa che tutti possono accedere a tutto, o non ho capito un tubo?

Corretto; almeno, nei limiti di "*a livello del firewall*, tutte le
mie porte sono aperte".
Il che non significa in automatico che tu sia vulnerabile a chissà
quali attacchi;
dipende da quali servizi esponi (di norma molto pochi) e quanto questi sono
mal configurati/vulnerabili (i default delle principali distribuzioni
sono ovviamente
piuttosto assennati).
Non dimentichiamo poi che tutto dipende da chi/come può accedere al dato host:
se il tuo è un PC casalingo, su una rete del tutto fidata e che è connessa ad
Internet tramite un router che si occupa del NAT e magari fa anche un minimo
da firewall... non è ci siano grandi problemi [0].

Per vedere cosa c'è di aperto:
  $ netstat -polenta # uno mnemonico meraviglioso... forse me lo insegnò Enrico?

Se invece vuoi (anche) un firewall - che è comunque solo UN pezzo della tua
sicurezza - consiglio di iniziare a farselo da sé con poche semplici
regole, e poi
vedere che ti serve, ad esempio con iptables-persistent (che mette le regole in
/etc/iptables/)
Una versione ultra-base non-mi-ritengo-responsabile-se-ti-chiudi-fuori:

#########################################
*filter
# default (qua parto dal presupposto che ad un certo punto ti servirà
il forward)
:INPUT DROP [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]

# localhost è bene funzioni. :)
-A INPUT -i lo -j ACCEPT
# accetta tutto quanto viene dall'esterno in risposta a connessioni
# aperte dall'interno.
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

# regole permissive di INPUT, ad esempio per ssh e http/https (NOTA:
# NON ti servono per eccedere a siti web/server ssh esterni, ma per
# accedere al web server/ssh della TUA macchina).
-A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -m state --state NEW -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -m state --state NEW -j ACCEPT

# non è educato non rispondere ai ping
-A INPUT -p icmp -j ACCEPT

# schifezza multicast e simili.
-A INPUT -d 0.0.0.255/0.0.0.255 -j DROP
-A INPUT -d 224.0.0.1/32 -j DROP
-A INPUT -p tcp -m state --state INVALID -j DROP

COMMIT

*mangle
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
COMMIT

*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
# eventuali regole di nat, tipo
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT
#########################################

Again: solo un esempio con pezzi presi in qua e in là di un
aggeggio un po' più grande e complicato, eh... adeguare alle
proprie necessità (ma ripeto il concetto base: SEMPRE partire
con qualcosa di semplice).

+++
[0] il tutto condito con una quantità abnorme di "mapperò... anche
se... tranne che..." ;)

--
Davide Alberani <da@xxxxxxxxxxxxxx>  [PGP KeyID: 0x465BFD47]
http://www.mimante.net/

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