ubuntuusers.de

SSH via Tunnel durch Firewall

Status: Ungelöst | Ubuntu-Version: Ubuntu 10.10 (Maverick Meerkat)
Antworten |

M3t0r

Anmeldungsdatum:
24. April 2009

Beiträge: 30

Hallo

wir arbeiten zurzeit an meiner Schule an einem kleinen Web-Projekt und ich hab mich bereit erklärt meinen kleinen Homeserver als Entwicklungsplattform zur Verfügung zu stellen.

Auf den Apache kommen wir ohne Probleme drauf, auch auf ein anderes HTTP Interface auf einem anderen Port(Transmission), aber FTP wird z.B. von der Schul-Firewall geblockt. Um Packete nachträglich zu installieren oder die php.ini zu ändern würde ich gerne auch drauf SSH'en können. Übern Tunnel könnt ich dann ja auch FTP von meinem Server zu Hause auf mein Laptop in der Schule legen und die anderen dadrüber Daten übertragen, soweit die Theorie.

Leider ist der Lehrer, der die Firewall verwaltet, nicht unbedingt einsichtig und hat sich auch von seinem Kollegen nicht umstimmen lassen.

Fehler vom SSHD auf dem Server kann ich ausschließen, der funktioniert hervorragend ohne Firewall dazwischen.

Ich hab's selber schon über die anscheinend weitläufig verbreitete Anleitung mittels corkscrew versucht, bekam aber ein paar Fehlermeldungen.

Hier ist der Aufbau:

Homeserver:

  • Ubuntu

  • Hinter Router mit Port Forwarding

  • SSHD listen auf einen Port im 7000er Block

  • Apache listen auf Port 80

  • Transmission mit Webinterface auf einen anderen 7000er Port

Laptop:

  • Macbook mit SSH und corkscrew

  • SSH conf:

    ProxyCommand corkscrew 172.16.0.1 8080 %h %p ~/.ssh/schul_proxy.auth

Firewall:

  • Via: 1.1 ISASRV, 1.1 ISASRV (aus HTTP Response Header)

  • IP 172.16.0.1

  • Port 8080

  • Authentifizierung erforderlich

Mit der oben angegeben Config kommt die Meldung der Firewall:

Proxy could not open connnection to %mein Host%:  Proxy Error ( Der angegebene SSL-Port ist nicht zugelassen. Der ISA Server wurde zum Unterstützen von SSL-Anforderungen von diesem Port nicht konfiguriert. Die meisten Webbrowser verwenden Port 443 für SSL-Anforderungen.  )
ssh_exchange_identification: Connection closed by remote host

Wenn ich den Port von 8080 auf die angegebene 443 änder' bekomm ich:

Couldn't establish connection to proxy: Connection refused
ssh_exchange_identification: Connection closed by remote host

Was mach ich falsch? Geht das überhaupt? Braucht ihr noch mehr Informationen?

Ich bedanke mich schon mal im vor raus für eure Hilfe!

lotharster

Anmeldungsdatum:
7. Oktober 2006

Beiträge: 495

Du musst auf deinem Homeserver den Port ändern, auf dem der ssh-daemon lauscht. Das geht in der sshd_config mit den Schlüsselwörtern "Port" bzw. "ListenAddress". Dabei musst Du einen Port angeben, der von der Schul-Firewall nicht geblockt wird.

Dann kannst Du Dich mit "ssh -p <neue Portnummer> login@server.xy" einloggen.

M3t0r

(Themenstarter)

Anmeldungsdatum:
24. April 2009

Beiträge: 30

aber das transmission interface funktioniert, und das liegt nur 2 ports höher

stegerl

Avatar von stegerl

Anmeldungsdatum:
15. März 2006

Beiträge: 458

Wohnort: Frohnleiten

Vielleicht hast du am Router eine Portweiterleitung für transmission eingerichtet?

Wenn du von der Schule aus über beispielsweise Port 443 😉 dich an deinem ssh Server anmelden möchtest musst du dem ssh Server auch sagen dass er auf diesem Port lauschen soll. Standardmäßig ist nur eine Verbindung über Port 22 möglich. Du musst also auf deinem Ubuntu Rechner wie schon lotharster meinte in der /etc/ssh/sshd_config die Zeile

Port 443

eintragen, dann funktionierts.

mickydoutza

Avatar von mickydoutza

Anmeldungsdatum:
31. Dezember 2010

Beiträge: 2185

M3t0r schrieb:

aber das transmission interface funktioniert, und das liegt nur 2 ports höher

Ja, aber die Firewall erkennt hier den Versuch eine SSH/SSL-Verbindung (... die nicht den Port 443 nutzen will) herzustellen und besteht auf Port 443. Über welchen Port die transmission-Verbindung zustande kommt, ist der Firewall anscheinend egal.

M3t0r

(Themenstarter)

Anmeldungsdatum:
24. April 2009

Beiträge: 30

Die HTTPS Verbindungen gehen aber auch über Port 8080 durch den Proxy. Gibts da en Unterschied? Ich würd nur ungern noch ein Loch meinen Router brechen...

