PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ssh übers Internet



Seiten : [1] 2

Takeshi
25.06.04, 22:04
Folgendes Problem: komme in meinem Netzwerk ohne Probleme per ssh auf meinen linux-Rechner.
Ein nmap -p 22 192.168.2.2 ergibt:
22/tcp open ssh
Wenn ich aber per Internet drauf zugreifen möchte, dann entsteht folgendes Problem:
22/tcp filtered ssh
Hab
1. bei der Firewall ssh ausdrücklich zugelassen
2. eingestellt, dass alle TCP-UDP-Anfragen auf Port 22 aus dem Internet von meinem Router an den Rechner weitergeleitet werden sollen.
Meine host.allow-Datei sieht folgendermaßen aus:
ALL : LOCAL @mydomain
ALL : Uni-Adresse
ALL : 217.88.228.125 # die mir momentan zugewiesene IP


Wo kann das Problem liegen?

stefaan
25.06.04, 22:17
Servus!

<Vermutung>
Hab auch einen Server mit dieser Eigenschaft. Ein Portscan ergibt folgendes Ergebnis:
Port 22 TCP open
Port 25 TCP filtered
Die Firewall lässt aber nur Port 22 nach außen offen, woher kommt dann 25? :confused:
Soweit ich weiß, blockt AOn Port 25 in Dialup-Bereiche, daher nehme ich an, kommt dieses Ergebnis.
</Vermutung>

Grüße, Stefan

canis_lupus
25.06.04, 23:41
Nmap hat ein Problem, wenn man z.B. nur einen Port scannt. Normalerweise sollte ein offener TCP-Port mit SYN+ACK und ein geschlossener mit RST+ACK antworten. Die meisten Firewalls droppen Pakete. Also hat nmap keine Chance festzustellen, ob der Host nicht existiert, oder gedropped wird. nmap vermutet eine Firewall.

Einfacher Test nmap -P0 -p <port> <ip_die_nicht_existiert>
Es kommt ein "filtered" obwohl der Rechner nicht existiert!!!! -P0 sorgt dafür, das die Existenz des Hostes nicht mit einem Ping überprüft wird (Standardmässig testet Nmap die Hosterreichbarkeit vor dem Scan mit einem Ping).

nmap bekommt keine Antwort, auf die SYN-Anfrage und vermutet eine Firewall die den Port schützt. Daher erscheint der Port als filtered, was soweit korrekt ist. Ob er eigentlich offen oder geschlossen ist, kann nmap nicht festellen.

Übrigends UDP ist für SSH unnötig.

Takeshi
26.06.04, 11:53
Bei mir existiert der Rechenr ja. Das Problem ist, dass ich trotzdem nicht drauf zugreifen kann. Wenn ich aber im Internet z.B. ein CD-Spiel anlege und den Router die Anfragen auf den Public Port auf meinen Win-Rechner weiterleiten lasse, dann läuft alles. Warum gibt es da bei ssh Probleme???

canis_lupus
26.06.04, 17:00
Der Kommentar sollte erst einmal nur das "komische" Verhalten von nmap erklären.

Irgendwo zwischen Dir (dem Rechner von dem Du aus dem Internet auf deinen SSH-Server zugreifen willst) und deinem Router blockt eine Firewall oder der Router ist falsch konfiguriert.

Sollte es tatsächlich der Provider sein, der Ports blockt würde ich schnellstens wechseln!

Windoofsklicker
26.06.04, 17:12
Log dich doch mal auf deinem Router ein.
Was ergibt dann ein nmap auf dein Internet-Interface?

Lauscht der sshd überhaupt auf allen Interfaces oder nur auf bestimmten?
Wie sieht dein Firewall-Script aus?

Takeshi
26.06.04, 22:13
Hab jetzt mal ein nmap auf den Router losgeschickt. Port 22 ist geschlossen. Leider kann ich in den Einstellungen nur auswählen, ob ich die Firewall des Routers aktivieren möchte, oder nicht. Kennt jemand ne Möglichkeit, dass der trotzdem alles auf dem Port weiterleitet??

Windoofsklicker
27.06.04, 13:14
Moment mal... Hat der Rechner auf den du dich einloggen willst direkt ein Interface im Internet? Weil du mal von einem Rechner und mal von einem Router sprichst.

Takeshi
27.06.04, 15:13
Nee.
Vielleicht sollte ich nochmal genau erklären, wie mein Netzwerk aufgebaut ist.
Router 192.168.2.1 -> mit dem Internet verbunden
2x Linux-Rechner 192.168.2.2, 192.168.2.3 -> mit dem Router ins Internet
1x Win-Rechner 192.168.2.4 -> ebenfalls mit dem Router ins Internet.

