Hilfe ssh zugriff nur über lan per iptables filtern

Post Reply
Message
Author
Megawatt
Posts: 3
Joined: 19. Nov 2009 6:50

Hilfe ssh zugriff nur über lan per iptables filtern

#1 Post by Megawatt »

Hallo versuche mich gerade ein eigenes Netzwerk ein zurichten. Da ich noch eine Linux Neuling bin, hoffe ich hier im Forum etwas Unterstützung zu finden. Also wie gesagt habe mehrere Linux Rechner mit Ubuntu (Kernel 2.4), der Gateway-Rechner (192.168.xxx.0) ist mit dem lokalen Netz über die 192.168.xxx.1 verbunden. jetzt möchte ich gern den Gateway-rechner in die Ecke stellen und eventuell per ssh Änderungen bzw. administrative Aufgaben per ssh erledigen. Dies soll aber nur von "intern" möglich sein, d.h ich muß den port ausschliesslich nur für rechner innerhalb des Lanś frei geben. Um das ganze noch etwas zu verfeinern, wollte ich dies per iptables tun.

Ich habe folgendes vor

alle Regel der chain filter löschen
iptables -F

Policy (Standartregelverhalten am Ende)
iptables -p INPUT DROP

#TCP-Pakete aus dem internen Netz durchlassen
iptables -A INPUT -p tcp -s 192.168.xxx.0/24 -j ACCEPT

doch jetzt stehe schon auf dem schlauch, wie könnte ich den port 22 für ssh nur für intere Benutzung frei geben?????


Danke im voraus für euere Unterstützung. Vielleicht kennt ihr einen Link für mein Problem, bzw. gibt es ein Seitte auf der diese IPtables konfig auch für linux greenhörner verständlich beschrieben ist. :(

Tronar
Posts: 11
Joined: 20. Jul 2009 9:00

#2 Post by Tronar »

Hallo,

den Port 22 hast Du doch gerade freigegeben. Wenn Du sagst

iptables -A INPUT -p tcp -s 192.168.xxx.0/24 -j ACCEPT

dann ist das nicht Port-spezifisch, also werden alle Ports akzeptiert.
Willst Du dagegen nur auf einem Port hereinlassen, dann genügt eine weitere Option in derselben Zeile:

iptables -A INPUT -p tcp -s 192.168.xxx.0/24 -j ACCEPT --dport 22

MfG
Tronar
Jabber-ID (remove "nix"): "W.Schenixinast@web.de"

Megawatt
Posts: 3
Joined: 19. Nov 2009 6:50

Rückfrage

#3 Post by Megawatt »

Erst mal Danke für die schnelle Antwort. Sowas habe ich mir schon fast gedacht, aber müsste ich nicht noch die Anwendung mit angeben "ssh" oder so. Wenn ich die Filterregeln richtig verstanden habe, lasse ich doch ausschliesslich Rechner aus dem Adressbereich 192.168.xxx.0 bis 192.168.xxx.254 und diese nur auf Port 22 zugreifen, oder??? Das heisst du auch für alle anderen Zugriffe und Ports muss ich neue regeln definieren. Wäre es nicht einfacher eine regel zu kreieren, die angibt was nicht sein soll.

Vielleicht nochmal um Verständnis. Ich möchte, dass nur die Rechner aus dem Adressbereich 192.168.xxx.0 bis 192.168.xxx.254 einen Zugriff per ssh über Port 22 haben, alle anderen Rechner ( Internet )sollen ausgesperrt bleiben.

Entschuldigung wenn ich so laienhaft nachfrage, aber ich bin noch Laie.

Tronar
Posts: 11
Joined: 20. Jul 2009 9:00

#4 Post by Tronar »

Zunächst mal: Eine Anwendung muß nirgendwo angegeben werden. Dem Kernel ist es schlicht egal, ob und welches Programm auf dem einen oder anderen Port horcht. Im Gegenteil, es ist sogar mit Aufwand verbunden, programmspezifische Filterung einzurichten, so nach Art von Windows ZoneAlarm: "Darf das Programm acroread.exe auf das Internet zugreifen? Ja/nein."

Und zu den Filterregeln:
Wie Du es bisher gesehen hast, kann man einzelnen Ports den Zugriff erlauben, während er allen anderen verwehrt bleibt. Du fragst nun, ob das auch umgekehrt gehe. Klar! Zuerst blockierst Du z. B. einen Portbereich:

iptables -A INPUT -p tcp --dport ! 22:80 -j DROP

(ohne IP-Angabe, d. h. von beliebiger Quelle; alles, was nicht (!) in 22-80 liegt)
... dann gibst Du alles andere (übrig sind nur noch Ports 22-80) frei, aber nur aus dem LAN:

iptables -A INPUT -p tcp -s 192.168.xxx.0/24 -j ACCEPT

Sinnvoller wäre es hier aber, explizit 22-80 freizugeben und alles andere der Default-Policy zu überlassen. Ich wollte nur die Bereichsangabe mit : und die Negation mit ! zeigen.
Stell Dir vor, daß die Option -j einem "Goto" entspricht, also dem Verlassen dieses Skripts. Deshalb müssen die Spezialfälle immer vor den allgemeineren Regeln stehen.

Hgzh
Werner (selber keine Koryphäe :-])
Jabber-ID (remove "nix"): "W.Schenixinast@web.de"

Post Reply