Forum
Tipps
News
Menu-Icon

iptables

Hallo!

Habe mich mal die letzten Tage etwas mit iptables befasst und ein kleines Skript gebaut. Es sollte fuer einen Server sein der Hauptsaechlich auf eth1 routen soll. Einsatzort soll Suse 9.3 sein.   


#!/bin/sh
#
#versuch eine eigene Firewall zu erstellen
#definierten Zustand zu erstellen und alle Regeln loeschen

case "$1" in
start)
echo "Starte iptables"

#
#Loeschen aller bisherigen Regeln

iptables -F
iptables -t nat -F

#
#Routing/Forwarding starten

rcnamed start
echo 1 >/proc/sys/ipv4/ip_forward

#
#Ein Router sollte Pakete vom Typ Destination-unrechable bearbeiten

iptables -A INPUT -i eth0 icmp-type destination-unrechable -j ACCEPT

#
#Ports fuer eMule oeffnen

iptables -A INPUT -i eth0 -p tcp -dport 4661:4663 -j ACCEPT -d -s snake
iptables -A INPUT -i eth0 -p udp -dport 4665 -j ACCEPT -d -s snake
iptables -A INPUT -i eth0 -p udp -dport 5662 -j ACCEPT -d -s snake

#
#Ports fuer Bittorrent oeffnen

iptables -A INPUT -i eth0 -p tcp -dport 6969 -j ACCEPT -d -s snake
iptables -A INPUT -i eth0 -p tcp -dport 6881:6889 -j ACCEPT -d -s snake
iptables -A INPUT -i eth0 -p tcp -dport 3881:3889 -j ACCEPT -d -s snake

#
#Ports fuer Applejuice oeffnen

iptbles -A INPUT -i eth0 -p tcp -dport 7390 -j ACCEPT -d -s snake

#
#Ports fuer WinMX oeffnen

iptables -A INPUT -i eth0 -p tcp -dport 6699 -j ACCEPT -d -s snake
iptables -A INPUT -i eth0 -p udp -dport 6257 -j ACCEPT  -d -s snake

#
#Ports fuer IRC oeffnen

iptables -A INPUT -i eth0 -p tcp -dport 3334:3335 -j ACCEPT -d -s snake

#
#Ports fuer ICQ oeffnen

iptables -A INPUT -i eth0 -p tcp -dport 24500:24505 -j ACCEPT -d -s snake

#
#Regeln erstellen fuer Established

iptables -N block
iptables -A block -m state -state ESTABLISHED,RELATED -j ACCEPT
iptables -A block -m state -state NEW -i eth0 -j ACCEPT
iptables -A block -j DROP

#
#Von Input und Forward Ketten zu dieser Kette springen

iptables -A INPUT -j block
iptables -A FORWARD -j block

#
#Alle ausgehenden Pakete maskieren

iptables -t -nat -A POSTROUTING -o eth0 -j MASQUERADE

stop)
echo "Stoppe iptables"

#FERTIG

Bitte nicht steinigen ist erst der erste Versuch!

Gruss Burner

PS: Ist der Doc im Urlaub?

Antworten zu iptables:

Hallo,

Zitat
#Routing/Forwarding starten

rcnamed start
echo 1 >/proc/sys/ipv4/ip_forward
Warum Nameserver starten? ist einer konfiguriert?

Leertaste zwischen > und /proc

ip_forward kann man fest in einer datei unterhalb von /etc/sysconfig eintragen
die Option heißt
IP_FORWARD=YES

und die Output Chains?
« Letzte Änderung: 20.08.05, 20:15:43 von Kersten »

Hallo!

Dachte schon es kennt sich hier keiner mit iptables aus. :D
So zweiter Versuch.
1.Nein dussligerweise Uebernommen.
2.geaendert
3.Eingefuegt.
Hoffe soweit erstmal auf den richtigen Weg.

#!/bin/sh
#
#versuch eine eigene Firewall zu erstellen

case "$1" in
start)
echo "Starte iptables"

#
#Loeschen aller bisherigen Regeln

iptables -F
iptables -t nat -F

#
#Routing/Forwarding starten

echo 1 > /proc/sys/ipv4/ip_forward

#
#Ein Router sollte Pakete vom Typ Destination-unrechable bearbeiten

iptables -A INPUT -i dsl0 icmp-type destination-unrechable -j ACCEPT

#
#Ports fuer eMule oeffnen

