• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

iptables für ssh hinter router

Mein Server steht hinter einem Router. ssh soll für einige ausgewählte Netze über das Internet erlaubt sein. Dazu habe ich mir folgendes Script ausgedacht.
Code:
# Generated by iptables-save v1.3.3 on Tue Jun  6 11:07:07 2006
*filter
:INPUT ACCEPT [39:4090]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [1203:146100]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -s 10.0.0.0/255.255.255.0 -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -s a.b.c.d/255.255.254.0 -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -s 10.0.0.0/255.255.255.0 -i eth0 -p tcp -m tcp --dport 6222 -j ACCEPT
-A INPUT -s a.b.c.d/255.255.254.0 -i eth0 -p tcp -m tcp --dport 6222 -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m limit --limit 3/min -m state --state NEW -m tcp --dport 6222 -j LOG --log-prefix "iptables ssh-6222 denied: " --log-level 7
-A INPUT -p tcp -m limit --limit 3/min -m state --state NEW -m tcp --dport 22 -j LOG --log-prefix "iptables ssh-22 denied: " --log-level 7
-A INPUT -i eth0 -p tcp -m tcp --dport 22 -j DROP
-A INPUT -i eth0 -p tcp -m tcp --dport 6222 -j DROP
COMMIT
# Completed on Tue Jun  6 11:07:07 2006

Ist das so in Ordnung, oder ist da etwas fundamental falsch. Ich möchte die SUSE-Firewall für diesen Zweck nicht benutzen, weil die internen Dienste wie nfs, nis, samba, ipp, ..., durch den Router ohnehin geschützt sind. Es geht nur um die durch den Router geleiteten Ports 22 und 6222.
 

framp

Moderator
Teammitglied
Fuer mich sieht das OK aus.

-A INPUT -i lo -j ACCEPT

verstehe ich nicht warum die da ist.

Ich wuerde allerdings alle Rules an einer Stelle (bei Dir im Router) konzentrieren. So hat man einen besseren Ueberblick ueber die Gesamtheit der Rules.

Ich habe auch zwei sshs: Einen intern auf dem Standardport 22 und einen von extern erreichbar auf einem andern Port. Bei Dir sind beide Ports von intern und extern erreichbar. D.h. Du wirst externe ssh scans auf Port 22 erhalten. Willst Du nicht den Port 22 nur intern benutzen?

Last but not least wuerde ich immer final noch mal von extern mit nmap testen welche Ports erreichbar sind.
 
ich danke Dir für Deine Antwort.
Code:
-A INPUT -i lo -j ACCEPT
ist tatsächlich überflüssig.

Zwei ssh-Server sind sehr praktisch. Wenn alle Nutzer gemerkt haben, daß der externe ssh-Server nun nicht mehr auf Port 22 wohnt, wird dieser Port extern deaktiviert.

Der Router enthält leider keine Möglichkeit nach der Source-IP zu filtern; deshalb muß die Filterung auf dem lokalen Rechner erfolgen.
 

framp

Moderator
Teammitglied
Gamic schrieb:
Der Router enthält leider keine Möglichkeit nach der Source-IP zu filtern; deshalb muß die Filterung auf dem lokalen Rechner erfolgen.
... oder man laesst alles FW Geraffel und Routing von einer Linux Box machen. Die ist da sehr flexibel. :wink: => http://www.framp.de/linux/
 
Oben