Firewall

Update 2014

BOAR IST DAS SCHLECHT!!! Auf keinen Fall nachmachen... Gott ist das lange her!

 


 

Mein Netzwerk braucht natürlich eine Firewall. Diese muss die einzelnen Zugriffsrechte zwischen den Clients und den Netzen regeln sowie nach „ungewollten“ Packten filtern. Natürlich soll sie auch die Verbindung ins Internet absichern. Damit ich mich auch remote zu meinem Netzwerk verbinden kann habe ich den SSH-Dienst aus Richtung Internet freigegeben. Ich lade mit Hilfe des Programms BitTorrent freie CD- oder DVD-Images von Linux Distributionen wie z.B.: Debian GNU Linux herunter. Um hier nun den Nutzen und Sinn des Programms BitTorrent zu erhalten sind ganz besondere Zugriffsrechte an der Firewall nötig. Damit ich nicht gleich von jedem Script Kiddie genervt werde ist es ganz sinnvoll nicht auf jedes „Ping“ aus dem Internet zu antworten. Mache ich daher auch nicht :-). Es gehört vielleicht nicht ganz in eine Firewall aber ich möchte für einen bestimmten Netzwerkteil die maximale Bandbreite in beide Richtungen begrenzen.


Hier werde ich nun einige Teile meiner Firewall aufführen. Die hier aufgeführte Firewall ist natürlich nicht 1 zu 1 so bei mir im Einsatz. Einige Teile lasse ich weg oder schreibe sie etwas um. Man muss potenziellen Angreifern ja nicht unnötig helfen, oder?


Die Firewall läuft bei mir auf einem eigenen Rechner. Dieser ist ein Pentium 4 mit 2,4 Ghz, 512 MB RAM, zwei 40 GB SCSI Platten im Raid 1 und 3 NICs. Anfänglich waren 1024 MB RAM in dem System installiert. Dieses ist aber auf 512 MB RAM geändert worden, da dieses völlig ausreichend ist. Im Moment zumindest ;-) Als Betriebssystem habe ich Debian GNU Linux 3.0 mit dem Kernel 2.4 gewählt, welches über (das super geile) APT immer schön auf dem neusten Stand gehalten wird. Die Firewall wird über iptables realisiert und die Bandbreite über tc - traffic shaping geregelt.


Wie das eigentliche System nun gehärtet wird, IDS - Intrusion Detection System in meinem System funktioniert und die Dienste weiter abgesichert sind, werde ich vielleicht in einem späteren einmal beschreiben. Fragen dazu kann ich aber gerne beantworten.


Iptables benötigt einen Kernel 2.4 oder höher. Es ist recht weit verbreitet (fast bei jeder Distribution dabei), sehr simpel in der Anwendung und man kann damit sehr komplexe Aufgaben erfüllen. Iptables „speichert“ die Regeln in einer Art Liste / Tabelle. Schlägt irgendwo ein Paket auf schaut Iptables sich dieses an und geht die Regelliste von oben nach unten durch, bis es eine passende Regel gefunden hat. Dieses kann sehr oft zu Fehlern führen an denen man sich totsucht. Hat man im oberen teil z.B.: Erlaubt das vom Client mit der IP 192.168.0.3 alle Pakete ungehindert ins Internet dürfen, etwas weiter unten aber dann dem Client keinen Zugriff auf FTP geben möchten (also Port 21 sperren) werden wir uns wundern warum der Client immer noch FTP darf und suchen. Hier nimmt iptables nämlich die erste zutreffende Regel (alle Pakete ungehindert ins Internet). Iptables wird hier also nie bei der Verbotregel für Port 21 ankommen.


Tc ist seit einiger Zeit fester Bestandteil des offiziellen Linux Kernels. Um es nutzen zu können benötigen wir aber noch iptables und iproute2. Das feine an TC ist, dass man mit der Hilfe von iptables Pakete markieren kann und dessen Bandbreite dann nach festgelegten Regeln managen kann. Da man mit iptables alles mögliche filtern (also auch markieren) kann, ist hiermit fast jeder Idee recht einfach realisierbar.


