eingaches Firewall script funzt nit

Post Reply
Message
Author
Mike

eingaches Firewall script funzt nit

#1 Post by Mike »

HI.

Ich wollte meine SuSEFirewall2 mal richtig konfigurieren. Ich habe eine SuSe7.3 router, auf den ich nur mittels ssh zugriff habe (weil kein Monitor dran).

in /etc/init.d/SuSEFirewall2_setup habe ich die Zeile /etc/Firewall/Firewall.fw eingetragen. Dieses Script wird auch ausgeführt.

### Firewall.fw :
#Interfaces
DSL=ppp0
LAN=eth+

# Ports
UNPRIV="1024:65535"

######### Default-Policy setzen und vorhandene Regeln löschen
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP

iptables -F
iptables -t nat -F
iptables -X


######### Lokale Prozesse
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT

######## http und https (von hier ins I-Net).
iptables -A OUTPUT -p TCP -o $DSL --sport $UNPRIV --dport 80 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p TCP -o $DSL --sport $UNPRIV --dport 443 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

########## SSH
# ausgehend von diesem Rechner
iptables -A OUTPUT -p TCP -o $LAN --sport $UNPRIV --dport 22 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

# zu diesem Rechner
iptables -A INPUT -p TCP -i $LAN --sport $UNPRIV --dport 22 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

######### Alles was bis hierher kam wird gelogged und dann verworfen bzw. nur zurückgewiesen.
#iptables -A INPUT -j DROP
#iptables -A FORWARD -j DROP
#iptables -A OUTPUT -j DROP


Mein Problem ist: WEnn ich die Firewall restarte, also mein Script ausgeführt wird, habe ich keinen ssh zugriff mehr. nix funktioniert, obwohl ich doch ssh erlaube. Das script hab ich teils aus dem netz und teils selbst umgeschrieben....

ratte

Re: eingaches Firewall script funzt nit

#2 Post by ratte »

das device eth+ soll sicher eth0 heissen, oder?

ratte

Mike

Re: eingaches Firewall script funzt nit

#3 Post by Mike »

Ja. eth0 für LAN...
Ich will einfach erstmal alle Pakete verwerfen bis auf ssh. Sol will ich die Firewall dann schrittweise aufbauen. Nur bei mir klappt gar nix

ratte

Re: eingaches Firewall script funzt nit

#4 Post by ratte »

im script steht dann auch eth0 und nicht eth+, oder?

vielleicht liegt's auch daran:

-F und -X flushen bzw. deleten alle ketten und da du diese nach der Vereinbarung der policies (-P) aufrufst, gehen die policies wieder verloren.

ratte

docsteel
Posts: 6
Joined: 11. Jun 2003 18:29
Location: Internet

Re: eingaches Firewall script funzt nit

#5 Post by docsteel »

Ja das sieht ganz so aus!
Tausch die beiden Befehlsböcke mal dann müßte das gehen!


MfG

D.C.

jj

Re: eingaches Firewall script funzt nit

#6 Post by jj »

Also, wenn das durch Tauschen der beiden Befehlsbloecke klappen sollte, brauche ich ne Erklaerung.

Denn wenn durch Tauschen am Ende alle durchgekommenen Pakete gedropt werden, ist Mike keinen Schritt weiter. Was bei ihm nicht klappt, ist doch das Rausfischen der ssh-Pakete, _bevor_ sie am Ende gedropt werden. Oder?

gruss
jj

ratte

Re: eingaches Firewall script funzt nit

#7 Post by ratte »

Das Setzen einer policy bedeutet das Standardverfahren bestimmen, wenn keine Sonderregelung passt.

Wenn also die policy auf drop steht, kann fuer einzelne Situationen ein allow definiert werden. Das ist die Strategie "alles verbieten und nur das erlauben, was erwuenscht ist".

Man kann auch die policy auf allow stellen, und Situationen auf drop setzen. Das ist die Strategie "alles erlauben, und verbieten, was unerwuenscht ist".

ratte

Mike

Re: eingaches Firewall script funzt nit

#8 Post by Mike »

Danke für die Antworten.
Aber es geht immer noch nicht.

So siehts jetzt aus, wie gesagt: ich will ertsmal nur ssh erlauben. Momentan muss ich beim restart der FW immer ins andere Zimmer laufen und den Rechner manuell neu starten, weil nix mehr geht,

echo "Loading my Config...."
#Interfaces
DSL=ppp0
LAN=eth0

# Ports
UNPRIV="1:65535"
TRACEROUTE="33434:33999"

######### Default-Policy setzen und vorhandene Regeln löschen
iptables -F
#iptables -t nat -F
iptables -X

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP

######### Lokale Prozesse
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT

########## SSH
# ausgehend von diesem Rechner
iptables -A OUTPUT -p TCP -o $LAN --sport $UNPRIV --dport 22 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

# zu diesem Rechner
iptables -A INPUT -p TCP -i $LAN --sport $UNPRIV --dport 22 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

######### Alles was bis hierher kam wird gelogged und dann verworfen bzw. nur zurückgewiesen.
#iptables -A INPUT -j DROP
#iptables -A FORWARD -j DROP
#iptables -A OUTPUT -j DROP

Folgende Meldung bekomme ich beim restart der FW:

Starting Firewall Initialization: (phase 2 of 3) done
Loading my Config.... -> dann kommt nix mehr

