Code: Alles auswählen
#!/bin/bash
# Interface-name (Device der aktuellen Verbindung, z.B. ppp0)
DEV_INET=eth0
# Das Device auf LAN-Seite
DEV_LAN=eth0
# Loopback Device. Hat jeder. Finger weg!
DEV_LOOP=lo
IP_LOOP=127.0.0.1
# Kürzel für alle IP-Adressen
ANY=0.0.0.0/0
# Das aktuelle Datum und die Uhrzeit
DATE=$(date)
# Vollen Pfad von iptables
IPTABLES=/sbin/iptables
echo "Lade Module..."
# Benoetigte Module laden
modprobe ip_tables &> /dev/null
modprobe ip_conntrack &> /dev/null
modprobe ip_conntrack_ftp &> /dev/null
modprobe ipt_state &> /dev/null
#modprobe iptable_nat &> /dev/null
modprobe ipt_REJECT &> /dev/null
#modprobe ipt_MASQUERADE &> /dev/null
echo "Loesche alte Regeln..."
# Alle alten Regeln löschen, anschließend die Default-Policy setzen
$IPTABLES -F
$IPTABLES -X
$IPTABLES -F -t filter
$IPTABLES -F -t nat
$IPTABLES -F -t mangle
$IPTABLES -t filter -X
$IPTABLES -t nat -X
#$IPTABLES -t mangle -X
# Wenn keine andere Regel greift, alles verwerfen
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT DROP
# icmp handling - ICMP-Pakete werden erlaubt, bis auf type 5 (redirect)
$IPTABLES -N icmp_allow
$IPTABLES -N icmp_reject
$IPTABLES -A INPUT -p icmp --icmp-type ! 5 -j icmp_allow
$IPTABLES -A icmp_allow -j ACCEPT
# Verbindungen zum loopback-Device - Das ist NOTWENDIG
$IPTABLES -N lo_accept
$IPTABLES -A INPUT -i $DEV_LOOP -m state --state NEW -j lo_accept
$IPTABLES -A INPUT -i $DEV_LOOP -m state --state ESTABLISHED,RELATED -j lo_accept
$IPTABLES -A OUTPUT -o $DEV_LOOP -m state --state NEW -j lo_accept
$IPTABLES -A OUTPUT -o $DEV_LOOP -m state --state ESTABLISHED,RELATED -j lo_accept
$IPTABLES -A lo_accept -j ACCEPT
# Pings vom Gateway erlauben
$IPTABLES -N icmp_gate
$IPTABLES -A OUTPUT -p icmp -j icmp_gate
$IPTABLES -A icmp_gate -j ACCEPT
# DNS erlauben
$IPTABLES -N dns_gate
$IPTABLES -A OUTPUT -p udp -o $DEV_INET --dport 53 -m state --state NEW -j dns_gate
$IPTABLES -A OUTPUT -p udp -o $DEV_INET --dport 53 -m state --state ESTABLISHED,RELATED -j dns_gate
$IPTABLES -A dns_gate -j ACCEPT
echo "SSH..."
# ssh
$IPTABLES -N ssh_gate
$IPTABLES -A OUTPUT -p tcp --dport 22 -m state --state NEW -j ssh_gate
$IPTABLES -A OUTPUT -p tcp --dport 22 -m state --state ESTABLISHED,RELATED -j ssh_gate
$IPTABLES -A INPUT -p tcp --dport 22 -m state --state NEW -j ssh_gate
$IPTABLES -A INPUT -p tcp --dport 22 -m state --state ESTABLISHED,RELATED -j ssh_gate
$IPTABLES -A ssh_gate -j ACCEPT
#rest kommt weg
$IPTABLES -A INPUT -j REJECT
$IPTABLES -A OUTPUT -j REJECT