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
Schreibe einen Kommentar