Besser Filtern mit IP Tables

Seite 5: iptables-Skript

Inhaltsverzeichnis
#/bin/sh
# Ein einfaches iptables-Startskript

# Interface zum Internet
EXTIF=ppp0

# Netzwerke
ANY=0.0.0.0/0
LAN=192.168.111.0/24

# Spezielle Hosts - editieren !!!
VPN_GATE=$ANY

# NetBIOS, SMB, SQL Server, NFS, X11
BAD_TCP="135:139 445 1433 2049 5999:6063"
BAD_UDP="135:139 445 1433 2049 5999:6063"

######################
# spez. Kernel-Features
######################
# kein IP spoofing
# abgeschaltet wg. FreeS/WAN
#if [ -e /proc/sys/net/ipv4/conf/all/rp_filter ] ; then
# for i in /proc/sys/net/ipv4/conf/*/rp_filter; do
# echo 1 > $i
# done
#fi

# SYN Flood protection
if [ -e /proc/sys/net/ipv4/tcp_syncookies ] ; then
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
fi

# Disable Source Routed Packets
for i in /proc/sys/net/ipv4/conf/*/accept_source_route; do
echo 0 > $i
done

##################
## IPTABLES ##
##################
# Flush all
iptables -F
iptables -t nat -F
iptables -t mangle -F

# Policies
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

############
# MASQ
############
iptables -t nat -A POSTROUTING -o $EXTIF -s $LAN -j MASQUERADE

############
# INPUT
############
# alles was ueber lokale Interfaces reinkommt (!=ppp0)
iptables -A INPUT -m state --state NEW -i ! $EXTIF -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Incoming ssh
# iptables -A INPUT -s $VPN_GATE -p tcp --dport ssh -j ACCEPT
# FreeS/WAN IPSec
# iptables -A INPUT -s $VPN_GATE -p udp --dport 500 -j ACCEPT
# iptables -A INPUT -s $VPN_GATE -p 50 -j ACCEPT

############
# FORWARD
############
# bad ports -- never ever (teilweise redundant)
for i in $BAD_TCP; do
iptables -A FORWARD -p tcp --dport $i -j DROP
iptables -A FORWARD -p tcp --sport $i -j DROP
done
for i in $BAD_UDP; do
iptables -A FORWARD -p udp --dport $i -j DROP
iptables -A FORWARD -p udp --sport $i -j DROP
done

# MTU-Problem bei DSL fixen
# iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

# alles was ueber lokale Interfaces reinkommt (!=ppp0)
iptables -A FORWARD -m state --state NEW -i ! $EXTIF -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

# Forwarding einschalten
echo 1 > /proc/sys/net/ipv4/ip_forward

Beachten Sie auch unseren Nachtrag zu "Besser Filtern mit IP Tables". (dab)