Newsgroup: it.comp.os.linux.iniziare
Titolo: script iptables per uso desktop/srver

Ciao a tutti, ho letto un sacco di faq e howto sull'iptables, ma non
riesco a 
trovare uno script per iptables per uso desktop/server: in pratica mi
serve un 
o script che mi faccia passare i dns, ping, web, ftp in uscita e in
entrata 
l'ssh.
qualcuno mi puo' dire dove posso trovare uno script da cui iniziare?
tutti gli esempi che ho trovato non funzionano, per esempio il ping mi
dice 
"operation not permitted"
grazie
-- 
Spolvera la mia email per rispondermi
"Storia del Mondo. I vulcani eruttarono. Gli oceani ribollirono.
L'universo era in tumulto. Poi venne il cane."
Snoopy
maxy04.splinder.com
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 dice "operation not permitted"
Se hai letto un sacco di howto dovresti riuscire a risolvere 
qualcosa da solo, per cominciare facilitandoti la vita potresti anche 
inizialmente lasciar perdere il filtraggio dell'output che tanto non 
e` che serva a molto se il pc lo usi solo te (e d'altro canto e` 
invece quello piu` problematico da impostare specialmente se usi 
programmi P2P e messenger vari che aprono connessioni senza porte 
prefissate).
Peraltro gli script che si trovano in rete sono relativamente molto 
complicati usando chain custom, file esterni, loops, condizionali ecc. 
A mio parere se te lo componi tu ovviamente facendo copia incolla da 
altre parti e` molto piu` probabile che ci capisci qualche cosa 
davvero.
Tanto la struttura base e` sempre la stessa, all'inizio c'e` qualche 
comando per ripulire tutte le rules, poi si settano le policy, poi 
si apre il loopback, poi c'e` l'elenco degli accept e infine il 
log "catch all". Se te lo fai in base alla tua esigenza in modo 
puramente sequenziale non e` difficile (poi capisci anche perche` 
negli script "seri" vengono introdotte le varie strutture di 
controllo.)
Fondamentale e` che impari a leggere il log, perche` se una cosa "non 
va" a causa del tuo firewall e` da li` che lo vedi. Il ping ad 
esempio che viene bloccato, dal log risulterebbe con proto=icmp type=8 
e questo ti dice gia` come fare ad aprirlo.
-- 
	pardo
===================================================================
||"Give me six lines written by the most honorable of men, and I ||
||will find an excuse in them to hang him."(Cardinal Richelieu)  ||
||"We don't know enough about you."(Google CEO Eric Schmidt)     ||
||"They trust me. Dumb fucks."(Facebook CEO Mark Zuckemberg)     ||
===================================================================

Aggiungo quello che uso sul mio sistema (in uscita basta è tutto aperto, 
basta aggiungere l'apertura delle porte in ingresso volute):
#!/bin/sh
#
# Interface delle rete esterna
WAN_IFACE="ppp0"
# WAN_IFACE="eth0"
# Any and all addresses from anywhere.
ANYWHERE="0/0"
# Azzera le regole di tutti i chains.
iptables -F
iptables -X
# Imposta le politiche di default dei built-in chains.
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
iptables -P INPUT DROP
# Chains utente
iptables -N DROPLOG
iptables -N NEWCONN
iptables -N INVPACK
## Chains di drop e di log
# Non logga i pacchetti relativi a SQL server, http
iptables -A DROPLOG -p tcp -m multiport --dports 1433,1434,80 -j DROP
# Non logga i pacchetti relativi al multicast
iptables -A DROPLOG -d 
224.0.0.0/8
 -j DROP
# Non logga i pacchetti relativi alle porte 1026, 1027
iptables -A DROPLOG -p udp -m multiport --dports 1026,1027 -j DROP
#iptables -A DROPLOG -p icmp -j DROP
#iptables -A DROPLOG ! -d localhost -j DROP
iptables -A DROPLOG -j LOG -m limit --limit 10/minute --log-prefix "IPNF: 
Dropping: "
iptables -A DROPLOG -j DROP
## Chains dei pacchetti in stato 'NEW'
# Reject delle conferme di inizio connessione di connessioni non iniziate
iptables -A NEWCONN -p tcp --tcp-flags SYN,ACK SYN,ACK -j REJECT --reject-
with tcp-reset
# Accetta le richieste di inizio connessione della rete virtuale locale
iptables -A NEWCONN -i tap+ -j ACCEPT
iptables -A NEWCONN -i tun+ -j ACCEPT
# Drop delle richieste di inizio connessioni non locali
iptables -A NEWCONN ! -i lo -j DROPLOG
#iptables -A NEWCONN ! -s localhost -j DROPLOG
# Accetta le richieste di inizio connessione locali o della rete locale
iptables -A NEWCONN ! -i $WAN_IFACE -j ACCEPT
## Chains dei pacchetti in stato 'INVALID'
# Reject delle conferme di connessioni non iniziate
iptables -A INVPACK -i $WAN_IFACE -p tcp --tcp-flags SYN,ACK ACK -j REJECT -
m limit --limit 10/minute
iptables -A INVPACK -i $WAN_IFACE -p tcp -j DROPLOG
# SNAT per le connessione delle rete virtuale locale
#
# Controlla il traffico relativo a nuove connessioni
iptables -A FORWARD -m state --state NEW -j NEWCONN
# Accetta il traffico relativo a connessioni gi? iniziate
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
# Reject delle conferme di connessioni non iniziate
iptables -A FORWARD -m state --state INVALID -j INVPACK
iptables -A FORWARD -j LOG -m limit --limit 10/minute --log-prefix "IPNF: 
Forward def. dropping: "
# Attiva il nat per le connessione delle rete virtuale locale
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
# Imposta le regole di ingresso
#
# Can still ping out.
#iptables -A INPUT -p icmp --icmp-type echo-reply -i $WAN_IFACE -j  ACCEPT
#iptables -A INPUT -p icmp --icmp-type destination-unreachable -i $WAN_IFACE 
-j ACCEPT
#iptables -A INPUT -p icmp --icmp-type time-exceeded -i $WAN_IFACE -j ACCEPT
# Log degli ack con window a 0
#iptables -A INPUT -p tcp --tcp-flags SYN,ACK ACK -m u32 --u32 "4&0x1FFF=0 
&& 0>>22&0x3C@12&0xFFFF=0x0" -j LOG -m limit --limit 10/minute --log-prefix 
"IPNF: Window 0: "
# Accetta il traffico localhost/loopback.
iptables -A INPUT -i lo -j ACCEPT
# Accetta il traffico della rete virtuale locale
# iptables -A INPUT -i tap+ -j ACCEPT
# iptables -A INPUT -i tun+ -j ACCEPT
# iptables -A INPUT -i vibr+ -j ACCEPT
# Controlla il traffico relativo a nuove connessioni
iptables -A INPUT -m state --state NEW -j NEWCONN
# Accetta il traffico relativo a connessioni gi? iniziate
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Reject delle conferme di connessioni non iniziate
iptables -A INPUT -m state --state INVALID -j INVPACK
iptables -A INPUT -j LOG -m limit --limit 10/minute --log-prefix "IPNF: Def. 
dropping: "
echo "Impostate regole firewall il `date`."

 
Forse se cerchi su google iptables + icmp trovi quello che ti serve.

 davvero.
cosi' ho fatto, pero' evidentemente ho dei problemi sul mio server (slack
11, pentium 133 32 mb ram), perche' nemmeno lo script di davide mi
funzionava (saltavano fuori "iptables unknown error" a manetta), ho
provato a installare una slack 12.2 sul portatile, e lo script di davide
funziona lla perfezione (non che da Davide mi aspettassi qualcosa di meno
che la perfezione, peraltro :) ). 
ho letto parecchi howto ed esempi, ma probabilmente quello che mi fregava
era qualche malfunzionamento della mia slack sul server. continuavo ad
avere errori strani, dns che non riuscivano a passare il filtro, ftp che
non riuscivo ad accedere. 
grazie a tutti per l'aiuto.
