Hallo zusammen!
Ich hab jetzt mehrere HowTos bzw. erklärungen zu Netfilter/ firewall etc. gelesen.
Aber wie mans konkret mit Iptables macht ist mir noch nicht klar.
das thema scheint ein richtiger brocken zu sein.
Gibts nicht irgendwo eine GUTE leicht verständliche erklärungen zu den Befehlen?
der und der befehl macht das, der macht das etc.? (am besten auf deutsch)
wie die Syntax des Befehls aussehen muss.
mfg saash!
Wie am besten mit einer Firewall/routing anfangen?
- fred19726
- Beiträge: 507
- Registriert: 18.07.2002 03:38:38
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Heidelberg (DE)
-
Kontaktdaten:
Guckst du hier: http://www.debianforum.de/forum/viewtopic.php?t=3610
das thema schein hier im forum ein richtiger dauerbrenner zu sein
MFG Fred
das thema schein hier im forum ein richtiger dauerbrenner zu sein
MFG Fred
- fred19726
- Beiträge: 507
- Registriert: 18.07.2002 03:38:38
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Heidelberg (DE)
-
Kontaktdaten:
velleicht hilft dir das: mein firewall script sieht so aus:
#!/bin/sh
# _____
# Eingehend / \ Ausgehend
# --> [Routing] ---> |FORWARD| --------->
# | \_____/ ^
# | |
# v ____
# ___ / \
# / \ |OUTPUT|
# |INPUT| \____/
# \___/ ^
# | |
# \---> Lokaler Prozess ---/
# Schnittstelle zum Netzwerk
IFACE_INT="eth0"
# Schnittstelle zum Internet
IFACE_EXT="ppp0"
# Loopback device
IFACE_LO="lo"
# Iptables
IPTABLES="/sbin/iptables"
# ************
# * POLICIES *
# ************
# löschen aller regeln
$IPTABLES -F
$IPTABLES -t nat -F
# löschen aller zusätzlichen ketten (tabellen)
$IPTABLES -X
$IPTABLES -t nat -X
# Default-Policies setzen - alles fliegt raus
$IPTABLES -P INPUT DROP
$IPTABLES -P FORWARD DROP
$IPTABLES -P OUTPUT DROP
# Einschalten von ip-Forwarding
echo "1" > /proc/sys/net/ipv4/ip_forward
# ***********
# * LOGGING *
# ***********
# logging tabellen anlegen
$IPTABLES -N input_log
$IPTABLES -N output_log
$IPTABLES -N forward_log
# Alles alles was in die logging tabellen kommt mitprotokollieren
$IPTABLES -A input_log -j LOG --log-prefix "Nicht rein: "
$IPTABLES -A output_log -j LOG --log-prefix "Nicht raus: "
$IPTABLES -A forward_log -j LOG --log-prefix "Nicht durch: "
# alle pakete in der logging tabelle verwerfen
$IPTABLES -A input_log -j DROP
$IPTABLES -A output_log -j DROP
$IPTABLES -A forward_log -j DROP
# *****************
# * Ports oeffnen *
# *****************
# ftp server
$IPTABLES -A FORWARD -i $IFACE_EXT -p TCP -d 192.168.1.34 --dport 20 -j ACCEPT
$IPTABLES -A FORWARD -i $IFACE_EXT -p TCP -d 192.168.1.34 --dport 21 -j ACCEPT
# ssh server
$IPTABLES -A FORWARD -i $IFACE_EXT -p TCP -d 192.168.1.34 --dport 22 -j ACCEPT
# web server
$IPTABLES -A FORWARD -i $IFACE_EXT -p TCP -d 192.168.1.34 --dport 80 -j ACCEPT
# ***************
# ports blocken *
# ***************
# windows netzwerk (nach|von) drausen blocken
$IPTABLES -A INPUT -i $IFACE_EXT -p TCP --dport 137:139 -j input_log
$IPTABLES -A INPUT -i $IFACE_EXT -p UDP --dport 137:139 -j input_log
$IPTABLES -A OUTPUT -o $IFACE_EXT -p TCP --dport 137:139 -j output_log
$IPTABLES -A OUTPUT -o $IFACE_EXT -p UDP --dport 137:139 -j output_log
$IPTABLES -A FORWARD -o $IFACE_EXT -p TCP --dport 137:139 -j forward_log
$IPTABLES -A FORWARD -o $IFACE_EXT -p UDP --dport 137:139 -j forward_log
# *********
# * INPUT *
# *********
# Soll nicht sein (was ist das ?)
$IPTABLES -A INPUT -p TCP ! --syn -m state --state NEW -j input_log
# Netzwerk -> Lokal: alles erlauben
$IPTABLES -A INPUT -i $IFACE_INT -j ACCEPT
# Loopback -> Lokal: Alles erlauben
$IPTABLES -A INPUT -i $IFACE_LO -j ACCEPT
# Internet -> Lokal: Darf nicht sein
$IPTABLES -A INPUT -i $IFACE_EXT -s 10.0.0.0/8 -j input_log
$IPTABLES -A INPUT -i $IFACE_EXT -s 172.16.0.0/12 -j input_log
$IPTABLES -A INPUT -i $IFACE_EXT -s 192.168.0.0/24 -j input_log
# Internet -> Lokal: Nur Verkehr über bereits bestehende Verbindungen erlauben
$IPTABLES -A INPUT -i $IFACE_EXT -m state \
--state ESTABLISHED,RELATED -j ACCEPT
# ***********
# * FORWARD *
# ***********
# Netzwerk -> Internet: Alles erlauben
$IPTABLES -A FORWARD -i $IFACE_INT -o $IFACE_EXT -j ACCEPT
# Netzwerk -> Netzwerk: Alles erlauben (192.168.1.0/24 <-> 192.168.0.0/24)
$IPTABLES -A FORWARD -i $IFACE_INT -o $IFACE_INT -j ACCEPT
# Internet -> Netzwerk: Nur Verkehr über bereits bestehende Verbindungen erlauben
$IPTABLES -A FORWARD -i $IFACE_EXT -o $IFACE_INT -m state \
--state ESTABLISHED,RELATED -j ACCEPT
# **********
# * OUTPUT *
# **********
# Lokal -> Netzwerk: Alles erlauben
$IPTABLES -A OUTPUT -o $IFACE_INT -j ACCEPT
# Lokal -> Loopback: Alles erlauben
$IPTABLES -A OUTPUT -o $IFACE_LO -j ACCEPT
# Lokal -> Internet: Alles erlauben
$IPTABLES -A OUTPUT -o $IFACE_EXT -j ACCEPT
# ******************
# * PORTFORWARDING *
# ******************
# ftp server
$IPTABLES -t nat -A PREROUTING -i $IFACE_EXT -p TCP --dport 20 -j DNAT --to 192.168.1.34:20
$IPTABLES -t nat -A PREROUTING -i $IFACE_EXT -p TCP --dport 21 -j DNAT --to 192.168.1.34:21
# ssh server
$IPTABLES -t nat -A PREROUTING -i $IFACE_EXT -p TCP --dport 22 -j DNAT --to 192.168.1.34:22
# www server
$IPTABLES -t nat -A PREROUTING -i $IFACE_EXT -p TCP --dport 80 -j DNAT --to 192.168.1.34:80
# ****************
# * MASQUERADING *
# ****************
## Masquerading
$IPTABLES -A POSTROUTING -o $IFACE_EXT -t nat -j MASQUERADE