iptables - keine Kommunikation zum SSHd mehr

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
burnersk
Beiträge: 125
Registriert: 22.10.2008 21:32:16
Lizenz eigener Beiträge: MIT Lizenz

iptables - keine Kommunikation zum SSHd mehr

Beitrag von burnersk » 11.01.2009 19:05:34

Hallo,

ich habe gerade ein Problem mit meiner iptables Konfiguration. Ich bekomme keine Verbindung mit meinem SSH Daemon und sehe so langsam den Wald vor lauter Bäumen nicht mehr.

Code: Alles auswählen

#!/bin/sh
echo "Initialisiere Firewall..."
# Module laden
modprobe ip_conntrack_ftp
# Firewallregeln l▒schen
iptables -F
iptables -X
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
# eigene Chains erstellen
iptables -N MYDROP
iptables -N MYACCEPT
l Loopback-Kommunikation
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
# Stateful Inspection
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state INVALID -j MYDROP
iptables -A OUPTUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# eigene Chains MYDROP und MYACCEPT konfigurieren
iptables -A MYDROP -j LOG --log-prefix "FW-DROP: "
iptables -A MYDROP -j DROP
iptables -A MYACCEPT -j LOG --log-prefix "FW-ACCEPT: "
iptables -A MYACCEPT -j ACCEPT
# SSH
iptables -A INPUT -p tcp --dport 22 -j MYACCEPT # SSH
# ICMP
iptables -A INPUT -p icmp -j MYACCEPT # ICMP
iptables -A OUTPUT -p icmp -j MYACCEPT # ICMP
# DNS
iptables -A INPUT -p udp --dport 53 MYACCEPT # DNS
iptables -A INPUT -p tcp --dport 53 MYACCEPT # DNS
iptables -A OUTPUT -p udp --dport 53 MYACCEPT # DNS
iptables -A OUTPUT -p tcp --dport 53 MYACCEPT # DNS
# WWW
iptables -A INPUT -p tcp --dport 80 -j MYACCEPT # HTTP
iptables -A OUTPUT -p tcp --dport 80 -j MYACCEPT # HTTP
iptables -A INPUT -p tcp --dport 443 -j MYACCEPT # HTTPS
#iptables -A OUTPUT -p tcp --dport 443 -j MYACCEPT # HTTPS
# Mail
iptables -A INPUT -p tcp --dport 25 -j MYACCEPT # SMTP
iptables -A OUTPUT -p tcp --dport 25 -j MYACCEPT # SMTP
iptables -A INPUT -p tcp --dport 110 -j MYACCEPT # POP3
#iptables -A OUTPUT -p tcp --dport 110 -j MYACCEPT # POP3
iptables -A INPUT -p tcp --dport 143 -j MYACCEPT # IMAP
#iptables -A OUTPUT -p tcp --dport 143 -j MYACCEPT # IMAP
# FTP
iptables -A INPUT -p tcp --dport 21 -j MYACCEPT # FTP
iptables -A OUTPUT -p tcp --dport 21 -j MYACCEPT # FTP
echo "Firewall ist konfiguriert und aktiv"

System: Debian Etch 4.0
Kernel: 2.6.18-028stab059.9
iptables: v1.3.6
Zuletzt geändert von burnersk am 11.01.2009 19:51:03, insgesamt 1-mal geändert.

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Re: iptables - keine Kommunikation zum SSHd mehr

Beitrag von Duff » 11.01.2009 19:28:24

Kann ehrlich gesagt erstmal keinen Fehler sehen.

Du könntest aber noch eine OUTPUT-Regel für ssh anlegen.
Ich würde mal das Logging von iptables aktivieren und dann bei einem ssh-Zugriffversuch mal ins Logfile schauen.
Oh, yeah!

burnersk
Beiträge: 125
Registriert: 22.10.2008 21:32:16
Lizenz eigener Beiträge: MIT Lizenz

Re: iptables - keine Kommunikation zum SSHd mehr

Beitrag von burnersk » 11.01.2009 19:34:43

Hi,

ich habe nun

Code: Alles auswählen

