Code: Select all
#/bin/sh
# Ein einfaches iptables-Startskript
# Interface zum Internet
EXTIF=eth0
# Netzwerke
ANY=0.0.0.0/0
LAN=***.***.***.***
# 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
#HTTP
iptables -A INPUT -s $VPN_GATE -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -s $VPN_GATE -p tcp --dport 8080 -j ACCEPT
#https
#iptables -A INPUT -s $VPN_GATE -p tcp --dport 443 -j ACCEPT
#FTP
iptables -A INPUT -s $VPN_GATE -p tcp --dport 21 -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
# 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
# MTU-Problem bei DSL fixen
iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
# Forwarding einschalten
echo 1 > /proc/sys/net/ipv4/ip_forward