[hack] Firewall
Lorenzo
linux4@tin.it
Mar 11 Feb 2003 11:00:52 CET
On Tue, 11 Feb 2003 10:14:45 +0100 (CET)
"Hal" <hal@linux.it> ha scritto:
> Ciao Lorenzo,
>
> poiche' questa e' una lista tecnica io direi di mandare il
> firewall senza problemi.
Ok. Eccolo qui:
---------------INIZIO-----------------
#!/bin/sh
LOOPBACK="127.0.0.1"
# I seguenti sono i dns di telecom vanno cmabiati in base al proprio provider
DNS1="80.19.134.152"
DNS2="212.216.112.122"
IPTABLES="/sbin/iptables"
if [ -e $IPTABLES ]
then
case "$1" in
start)
echo "Starting firewall..."
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects
echo 1 > /proc/sys/net/ipv4/conf/all/log_martians
# Pulisco le regole
$IPTABLES -F
# Proibisco il forwarding dei pacchetti
$IPTABLES -P FORWARD DROP
# Abilito il computer locale a fare tutto
$IPTABLES -A INPUT -s $LOOPBACK -p all -j ACCEPT
# Scarto tutti i pacchetti tcp col flag syn attivo
$IPTABLES -A INPUT -p tcp --syn -j DROP
# Blocco i pacchetti con flag tcp nn corrette (per i portscan con nmap)
$IPTABLES -A INPUT -p all -m unclean -j DROP
$IPTABLES -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
$IPTABLES -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
# Lascio passare il traffico per il dns e blocco il resto delle porte udp
$IPTABLES -A INPUT -p udp -s $DNS1 --sport 53 -j ACCEPT
$IPTABLES -A INPUT -p udp -s $DNS2 --sport 53 -j ACCEPT
$IPTABLES -A INPUT -p udp -j DROP
echo "Firewall started."
exit 0
;;
stop) # per fermare il firewall
echo "Stopping Firewall..."
$IPTABLES -P INPUT ACCEPT
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD ACCEPT
$IPTABLES -F
echo "Firewall Stopped."
exit 0
;;
add) # per aprire una regola al volo
echo "** Open a service **"
echo "Protocol:"
read PROTOCOL
echo "Port:"
read PORT
echo "Ip: (specify 0 tu permit access to all)"
read IP
if [ $IP = "0" ]
then
$IPTABLES -I INPUT 1 -p $PROTOCOL --dport $PORT -j ACCEPT
else
$IPTABLES -I INPUT 1 -p $PROTOCOL --dport $PORT -s $IP -j ACCEPT
fi
echo "Rule added"
exit 0
;;
delete) # per chiudere una porta aperta al volo
echo "** Close a service **"
echo "Protocol:"
read PROTOCOL
echo "Port:"
read PORT
echo "Ip: (specify 0 tu permit access to all)"
read IP
if [ $IP = "0" ]
then
$IPTABLES -D INPUT -p $PROTOCOL --dport $PORT -j ACCEPT
else
$IPTABLES -D INPUT -p $PROTOCOL --dport $PORT -s $IP -j ACCEPT
fi
echo "Rule deleted"
exit 0
;;
*)
echo "Usage $0 {start|stop|add|delete}"
exit 1
;;
esac
else
echo "Iptables not found"
exit 1
fi
-------------------FINE------------------
Ovviamente ogni suggerimento, di qualsiasi tipo mi sarà utilissimo.
Ciao
Lorenzo
Maggiori informazioni sulla lista
golem-hack