Wer kennt es nicht, das leidige Thema um IP und Ports, gewürzt mit restriktiven Proxy-Servern die nur Port 80 und 443 durchlassen? Häufig steht man ja vor dem Problem, dass man ein VPN betreiben will, welches „selbstverständlich“ durch alle Firewalls durchgeht, aber nicht einen dedizierten VPN Gateway betreiben möchte. Oder aber Ihr wollt in Eurem Heimnetzwerk eine „Cloud“ betreiben mittels https, brauch aber auch VPN access. Das sind die typischen Probleme wo der ssl-Multiplexer sslh unter Linux oder genauer unter Debian zu Einsatz kommt. Wie Ihr sicherlich mitbekommen habt, bin sich sehr Debian lastig, aber das es funktioniert genau so unter CentOS, RedHat, SuSE …. Natürlich funktioniert das HowTo auch mit OpenMediaVault, ist ja schließlich Debian 😉
Der Einfachheit halber installier ich heute das Paket aus den Quellen und kompiliere es NICHT neu 🙂
Los gehts!
Zuerst updaten wir unsere Paketlisten und installieren dann aus dem Repository das sslh package.
apt-get update apt-get install sslh
Du bekommst wahrscheinlich eine ähnliche Meldung, einfach mit „Y“ bestätigen und Pakete installieren.
root@server2.tschoerner.eu:~# apt-get install sslh Reading package lists... Done Building dependency tree Reading state information... Done The following extra packages will be installed: libconfig9 libfile-copy-recursive-perl update-inetd Suggested packages: openbsd-inetd inet-superserver The following NEW packages will be installed: libconfig9 libfile-copy-recursive-perl sslh update-inetd 0 upgraded, 4 newly installed, 0 to remove and 40 not upgraded. Need to get 124 kB of archives. After this operation, 425 kB of additional disk space will be used. Do you want to continue [Y/n]? Y
Bei der Installation wird man gefragt, ob der Service via ineid gestartet werden soll oder aber als standalone Dienst, Ich habe mich für die Standalone Konfiguration entschieden.
Nach der Installation wirst du wahrscheinlich eine ähnliche Meldung bekommen, das der Dienst nicht gestartet wurde. Dies passiert, da bei der Initial-Konfiguration, des Flag auf „unkonfiguerte=Yes“ eingestellt ist.
Vor der Konfiguration stellen wir noch sicher, dass kein Dienst auf 443 mehr läuft, typischerweise SSL (Apache, Nginx, Lighttpd) oder aber ssh und OpenVPN. Diese Dienste müssen auf einen der ungelich 443 konfigueriert werden. das interne Mapping auf 443 übernimmt dann der SSL Multiplexer sslh.
Zurück zur sslh Konfiguration. Unter Debian und Ubuntu liegt die Konfiguration unter „/etc/default/“.
nano /etc/default/sslh
In Zeile 12 muss der Dienst aktiviert werden, indem das RUN=no in RUN=Yes geändert wird.
Innerhalb der Daemon option können nun die Ziele der verschiedenen Dienste definiert werden, aber ACHTUNG, die Reihenfolge ist wichtig!!
Meine sslh sieht so aus:
# Default options for sslh initscript # sourced by /etc/init.d/sslh # Disabled by default, to force yourself # to read the configuration: # - /usr/share/doc/sslh/README.Debian (quick start) # - /usr/share/doc/sslh/README, at "Configuration" section # - sslh(8) via "man sslh" for more configuration details. # Once configuration ready, you *must* set RUN to yes here # and try to start sslh (standalone mode only) RUN=yes # binary to use: forked (sslh) or single-thread (sslh-select) version DAEMON=/usr/sbin/sslh DAEMON_OPTS="--user sslh --listen 0.0.0.0:443 --ssh 127.0.0.1:22 --openvpn 127.0.0.1:1194 --ssl 127.0.0.1:443 --pidfile /var/run/sslh/sslh.pid"
Nach getaner Arbeit, muss der SSLH noch einmal neu gestartet werden und wir sind fertig.
/etc/init.d/sslh restart