SSH und SSL auf gleichem Port?

reibuehl

Neuer User
Mitglied seit
18 Dez 2006
Beiträge
58
Punkte für Reaktionen
0
Punkte
6
Hallo,

gibt es für die Fritzbox / Freetz eine Möglichkeit, SSL und SSH auf einem Port zu betreiben wie dies z.B. mit sslh möglich ist?

Gruß,
Reiner.
 
Kannst Du mir sagen, ob das auch mit 1.1.4 verwendet werden kann und wenn ja, wie? Ich habe ein funktionierendes Build System mit Freetz 1.1.4.
 
Mit 1.1.4 kenne ich mich nicht aus. Einfach mal probieren, d. h. den Patch ausführen und den Eintrag in der make/Config.in machen. Danach "make sshl-precompiled" ausführen. Wenn es Probleme gibt, dann schauen wir weiter.
 
ok, werde ich diese Woche mal probieren. Vielen Dank!
 
Wenn der Patch aus dem trac, in 1.1.4 nicht funktioniert, dann den Patch aus dem Anhang probieren.
 

Anhänge

  • sslh_114.patch.txt
    3.7 KB · Aufrufe: 8
Der sslh_1_9.patch hat funktioniert. Beim anschliesenden make sslh_precompiled wird zu erst das abhängige Paket tcpwrappers korrekt gebaut, doch dann steigt make aus:
Code:
mkdir -p packages/sslh-1.9/root
if test -d make/sslh/files; then tar -c -C make/sslh/files --exclude=.svn . | tar -x -C packages/sslh-1.9 ; fi

--2011-09-08 09:46:32--  [url]http://rutschle.net/tech//sslh-1.9.tar.gz[/url]
Auflösen des Hostnamen »rutschle.net«.... 88.127.138.24
Verbindungsaufbau zu rutschle.net|88.127.138.24|:80... verbunden.
HTTP Anforderung gesendet, warte auf Antwort... 200 OK
Länge: 21255 (21K) [application/x-gzip]
In »dl/sslh-1.9.tar.gz« speichern.

100%[======================================>] 21.255      13,7K/s   in 1,5s    

2011-09-08 09:46:35 (13,7 KB/s) - »dl/sslh-1.9.tar.gz« gespeichert [21255/21255]