iptables -A OUTPUT -p tcp --dport 22 -j MYACCEPT # SSH
zur SSH Sektion hinzugefügt. Server neugestartet und auch das "ö" da ganz oben zu "oe" umgewandelt.
Ich komme aber immer noch nicht drauf :(

Wo sind die FW-Logs? Nix von der fw in /var/log/syslog und /var/log/messages...

Danielx
Beiträge: 6419
Registriert: 14.08.2003 17:52:23

Re: iptables - keine Kommunikation zum SSHd mehr

Beitrag von Danielx » 12.01.2009 01:43:01

Füge mal am Ende deines Skripts folgende Regeln ein, damit du siehst, welche Pakete verworfen werden:

Code: Alles auswählen

iptables -A INPUT -j MYDROP
iptables -A OUTPUT -j MYDROP
Geloggt wird in /var/log/syslog

Dann kannst du z.B. während deinen Versuchen "tail -f /var/log/syslog | grep FW-DROP" mitlaufen lassen, dann siehst du "live" welche Pakete gerade eben verworfen wurden.

Gruß,
Daniel

burnersk
Beiträge: 125
Registriert: 22.10.2008 21:32:16
Lizenz eigener Beiträge: MIT Lizenz

Re: iptables - keine Kommunikation zum SSHd mehr

Beitrag von burnersk » 12.01.2009 07:32:13

Danielx hat geschrieben:Füge mal am Ende deines Skripts folgende Regeln ein, damit du siehst, welche Pakete verworfen werden:

Code: Alles auswählen

iptables -A INPUT -j MYDROP
iptables -A OUTPUT -j MYDROP
Würde er dann nicht alles droppen, weil die (int, ip, port) ungebundene IN/OUT Regel die oberen überschreiben wird?

Ist die DNS Sektion nicht auch falsch, weil kein "-j" vor dem MYACCEPT steht?

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Re: iptables - keine Kommunikation zum SSHd mehr

Beitrag von Duff » 12.01.2009 08:23:20

Hast du das Skript denn mal manuell aufgerufen?
Wenn dort syntaxtische Fehler sind, wird iptables diese anmeckern.

Außerdem brauchst du nicht den Rechner für die Regeln zu rebooten. Es sollte reichen, einfach nur das Skript auszuführen.
Oh, yeah!

burnersk
Beiträge: 125
Registriert: 22.10.2008 21:32:16
Lizenz eigener Beiträge: MIT Lizenz

Re: iptables - keine Kommunikation zum SSHd mehr

Beitrag von burnersk » 12.01.2009 08:26:24

Duff hat geschrieben:Hast du das Skript denn mal manuell aufgerufen?
Nein.

Fehler:
modprobe: Can't open dependencies file /lib/modules/2.6.18-028stab059.9/modules.dep (No such file or directory)

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Re: iptables - keine Kommunikation zum SSHd mehr

Beitrag von Duff » 12.01.2009 08:33:49

burnersk hat geschrieben:
Duff hat geschrieben:Hast du das Skript denn mal manuell aufgerufen?
Nein.

Fehler:
modprobe: Can't open dependencies file /lib/modules/2.6.18-028stab059.9/modules.dep (No such file or directory)
Sollte auch schneller gehen ;-)

Hast du denn mal eine ssh-Verbindung ohne iptables-Regeln herstellen können?
Eventuell musst du noch was an der sshd-Konfig ändern.
Oh, yeah!

burnersk
Beiträge: 125
Registriert: 22.10.2008 21:32:16
Lizenz eigener Beiträge: MIT Lizenz

Re: iptables - keine Kommunikation zum SSHd mehr

Beitrag von burnersk » 12.01.2009 08:44:40

Duff hat geschrieben:Hast du denn mal eine ssh-Verbindung ohne iptables-Regeln herstellen können?
Habe zwar KVM aber nur 14.4Kb Modem. Also arbeite ich nur remote über SSH.
Duff hat geschrieben:Eventuell musst du noch was an der sshd-Konfig ändern.
Ich wüsste nicht wass ich da einstellen sollte? Der Port ist ja 22. Welche Einstellung sollte dafür noch relevant sein?

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Re: iptables - keine Kommunikation zum SSHd mehr

