Newsgroup: it.comp.os.linux.sys
Titolo: iptables e non solo ... help me !

Ciao a tutti.
Arrivo subito al dunque
Frase da tradurre in linuxese:
"La mia linuxbox(redhat - kernel 2.4.7 *iptables ONLY*) 192.168.1.1 deve
aprirsi INTERNAMENTE a tutte le macchine della rete, forwardare tutti i
pacchetti che arrivano su di lei(posta,ftp,http cazzi e mazzi) perche' e'
l'unica macchina che si connette all'ISP , mascherare il suo ip e non
permettere il ping a tutti i curiosi della rete, ma permettere il solo ssh".
:-)))
Un grazie a chiunque voglia aiutare questo celebro-ipodotato. :-P
Nick

> Un grazie a chiunque voglia aiutare questo celebro-ipodotato. :-P
l'inizio č questo:
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
Per il resto aspettiamo che qualcuno che cici aiuti entrambi ;)
-- 
      Massimiliano ADAMO
         ICQ# 103417788
  Yahoo!Messenger: quetzalco_it

permettere il ping a tutti i curiosi della rete, ma permettere il solo ssh".
alla faccia della pappa pronta...
#enable forwarding
echo "1" > /proc/sys/net/ipv4/ip_forward
#pulisci ogni regola attualmente configurata
iptables -F ; iptables -t nat -F
#policy su drop: blocca tutto salvo cio` che accetto esplicitamente
iptables -P INPUT DROP
#scarta subito pacchetti malformati
iptables -A INPUT -m unclean -j DROP
#local loopback
iptables -A INPUT -i lo -s 127.0.0.1 -j ACCEPT
#---------------------------------------------------
#RETE ESTERNA (ppp0, qualunque IP)
#---------------------------------------------------
#ssh server
iptables -A INPUT -i ppp0 -p tcp --syn --dport 22 -m state --state NEW -j LOG --log-level info --log-prefix "---SSH from ppp0---"
iptables -A INPUT -i ppp0 -p tcp -m multiport --dport 22 -j ACCEPT
#connessioni iniziate da qui, solo su porte > 1023
iptables -A INPUT -i ppp0 -p tcp ! --syn --dport 1023:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT
#ftp e dns client da qui
iptables -A INPUT -i ppp0 -p tcp --sport 20 --dport 1023:65535 -j ACCEPT
iptables -A INPUT -i ppp0 -p udp --sport 53 --dport 1023:65535 -j ACCEPT
#icmp utili (aggiungere l'echo-request per accettare i ping)
iptables -A INPUT -i ppp0 -p icmp --icmp-type echo-reply -j ACCEPT
iptables -A INPUT -i ppp0 -p icmp --icmp-type destination-unreachable -j ACCEPT
iptables -A INPUT -i ppp0 -p icmp --icmp-type time-exceeded -j ACCEPT
iptables -A INPUT -i ppp0 -p icmp --icmp-type host-unreachable -j ACCEPT
iptables -A INPUT -i ppp0 -p icmp --icmp-type port-unreachable -j ACCEPT
iptables -A INPUT -i ppp0 -p icmp --icmp-type host-prohibited -j ACCEPT
iptables -A INPUT -i ppp0 -p icmp --icmp-type protocol-unreachable -j ACCEPT
iptables -A INPUT -i ppp0 -p icmp --icmp-type network-unreachable -j ACCEPT
iptables -A INPUT -i ppp0 -p icmp --icmp-type network-prohibited -j ACCEPT
#logga il resto
iptables -A INPUT -i ppp0 -m limit --limit 15/minute -j LOG --log-level notice --log-prefix "---Unauthorized from ppp0---"
#--------------------------------------------------
#RETE LOCALE
#--------------------------------------------------
LOCALIF="vmnet1" #metti qua l'interfaccia di rete di questo pc
LOCALNET="
192.168.1.0/24
" #qua la rete
MYIP="192.168.1.1" #e qua l'ip di questo pc
#decommentare i servizi usati tra le regole seguenti
#samba server
#iptables -A INPUT -i $LOCALIF -p udp -s $LOCALNET --dport 137:139 -j ACCEPT
#iptables -A INPUT -i $LOCALIF -p tcp -s $LOCALNET --dport 137:139 -j ACCEPT
#NFS server
#iptables -A INPUT -i $LOCALIF -p tcp -s $LOCALNET -d $MYIP --dport 111 -j ACCEPT
#iptables -A INPUT -i $LOCALIF -p udp -s $LOCALNET -d $MYIP --dport 111 -j ACCEPT
#proxy server
#iptables -A INPUT -i $LOCALIF -p tcp -s $LOCALNET -d $MYIP -m multiport --dport 8000,8080 -j ACCEPT
#name server
#iptables -A INPUT -i $LOCALIF -p tcp -s $LOCALNET -d $MYIP --dport 53 -j ACCEPT
#iptables -A INPUT -i $LOCALIF -p udp -s $LOCALNET -d $MYIP --dport 53 -j ACCEPT
#ftp server
#iptables -A INPUT -i $LOCALIF -p tcp --syn -s $LOCALNET -d $MYIP--dport 21 -m state --state NEW -j LOG --log-level info --log-prefix "---FTP from $LOCALIF---"
#iptables -A INPUT -i $LOCALIF -p tcp -s $LOCALNET -d $MYIP --dport 21 -j ACCEPT
#iptables -A INPUT -i $LOCALIF -p tcp -s $LOCALNET -d $MYIP --dport 49152:65534 -j ACCEPT
#accetta tutti gli icmp
iptables -A INPUT -i $LOCALIF -p icmp -s $LOCALNET -d $MYIP -j ACCEPT
#connessioni iniziate da qui, solo su porte > 1023
iptables -A INPUT -i $LOCALIF -p tcp ! --syn -s $LOCALNET -d $MYIP --dport 1023:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT
#logga il resto
iptables -A INPUT -i $LOCALIF -m limit --limit 15/minute -j LOG --log-level notice --log-prefix "---Unauthorized from LAN---"
#ip masquerading
iptables -t nat -A POSTROUTING -s $LOCALNET -o ppp0 -j MASQUERADE
...una banale scusa per ottenere i commenti del ng su questo fw ;-)
-- 
    Pardo 
 