#!/bin/bash


# TC-Krims
tc qdisc add dev eth2 root handle 1:0 htb default 10
tc qdisc add dev ppp0 root handle 1:0 htb default 10
tc class add dev eth2 parent 1:0 classid 1:1 htb rate 150kbit ceil 250kbit
tc class add dev ppp0 parent 1:0 classid 1:2 htb rate 30kbit ceil 40kbit
tc filter add dev eth2 parent 1: prio 0 protocol ip handle 1 fw flowid 1:1
tc filter add dev ppp0 parent 1: prio 0 protocol ip handle 2 fw flowid 1:2


# iptables-Modul
modprobe sch_htb
modprobe sch_sfq
modprobe cls_fw
modprobe cls_u32
modprobe cls_route
modprobe ip_tables


# Connection-Tracking-Module
modprobe ip_conntrack
modprobe ip_conntrack_irc
modprobe ip_conntrack_irc
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp 


# Tabelle flushen
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
iptables -t nat -X
iptables -t mangle -X


# Default-Policies setzen
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP


# MY_REJECT-Chain
iptables -N MY_REJECT

# MY_REJECT fuellen
iptables -A MY_REJECT -p tcp -m limit --limit 7200/h -j LOG --log-prefix "REJECT TCP "
iptables -A MY_REJECT -p tcp -j REJECT --reject-with tcp-reset
iptables -A MY_REJECT -p udp -m limit --limit 7200/h -j LOG --log-prefix "REJECT UDP "
iptables -A MY_REJECT -p udp -j REJECT --reject-with icmp-port-unreachable
iptables -A MY_REJECT -p icmp -m limit --limit 7200/h -j LOG --log-prefix "DROP ICMP "
iptables -A MY_REJECT -p icmp -j DROP
iptables -A MY_REJECT -m limit --limit 7200/h -j LOG --log-prefix "REJECT OTHER "
iptables -A MY_REJECT -j REJECT --reject-with icmp-proto-unreachable


# MY_DROP-Chain
iptables -N MY_DROP
iptables -A MY_DROP -m limit --limit 7200/h -j LOG --log-prefix "PORTSCAN DROP "
iptables -A MY_DROP -j DROP


# Alle verworfenen Pakete protokollieren
iptables -A INPUT -m state --state INVALID -m limit --limit 7200/h -j LOG --log-prefix "INPUT INVALID "
iptables -A OUTPUT -m state --state INVALID -m limit --limit 7200/h -j LOG --log-prefix "OUTPUT INVALID "
iptables -A FORWARD -m state --state INVALID -m limit --limit 7200/h -j LOG --log-prefix "FORWARD INVALID "


# Korrupte Pakete zurueckweisen
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A OUTPUT -m state --state INVALID -j DROP
iptables -A FORWARD -m state --state INVALID -j DROP


# Stealth Scans etc. DROPpen
# Keine Flags gesetzt
iptables -A INPUT -p tcp --tcp-flags ALL NONE -j MY_DROP
iptables -A FORWARD -p tcp --tcp-flags ALL NONE -j MY_DROP


# SYN und FIN gesetzt
iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j MY_DROP
iptables -A FORWARD -p tcp --tcp-flags SYN,FIN SYN,FIN -j MY_DROP


# SYN und RST gleichzeitig gesetzt
iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j MY_DROP
iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN,RST -j MY_DROP


# FIN und RST gleichzeitig gesetzt
iptables -A INPUT -p tcp --tcp-flags FIN,RST FIN,RST -j MY_DROP
iptables -A FORWARD -p tcp --tcp-flags FIN,RST FIN,RST -j MY_DROP


# FIN ohne ACK
iptables -A INPUT -p tcp --tcp-flags ACK,FIN FIN -j MY_DROP
iptables -A FORWARD -p tcp --tcp-flags ACK,FIN FIN -j MY_DROP


# PSH ohne ACK
iptables -A INPUT -p tcp --tcp-flags ACK,PSH PSH -j MY_DROP
iptables -A FORWARD -p tcp --tcp-flags ACK,PSH PSH -j MY_DROP