lotharster

Anmeldungsdatum:
7. Oktober 2006

Beiträge: 495

Keiner hier kann Dir sagen, nach welchen Kriterien die Schul-Firewall Verbindungen erlaubt oder blockiert. Falls nach Port-Nummern gefiltert wird, sollte wie oben beschrieben das umleiten von ssh auf einen nicht-geblockten Port, z. B. 443, funktionieren. Falls die Firewall traffic analysis macht, wird ssh-traffic wahrscheinlich immer geblockt werden.

M3t0r schrieb:

Ich würd nur ungern noch ein Loch meinen Router brechen...

Das Problem seh ich jetzt nicht ganz - Ob Du ssh über Port 22 oder Port 443 anbietest, macht sicherheitstechnisch keinen großen Unterschied.M3t0r schrieb:

M3t0r

(Themenstarter)

Anmeldungsdatum:
24. April 2009

Beiträge: 30

ich hab ssh auf einem port der nur wenig anders ist als ein anderer der funktioniert. und die https verbindungen gehen auch über port 8080 raus.

wenn ich jetzt 443 zusätzlich in die port liste meines routers eintrage hab ich noch en eintrag voll, und der hat nur begrenzt. die würd ich mir gerne für andere well-known offen halten.

lotharster

Anmeldungsdatum:
7. Oktober 2006

Beiträge: 495

Ich hab mir mal die Corkscrew-Anleitung durchgelesen. Damit das Tunneln funktioniert, brauchst Du einen HTTP-Proxy, der außerhalb des Schulnetzes steht. Dessen IP musst Du dann angeben. In deinem Setup hast Du aber stattdessen eine IP aus dem lokalen Netz angegeben - ist das die IP der Firewall?

M3t0r schrieb:

Hier ist der Aufbau:

(...)

Laptop:

  • Macbook mit SSH und corkscrew

  • SSH conf:

    ProxyCommand corkscrew 172.16.0.1 8080 %h %p ~/.ssh/schul_proxy.auth

Firewall:

  • Via: 1.1 ISASRV, 1.1 ISASRV (aus HTTP Response Header)

  • IP 172.16.0.1

  • Port 8080

  • Authentifizierung erforderlich

Das kann nicht funktionieren. Die Fehlermeldungen sind insofern zu erwarten.

Du brauchst also einen externen Proxy-Server. Evtl. kannst Du auf Deinem Home-Server einen entsprechenden Proxy einrichten, aber da wäre es vermutlich einfacher, ssh auf Port 8080 zu legen, vielleicht kommst Du dann durch die Firewall.

M3t0r

(Themenstarter)

Anmeldungsdatum:
24. April 2009

Beiträge: 30

mhh, ja ☺ hab ich dann wohl falsch verstanden

also zuhause en apache mod_proxy oder squid oder sowas?

was hat crokscrew dann für einen vorteil gegenüber http_tunnel?

mickydoutza

Avatar von mickydoutza

Anmeldungsdatum:
31. Dezember 2010

Beiträge: 2185

M3t0r schrieb:

also zuhause en apache mod_proxy oder squid oder sowas?

Privoxy würde auch reichen, da braucht man kein apache.

was hat crokscrew dann für einen vorteil gegenüber http_tunnel?

corkscrew hat da kein Vorteil. Betr. httptunnel, siehe hier: http://forum.ubuntuusers.de/topic/ssl-socks-uvm-per-https-tunneln-alternative-zu/

M3t0r

(Themenstarter)

Anmeldungsdatum:
24. April 2009

Beiträge: 30

ja gut, dann nehmen wa halt httptunnel, das scheint soweit zu laufen. morgen dann der test mit proxy...

M3t0r

(Themenstarter)

Anmeldungsdatum:
24. April 2009

Beiträge: 30

ich geb's auf

für alle mit ähnlichem problem: http_tunnel is ein ganz nettes tool und aufjeden fall ein oder gar zwei blicke wert. leider scheitert es bei mir an der authentifizierung am proxy. der fragt die benutzerdaten über http, nicht über die proxy einstellungen...

LinusLinux

Anmeldungsdatum:
20. Januar 2011

Beiträge: Zähle...

Vielleicht funktioniert das ja:

www.www2ftp.de

Damit kannst Du ftp-Anfragen über eine http-Seite erledigen.

Da der tunnel bei einem fremden Server geschieht, ist die Verbindung nicht wirklich sicher, aber für ein Schulprojekt sollte das nicht so wichtig sein...

Nefarius

Avatar von Nefarius

Anmeldungsdatum:
11. Dezember 2008

Beiträge: 1275

Äh was ist denn jetzt bitte an einem SSH-Tunnel so schwer?! Am Server den SSHd auf Port 443 (ist bei jeder Forewall/Proxy offen) umstellen, vom Router den Port 443 auf deinen Server forwarden lassen (siehe Handbuch), mit corkscrew den Schul-Proxy eintragen, Verbinden. Fertig. Die Firewall, die SSL und SSH unterscheiden kann zeigt mir mal einer...

MfG Nefarius

Antworten |