Starting Firewall
Vielleicht liegt der Fehler auch ganz woanders. Wo bindet ihr das Script denn ein? Bei mir ist es in /etc/init.d/SuSEFirewall2_setup.

jj

Re: eingaches Firewall script funzt nit

#9 Post by jj »

@ratte
Das mein ich ja. Wenn die ssh-Pakete durch die rule durchrutschen, nuetzt eine drop-policy am Ende natuerlich auch nichts mehr.

@Mike
Ist es egal, ob es tcp oder TCP heisst?

gruss
jj

Marc

Re: eingaches Firewall script funzt nit

#10 Post by Marc »

Hi

Kleines Beispielskript
------------------------
$IPTABLES -P FORWARD DROP
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT DROP

$IPTABLES -N ssh-in
$IPTABLES -F ssh-in

$IPTABLES -A ssh-in -p tcp --dport ssh -j ACCEPT #Die --dport Angaben habe ich mit Absicht weggelassen

$IPTABLES -N ssh-out
$IPTABLES -F ssh-out
$IPTABLES -A ssh-out -p tcp --dport ssh -j ACCEPT

$IPTABLES -A INPUT -j ssh-in

}

stop() {
$IPTABLES -F
$IPTABLES -t nat -F
$IPTABLES -X
$IPTABLES -P FORWARD ACCEPT
$IPTABLES -P INPUT ACCEPT
$IPTABLES -P OUTPUT ACCEPT
eend $?
}
-------------------------------------

Ist nur ein Auszug für ssh, muß halt an DEINE Gegebeneheiten angepasst werden.

Syntax von iptables

Regel iptables

Anhängen -A
Löschen -D
Ersetzen -R
Einfügen -I

Regelliste

Anzeigen -L
Leeren -F
Neu -N
Löschen -X
Umbenennen -E

Filtertabellen

Input INPUT
Output OUTPUT
Forwarding FORWARD
Accounting n.a.
Prerouting PREROUTING
Postrouting POSTROUTING

Aktionen (targets)

Erlauben -j ACCEPT
Ablehnen -reject-with (mit Rückmeldung)
Ablehnen -j DROP (ohne " )
Tabelle verlassen -j RETURN
Sprung zur ben. def. Tabelle -j <userdef. chain>
Paket in den Userspace leiten -j QUEUE
Masquerading --to-ports
SNAT --to-source
DNAT --to-destination
LOG --log-level
--log-prefix
--log-tcp-sequence
--log-tcp-options
--log-ip-options
MARK --set-mark
TOS --set-tos
MIRROR -j MIRROR (exp.)
Umleiten --to-ports

Parameter

Absender(source) -s
Empfänger(destin) -d
Protokoll -p

Interface

Input Iface -i
Output Iface -o

Wie ratte schon sagte, alles verbieten dann das erlauben was erlaubt sein soll.
Neue Regelkette erstellen
$IPTABLES -N ssh-in
Flushen
$IPTABLES -F ssh-in
Regel erstellen
$IPTABLES -A ssh-in -p tcp --dport ssh -j ACCEPT

Vielleicht hilft es ja
PS:Pro-Linux hat da einen wunderbaren Bericht dazu geschrieben, ruhig mal durchlesen.

Gruss
Marc

Mike

Re: eingaches Firewall script funzt nit

#11 Post by Mike »

Thx. Ich habe die nächsten Tage sehr wenig Zeit, und da ich gemerkt habe das man sich fürs "Firewalling" lernen etwas Zeit nehmen sollte werde ich das demnächst nochmal in Angriff nehmen. Ich werd mich bestimmt nochmal melden :(

@ jj: ich glaub es ist egal, weil - TCP oder tcp - beides nicht funzt....

Hosi

Re: eingaches Firewall script funzt nit

#12 Post by Hosi »

Hi,

dass die Standard-Policies vor dem flushen kommen ist egal. Aber der Fehler liegt in der Zeile
iptables -A OUTPUT -p TCP -o $LAN --sport $UNPRIV --dport 22 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

du erlaubst hier nur ausgehende Verbindungen von einem Port >1024. SSH läuft aber auf 22, so dass die Antworten von Port 22 gedroppt werden (DROP-Policy).

Mit iptables -A OUTPUT -p TCP -o $LAN --sport 22 -j ACCEPT

sollte es klappen.

Grüße,
Hosi

Mike

Re: eingaches Firewall script funzt nit

#13 Post by Mike »

Nein, $UNPRIV hab ich schon geändert zu 1:65000.... hat trotzdem nicht geklappt.

matze

Re: eingaches Firewall script funzt nit

#14 Post by matze »

ich möchte lösen *fg*

beispiel-regel für eine ausgehende ssh-verbindung:

$ipt -A OUTPUT -o EXTDEV -p tcp --sport 1000:65535 --dport 22 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

$ipt -A INPUT -i EXTDEV -p tcp --sport 22 --dport 1000:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT

beispiel-regel für eine eingehende ssh-verbindung:

$ipt -A INPUT -i EXTDEV -p tcp --sport 1000:65535 --dport 22 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

$ipt -A OUTPUT -o EXTDEV -p tcp --sport 22 --dport 1000:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT


an den thread-eröffner - bitte mal genau vergleichen und überlegen ;)

gruß,
matze

Post Reply