# URG ohne ACK
iptables -A INPUT -p tcp --tcp-flags ACK,URG URG -j MY_DROP
iptables -A FORWARD -p tcp --tcp-flags ACK,URG URG -j MY_DROP


# Loopback-Netzwerk-Kommunikation zulassen
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT


# Maximum Segment Size (MSS) fr das Forwarding an PMTU anpassen
iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu


# Connection-Tracking aktivieren
iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i ! ppp0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT


# Zocken mit den Kindern
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.100.0/24 -d 192.168.0.5 -j MASQUERADE


# Bandbeitenregelung
iptables -A POSTROUTING -t mangle -o eth2 -j MARK --set-mark 1
iptables -A POSTROUTING -t mangle -o ppp0 -s 192.168.100.0/24 -j MARK --set-mark 2


# SSH
iptables -A INPUT -i ppp0 -m state --state NEW -p tcp --dport 22 -j ACCEPT


# IP-Adresse des LAN-Interfaces ermitteln
LAN_IP=$(ifconfig eth0 | head -n 2 | tail -n 1 | cut -d: -f2 | cut -d" " -f 1)
LAN_IP2=$(ifconfig eth2 | head -n 2 | tail -n 1 | cut -d: -f2 | cut -d " " -f 1)
LAN_IP3=$(ifconfig eth3 | head -n 2 | tail -n 1 | cut -d: -f2 | cut -d " " -f 1)


#NAT fuer BitTorrent
iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 6881:6889 -j DNAT --to-destination 192.168.0.9
iptables -t nat -A POSTROUTING -o eth0 -p tcp --dport 6881:6889 -j SNAT --to-source $LAN_IP
iptables -A FORWARD -i ppp0 -m state --state NEW -p tcp -d 192.168.0.9 --dport 6881:6889 -j ACCEPT


###########################################################################################################################


# Proxy Server
# Zugriff uerber die Firewall auf den Proxy
iptables -A INPUT -i eth0 -s 192.168.0.0/24 -p tcp --dport 3128 -j ACCEPT
iptables -A INPUT -i eth3 -s 192.168.101.0/24 -p tcp --dport 3128 -j ACCEPT
iptables -A INPUT -i eth2 -s 192.168.100.0/24 -p tcp --dport 3128 -j ACCEPT


# Diese duerfen alle direkt!
iptables -t nat -A POSTROUTING -o ppp0 -d dl1.antivir.de -p tcp --dport 80 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -d dl2.antivir.de -p tcp --dport 80 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -d dl3.antivir.de -p tcp --dport 80 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -d dl4.antivir.de -p tcp --dport 80 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -d dl1.avgate.net -p tcp --dport 80 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -d dl2.avgate.net -p tcp --dport 80 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -d dl3.avgate.net -p tcp --dport 80 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -d dl4.avgate.net -p tcp --dport 80 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -d dl5.avgate.net -p tcp --dport 80 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -d dl6.avgate.net -p tcp --dport 80 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -d dl7.avgate.net -p tcp --dport 80 -j MASQUERADE


iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.0.24 -p tcp --dport 80 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.101.10 -p tcp --dport 80 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.101.11 -p tcp --dport 80 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.0.10 -p tcp --dport 80 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.0.26 -p tcp --dport 80 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.0.28 -p tcp --dport 80 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.0.22 -p tcp --dport 80 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.0.9 -p tcp --dport 80 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.0.5 -p tcp --dport 80 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.0.100 -p tcp --dport 80 -j MASQUERADE


iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.101.30 -d 213.155.73.106 -p tcp --dport 80 -j MASQUERADE 
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.101.30 -d 213.155.73.106 -p tcp --dport 80 -j MASQUERADE 
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.101.30 -d 213.155.73.107 -p tcp --dport 80 -j MASQUERADE 
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.101.30 -d 213.155.73.107 -p tcp --dport 80 -j MASQUERADE 