Beitrag von Duff » 12.01.2009 09:09:58

burnersk hat geschrieben:
Duff hat geschrieben:Eventuell musst du noch was an der sshd-Konfig ändern.
Ich wüsste nicht wass ich da einstellen sollte? Der Port ist ja 22. Welche Einstellung sollte dafür noch relevant sein?
Wenn der SSH-Zugriff ohne iptables funktioniert, dann nicht.
Oh, yeah!

Danielx
Beiträge: 6419
Registriert: 14.08.2003 17:52:23

Re: iptables - keine Kommunikation zum SSHd mehr

Beitrag von Danielx » 12.01.2009 13:41:18

burnersk hat geschrieben:Würde er dann nicht alles droppen, weil die (int, ip, port) ungebundene IN/OUT Regel die oberen überschreiben wird?
Nein, warum?
Die beiden Regeln werden doch nur angewendet, wenn am Ende der Tabelle keine der vorherigen Regeln zutrifft.
Und wenn keine der vorherigen Regeln zutrifft, dann wird die Policy genommen, welche du auf DROP (also verwerfen) gesetzt hast:
burnersk hat geschrieben:

Code: Alles auswählen

iptables -P INPUT DROP
iptables -P OUTPUT DROP
D.h. wenn du jetzt an die Tabelle meine beiden Regeln anhängst, dann wird am Ende der Tabelle, falls keine der vorherigen Regeln auf das Paket zutraf, anstatt der Policy eben die jeweilige Regel ausgeführt, welche dann das Paket verwirft, so wie es die Policy sowieso machen würde, nur dass eben noch zusätzlich geloggt wird, welche Pakete denn verworfen wurden!

Aber ich habe mir dein Skript mal genau angesehen, hier die Fehler:

1.)
burnersk hat geschrieben:Ist die DNS Sektion nicht auch falsch, weil kein "-j" vor dem MYACCEPT steht?
Ja, da fehlten die "-j".

2.) Zeile 14 ist falsch, das l muss ein # sein:
burnersk hat geschrieben:

Code: Alles auswählen

l Loopback-Kommunikation
3.) Der entscheidende Fehler findet sich dann allerdings in Zeile 20, OUPTUT muss OUTPUT heißen:
burnersk hat geschrieben:

Code: Alles auswählen

iptables -A OUPTUT -m state --state ESTABLISHED,RELATED -j ACCEPT
burnersk hat geschrieben:Fehler:
modprobe: Can't open dependencies file /lib/modules/2.6.18-028stab059.9/modules.dep (No such file or directory)
Das kommt von der Zeile "modprobe ip_conntrack_ftp"

Gruß,
Daniel

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Re: iptables - keine Kommunikation zum SSHd mehr

Beitrag von Duff » 12.01.2009 15:03:39

Und genau die Fehler wird man sehen, wenn man das IPTABLES-Skript mal ausführt!

Code: Alles auswählen

./firewall.sh
Oh, yeah!

burnersk
Beiträge: 125
Registriert: 22.10.2008 21:32:16
Lizenz eigener Beiträge: MIT Lizenz

Re: iptables - keine Kommunikation zum SSHd mehr

Beitrag von burnersk » 12.01.2009 19:23:56

Hi,

vielen Dank euch allen. Es sind immer die kleinen Dinge die man nicht sieht, weil "kann nicht falsch sein", welche ein dann selber nie auffallen.
So etwas wie eben OUPTUT stat OUTPUT^^ Nun funktioniert alles perfekt, nochmals danke!

Zum manuellen Ausführen, wenn man per SSH arbeitet, das Script statet und gleich bei den ersten Anweisungen gekickt wird kann man den Fehler, falls eine Meldung dann auch kommt, nicht lesen weil gekickt^^

:hail:

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Re: iptables - keine Kommunikation zum SSHd mehr

Beitrag von Duff » 12.01.2009 19:26:05

Da hast du natürlich recht.

Am besten dann vorher lokal auf einem anderen System testen oder aber sich lokal am entfernten Rechner anmelden ;-)
Oh, yeah!

Antworten