Newsgroup: it.comp.os.linux.debian
Titolo: Firewall Iptables (non riguarda direttamente Debian. sorry!!)

Ciao a tutti
chiedo innanzitutto scusa per aver postato qui ma sui ng che trattano di 
firewall non ho ottenuto risposta, quindo ho pensato ... magari in 
debian trovo qualche guru...
ieri ho deciso di svincolarmi da guarddog e provare a configurare 
iptables a mano, così ho letto il cap. 219 degli appunti di informatica 
libera e ho buttato giù questo script scopiazzando anche dal file di 
guarddog.
Non è che a qualcuno va di dargli un'occhiata?
Penso di aver aperto solo le porte necessarie e niente di più... ma 
siccome sono alle prime armi magari ho anche preso una cantonata.... :-)
Il file è questo:
#!/bin/sh
#
# Iptable's chains #
#
##########################
# Rimozione delle impostazione correnti
##########################
/sbin/iptables -F
#########################
# Impostazione Policy predefinita #
##########################
/sbin/iptables -P INPUT DROP
/sbin/iptables -P OUTPUT DROP
/sbin/iptables -P FORWARD DROP
####################################
# Gestione del traffico sull'interfaccia dial-up (ppp0) #
####################################
### INPUT ppp0 (Internet -> Local) ###
# DNS (53/tcp:udp)
/sbin/iptables -A INPUT --source 0/0 --destination 127.0.0.1 
--in-interface ppp0 -p tcp ! --syn --sport 53 --dport 0:65535 -j ACCEPT
/sbin/iptables -A INPUT --source 0/0 --destination 127.0.0.1 
--in-interface ppp0 -p udp --sport 53 --dport 0:65535 -j ACCEPT
# FreePop (2000/tcp)
/sbin/iptables -A INPUT --source 0/0 --destination 127.0.0.1 
--in-interface ppp0 -p tcp --sport 2000 --dport 1024:5999 -j ACCEPT
### OUTPUT ppp0 (Local -> Internet) ###
# DNS (53/tcp:udp)
/sbin/iptables -A OUTPUT --source 127.0.0.1 --destination 0/0 
--out-interface ppp0 -p tcp --sport 0:65535 --dport 53 -j ACCEPT
/sbin/iptables -A OUTPUT --source 127.0.0.1 --destination 0/0 
--out-interface ppp0 -p udp --sport 0:65535 --dport 53 -j ACCEPT
# HTTP (80,8080,8008,8000,8888/tcp)
/sbin/iptables -A OUTPUT --source 127.0.0.1 --destination 0/0 
--out-interface ppp0 -p tcp --sport 1024:5999 --dport 80 -j ACCEPT
/sbin/iptables -A OUTPUT --source 127.0.0.1 --destination 0/0 
--out-interface ppp0 -p tcp --sport 1024:5999 --dport 8080 -j ACCEPT
/sbin/iptables -A OUTPUT --source 127.0.0.1 --destination 0/0 
--out-interface ppp0 -p tcp --sport 1024:5999 --dport 8008 -j ACCEPT
/sbin/iptables -A OUTPUT --source 127.0.0.1 --destination 0/0 
--out-interface ppp0 -p tcp --sport 1024:5999 --dport 8000 -j ACCEPT
/sbin/iptables -A OUTPUT --source 127.0.0.1 --destination 0/0 
--out-interface ppp0 -p tcp --sport 1024:5999 --dport 8888 -j ACCEPT
# HTTPS (HTTP+SSL) (443/tcp)
/sbin/iptables -A OUTPUT --source 127.0.0.1 --destination 0/0 
--out-interface ppp0 -p tcp --sport 1024:5999 --dport 443 -j ACCEPT
# FTP (21/tcp)
/sbin/iptables -A OUTPUT --source 127.0.0.1 --destination 0/0 
--out-interface ppp0 -p tcp --sport 1024:5999 --dport 21 -j ACCEPT
# POP3 (110/tcp)
/sbin/iptables -A OUTPUT --source 127.0.0.1 --destination 0/0 
--out-interface ppp0 -p tcp --sport 1024:5999 --dport 110 -j ACCEPT
# POP3S (POP3+SSL) (995/tcp)
/sbin/iptables -A OUTPUT --source 127.0.0.1 --destination 0/0 
--out-interface ppp0 -p tcp --sport 1024:5999 --dport 995 -j ACCEPT
# SMTP (25/tcp)
/sbin/iptables -A OUTPUT --source 127.0.0.1 --destination 0/0 
--out-interface ppp0 -p tcp --sport 1024:5999 --dport 25 -j ACCEPT
# SMTP G.Mail (587/tcp)
/sbin/iptables -A OUTPUT --source 127.0.0.1 --destination 0/0 
--out-interface ppp0 -p tcp --sport 1024:5999 --dport 587 -j ACCEPT
# NNTP (News Group) (119/tcp)
/sbin/iptables -A OUTPUT --source 127.0.0.1 --destination 0/0 
--out-interface ppp0 -p tcp --sport 1024:5999 --dport 119 -j ACCEPT
# IRC (6660-6669/tcp)
/sbin/iptables -A OUTPUT --source 127.0.0.1 --destination 0/0 
--out-interface ppp0 -p tcp --sport 1024:65535 --dport 6660:6669 -j ACCEPT
### FORWARD ppp0 (Internet -> (Local) -> LAN) ###
# Nessuna Regola #
### ICMP ppp0 (INPUT, OUTPUT) ###
# Miei Ping e Pong del server
# Ping
iptables -A OUTPUT --source 127.0.0.1 --destination 0/0 --out-interface 
ppp0 -p icmp --icmp-type echo-request -j ACCEPT
# Pong
iptables -A INPUT --source 0/0 --destination 127.0.0.1 --in-interface 
ppp0 -p icmp --icmp-type echo-reply -j ACCEPT
#Ping del Server e miei Pong
# Ping
iptables -A INPUT --source 0/0 --destination 127.0.0.1 --in-interface 
ppp0 -p icmp --icmp-type echo-request -j ACCEPT
# Pong
iptables -A OUTPUT --source 127.0.0.1 --destination 0/0 --out-interface 
ppp0 -p icmp --icmp-type echo-reply -j ACCEPT
### ICMP comuni a tutte le interfacce (INPUT, OUTPUT, FORWARD) ###
/sbin/iptables -A INPUT -p icmp --icmp-type destination-unreachable -j 
ACCEPT
/sbin/iptables -A OUTPUT -p icmp --icmp-type destination-unreachable -j 
ACCEPT
/sbin/iptables -A FORWARD -p icmp --icmp-type destination-unreachable -j 
ACCEPT &> /dev/null
/sbin/iptables -A INPUT -p icmp --icmp-type time-exceeded -j ACCEPT
/sbin/iptables -A OUTPUT -p icmp --icmp-type time-exceeded -j ACCEPT
/sbin/iptables -A FORWARD -p icmp --icmp-type time-exceeded -j ACCEPT &> 
/dev/null
/sbin/iptables -A INPUT -p icmp --icmp-type parameter-problem -j ACCEPT
/sbin/iptables -A OUTPUT -p icmp --icmp-type parameter-problem -j ACCEPT
/sbin/iptables -A FORWARD -p icmp --icmp-type parameter-problem -j 
ACCEPT &> /dev/null
### Drop dei pacchetti chiaramente fasulli ###
/sbin/iptables -A INPUT --source 
127.0.0.1/8
 --in-interface ! lo -j DROP