## Um ganz sicher zu gehen machen wir die 80 sonst mal ganz zu :)
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.101.0/24 -p tcp --dport 80 -j DROP
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.0.0/24 -p tcp --dport 80 -j DROP
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.0/24 -p tcp --dport 80 -j DROP


###########################################################################################################################


# FTP


# - Kontrollverbindung
# - - Zugriff auf den Server
iptables -A INPUT -i ppp0 -p tcp --dport 1024:65535 --sport 21 ! --syn -j ACCEPT
iptables -A OUTPUT -o ppp0 -p tcp --sport 1024:65535 --dport 21 -j ACCEPT 


# - - Forwarding durch die Firewall 
iptables -A FORWARD -i eth0 -o ppp0 -p tcp --sport 1024:65535 --dport 21 -j ACCEPT
iptables -A FORWARD -i eth2 -o ppp0 -p tcp --sport 1024:65535 --dport 21 -j ACCEPT
iptables -A FORWARD -i eth3 -o ppp0 -p tcp --sport 1024:65535 --dport 21 -j ACCEPT
iptables -A FORWARD -i ppp0 -o eth0 -p tcp --dport 1024:65535 --sport 21 ! --syn -j ACCEPT
iptables -A FORWARD -i ppp0 -o eth2 -p tcp --dport 1024:65535 --sport 21 ! --syn -j ACCEPT
iptables -A FORWARD -i ppp0 -o eth3 -p tcp --dport 1024:65535 --sport 21 ! --syn -j ACCEPT


# - aktives FTP
# - - Zugriff auf den Server
iptables -A INPUT -i ppp0 -p tcp --dport 1024:65535 --sport 20 -j ACCEPT
iptables -A OUTPUT -o ppp0 -p tcp --sport 1024:65535 --dport 20 ! --syn -j ACCEPT


# - - Forwarding durch die Firewall
iptables -A FORWARD -i eth0 -o ppp0 -p tcp --sport 1024:65535 --dport 20 ! --syn -j ACCEPT
iptables -A FORWARD -i eth2 -o ppp0 -p tcp --sport 1024:65535 --dport 20 ! --syn -j ACCEPT
iptables -A FORWARD -i eth3 -o ppp0 -p tcp --sport 1024:65535 --dport 20 ! --syn -j ACCEPT
iptables -A FORWARD -i ppp0 -o eth0 -p tcp --dport 1024:65535 --sport 20 -j ACCEPT
iptables -A FORWARD -i ppp0 -o eth2 -p tcp --dport 1024:65535 --sport 20 -j ACCEPT
iptables -A FORWARD -i ppp0 -o eth3 -p tcp --dport 1024:65535 --sport 20 -j ACCEPT


# - passives FTP
# - - Zugriff auf den Server
iptables -A INPUT -i ppp0 -p tcp --dport 1024:65535 --sport 1024:65535 ! --syn -j ACCEPT
iptables -A OUTPUT -o ppp0 -p tcp --sport 1024:65535 --dport 1024:65535 -j ACCEPT


# - - Forwarding durch die Firewall
iptables -A FORWARD -i eth0 -o ppp0 -p tcp --sport 1024:65535 --dport 1024:65535 -j ACCEPT
iptables -A FORWARD -i eth2 -o ppp0 -p tcp --sport 1024:65535 --dport 1024:65535 -j ACCEPT
iptables -A FORWARD -i eth3 -o ppp0 -p tcp --sport 1024:65535 --dport 1024:65535 -j ACCEPT
iptables -A FORWARD -i ppp0 -o eth0 -p tcp --dport 1024:65535 --sport 1024:65535 ! --syn -j ACCEPT
iptables -A FORWARD -i ppp0 -o eth2 -p tcp --dport 1024:65535 --sport 1024:65535 ! --syn -j ACCEPT
iptables -A FORWARD -i ppp0 -o eth3 -p tcp --dport 1024:65535 --sport 1024:65535 ! --syn -j ACCEPT


###########################################################################################################################


