spacer.png, 0 kB

Netfilter: Iptables Stateful Firewall PDF Stampa E-mail
Valutazione attuale: / 6
ScarsoOttimo 
Martedì 08 Settembre 2009 09:14

Ho creato questo piccolo ma performante firewall, completo di tutte le regole fondamentali per iptables inretamente conmmentare in modo da far capire ai notifi come funziona la gestione delle regole in un firewall basato su iptables.

Naturalemente questo è solo un esempio adhoc per un server dedicato, ma vi permette di capire come crearne uno ad hoc per la vostra linux box.

Sono a vistra disposizione per ulteriori chiarimenti e consigli.

 

#!/bin/sh
# Firewall by okno Questo indirizzo e-mail è protetto dallo spam bot. Abilita Javascript per vederlo. #
# Web: www.pawelzorzan.eu #
# #
### Variabili #######################################@
IPTABLES=/sbin/iptables
MODPROBE=/sbin/modprobe
SYSCTL=/sbin/sysctl
#
#INTERFACCIA di rete esterna in genere standard eth0
#
IFEXT=eth0
#
#!!!LIMITE IN KB!!!
#
LIMITE=1024
#
######################################################
clear
#Abilita Ip Conntrack
$MODPROBE ip_conntrack
$MODPROBE ip_conntrack_ftp
# Abilita protezione anti soofing
echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter
# Scarta i messaggi ICMP inviati a un broadcast
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
# Abilita protezione TCP SYN cookie dai SYN floods
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
# Scarta di pacchetti source routing
echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route
# Non accettare i messaggi ICMP
echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects
# Non redirigere messaggi ICMP
echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects
# Logga pacchetti assurdi
echo 1 > /proc/sys/net/ipv4/conf/all/log_martians
# Pulisci le regole del firewall
$IPTABLES --flush
# Abilita traffico su localhost senza restrizioni
$IPTABLES -A INPUT -i lo -j ACCEPT
$IPTABLES -A OUTPUT -o lo -j ACCEPT
# Creo le regole di base per un firewall Statelful
$IPTABLES --policy INPUT DROP
$IPTABLES --policy OUTPUT DROP
$IPTABLES --policy FORWARD DROP
# Bloccare ICMP PING Flood
$IPTABLES -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
$IPTABLES -A INPUT -p icmp --icmp-type echo-request -j DROP
# Bloccare SYN flood
$IPTABLES -A INPUT -p tcp --syn -m limit --limit 3/s -j ACCEPT
$IPTABLES -A INPUT -p tcp --syn -j DROP
# Abilitare utilizzo dei SYN Cookies
$SYSCTL -q -w net.ipv4.tcp_syncookies=1
$SYSCTL -q -w net.ipv4.tcp_fin_timeout=10
# Abilito traffico in uscita senza restrizioni
$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
# Abilita UDP, DNS e traffico passivo FTP
$IPTABLES -A INPUT -i $IFEXT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Abilito porte FTP in out e SSH con protezione Bruteforce
$IPTABLES -A INPUT -p tcp -m state --state NEW --dport 20 -m recent --update --seconds 7 -j DROP
$IPTABLES -A INPUT -p tcp -m state --state NEW --dport 20 -m recent --set -j ACCEPT
$IPTABLES -A INPUT -p tcp -m state --state NEW --dport 21 -m recent --update --seconds 7 -j DROP
$IPTABLES -A INPUT -p tcp -m state --state NEW --dport 21 -m recent --set -j ACCEPT
$IPTABLES -A INPUT -p tcp -m state --state NEW --dport 22 -m recent --update --seconds 7 -j DROP
$IPTABLES -A INPUT -p tcp -m state --state NEW --dport 22 -m recent --set -j ACCEPT
#Abilito porte senza protezione Bruteforce con limite traffico prestabilito in var LIMITE
$IPTABLES -A INPUT -p tcp -dport 80:500 -m limit "$LIMITE"kb -j ACCEPT
# Scarta tutto il resto del traffico!!! Da qui non entra piu niente
$IPTABLES -N LOGDROP
$IPTABLES -A LOGDROP -j LOG
$IPTABLES -A LOGDROP -j DROP
$IPTABLES -A INPUT -j LOGDROP
#Separa il logger da /var/log/messages in /var/log/iptables
#ps. aggiungere in /etc/syslogd.conf "kern.=debug /var/log/iptables"
$IPTABLES -A INPUT -j LOGDROP --log-level debug

Comments (0)

 
Ricerca in NetMind
Anonymous Okno
Menu Principale
Menu Papers
Menu Download
Menu Links
Stats
Tot. visite contenuti : 342672
 9 visitatori online