http://pardo.cjb.net
 
http://pardo.tsx.org

Grazie di cuore Pardo.
Un po' meno per la frecciatina della pappa pronta....la verita' fa male !
:-P
Nick.
"Pardo" <Pardo@fake_address.do_not_mail> ha scritto nel messaggio
news:slrn9pmrj9...@localhost.localdomain...


...una banale scusa per ottenere i commenti del ng su questo fw ;-)
anche io grazie pardo.

Un po' meno per la frecciatina della pappa pronta....la verita' fa male !
E per l'appunto sul quoting,te la prendi?
CENTOTRENTARIGHE per scriverne DUE. <eg>
-- 
           |Save our planet!
  Ciao     |Save wildlife;
  roberto  |For your E-MAIL use only recycled Bytes !!
           |roberto poggi  
rpo...@softhome.net

 ACCEPT 
Spiegami un po' .... ma, ti prego, non darmi dell'idiota :P


 
Ciao! A me la regola di cui sopra da problemi con l'smtp (libero). Non
so` perche` ma mi trovo nel log innumerevoli:
  IN=ppp0 OUT= MAC= SRC=193.70.192.51 SPT=25 DPT=32783 ....
A quell'ip sembra corrisponde (uno dei) mail server di libero. La cosa
mi sembra strana per due motivi:
1. la connessione viene instaurata da me (Postfix con 
mail.libero.it
come relay) e quindi dovrebbe essere coperta dal flag ESTABLISHED.
2. a 
mail.libero.it
 dovrebbe corrisponde in realta` 193.70.192.50 (ma
che risulti a piu` ip non mi stupisce piu` di tanto, visto che il server
pop3 risponde a numerosi indirizzi. Per l'SMTP ne ho trovati 7).
E` possibile che postfix tenti una connessione verso un ip (ad es
192.70.192.50) e gli risponda invece un altro (bloccato da iptables)?
bho`!
Ho dovuto aggiungere una loop di regole simile a quella che avevo con
ipchains:
  for smtp in $SMTP_IP ; do
    iptables -A INPUT -i ppp0 -p tcp -s $smtp 25 \
       --dport 1024:65535 -j ACCEPT     
  done
per coprire singolarmente tutti gli IP (SMTP_IP contiene tutti gli ip
separati da spazi), senza utilizzare il flag ESTABLISHED, ma questa
soluzione non mi piace affatto...
consigli?
Riguardo sempre quella regola, mi chiedevo se sia corretto utilizzare
! --syn : non e` implicito in ESTABLISHED?
-- 
Ciao,  |     Gott weiss ich will kein Engel sein
Matteo |                     -- Rammstein, Engel

 male !
Se adesso imparassi anche a quotare, saremmo tutti più contenti.
Ciao.
-- 
***  Per E-mail rimuovi ModE dall'indirizzo  ***
  *** Linux user # 198661 --- ICQ 33500725 ***
*** homepage 
http://web.tiscalinet.it/kailed
 ***
            *** Powered by Linux ***

Spiegami un po' .... ma, ti prego, non darmi dell'idiota :P
oibo`, gli icmp sono tanti, siccome ho la policy su drop devo 
specificare tutti quelli da accettare...
(e non metto una sola rule `-p icmp' che varrebbe per tutti perche` non 
voglio accettare i ping -cioe` gli echo-request- e anche qualche altra 
cosa che non mi ricordo...)


! --syn : non e` implicito in ESTABLISHED?
non mi fido di quella roba stateful inspection
li` l'ho aggiunta per filtrare ancora di piu` se possibile
ma la base di tutto restano le porte e i flag
lo state e` sicuramente utilissimo per rendere semplici i fw piu` 
complicati ma io non ne ho bisogno e cmq le poche volte che l'ho provato 
il `related' non mi ha aiutato per niente (infatti ho ancora li` le 
regoline con le porte per ftp e dns)



bho`! Secondo me e` invece il vantaggio piu` evidente ad usare iptables
al posto di ipchains. Sto` riscrivendo ex-novo il mio script (prima era
piu` che altro un "porting" del vecchio script ipchains) ed ho
intenzione di basarmi 99% su queste nuove features e di ricorrere ai
flag/ip/porte per i singoli protocolli solo come estrema ratio se
qualcosa andasse storto. Magari riesco a risolvere qualcosa... Tra
l'altro come prima impressione cho ho e` che l'intero script rispetto a
prima viene davvero "compresso" in pochissime regole. Tutto sta` a
vedere se funzionano! ;-)


 ! --syn : non e` implicito in ESTABLISHED?
Non e' proprio la stessa cosa anche se l'effetto e' piu' o meno lo stesso.
Con il syn controlli esplicitamente i flag del pacchetto, lo stato e' una
cosa un po' piu' ad "alto livello". Controlla bene man iptables. Ma per
l'utilizzo pratico direi che e' sostanzialmente la stessa cosa.
 
--
  Giuseppe "Cowo" Corbelli \/\ My software: 
http://cowo.mascanc.net
    **ANTI-SPAM** -- **Substitute IHATESPAM with cowo to reply by mail**
  -<! God Knows How Long I Tried To Change Fate !>-
  		Blind Guardian - Mordred's Song