# LAN-Zugriff auf ethx
iptables -A INPUT -m state --state NEW -i eth0 -j ACCEPT
iptables -A INPUT -i eth3 -s 192.168.101.10 -p udp --dport 22 -j ACCEPT
iptables -A INPUT -i eth3 -s 192.168.101.10 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -i eth3 -s 192.168.101.11 -p udp --dport 22 -j ACCEPT
iptables -A INPUT -i eth3 -s 192.168.101.11 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -i tun0 -p udp --dport 22 -j ACCEPT
iptables -A INPUT -i tun0 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -m state --state NEW -i eth2 -j DROP
iptables -A INPUT -m state --state NEW -i eth3 -j DROP


# Default-Policies mit REJECT
iptables -A INPUT -j MY_REJECT
iptables -A OUTPUT -j MY_REJECT
iptables -A FORWARD -j MY_REJECT


# Routing
echo 1 > /proc/sys/net/ipv4/ip_forward 2> /dev/null




###########################################################################################################################


# DNS nach draussen darf nur mein DNS-Server
## Mein lieber DNS-Server
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.0.10 -p tcp --dport 53 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.0.10 -p udp --dport 53 -j MASQUERADE
## Tja, und alle die es halt nicht duerfen :)
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.101.0/24 -p tcp --dport 53 -j DROP
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.101.0/24 -p udp --dport 53 -j DROP
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.0/24 -p tcp --dport 53 -j DROP
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.0/24 -p udp --dport 53 -j DROP


# Der liebe Sebi darf schoen xMule machen :)
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.0.9 -p tcp --dport 4000:5000 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.0.9 -p udp --dport 4000:5000 -j MASQUERADE
# Sonst darf aber kein Schwein xMule....
iptables -t nat -A POSTROUTING -o ppp0 -p tcp --dport 4000:5000 -j DROP
iptables -t nat -A POSTROUTING -o ppp0 -p udp --dport 4000:5000 -j DROP


# Kernel darf alles
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.101.10 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.101.10 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth2 -s 192.168.101.10 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.101.11 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.101.11 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth2 -s 192.168.101.11 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.101.2 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.101.2 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth2 -s 192.168.101.2 -j MASQUERADE


# Aus dem Netz 192.168.100.0 drfen nur Leutz die ich mag auch auf meinen dns-server zugreifen und auch nur
# auf diesen. Wre ja noch schner wenn da jeder spacken drfte.
iptables -t nat -A POSTROUTING -o eth0 -p tcp --dport 53 -s 192.168.100.2 -d 192.168.0.10 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -p udp --dport 53 -s 192.168.100.2 -d 192.168.0.10 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -p tcp --dport 53 -s 192.168.101.30 -d 192.168.0.10 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -p udp --dport 53 -s 192.168.101.30 -d 192.168.0.10 -j MASQUERADE 
iptables -t nat -A POSTROUTING -o eth0 -p tcp --dport 53 -s 192.168.100.100 -d 192.168.0.10 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -p udp --dport 53 -s 192.168.100.100 -d 192.168.0.10 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -p tcp --dport 53 -s 192.168.100.22 -d 192.168.0.10 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -p udp --dport 53 -s 192.168.100.22 -d 192.168.0.10 -j MASQUERADE 


# Wlan
iptables -t nat -A POSTROUTING -o eth0 -p tcp --dport 53 -s 192.168.101.0/24 -d 192.168.0.10 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -p udp --dport 53 -s 192.168.101.0/24 -d 192.168.0.10 -j MASQUERADE


# Cederic darf auf den Printserver fr die Buerodrucker zugreifen
#iptables -t nat -A POSTROUTING -o eth0 -s 192.168.100.2 -d 192.168.0.251 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.101.30 -d 192.168.0.251 -j MASQUERADE


# Cederic darf auf dem Netz 192.168.100.0 auf meinen mail-server zugreife
iptables -t nat -A POSTROUTING -o eth0 -p tcp --dport 25 -s 192.168.100.2 -d 192.168.0.10 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -p tcp --dport 110 -s 192.168.100.2 -d 192.168.0.10 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -p tcp --dport 25 -s 192.168.101.30 -d 192.168.0.10 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -p tcp --dport 110 -s 192.168.101.30 -d 192.168.0.10 -j MASQUERADE


