eingaches Firewall script funzt nit
eingaches Firewall script funzt nit
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....
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....
Re: eingaches Firewall script funzt nit
das device eth+ soll sicher eth0 heissen, oder?
ratte
ratte
Re: eingaches Firewall script funzt nit
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
Ich will einfach erstmal alle Pakete verwerfen bis auf ssh. Sol will ich die Firewall dann schrittweise aufbauen. Nur bei mir klappt gar nix
Re: eingaches Firewall script funzt nit
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
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
Re: eingaches Firewall script funzt nit
Ja das sieht ganz so aus!
Tausch die beiden Befehlsböcke mal dann müßte das gehen!
MfG
D.C.
Tausch die beiden Befehlsböcke mal dann müßte das gehen!
MfG
D.C.
Re: eingaches Firewall script funzt nit
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
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
Re: eingaches Firewall script funzt nit
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
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
Re: eingaches Firewall script funzt nit
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.
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.
Re: eingaches Firewall script funzt nit
@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
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
Re: eingaches Firewall script funzt nit
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
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
Re: eingaches Firewall script funzt nit
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....
@ jj: ich glaub es ist egal, weil - TCP oder tcp - beides nicht funzt....
Re: eingaches Firewall script funzt nit
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
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
Re: eingaches Firewall script funzt nit
Nein, $UNPRIV hab ich schon geändert zu 1:65000.... hat trotzdem nicht geklappt.
Re: eingaches Firewall script funzt nit
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
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