Wie am besten mit einer Firewall/routing anfangen?

Gemeinsam ins Internet mit Firewall und Proxy.
Antworten
saash
Beiträge: 49
Registriert: 18.10.2002 15:56:53

Wie am besten mit einer Firewall/routing anfangen?

Beitrag von saash » 07.11.2002 20:30:24

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!

Benutzeravatar
fred19726
Beiträge: 507
Registriert: 18.07.2002 03:38:38
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Heidelberg (DE)
Kontaktdaten:

Beitrag von fred19726 » 07.11.2002 20:38:08

Guckst du hier: http://www.debianforum.de/forum/viewtopic.php?t=3610

das thema schein hier im forum ein richtiger dauerbrenner zu sein :wink:

MFG Fred

Benutzeravatar
fred19726
Beiträge: 507
Registriert: 18.07.2002 03:38:38
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Heidelberg (DE)
Kontaktdaten:

Beitrag von fred19726 » 07.11.2002 20:41:10

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


Antworten