[glux] IPTables

Maxxer maxxer_@imilesi.it
Dom 21 Mar 2004 10:54:59 CET


Ciao.

L'altro giorno Gigi parlava di Iptables, come si configura il nat, come
si fa questo e quello. Si parla anche spesso di sicurezza, intrusioni, e
via di seguito.
Io in prima persona non sono molto esperto di reti e firewall, quindi mi
chiedevo se non si poteva aprire una mini discussione in proposito,
magari chi vuole posta il suo script di iptables (chi l'ha
personalizzato) e li si discute.

Io posto il mio, raffazzonato da vari esempi presi in rete: lo uso sul
mio pc di casa, connessione dialup, condivisa via rete (il pc che fa la
connessione fa da gateway).

~~

#!/bin/sh

LOCALE=eth0
INTERNET=ppp0

#flush (pulizia) di tutte le regole 
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
iptables -F -t nat

#impostazione regole di default, se non viene trovata nessun'altra
regola specificata. 
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP

# Inoltro dei pacchetti della rete interna su internet
iptables -A FORWARD -i $LOCALE -o $INTERNET -j ACCEPT
# Ricezione
iptables -t nat -A POSTROUTING -o $INTERNET -j MASQUERADE

# accetta da internet le connessioni già aperte
iptables -A FORWARD -i $INTERNET -o $LOCALE -m state --state
ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i $INTERNET -m state --state ESTABLISHED,RELATED -j
ACCEPT

#accetta tutte le connessioni a qs macchina dalle reti locali
iptables -A INPUT -i $LOCALE -s 0/0 -d 0/0 -j ACCEPT
iptables -A INPUT -i lo -s 0/0 -d 0/0 -j ACCEPT
#non forwarda pacchetti che provengono da internet
iptables -A FORWARD -i $INTERNET -o $INTERNET -j DROP

# rifiuta connessioni da indirizzi privati (spoofati) da internet
iptables -A INPUT -i $INTERNET -s 192.168.0.0/24 -j DROP
iptables -A INPUT -i $INTERNET -s 172.16.0.0/12 -j DROP
iptables -A INPUT -i $INTERNET -s 10.0.0.0/8 -j DROP
iptables -A INPUT -i $INTERNET -s 127.0.0.0/8 -j DROP

#block ping of death
iptables -A INPUT -i $INTERNET -p icmp --icmp-type echo-request -m limit
--limit 1/s -j ACCEPT
iptables -A INPUT -i $INTERNET -p icmp --icmp-type echo-request -j DROP

# Block Furtive port scanner
iptables -A INPUT -p tcp -i $INTERNET --tcp-flags SYN,ACK,FIN,RST RST -m
limit --limit 1/s -j ACCEPT

# Block Syn-flood
iptables -A INPUT -p tcp -i $INTERNET --syn -m limit --limit 1/s -j
ACCEPT

#accetta connessioni per la porta 22 (ssh)
iptables -A INPUT -p tcp -s 0/0 -d 0/0 --destination-port 22 --syn -j
ACCEPT
#accetta connessioni per la porta 8001 (motion)
iptables -A INPUT -p tcp -s 0/0 -d 0/0 --destination-port 8001 --syn -j
ACCEPT
#accetta connessioni per la porta 24 -> ssh su 192.168.0.2
iptables -A INPUT -p tcp -s 0/0 -d 0/0 --destination-port 24  -j ACCEPT
iptables -t nat -A PREROUTING -i $INTERNET -p tcp -s 0/0 -d 0/0
--destination-port 24 -j DNAT --to 192.168.0.2:22
iptables -A FORWARD -i $INTERNET -p tcp -d 192.168.0.2 --dport 22 -j
ACCEPT

#xmule/edonkey
iptables -A INPUT -p tcp -s 0/0 -d 0/0 --destination-port 4662 --syn -j
ACCEPT
iptables -A INPUT -p udp -s 0/0 -d 0/0 --destination-port 4662 -j ACCEPT
iptables -A INPUT -p udp -s 0/0 -d 0/0 --destination-port 4672 -j ACCEPT

#Bittorrent
iptables -A INPUT -p tcp -s 0/0 -d 0/0 --destination-port 6881:6889
--syn -j ACCEPT

#Freenet
iptables -A INPUT -p tcp -s 0/0 -d 0/0 --destination-port 8736 --syn -j
ACCEPT

#tutto ciò che non è specificato, viene scartato (evitabile, date le
policy di default di cui sopra)
iptables -A INPUT -s 0/0 -d 0/0 -p udp -j DROP
iptables -A INPUT -s 0/0 -d 0/0 -p tcp --syn -j DROP

~~

echo 1 > /proc/sys/net/ipv4/ip_forward #per il forward
echo 1 > /proc/sys/net/ipv4/tcp_syncookies #questo è per alcuni attacchi
dos

Se avete commenti, aggiunte, migliorie, ben vengano.
ciao
maxxer

-- 

Maxxer                                 /"\
                                       \ /    ASCII Ribbon Campaign
ICQ 10703864                            X     Against HTML Mail
                                       / \
-- 

Maxxer                                 /"\
                                       \ /    ASCII Ribbon Campaign
ICQ 10703864                            X     Against HTML Mail
                                       / \



Maggiori informazioni sulla lista glux