Download succeeded - [url]http://rutschle.net/tech//sslh-1.9.tar.gz[/url]  ->  saved to folder dl
MD5 verified for dl/sslh-1.9.tar.gz: 1c0193853ef35f80e3e4b1a744832cd1
rm -f -r source/sslh-1.9
tar -C source  -xzf dl/sslh-1.9.tar.gz
set -e; shopt -s nullglob; for i in make/sslh/patches/*.patch; do tools/freetz_patch source/sslh-1.9 $i; done
touch source/sslh-1.9/.unpacked
touch source/sslh-1.9/.configured
C source/sslh-1.9 \
                CC="/home/freetz/freetz-1.1.4/toolchain/target/bin/mipsel-linux-uclibc-gcc" \
                CFLAGS="-Os -pipe -march=4kc -Wa,--trap -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -DLIBWRAP" \
                all
/bin/bash: C: Kommando nicht gefunden.
make: [source/sslh-1.9/sslh-fork] Fehler 127 (ignoriert)
mkdir -p packages/sslh-1.9/root/usr/bin/
cp source/sslh-1.9/sslh-fork packages/sslh-1.9/root/usr/bin/sslh
cp: Aufruf von stat für „source/sslh-1.9/sslh-fork“ nicht möglich: No such file or directory
make: *** [packages/sslh-1.9/root/usr/bin/sslh] Fehler 1
freetz@freetz-linux:~/freetz-1.1.4$

Keine Ahnung warum er da nach "C" sucht. Soll ich den anderen, von Dir angehängten patch versuchen, oder meinst Du, dass das was anderes ist?
 
Zuletzt bearbeitet:
Danke für den Tipp: Nachdem ich in make/sslh/sslh.mk ${SUBMAKE1} durch ${MAKE} ersetzt habe, war der make sslh_precompile erfolgreich.

Kann ich die files aus packages/tcp_wrappers-7.6/root und packages/sslh-1.9/root jetzt einfach auf die Box kopieren (ich habe USB-root)? mount zeigt allerdings, dass / read-only gemountet ist:
Code:
/var/mod/root # mount
rootfs on / type rootfs (rw)
dev on /dev type tmpfs (rw,nosuid)
/dev/sda1 on / type ext3 (ro,noatime,nodiratime)
proc on /proc type proc (rw,nodiratime,nosuid,nodev,noexec)
tmpfs on /var type tmpfs (rw)
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec)
/dev/mtdblock6 on /data type jffs2 (rw,noatime)
usbfs on /proc/bus/usb type usbfs (rw)
/var/mod/root #
Reicht hier ein mount -o remount,rw / oder muss ich eine komplett neue Firmware bauen?
 
Wenn Du USB-Root hast, kannst Du die Dateien direkt auf die Box kopieren, nach dem Remount.
Durch Read-Only wird vermieden, dass das Dateisystem inkonsistent wird, wenn der Stecker gezogen wird.
 
Nachdem die Installation problemlos geklappt hat, scheint sslh leider nicht zu funktionieren. Weder SSH noch SSL Verbindungen werden an den entsprechenden host weitergereicht.

Ich rufe sslh momentan so auf:

Code:
sslh -p 0.0.0.0:443 --ssh 192.168.1.2:22 --ssl 192.168.1.2:443

Muss ich dazu auf der Fritzbox noch etwas konfigurieren? Hat jemand (sf3978?) das Tool schon mal verwendet und kann mir sagen, was ich ändern muss?
 
..., scheint sslh leider nicht zu funktionieren. Weder SSH noch SSL Verbindungen werden an den entsprechenden host weitergereicht.

Code:
sslh -p 0.0.0.0:443 --ssh 192.168.1.2:22 --ssl 192.168.1.2:443
Muss ich dazu auf der Fritzbox noch etwas konfigurieren?
Hast Du sslh schon mal, nicht auf der FB, verwendet? Von wo willst Du sslh erreichen? Welche interne IP-Adresse hat deine FB?
Poste mal die evtl. anonymisierten Ausgaben von:
Code:
sslh -v -f -p 0.0.0.0:443 -s 192.168.1.2:22 -l 192.168.1.2:443
Code:
cat /etc/passwd | grep nobody
Code:
lsof -nPi
auf der FB.
 
Nein, ich habe bisher noch keine Erfahrungen mit sslh. Ich habe bisher auf der Fritzbox eine Port-Weiterleitung von externem Interface 443 auf 192.168.1.2:22 gehabt, die ich für die Tests deaktiviert habe.

Die Fritzbox hat die interne IP 192.168.1.1, 192.168.1.2 ist ein Linux System hinter der Fritzbox das den SSH und HTTPS Server bereitstellt. Per sslh möchte ich auf Port 443 des externen (DSL-)Interfaces der Fritzbox eingehende SSH und HTTPS Verbindungsanfragen auf die jeweiligen Dienste des Linux Systems weiter reichen.

Wenn ich sslh wie von Dir angegeben mit -s und -l aufrufe bekomme ich nur eine Usage angezeigt:
Code:
/var/mod/root # sslh -v -f -p 0.0.0.0:443 -s 192.168.1.2:22 -l 192.168.1.2:443
sslh v1.9
usage:
        sslh  [-v] [-i] [-V] [-f]
        [-t <timeout>] [-P <pidfile>] -u <username> -p <add> [-p <addr> ...] 
        [--ssh <addr>] [--ssl <addr>] [--openvpn <addr>] [--tinc <addr>]

-v: verbose
-V: version
-f: foreground
-p: address and port to listen on. default: 0.0.0.0:443.
    Can be used several times to bind to several addresses.
--ssh: SSH address: where to connect an SSH connection.
--ssl: SSL address: where to connect an SSL connection.
--openvpn: OpenVPN address: where to connect an OpenVPN connection.
--tinc: tinc address: where to connect a tinc connection.
-P: PID file. Default: /var/run/sslh.pid.
-i: Run as a inetd service.

Mit --ssl und --ssh kommt dann:
Code:
/var/mod/root # sslh -v -f -p 0.0.0.0:443 --ssh 192.168.1.2:22 --ssl 192.168.1.2
:443
ssh addr: bilbo:22. libwrap service: sshd
ssl addr: bilbo:443. libwrap service: (null)
listening on:
        0.0.0.0:443
timeout to ssh: 2
nobody: not found

Das cat /etc/passwd bestätigt dann, dass der User nobody fehlt. Wie muss der angelegt werden? Bestimmte UID/GID oder Shell?

lsof habe ich in meiner Firmware nicht drin.
 
Die Fritzbox hat die interne IP 192.168.1.1, 192.168.1.2 ist ein Linux System hinter der Fritzbox das den SSH und HTTPS Server bereitstellt. Per sslh möchte ich auf Port 443 des externen (DSL-)Interfaces der Fritzbox eingehende SSH und HTTPS Verbindungsanfragen auf die jeweiligen Dienste des Linux Systems weiter reichen.
Ich weiß nicht ob sslh das richtige tool für dein Vorhaben (Weiterleitung) ist. So funktioniert es:
Code:
sslh -v -f -p 0.0.0.0:443 -ssh [COLOR=red]127.0.0.1[/COLOR]:22 -ssl [COLOR=red]127.0.0.1[/COLOR]:443
Schau mal ob die Weiterleitung funktioniert, wenn Du sslh, ohne tcp_wrappers (d. h. ohne -lwrap) kompilierst.

EDIT:

Habe die Weiterleitung (mit libwrap) auch getestet. Funktioniert ohne Probleme im LAN und im VPN. Aus dem Internet habe ich nocht nicht probiert. Hier der Test im VPN:
Code:
root@fritz:/var/mod/root# sslh -v -f -p 0.0.0.0:333 [COLOR=red]-l 192.168.177.1:81[/COLOR]
SSH addr: 127.0.0.1:22. libwrap service: sshd
SSL [COLOR=red]addr: 192.168.177.1:81[/COLOR]. libwrap service: (null)
listening on 0.0.0.0:333
turning into nobody
sslh-fork v1.8 started
accepted fd 6
**** writing defered on fd -1
connected to something
[COLOR=red]connection from 192.168.[B]122[/B].18:55386 forwarded to 192.168.[B]177[/B].1:81[/COLOR]
flushing defered data to fd 4
client socket closed
connection closed down
 
Zuletzt bearbeitet:
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.