iptables -A INPUT -i dsl0 -p tcp -dport 4661:4663 -j ACCEPT -d snake
iptables -A INPUT -i dsl0 -p udp -dport 4665 -j ACCEPT -d  snake
iptables -A INPUT -i dsl0 -p udp -dport 5662 -j ACCEPT -d  snake

#
#Ports fuer Bittorrent oeffnen

iptables -A INPUT -i dsl0 -p tcp -dport 6969 -j ACCEPT -d snake
iptables -A INPUT -i dsl0 -p tcp -dport 6881:6889 -j ACCEPT -d snake
iptables -A INPUT -i dsl0 -p tcp -dport 3881:3889 -j ACCEPT -d snake

#
#Ports fuer Applejuice oeffnen

iptbles -A INPUT -i dsl0 -p tcp -dport 7390 -j ACCEPT -d snake

#
#Ports fuer WinMX oeffnen

iptables -A INPUT -i dsl0 -p tcp -dport 6699 -j ACCEPT -d  snake
iptables -A INPUT -i dsl0 -p udp -dport 6257 -j ACCEPT -d snake

#
#Ports fuer IRC oeffnen

iptables -A INPUT -i dsl0 -p tcp -dport 3334:3335 -j ACCEPT -d  snake

#
#Ports fuer ICQ oeffnen

iptables -A INPUT -i dsl0 -p tcp -dport 24500:24505 -j ACCEPT -d snake

#
#Regeln erstellen fuer Established

iptables -N block
iptables -A block -m state -state ESTABLISHED,RELATED -j ACCEPT
iptables -A block -m state -state NEW -i eth0 -j ACCEPT
iptables -A block -j DROP

#
#Von Input und Forward Ketten zu dieser Kette springen

iptables -A INPUT -j block
iptables -A FORWARD -j block

#
#Alle ausgehenden Pakete maskieren

iptables -t -nat -A POSTROUTING -o dsl0 -j MASQUERADE

#
#Pakete aus dem internen Netz erlauben und routen
iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT

#
#Routing/Masquerading stoppen

echo 0 > /proc/sys/ipv4/ip_forward

stop)
echo "Stoppe iptables"

status)
echo "Tabelle filter"
    iptables -L -vn

*)
    echo "Fehlerhafter Aufruf"
    echo "Syntax: $0 {start|stop|status}"
    exit 1
    ;;

esac


#FERTIG

Gruss Burner

PS: Meine Frage bezueglich des Docs. Weiss keiner was? :D

Hallo,

Zitat
#
#Alle ausgehenden Pakete maskieren

iptables -t -nat -A POSTROUTING -o dsl0 -j MASQUERADE

#
#Pakete aus dem internen Netz erlauben und routen
iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT
Wenn der obere Eintrag ausgeführt wird/wurde ist der untere eigentlich nicht notwendig

Zitat
#
#Routing/Masquerading stoppen

echo 0 > /proc/sys/ipv4/ip_forward

Gibt es einen Grund das in diesen Script auszuführen?

Wie gesagt kann fest eingetragen werden
Gibt es einen Grund das in diesen Script auszuführen?
Wie gesagt kann fest eingetragen werden
Wollte ich nicht unbedingt. Wenn ich das naemlich richtig verstanden habe wird damit nur das routen ins Inet unterbunden aber nicht das lokale Netz ausgeschaltet.
Wenn dir erstmal nichts weiter auffaellt werde ich es mal testen. Mal sehen was passiert.

Gruss Burner

Hallo,


Zitat
echo 1 > /proc/sys/ipv4/ip_forward
echo 0 > /proc/sys/ipv4/ip_forward

Ich meinte eigentlich beide Einträge

diese kann man fest machen und zwar in der Datei sysctl

Diese Datei befindet sich unter
/etc/sysconfig/

und dort ist der Parameter
etwa in der 28 Zeile

IP_FORWARD="NO" zu ändern auf

IP_FORWARD="YES"


Ansonsten sollte es funktionieren

« grauer bildschirm bei linux startHandysoftware unter Linux »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!

Fremdwörter? Erklärungen im Lexikon!
Application Server
Ein Application Server, zu deutsch Anwedungsserver, ist ein Netzwerkrechner (Server) auf dem verschiedenste Anwendungsprogramme ausgeführt werden können. Der Be...

Printserver
Der Printserver ist ein Rechner im Netzwerk, der den Datenfluß zu einem oder mehreren Druckern steuert und eingehende Druckaufträge in einer Warteschlange verw...

Server
Der Begriff Server stammt aus dem englischen und bedeutet "Diener". In der EDV bezeichntet Server entweder eine Software- oder Hardwarekomponente.   Als Software, ...