# Anna darf auch mp3s hoeren
iptables -t nat -A POSTROUTING -o eth0 -p tcp --dport 137:139 -s 192.168.101.30 -d 192.168.0.10 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -p udp --dport 137:139 -s 192.168.101.30 -d 192.168.0.10 -j MASQUERADE


# Zugriff vom gesammten internen Netz auf die Test mp3 maschine
iptables -t nat -A POSTROUTING -o eth0 -p udp --dport 80 -s 192.168.101.0/24 -d 192.168.0.9 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -p tcp --dport 80 -s 192.168.101.0/24 -d 192.168.0.9 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -p udp --dport 8000 -s 192.168.101.0/24 -d 192.168.0.9 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -p tcp --dport 8000 -s 192.168.101.0/24 -d 192.168.0.9 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -p udp --dport 80 -s 192.168.100.0/24 -d 192.168.0.9 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -p tcp --dport 80 -s 192.168.100.0/24 -d 192.168.0.9 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -p udp --dport 8000 -s 192.168.100.0/24 -d 192.168.0.9 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -p tcp --dport 8000 -s 192.168.100.0/24 -d 192.168.0.9 -j MASQUERADE


# Kernel-Error darf natrlich ins Netz 192.168.100.0 zugreifen :)
iptables -t nat -A POSTROUTING -o eth2 -s 192.168.0.5 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth2 -s 192.168.0.110 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth2 -s 192.168.0.111 -j MASQUERADE


# und natrlich ins wlan
iptables -t nat -A POSTROUTING -o eth3 -s 192.168.0.5 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth3 -s 192.168.0.110 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth3 -s 192.168.0.111 -j MASQUERADE


# Einige Ports aus dem Netz 192.168.100.0 werden nicht geroutet.


iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.0/24 -p tcp --dport 25 -j DROP
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.0/24 -p udp --dport 25 -j DROP
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.0/24 -p tcp --dport 110 -j DROP
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.0/24 -p udp --dport 110 -j DROP
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.0/24 -p tcp --dport 443 -j DROP
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.0/24 -p udp --dport 443 -j DROP


###########################################################################################################################


#Cederic
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -p tcp --dport 22 -j DROP
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -p udp --dport 22 -j DROP
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -d 62.216.176.242 -p tcp --dport 31343 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -p udp --dport 8767 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -p udp --dport 8766 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -p udp --dport 4765 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -p tcp --dport 6111:6119 -j MASQUERADE 
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -p udp --dport 6111:6119 -j MASQUERADE 
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -p tcp --dport 4000 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -p udp --dport 4000 -j MASQUERADE 
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -p tcp --dport 6667:6669 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -p udp --dport 6667:6669 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -p tcp --dport 1:79 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -p udp --dport 1:79 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -p tcp --dport 81:1024 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -p udp --dport 81:1024 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -p tcp --dport 27000:29000 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -p udp --dport 27000:29000 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -p tcp --dport 14534 -d 82.211.60.25 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -p udp --dport 14534 -d 82.211.60.25 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -p tcp --dport 6003 -d half-life.east.won.net -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -p udp --dport 6003 -d half-life.east.won.net -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -p tcp --dport 6003 -d half-life.west.won.net -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -p udp --dport 6003 -d half-life.west.won.net -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -p tcp --dport 6003 -d half-life.central.won.net -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -p udp --dport 6003 -d half-life.central.won.net -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -p tcp --dport 7002 -d half-life.east.won.net -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -p udp --dport 7002 -d half-life.east.won.net -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -p tcp --dport 7002 -d half-life.west.won.net -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -p udp --dport 7002 -d half-life.west.won.net -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -p tcp --dport 7002 -d half-life.central.won.net -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -p udp --dport 7002 -d half-life.central.won.net -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -p tcp --dport 5190 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -p udp --dport 5190 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -p tcp --dport 10636 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -p udp --dport 10636 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -d 81.2.131.248 -s 192.168.100.2 -p tcp --dport 26580 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -d 81.2.131.248 -s 192.168.100.2 -p udp --dport 26580 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -d 217.172.188.219 -p tcp --dport 6000 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -d 217.172.188.219 -p udp --dport 6000 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -d 81.169.187.190 -p tcp --dport 3445 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -d 81.169.187.190 -p udp --dport 3445 -j MASQUERADE 
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -d 62.75.250.105 -p tcp --dport 8000 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.2 -d 62.75.250.105 -p udp --dport 8000 -j MASQUERADE