Im Netzwerk sind für mich alle Rechner per ssh zu erreichen - und ein nmap ergibt, dass die entsprechenden Ports offen sind.
Habe aber auch die FIREWALL DER LINUX-RECHNER deaktiviert.
Ich kann aber auch bei dem ROUTER eine Firewall aktivieren - und die möchte ich eben wirklich immer laufen lassen. Dummerweise scheint die den Port 22 zu schliessen, obwohl ich alle Anfragen aus dem Internet auf Port 22 an meinen 1. Linux-Rechner weiterleiten lassen will (ein nmap auf den Port 22 des Routers ergibt "closed"). Scheinbar ist das aber nicht von Erfolg gekrönt... Zudem kann ich auch nur auswählen, ob ich die Firewall aktivieren, oder deaktivieren möchte.
Komischerweise kann ich aber auf meinem Win-Rechner z.B. ein CS-Spiel anlegen (und für den entsprechenden Port eine Weiterleitung aktivieren). Da scheint es keine Probleme zu geben, da sich eben Leute aus dem Internet einloggen können.

Windoofsklicker
27.06.04, 20:56
was steht denn so in deiner sshd_conf?

Takeshi
27.06.04, 21:14
Habe die Standardkonfiguration stehen lassen. Wollte nicht durch irgendwelche Experimente meine Konfiguration zerschiessen.
Die einzigen Parameter, die nicht auskomentiert sind.

PasswordAuthentication no (ich weiss, aber das will ich erst ändern, wenn ich es schaffe, mich auf meinem Rechner einzuloggen...)
UsePAM yes
Subsystem sftp /usr/lib64/ssh/sftp-server

canis_lupus
28.06.04, 08:49
Was ist das für ein Routermodell? Sieht danach aus, als ob da der Wurm drin ist.
Wird bei CS die Weiterleitung automatisch aktiviert (sprich UniversalPnP) oder musst Du die Geschichte von Hand konfigurieren?

Die conf hat erstmal keine Auswirkungen. der TCP-Port ist ja geschlossen, also kommt sie gar nicht zum Einsatz. Da Du innerhalb des Netzwerkes keine Probleme hast, bindet sich der sshd offensichtlich an die interne IP (und hoffentlich auch den richtigen Port ;) ). Das Forwarding auf die IP/Port sollte also prinzipiell möglich sein.

Takeshi
28.06.04, 11:59
Ist ein Acer-Router. Die stellen aber keine Router mehr her. Zumindest finde ich auf deren Homepage keinerlei Hilfen. Habe bei CS auch nichts anderes eingestellt, als beim ssh-Port.
Es gibt dort die Möglichkeit unter "Virtual Server" einen Public Port anzugeben (hier eben Port 22 und diesen auf einen Rechner (192.168.2.2) an den entsprechenden Port (22) weiterzuleiten. Gibt es vielleicht ne Möglichkeit, dass ich beim Port des Routers z.B. 80 angebe. Der scheint nämlich offen zu sein - sagt mir zumindest nmap. Dann kann ich ja immer noch auf den Port 22 des Computers weiterleiten.

canis_lupus
28.06.04, 12:36
Das wäre die Notlösung. ;)

Wenn Port 80 offen ist, heisst das aber das dort was läuft! Ich schätze mal die Routeradministration (die sollte eigentlich besser sowieso nicht von draussen erreichbar sein).

Ich kann mir nur vorstellen, das die eingebaute Firewall den Port sperrt, obwohl er geforwardet werden soll. Warum dann aber CS-Ports nicht geschützt werden????

Ich glaube es ist an der Zeit noch einen Linuxrechner aufzustellen - als Router ;) :p

Takeshi
28.06.04, 16:07
Eigentlich ist Linux ja immer ne gute Idee, aber da wo der Router steht, passt kein zweiter Rechner mehr hin. Zudem ist das ein Wireless-LAN-Router.
Scheint wohl so, als ob ich auf ssh ausserhalb meines Netzwerks verzichten muss :-(
Aber das Leben geht weiter :-)

Windoofsklicker
28.06.04, 19:41
mach doch mal ein tcpdump auf dem rechner, den du von aussen erreichen willst und schau doch mal ob am rechner etwas ankommt. wenn ja, dann ist wohl dein sshd nicht richtig konfiguriert.

das muss gehen! :ugly:

Takeshi
28.06.04, 22:43
Hier das Ergebnis, nachdem ich versucht habe, mich mit Putty einzuloggen:

tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
22:43:15.317706 IP (tos 0x0, ttl 128, id 62108, offset 0, flags [DF], length: 48) dagobah.takeshis-castle.netware-csp > pD958E47D.dip.t-dialin.net.ssh: S [tcp sum ok] 1038085319:1038085319(0) win 16384 <mss 1460,nop,nop,sackOK>

Heißt also, dass die Pakete auf dem Rechner ankommen, dort aber nix von ausserhalb des Netzwerks akzeptiert wird. Welchen Eintrag muss ich also in der Config-Datei vornehmen??

canis_lupus
29.06.04, 09:19
22:43:15.317706 IP (tos 0x0, ttl 128, id 62108, offset 0, flags [DF], length: 48) dagobah.takeshis-castle.netware-csp > pD958E47D.dip.t-dialin.net.ssh: S [tcp sum ok] 1038085319:1038085319(0) win 16384 <mss 1460,nop,nop,sackOK>


Wieso steht hier eigentlich die öffentliche IP-Adresse (bzw. der aufglöste Name)? Nach dem DNAT des Routers müsste doch eigentlich die interne IP des Rechners zu sehen sein.

War das das einzige Paket? Keine Antwort (SYN-ACK oderr RST)?

Windoofsklicker
29.06.04, 09:23
mach deine hosts.allow leer.
dann schau mal ob in der /etc/ssh/sshd_config ein ListenAdress 0.0.0.0 oder nur Listen 0.0.0.0, dass verwechsle ich immer mit dem Apachen, steht.

dann sollte das normalerweise funktionieren.

Takeshi
29.06.04, 20:59
@canis_lupus
hier mal die komplette Meldung

20:57:23.611143 IP dagobah.takeshis-castle.bmc-ea > alderaan.takeshis-castle.ssh: S 1263322892:1263322892(0) win 16384 <mss 1460,nop,nop,sackOK>
20:57:23.613562 IP alderaan.takeshis-castle.ssh > dagobah.takeshis-castle.bmc-ea: S 916526302:916526302(0) ack 1263322893 win 5840 <mss 1460,nop,nop,sackOK>
20:57:23.613665 IP dagobah.takeshis-castle.bmc-ea > alderaan.takeshis-castle.ssh: R 1263322893:1263322893(0) win 0
20:57:26.542016 IP dagobah.takeshis-castle.bmc-ea > alderaan.takeshis-castle.ssh: S 1263322892:1263322892(0) win 16384 <mss 1460,nop,nop,sackOK>
20:57:26.542052 IP alderaan.takeshis-castle.ssh > dagobah.takeshis-castle.bmc-ea: S 919457503:919457503(0) ack 1263322893 win 5840 <mss 1460,nop,nop,sackOK>
20:57:26.542161 IP dagobah.takeshis-castle.bmc-ea > alderaan.takeshis-castle.ssh: R 1263322893:1263322893(0) win 0
20:57:32.577507 IP dagobah.takeshis-castle.bmc-ea > alderaan.takeshis-castle.ssh: S 1263322892:1263322892(0) win 16384 <mss 1460,nop,nop,sackOK>
20:57:32.577553 IP alderaan.takeshis-castle.ssh > dagobah.takeshis-castle.bmc-ea: S 925493000:925493000(0) ack 1263322893 win 5840 <mss 1460,nop,nop,sackOK>
20:57:32.577657 IP dagobah.takeshis-castle.bmc-ea > alderaan.takeshis-castle.ssh: R 1263322893:1263322893(0) win 0

Jetzt scheint es ja zumindest mit dem NAT geklappt zu haben.

@Windoofsclicker

Hab meine hosts.deny leer gemacht und in meiner sshd.conf schaut es folgendermassen aus:
Port 22
Protocol 2,1
ListenAddress 0.0.0.0
Aber funktioniert hat es trotzdem nicht.
Ach ja, habe noch in meiner hosts.allow den Befehl
All : Allow
reingeschrieben.
Gebracht hat das alles aber nix...

canis_lupus
30.06.04, 09:18
Sieht so aus, als ob der Client die TCP-Verbindung resettet. (Oder kommt der tcpdump von einem halboffenen nmap-Scan???)
Benutze mal die Option -v beim ssh-client. Vielleicht gibt es da einen Hinweis. ( -v kann maximal dreimal auftauchen um die Gesprächigkeit zu erhöhen)

Takeshi
30.06.04, 11:53
So sieht das ganze aus, wenn ich tcpdump -vvv port 22 eingebe:

tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
11:56:16.943009 IP (tos 0x0, ttl 127, id 63800, offset 0, flags [DF], length: 48) dagobah.takeshis-castle.drmsfsd > alderaan.takeshis-castle.ssh: S [tcp sum ok] 671379261:671379261(0) win 16384 <mss 1460,nop,nop,sackOK>
11:56:16.949006 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], length: 48) alderaan.takeshis-castle.ssh > dagobah.takeshis-castle.drmsfsd: S [tcp sum ok] 1131939214:1131939214(0) ack 671379262 win 5840 <mss 1460,nop,nop,sackOK>
11:56:16.949145 IP (tos 0x0, ttl 128, id 63801, offset 0, flags [none], length: 40) dagobah.takeshis-castle.drmsfsd > alderaan.takeshis-castle.ssh: R [tcp sum ok] 671379262:671379262(0) win 0
11:56:19.944336 IP (tos 0x0, ttl 127, id 63932, offset 0, flags [DF], length: 48) dagobah.takeshis-castle.drmsfsd > alderaan.takeshis-castle.ssh: S [tcp sum ok] 671379261:671379261(0) win 16384 <mss 1460,nop,nop,sackOK>
11:56:19.944372 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], length: 48) alderaan.takeshis-castle.ssh > dagobah.takeshis-castle.drmsfsd: S [tcp sum ok] 1134940766:1134940766(0) ack 671379262 win 5840 <mss 1460,nop,nop,sackOK>
11:56:19.944471 IP (tos 0x0, ttl 128, id 63934, offset 0, flags [none], length: 40) dagobah.takeshis-castle.drmsfsd > alderaan.takeshis-castle.ssh: R [tcp sum ok] 671379262:671379262(0) win 0
11:56:25.975698 IP (tos 0x0, ttl 127, id 64733, offset 0, flags [DF], length: 48) dagobah.takeshis-castle.drmsfsd > alderaan.takeshis-castle.ssh: S [tcp sum ok] 671379261:671379261(0) win 16384 <mss 1460,nop,nop,sackOK>
11:56:25.975756 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], length: 48) alderaan.takeshis-castle.ssh > dagobah.takeshis-castle.drmsfsd: S [tcp sum ok] 1164554418:1164554418(0) ack 671379262 win 5840 <mss 1460,nop,nop,sackOK>
11:56:25.975854 IP (tos 0x0, ttl 128, id 64734, offset 0, flags [none], length: 40) dagobah.takeshis-castle.drmsfsd > alderaan.takeshis-castle.ssh: R [tcp sum ok] 671379262:671379262(0) win 0

Frage mich aber so langsam, warum ssh alle Eingaben in meinen config-Dateien ignoriert. Habe dort ja angegeben, dass alle hosts Zugriff haben.

canis_lupus
30.06.04, 12:01
Ich meinte ssh -v <host> und nicht tcpdump -v.

Der Client gibt dann debug-Meldungen aus, die vielleicht hilfreich sein könnten.
Die Verbindung wird schon in einem sehr frühen Stadium unterbrochen. Da eine TCP-Verbindung nicht zu Stande kommt (Handshaking wird nicht abgeschlossen) kann eigentlich die Konfiguration nicht Schuld daran sein, da sie gar nicht zum Zuge kommt!
Blockt auch keine lokale Firewall in irgendeiner Form die Pakete?

Frage nochmal. Der tcpdump entsteht, wenn man mit dem ssh-client arbeitet und nicht durch einen nmap-Scan, richtig?

P.S.: An der TTL sehe ich, das dagobaah eine Windows-Kiste ist. Wo man die debug-Ausgabe beim PuTTY einstellt, weiss ich grad nicht genau.

Takeshi
30.06.04, 23:38
Jetzt hab ich mal von meinem anderen Linux-Rechner ssh -v gemacht. Das kommt dabei raus:

debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug1: Connecting to takeshi.no-ip.info [217.95.13.187] port 22.

Die Firewall beim Rechner, auf den ich zugreifen möchte (Alderaan) habe ich komplett abgeschaltet. Weder bei dem 2. Linux-Rechner (Hoth), von dem aus ich gerade mein ssh losgelassen habe, noch beim anderen Win-Rechner (Dagobah), habe ich eine Firewall laufen.
Und um Deine Frage nochmal explizit zu beantworten: ja, die Meldung kommt, wenn ich ssh mache, nicht bei nmap.
Ein nmap übers Internet ergibt:
22/tcp filtered ssh
Ein nmap übers Netzwerk sagt mir
22/tcp open ssh

