Newsgroup: it.comp.sicurezza.varie
Titolo: regole IPTABLES per MZ/DMZ(samba+apache)/GW

ciao a tutti,
su una macchina iptables ho messo 3 ethernet.
la eth0 e' collegata al router, la eth1 e' collegata ad un server DMZ e 
la eth2 e' collegata ad uno switch dove si trovano le postazioni.
le postazioni sono su una MZ 10.0.0.x, il server su una DMZ 172.16.0.x 
ed il router/gateway su una 192.168.0.x
le mie esigenze sono queste:
1) far accedere da internet verso la DMZ sulla porta 80 e 443
2) far accedere dalla MZ verso la DMZ sulla 80,443 e netbios
3) far accedere la DMZ verso internet (per alcune operazioni messe a cron)
sulla DMZ risiede un server dove gira apache+ssl e samba, nella MZ vi 
sono alcune macchine miste win98/2000/xp
sto seguendo alcuni esempi ma vorrei sapere se sono sulla buona strada.
questa guida l'ho trovata interessante: 
http://tinyurl.com/88az6
adattando lo script d'esempio alle mie esigenze ho ottenuto questo:
ipt =	"/usr/sbin/iptables"
inet =	"
192.168.0.0/24
"	# eth0 (gateway)
dmz =	"
172.16.0.0/24
"		# eth1 (dmz)
srv =	"172.16.0.100"		# server (eth1)
mz  =	"
10.0.0.0/24
"		# eth2 (mz)
set -e
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
for a in /proc/sys/net/ipv4/conf/*/rp_filter; do
    echo 1 > $a
done
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
echo 0 > /proc/sys/net/ipv4/tcp_ecn
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/conf/all/log_martians
echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects
echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route
# FLUSH
$ipt -F
$ipt -X
$ipt -P INPUT DROP
$ipt -P FORWARD DROP
$ipt -P OUTPUT DROP
$ipt -t nat -F
$ipt -t nat -X
# CREATE CHAINS
$ipt -N mz_dmz		# eth2 > eth1
$ipt -N mz_inet		# eth2 > eth0
$ipt -N dmz_inet	# eth1 > eth0
$ipt -N dmz_mz		# eth1 > eth2
$ipt -N inet_dmz	# eth0 > eth1
$ipt -N inet_mz		# eth0 > eth2
# SET FORWARDS
$ipt -A FORWARD -i eth2 -o eth1 -j mz_dmz
$ipt -A FORWARD -i eth2 -o eth0 -j mz_inet
$ipt -A FORWARD -i eth1 -o eth0 -j dmz_inet
$ipt -A FORWARD -i eth1 -o eth2 -j dmz_mz
$ipt -A FORWARD -i eth0 -o eth1 -j inet_dmz
$ipt -A FORWARD -i eth0 -o eth2 -j inet_mz
# MZ to DMZ
$ipt -A mz_dmz -s ! $mz -j DROP
$ipt -A mz_dmz -p tcp -d $srv --dport www -j ACCEPT
$ipt -A mz_dmz -p tcp -j REJECT --reject-with tcp-reset
$ipt -A mz_dmz -m state --state ESTABLISHED,RELATED -j ACCEPT
# DMZ to MZ
$ipt -A dmz_mz -s ! $dmz -j DROP
$ipt -A dmz_mz -m state --state ESTABLISHED,RELATED -j ACCEPT
$ipt -A dmz_mz -p tcp -j REJECT --reject-with tcp-reset
# MZ to INET
$ipt -A mz_inet -s ! $mz -j DROP
$ipt -A mz_inet -m state --state ESTABLISHED,RELATED -j ACCEPT
$ipt -A mz_inet -p tcp -j REJECT --reject-with tcp-reset
# INET to MZ
$ipt -A inet_mz -s $mz -j DROP
$ipt -A inet_mz -s $dmz -j DROP
$ipt -A inet_mz -m state --state ESTABLISHED,RELATED -j ACCEPT
$ipt -A inet_mz -p tcp -j REJECT --reject-with tcp-reset
# INET to DMZ
$ipt -A inet_dmz -s $mz -j DROP
$ipt -A inet_dmz -s $dmz -j DROP
$ipt -A inet_dmz -p tcp -d $srv --dport www -j ACCEPT
$ipt -A inet_dmz -m state --state ESTABLISHED,RELATED -j ACCEPT
$ipt -A inet_dmz -p tcp -j REJECT --reject-with tcp-reset
# DMZ to INET
$ipt -A dmz_inet -s ! $dmz -j DROP
$ipt -A dmz_inet -m state --state ESTABLISHED,RELATED -j ACCEPT
$ipt -A dmz_inet -p tcp -j REJECT --reject-with tcp-reset
# FIREWALL
$ipt -A INPUT -m limit --limit 10/min \
-p tcp -s $mz --syn --dport ssh -j ACCEPT
$ipt -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$ipt -A INPUT -p tcp -j REJECT --reject-with tcp-reset
$ipt -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# MASQUERADE
$ipt -t nat -A POSTROUTING -s ! $inet -o eth0 -j MASQUERADE
****
forse manca ancora qualcosa sul MASQ e altro, ma il grosso dubbio 
(eccetto che non so ancora se lo script funziona) e' sul servizio SAMBA.
che regole devo utilizzare?
-- 
ya, bb

 3) far accedere la DMZ verso internet (per alcune operazioni messe a cron)
--cut--
ops! dimenticavo... :-)
4) far accedere la MZ verso internet
-- 
ya, bb

dai un'occhiata a questi due frontend:
http://www.fiaif.net
http://www.simonzone.com/software/guarddog
ciao,
	va