Uffi, finalmente sono capitato su sto 3D, firestarter mi stava facendo dare i numeri..
Ho installato lo script di Mizard e modificato per le mie due interfacce di rete, lo posto qui:
Codice: Seleziona tutto
#!/bin/bash
#
# Firewall personale by Benjamin (Mizar)
############################################
######################################################
# Indirizzo web di origine #
# http://forum.ubuntu-it.org/viewtopic.php?t=12833 #
######################################################
#########################
# Definizione Variabili #
#########################
IPTABLES="/sbin/iptables"
IFLO="lo"
IFEXT1="eth0" # Da sostituire con la propria interfaccia: eth0, eth1, ppp0, etc
IFEXT2="eth1" # Da sostituire con la propria interfaccia: eth0, eth1, ppp0, etc
case "$1" in
start)
########################
# Attivazione Firewall #
########################
echo -n "Attivazione Firewall: "
#################################
# Caricamento Moduli del Kernel #
#################################
modprobe ip_tables
modprobe iptable_nat
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
modprobe ipt_LOG
modprobe ipt_MARK
modprobe ipt_MASQUERADE
modprobe ipt_REDIRECT
modprobe ipt_REJECT
modprobe ipt_TOS
modprobe ipt_limit
modprobe ipt_mac
modprobe ipt_mark
modprobe ipt_multiport
modprobe ipt_state
modprobe ipt_tos
modprobe iptable_mangle
############################
# Reset delle impostazioni #
############################
$IPTABLES -F
$IPTABLES -F -t nat
$IPTABLES -F -t mangle
$IPTABLES -X
$IPTABLES -X -t nat
$IPTABLES -X -t mangle
################################
# Impostazione Policy standard #
################################
$IPTABLES -P INPUT DROP
$IPTABLES -P FORWARD DROP
$IPTABLES -P OUTPUT ACCEPT
#################################
# Abilitazione traffico interno #
#################################
$IPTABLES -A INPUT -i $IFLO -j ACCEPT
$IPTABLES -A OUTPUT -o $IFLO -j ACCEPT
#############################################################################
# Abilitazione traffico in entrata solo se relativo a pacchetti in risposta #
#############################################################################
$IPTABLES -A INPUT -p tcp -i $IFEXT1 -m state -s 0/0 --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -p icmp -i $IFEXT1 -m state -s 0/0 --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -p udp -i $IFEXT1 -m state -s 0/0 --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -p tcp -i $IFEXT2 -m state -s 0/0 --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -p icmp -i $IFEXT2 -m state -s 0/0 --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -p udp -i $IFEXT2 -m state -s 0/0 --state ESTABLISHED,RELATED -j ACCEPT
#########
# samba #
#########
$IPTABLES -A INPUT -p udp -m udp -s 192.168.0.0/24 --dport 137 -j ACCEPT
$IPTABLES -A INPUT -p udp -m udp -s 192.168.0.0/24 --dport 138 -j ACCEPT
$IPTABLES -A INPUT -m state --state NEW -m tcp -p tcp -s 192.168.0.0/24 --dport 139 -j ACCEPT
$IPTABLES -A INPUT -m state --state NEW -m tcp -p tcp -s 192.168.0.0/24 --dport 445 -j ACCEPT
########################
# Apertura porte aMule #
########################
iptables -A INPUT -p tcp --dport 4662 -j ACCEPT
iptables -A INPUT -p udp --dport 4665 -j ACCEPT
iptables -A INPUT -p udp --dport 4672 -j ACCEPT
##########################
# Apertura porte Azureus #
##########################
iptables -A INPUT -p tcp --dport 6881 -j ACCEPT
echo "ok"
;;
stop)
###########################
# Disattivazione Firewall #
###########################
echo -n "Disattivazione Firewall: "
$IPTABLES -F
$IPTABLES -F -t nat
$IPTABLES -F -t mangle
$IPTABLES -X
$IPTABLES -X -t nat
$IPTABLES -X -t mangle
$IPTABLES -P INPUT ACCEPT
$IPTABLES -P FORWARD ACCEPT
$IPTABLES -P OUTPUT ACCEPT
echo "ok"
;;
status)
##############################
# Display stato del Firewall #
##############################
echo -n "Regole attuali nel Firewall: "
$IPTABLES -L
;;
restart|reload)
$0 stop
$0 start
;;
*)
echo "Utilizzo: firewall {start|stop|restart|reload|status}" >&2
exit 1
;;
esac
exit 0
Cosi comè mi va tutto a meraviglia con le due interfacce, quindi ok, ma un pò per gioco ed un pò per curiosità ho provato ad usare il secondo script postato da Ptah, direi piuttosto paranoico dalle descrizioni, ma testato e funziona pure lui, salvo che con lui il mio PC diventa "invisibile", anche cercando di inserire le regole aggiuntive (ho provato quella con l'ip mac del secondo PC) ma niente, c'è un sistema per far passare aMule, Samba, Cups, ecc? se si qual'è?:
Codice: Seleziona tutto
#!/bin/bash
#
# Firewall personale by Benjamin (Mizar)
# Modifyed by Ptah 16 Dec 2006
############################################
#########################
# Definizione Variabili #
#########################
IPTABLES="/sbin/iptables"
IFLO="lo"
IFEXT1="eth0" # interfaccia rj45
IFEXT2="eth1" # WiFi
case "$1" in
start)
########################
# Attivazione Firewall #
########################
echo -n "Attivazione Firewall: "
#################################
# Caricamento Moduli del Kernel #
#################################
modprobe ip_tables
modprobe iptable_nat
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
modprobe ipt_LOG
modprobe ipt_MARK
modprobe ipt_MASQUERADE
modprobe ipt_REDIRECT
modprobe ipt_REJECT
modprobe ipt_TOS
modprobe ipt_limit
modprobe ipt_mac
modprobe ipt_mark
modprobe ipt_multiport
modprobe ipt_state
modprobe ipt_tos
modprobe iptable_mangle
#modprobe ipt_psd
############################
# Reset delle impostazioni #
############################
$IPTABLES -F
$IPTABLES -F -t nat
$IPTABLES -F -t mangle
$IPTABLES -X
$IPTABLES -X -t nat
$IPTABLES -X -t mangle
################################
# Impostazione Policy standard #
################################
$IPTABLES -P INPUT DROP
$IPTABLES -P FORWARD DROP
$IPTABLES -P OUTPUT ACCEPT
#################################
# Abilitazione traffico interno #
#################################
$IPTABLES -A INPUT -i $IFLO -j ACCEPT
$IPTABLES -A OUTPUT -o $IFLO -j ACCEPT
############################
# creo una catena per ICMP #
############################
$IPTABLES -N icmp_in
########################################################
# se il pacchetto icmp non è un ping allora lo accetta #
# altrimenti (4-5 riga) logga e droppa #
########################################################
$IPTABLES -A icmp_in -i $IFEXT1 -p icmp -m icmp --icmp-type 0 -j REJECT --reject-with icmp-host-unreachable
$IPTABLES -A icmp_in -i $IFEXT1 -p icmp -m icmp --icmp-type 8 -j REJECT --reject-with icmp-host-unreachable
$IPTABLES -A icmp_in -i $IFEXT1 -p icmp -m icmp --icmp-type 3 -j REJECT --reject-with icmp-host-unreachable
$IPTABLES -A icmp_in -i $IFEXT1 -p icmp -m icmp --icmp-type 5 -j REJECT --reject-with icmp-host-unreachable
$IPTABLES -A icmp_in -i $IFEXT1 -p icmp -m icmp --icmp-type 11 -j REJECT --reject-with icmp-host-unreachable
$IPTABLES -A icmp_in -i $IFEXT2 -p icmp -m icmp --icmp-type 0 -j REJECT --reject-with icmp-host-unreachable
$IPTABLES -A icmp_in -i $IFEXT2 -p icmp -m icmp --icmp-type 8 -j REJECT --reject-with icmp-host-unreachable
$IPTABLES -A icmp_in -i $IFEXT2 -p icmp -m icmp --icmp-type 3 -j REJECT --reject-with icmp-host-unreachable
$IPTABLES -A icmp_in -i $IFEXT2 -p icmp -m icmp --icmp-type 5 -j REJECT --reject-with icmp-host-unreachable
$IPTABLES -A icmp_in -i $IFEXT2 -p icmp -m icmp --icmp-type 11 -j REJECT --reject-with icmp-host-unreachable
$IPTABLES -A icmp_in -p icmp -j LOG --log-prefix "ICMP drop:"
$IPTABLES -A icmp_in -p icmp -j DROP
#######################################
# Istruisco iptable a usare la catena #
# creata precedentemente #
#######################################
$IPTABLES -A INPUT -i $IFEXT1 -p icmp -j icmp_in
$IPTABLES -A INPUT -i $IFEXT2 -p icmp -j icmp_in
###########################
# creo una catena per TCP #
# pacchetti pericolosi #
###########################
$IPTABLES -N bad_tcp
######################################
# Regole di controllo PORTSCAN TCP #
# sono commentate perchè non #
# ho il modulo psd disponibile. Se #
# lo avete potete abilitarle. Sono #
# regole aggiuntive per gli attacchi #
# di tipo PORTSCAN #
######################################
#$IPTABLES -A bad_tcp -p tcp -m psd -j LOG --log-prefix "PORTSCAN TCP: "
#$IPTABLES -A bad_tcp -p tcp -m psd -j REJECT --reject-with icmp-net-unreachable
###########################################
# Regole di controllo su alcune porte TCP #
# Servizi che voglio rendere disponibili #
# solo ai computer della rete interna #
###########################################
$IPTABLES -A bad_tcp -p tcp -m multiport --dports 80,21,22,10000 -i $IFEXT1 -m state -s ! 192.168.0.0/24 --state NEW -j REJECT --reject-with icmp-net-unreachable
$IPTABLES -A bad_tcp -p tcp -m multiport --dports 445,3306 -i $IFEXT1 -m state -s ! 192.168.0.0/24 --state NEW -j REJECT --reject-with icmp-net-unreachable
$IPTABLES -A bad_tcp -p tcp -m multiport --dports 80,21,22,10000 -i $IFEXT2 -m state -s ! 192.168.0.0/24 --state NEW -j REJECT --reject-with icmp-net-unreachable
$IPTABLES -A bad_tcp -p tcp -m multiport --dports 445,3306 -i $IFEXT2 -m state -s ! 192.168.0.0/24 --state NEW -j REJECT --reject-with icmp-net-unreachable
####################################
# Regole di controllo sui flag TCP #
####################################
$IPTABLES -A bad_tcp -p tcp -m tcp ! --tcp-flags SYN,RST,ACK SYN -m state --state NEW -j LOG --log-prefix "Nuova non syn:"
$IPTABLES -A bad_tcp -p tcp -m tcp ! --tcp-flags SYN,RST,ACK SYN -m state --state NEW -j REJECT --reject-with icmp-net-unreachable
$IPTABLES -A bad_tcp -p tcp -m state --state INVALID -j LOG --log-prefix "Invalida:"
$IPTABLES -A bad_tcp -p tcp -m state --state INVALID -j REJECT --reject-with icmp-net-unreachable
$IPTABLES -A bad_tcp -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,PSH,URG -m limit --limit 5/min -j LOG --log-prefix "NMAP-XMAS:"
$IPTABLES -A bad_tcp -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,PSH,URG -j REJECT --reject-with icmp-net-unreachable
$IPTABLES -A bad_tcp -p tcp -m tcp --tcp-flags SYN,RST SYN,RST -m limit --limit 5/min -j LOG --log-prefix "SYN/RST:"
$IPTABLES -A bad_tcp -p tcp -m tcp --tcp-flags SYN,RST SYN,RST -j REJECT --reject-with icmp-net-unreachable
$IPTABLES -A bad_tcp -p tcp -m tcp --tcp-flags FIN,SYN FIN,SYN -m limit --limit 5/min -j LOG --log-prefix "SYN/FIN:"
$IPTABLES -A bad_tcp -p tcp -m tcp --tcp-flags FIN,SYN FIN,SYN -j REJECT --reject-with icmp-net-unreachable
$IPTABLES -A bad_tcp -p tcp -m tcp --dport 137:139 -m limit --limit 5/min -j LOG --log-prefix "NO SMB:"
$IPTABLES -A bad_tcp -p tcp -m tcp --sport 137:139 -m limit --limit 5/min -j LOG --log-prefix "NO SMB:"
$IPTABLES -A bad_tcp -p tcp -m tcp --dport 137:139 -j REJECT --reject-with icmp-net-unreachable
$IPTABLES -A bad_tcp -p tcp -m tcp --sport 137:139 -j REJECT --reject-with icmp-net-unreachable
$IPTABLES -A bad_tcp -p tcp -m tcp --dport 2049 -m limit --limit 5/min -j LOG --log-prefix "NO NFS:"
$IPTABLES -A bad_tcp -p tcp -m tcp --sport 2049 -m limit --limit 5/min -j LOG --log-prefix "NO NFS:"
$IPTABLES -A bad_tcp -p tcp -m tcp --dport 2049 -j REJECT --reject-with icmp-net-unreachable
$IPTABLES -A bad_tcp -p tcp -m tcp --sport 2049 -j REJECT --reject-with icmp-net-unreachable
$IPTABLES -A bad_tcp -p tcp -m tcp --dport 6000:6063 -m limit --limit 5/min -j LOG --log-prefix "NO X:"
$IPTABLES -A bad_tcp -p tcp -m tcp --sport 6000:6063 -m limit --limit 5/min -j LOG --log-prefix "NO X:"
$IPTABLES -A bad_tcp -p tcp -m tcp --dport 6000:6063 -j REJECT --reject-with icmp-net-unreachable
$IPTABLES -A bad_tcp -p tcp -m tcp --sport 6000:6063 -j REJECT --reject-with icmp-net-unreachable
$IPTABLES -A bad_tcp -p tcp -m tcp --dport 20034 -m limit --limit 5/min -j LOG --log-prefix "NO NetBus2:"
$IPTABLES -A bad_tcp -p tcp -m tcp --sport 20034 -m limit --limit 5/min -j LOG --log-prefix "NO NetBus2:"
$IPTABLES -A bad_tcp -p tcp -m tcp --dport 20034 -j REJECT --reject-with icmp-net-unreachable
$IPTABLES -A bad_tcp -p tcp -m tcp --sport 20034 -j REJECT --reject-with icmp-net-unreachable
$IPTABLES -A bad_tcp -p tcp -m tcp --dport 12345:12346 -m limit --limit 5/min -j LOG --log-prefix "NO NetBus:"
$IPTABLES -A bad_tcp -p tcp -m tcp --sport 12345:12346 -m limit --limit 5/min -j LOG --log-prefix "NO NetBus:"
$IPTABLES -A bad_tcp -p tcp -m tcp --dport 12345:12346 -j REJECT --reject-with icmp-net-unreachable
$IPTABLES -A bad_tcp -p tcp -m tcp --sport 12345:12346 -j REJECT --reject-with icmp-net-unreachable
$IPTABLES -A bad_tcp -p tcp -m tcp --dport 27374 -m limit --limit 5/min -j LOG --log-prefix "NO SubSeven:"
$IPTABLES -A bad_tcp -p tcp -m tcp --sport 27374 -m limit --limit 5/min -j LOG --log-prefix "NO SubSeven:"
$IPTABLES -A bad_tcp -p tcp -m tcp --dport 27374 -j REJECT --reject-with icmp-net-unreachable
$IPTABLES -A bad_tcp -p tcp -m tcp --sport 27374 -j REJECT --reject-with icmp-net-unreachable
########################################
# Istruisco iptable a usare la catena #
# per il TCP maligno #
########################################
$IPTABLES -A INPUT -i $IFEXT1 -p tcp -j bad_tcp
$IPTABLES -A INPUT -i $IFEXT2 -p tcp -j bad_tcp
###########################
# creo una catena per TCP #
# pacchetti validi #
###########################
$IPTABLES -N ok_tcp
#############################################################################
# Abilitazione traffico in entrata solo se relativo a pacchetti in risposta #
#############################################################################
$IPTABLES -A ok_tcp -p tcp -m multiport --dports 80,21,22,10000 -i $IFEXT1 -m state -s 192.168.0.0/24 --state NEW -j ACCEPT
$IPTABLES -A ok_tcp -p tcp -m multiport --dports 80,21,22,10000 -i $IFEXT2 -m state -s 192.168.0.0/24 --state NEW -j ACCEPT
$IPTABLES -A ok_tcp -p tcp -m tcp --tcp-flags SYN,RST,ACK SYN -j ACCEPT
$IPTABLES -A ok_tcp -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPTABLES -A ok_tcp -i $IFEXT1 -p tcp -j LOG --log-prefix "ok_tcp drop:"
$IPTABLES -A ok_tcp -i $IFEXT2 -p tcp -j LOG --log-prefix "ok_tcp drop:"
$IPTABLES -A ok_tcp -p tcp -j REJECT --reject-with icmp-net-unreachable
###########################
# creo una catena per UDP #
# pacchetti pericolosi #
###########################
$IPTABLES -N bad_udp
######################################
# Regole di controllo PORTSCAN #
# sono commentate perchè non #
# ho il modulo psd disponibile. Se #
# lo avete potete abilitarle. Sono #
# regole aggiuntive per gli attacchi #
# di tipo PORTSCAN #
######################################
#$IPTABLES -A bad_udp -p udp -m psd -j LOG --log-prefix "PORTSCAN UDP: "
#$IPTABLES -A bad_udp -p udp -m psd -j REJECT --reject-with icmp-net-unreachable
########################################
# Istruisco iptable a usare la catena #
# per il UDP maligno #
########################################
$IPTABLES -A INPUT -i $IFEXT1 -p udp -j bad_udp
$IPTABLES -A INPUT -i $IFEXT2 -p udp -j bad_udp
###########################
# creo una catena per UDP #
# pacchetti validi #
###########################
$IPTABLES -N ok_udp
#############################################################################
# Abilitazione traffico in entrata solo se relativo a pacchetti in risposta #
#############################################################################
$IPTABLES -A ok_udp -p udp -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPTABLES -A ok_udp -i $IFEXT1 -p udp -j LOG --log-prefix "ok_udp drop:"
$IPTABLES -A ok_udp -i $IFEXT2 -p udp -j LOG --log-prefix "ok_udp drop:"
$IPTABLES -A ok_udp -p udp -j REJECT --reject-with icmp-net-unreachable
#####################################
# Aggiungo le catene personalizzate #
#####################################
$IPTABLES -A INPUT -i $IFEXT1 -p tcp -j ok_tcp
$IPTABLES -A INPUT -i $IFEXT1 -p udp -j ok_udp
$IPTABLES -A INPUT -i $IFEXT2 -p tcp -j ok_tcp
$IPTABLES -A INPUT -i $IFEXT2 -p udp -j ok_udp
################################
# Regole finali di paranoia ;) #
################################
$IPTABLES -A INPUT -i $IFEXT1 -j LOG --log-prefix "Default drop:"
$IPTABLES -A INPUT -i $IFEXT1 -j DROP
$IPTABLES -A INPUT -i $IFEXT2 -j LOG --log-prefix "Default drop:"
$IPTABLES -A INPUT -i $IFEXT2 -j DROP
echo "ok"
;;
stop)
###########################
# Disattivazione Firewall #
###########################
echo -n "Disattivazione Firewall: "
$IPTABLES -F
$IPTABLES -F -t nat
$IPTABLES -F -t mangle
$IPTABLES -X
$IPTABLES -X -t nat
$IPTABLES -X -t mangle
$IPTABLES -P INPUT ACCEPT
$IPTABLES -P FORWARD ACCEPT
$IPTABLES -P OUTPUT ACCEPT
echo "ok"
;;
status)
##############################
# Display stato del Firewall #
##############################
echo -n "Regole attuali nel Firewall: "
$IPTABLES -L
;;
restart|reload)
$0 stop
$0 start
;;
*)
echo "Utilizzo: firewall {start|stop|restart|reload|status}" >&2
exit 1
;;
esac
exit 0
Io ho provato a modificare lo script inserendo questo:
Codice: Seleziona tutto
$IPTABLES -A INPUT -i eth0 -m mac --mac-source XX:XX:XX:XX:XX:XX -j ACCEPT
$IPTABLES -A INPUT -i eth1 -m mac --mac-source XX:XX:XX:XX:XX:XX -j ACCEPT
e poi "pingarlo" dalla macchima "autorizzata" (la proprieteria dell'ip mac), ma non passa nemmeno uno spiraglio di richiesta:
Codice: Seleziona tutto
yves@Edgy:~$ ping 192.168.0.25
PING 192.168.0.24 (192.168.0.25) 56(84) bytes of data.
From 192.168.0.176 icmp_seq=1 Destination Host Unreachable
...
...
figuriamoci Samba & co..
C'è un sistema?
Grazie e complimenti ad entrambi.