#Server-Bodo 
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.100 -p tcp --dport 22 -j DROP
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.100 -p udp --dport 22 -j DROP
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.100 -p tcp --dport 1:79 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.100 -p udp --dport 1:79 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.100 -p tcp --dport 81:1024 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.100 -p udp --dport 81:1024 -j MASQUERADE


# Anna
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.101.30 -p tcp --dport 1:1024 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.101.30 -p udp --dport 1:1024 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.101.30 -p tcp --dport 5190 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.101.30 -p udp --dport 5190 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.101.30 -p tcp --dport 10636 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.101.30 -p udp --dport 10636 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.101.30 -d 213.155.73.107 -p tcp --dport 7670 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.101.30 -d 213.155.73.107 -p udp --dport 7670 -j MASQUERADE


# AnnA-wlan
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.101.101 -p tcp --dport 1:1024 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.101.101 -p udp --dport 1:1024 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.101.101 -p tcp --dport 5190 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.101.101 -p udp --dport 5190 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.101.101 -p tcp --dport 10636 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.101.101 -p udp --dport 10636 -j MASQUERADE


# Alles was aus dem Net 192.168.100.0 kommt und ich nicht erlaubt habe bleibt auch da :)
iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -j DROP
iptables -t nat -A POSTROUTING -s 192.168.101.0/24 -j MASQUERADE


# Aus Netz 192.168.0.0 erst mal alles weitere durch lassen
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.0.0/24 -j MASQUERADE


###########################################################################################################################

# SYN-Cookies
echo 1 > /proc/sys/net/ipv4/tcp_syncookies 2> /dev/null

# Stop Source-Routing
for i in /proc/sys/net/ipv4/conf/*; do echo 0 > $i/accept_source_route 2> /dev/null; done

# Stop Redirecting
for i in /proc/sys/net/ipv4/conf/*; do echo 0 > $i/accept_redirects 2> /dev/null; done

# Reverse-Path-Filter
# Auskommentiert, da IPSEC mit RP_Filter nicht funktioniert!
# for i in /proc/sys/net/ipv4/conf/*; do echo 2 > $i/rp_filter 2> /dev/null; done

# Log Martians
for i in /proc/sys/net/ipv4/conf/*; do echo 1 > $i/log_martians 2> /dev/null; done

# BOOTP-Relaying ausschalten
for i in /proc/sys/net/ipv4/conf/*; do echo 0 > $i/bootp_relay 2> /dev/null; done

# Proxy-ARP ausschalten
for i in /proc/sys/net/ipv4/conf/*; do echo 0 > $i/proxy_arp 2> /dev/null; done

# Ungltige ICMP-Antworten ignorieren
echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses 2> /dev/null

# ICMP Echo ignorieren
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all 2> /dev/null

# Max. 500/Sekunde (5/Jiffie) senden
echo 5 > /proc/sys/net/ipv4/icmp_ratelimit

# Speicherallozierung und -timing fr IP-De/-Fragmentierung
echo 262144 > /proc/sys/net/ipv4/ipfrag_high_thresh
echo 196608 > /proc/sys/net/ipv4/ipfrag_low_thresh
echo 30 > /proc/sys/net/ipv4/ipfrag_time

# TCP-FIN-Timeout zum Schutz vor DoS-Attacken setzen
echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout

# Maximal 3 Antworten auf ein TCP-SYN
echo 3 > /proc/sys/net/ipv4/tcp_retries1

# TCP-Pakete maximal 15x wiederholen
echo 15 > /proc/sys/net/ipv4/tcp_retries2