Nochwas: da hier angegeben wird, dass die ssh_config verwendet wird. Habe dort alles auskommentiert, ausser "ForwardX11trusted". Aber hier kann ja eigentlich auch nicht der Fehler liegen, da der Win-Rechner ja gar keine ssh_config hat.
Ich hab ein account bei no-ip, damit ich vom Internet immer meinen Rechner erreichen kann. Könnte es sein, dass da vielleicht schon ein Filter mit eingebaut ist, damit nicht jemand die Computer ihrer Kunden scannt?? Wäre ja sonst für Hacker recht einfach: schaut sich an, welche Namen schon vergeben sind und macht dann dort einen Portscan. Vielleicht will no-ip seine Kunden so schützen.

canis_lupus
01.07.04, 10:05
Das sollte von no-ip schwer möglich sein, da sie ja ausschliesslich einen DNS-Dienst bereitstellen und keinen Verkehr routen. Sind ja keine Provider.

Hast Du das ssh -v auf die öffentliche IP gemacht? Das sieht ja so aus, als ob der Connect tatsächlich funktioniert hätte. Das wiederspricht aber dem gesnifften fehlgeschlagenen TCP-Verbindungsaufbau.

Taucht der gefilterte Port wirklich bei einem Scan "von draussen" auf oder bei einem Scan aus dem Netzwerk auf die öffentliche IP.
Meine Vermutung ist ja immer noch, das der Router das Problem verursacht.
Wenn Du mir deinen FQDN schickst, kann ich ja einen Scan versuchen. Klappt aber frühstens morgen abend, da ich beruflich in DE unterwegs bin und mich hinter einem Proxy aufhalte (manche Firmen gönnen einen einfach keinen Spass ;) ).

Takeshi
01.07.04, 15:05
Vorneweg, bevor ichs vergesse: "takeshi.no-ip.info" ist die Adresse. Versuch mal Dein Glück!
Die Meldung "filtered" taucht auf, wenn ich einen Scan aus dem Netzwerk an den public port schicke (also an takeshi.no-ip.info). Wie das ganze aussieht, wenn jemand das von aussen macht weiss ich nicht. Weiss eben nur, dass ich von der Uni aus mit Putty eben auch nicht zugreifen kann. Aber da niemand ausser mir einen Linux-Rechner besitzt - und ich somit nicht wirklich von aussen scannen kann wäre ich Dir wirklich dankbar, wenn Du das mal machst! Hat keine Eile. Melde Dich, wenn Du was rausbekommen hast.

canis_lupus
01.07.04, 15:51
You will see me when you see me. :D

canis_lupus
02.07.04, 20:42
Es wird Dich freuen zu hören, das dein ssh-Port erreichbar ist. Der Router scheint wohl nur Pakete von aussen zu forwarden und erkennt wohl, das deine Pakete vom internen Interface kommen und blockt sie.

Wenn Du mir schnell noch das root-Passwort postest, kann ich auch checken ob das mit dem Einloggen auch geht :ugly: :ugly: :D :D

Ich bin mit dem ssh bis zum Login gekommen. Scheint also wirklich alles ok zu sein.
Tip: Verschieb den sshd auf einen der hohen Ports (ausser Sichtweite) und deaktiviere das Protokoll 1 .

Takeshi
04.07.04, 03:20
Yo! Erstmal vielen Dank!
Aber da wäre noch ein kleines Problem: ich hätte von zu Hause aus nie versucht mich übers Internet auf meinem Rechner einzuloggen, wenn es von ausserhalb nicht andauernd schiefgegangen wäre. Hab von der Uni mehrmals versucht mich mittels Putty anzumelden, aber es hat nie geklappt. Dabei hat er auf alle Fälle den Rechner gefunden, nur der muss es geblockt haben.
Klar werde ich ssh (sobald alles wunderbar läuft) auf nen anderen Port legen. Werde dann auch die Firewall aktivieren. Wobei mir einfällt: Wenn ich die Firewall einschalte, dann existiert meine Samba-Workgroup nicht mehr. Nehme aber eigentlich den Samba-Port aus, wenn mich der Rechner fragt, welche Ports ich schützen möchte. Hast Du da vielleicht auch ne Idee??

canis_lupus
05.07.04, 09:21
Vielleicht lässt die Uni Port 22 nicht durch? Frag mal den Verantwortlichen.
Wenn die nicht nur Proxy haben, musst Du wohl einen der vermutlich freien Ports (80, 443) für ssh nehmen.

Damit ich die Frage richtig verstehe, im LAN soll smb gehen und Du brauchst die Ports?