SSLH example
Jump to navigation
Jump to search
What?
sslh ist quasi ein Y-Stück, mit dem ein Service auf 2 unterschiedlichen Ports laufen kann. Anwendungsfall ist z.B. ein sshd vor einer Firewall
Beispiel
Ein Client hinter einer Firewall möchte auf einen Web-Server im Internet zugreifen, auf dem ein sshd läuft. Die Firewall blockiert aber den Port 22. Port 80 ist dagegen offen.

Vorgehen
- sslh installieren
- Port 80 des Webservers auf localhost laufen lassen
- Y-Stück für Port 80 einbauen
sslh installieren
apt install ssld
Apache vorbereiten
Port 80 auf localhost
ports.conf:
Listen 127.0.0.1:80
#Listen 80
<IfModule ssl_module>
Listen 443
</IfModule>
<IfModule mod_gnutls.c>
Listen 443
</IfModule>
Virtual hosts anpassen
sites-enabled:
<VirtualHost 127.0.0.1:80> #<<<<<<<< **nicht** *:80
Define NAME wordpress.example.de
Define EMAIL root@example.de
ServerAdmin ${EMAIL}
ServerName ${NAME}
Include /etc/apache2/conf-available/rewrite-http-to-https.conf
CustomLog ${APACHE_LOG_DIR}/wordpress-access.log combined
ErrorLog ${APACHE_LOG_DIR}/wordpress-error.log
</VirtualHost>
oder - wenn mehrere virtual hosts:
cd /etc/apache2/sites-enabled sed -i 's|VirtualHost \*:80|VirtualHost 127.0.0.1:80|' *.conf
sslh konfigurieren
/etc/default/sslh:
DAEMON=/usr/sbin/sslh Run=yes DAEMON_OPTS="--user sslh --listen <public IP des Servers>:80 --ssh 127.0.0.1:22 --http 127.0.0.1:80 --pidfile /var/run/sslh/sslh.pid" # --tls 127.0.0.1:443 # wenn 443 statt 80 verwendet werden soll
Services neu starten
systemctl restart apache2 sslh
Verbindung vom Client aus
ssh -p 80 user@server