/sbin/iptables -A FORWARD --source 
127.0.0.1/8
 --in-interface ! lo -j DROP
/sbin/iptables -A INPUT --source 
192.168.0.0/16
 --in-interface ppp0 -j DROP
/sbin/iptables -A FORWARD --source 
192.168.0.0/16
 --in-interface ppp0 -j 
DROP
/sbin/iptables -A INPUT --source 
172.16.0.0/12
 --in-interface ppp0 -j DROP
/sbin/iptables -A FORWARD --source 
172.16.0.0/12
 --in-interface ppp0 -j DROP
### Policy per pacchetti restanti ###
# Drop All
/sbin/iptables -A INPUT -j DROP
/sbin/iptables -A OUTPUT -j DROP
/sbin/iptables -A FORWARD -j DROP
Ciao e grazie di tutto
Andrea

 --in-interface ppp0 -p udp --sport 53 --dport 0:65535 -j ACCEPT
Mah... ppp0 non avrà come destination 127.0.0.1, perché quello è
l'indirizzo dell'interfaccia di loopback, mentre ppp0 è l'interfaccia
"pubblica" che avrà un indirizzo pubblico: dovrai fare riferimento a
quello.
Poi la source 0/0 la puoi omettere, se non è specificata nella regola
già viene considerato "ovunque" (ovvero 0/0). Idem per le porte,
specificare 0:65535 (ovvero tutte) è inutile, se non metti niente già
vuol dire "tutte".
Io direi una cosa del tipo:
#!/bin/bash
[...]
IPPPP=`/sbin/ifconfig ppp0 | grep inet | cut -d : -f 2 | cut -d\  -f 1`
[...]
/sbin/iptables -A INPUT -d $IPPP --sport 53 -j ACCEPT -m state --state
ESTABLISHED,RELATED
/sbin/iptables -A INPUT -s $IPPP --dport 53 -j ACCEPT -m state --state
NEW,ESTABLISHED
Perché devi abilitare sia ciò che spedisci (le richieste) che ciò che
entra, ovviamente ciò che mandi alla porta 53 deve stabilire una
connessione, mentre la risposta che arriva la accetti solo se è appunto
una risposta a una richiesta che hai fatto (in questo modo impedisci che
qualcuno possa usare la propria porta 53 per tentare di collegarsi al
tuo sistema).
idem per tutte le altre regole.
-- 
Massimo Bacilieri AKA Crononauta 
ICQ:4005815

Grazie dei consigli, la tipologia delle connessioni era una cosa che non 
avevo valutato.
Provo a fare i dovuti cambiamenti
Grazie di tutto
Ciao
	Andrea
Crononauta ha scritto:
