Synology DS716+ – ssl/ssh am gleichen Port mit sslh

Das Problem kennen wohl viele, manche Websites sind gesperrt und/oder es sind keine anderen Ports außer 80/443 nach „draußen“ erlaubt. Mit ein paar kleinen Modifikationen der Diskstation und dem Paket sslh von der SynoCommunity kann man sich aber helfen…

  • Im Paket-Zentrum unter Einstellungen / Allgemein / Vertrauensebene / „Jeder Herausgeber“ auswählen und unter Einstellungen / Paketquellen die Website http://packages.synocommunity.com eintragen
  • Nun sollte sich im Paket-Zentrum / Community das Paket „sslh“ installieren lassen
  • /usr/local/sslh/var/sslh.cfg anpassen
    verbose: true;
    foreground: false;
    inetd: false;
    numeric: false;
    transparent: false;
    timeout: "5";
    user: "nobody";
    pidfile: "/usr/local/sslh/var/sslh.pid";
    
    
    # Change hostname with your internal address name.
    listen:
    (
     { host: "#interne IP-Adresse der Diskstation (zB 10.0.0.1)#"; port: "443"; }
    );
    
    protocols:
    (
     { name: "ssh"; service: "ssh"; host: "127.0.0.1"; port: "22"; probe: "builtin"; },
     { name: "ssl"; host: "127.0.0.1"; port: "443"; probe: "builtin"; }
    # { name: "openvpn"; host: "127.0.0.1"; port: "1194"; probe: "builtin"; },
    # { name: "tinc"; host: "127.0.0.1"; port: "655"; probe: "builtin"; },
    # { name: "xmpp"; host: "127.0.0.1"; port: "5223"; probe: "builtin"; }
    );

    Nun hört sslh auf die interne IP-Adresse der Diskstation am Port 443 und leitet Anfragen an 127.0.0.1:22/443 entsprechend der externen Anfrage weiter. Die Dienste openvpn, tinc und xmpp deaktiviert da ich diese nicht nutze

  • Mit sudo -i als root anmelden
  • /etc/ssh/sshd_config anpassen (muss jetzt auch auf 127.0.0.1 hören)
    ListenAddress #interne IP-Adresse der Diskstation (zB 10.0.0.1)#
    ListenAddress 127.0.0.1
    ListenAddress ::1
    AllowTcpForwarding yes
    PermitTunnel yes
  • /usr/syno/share/nginx/server.mustache anpassen (am Port 443 nur noch auf 127.0.0.1 hören, sslh besetzt ja die interne IP-Adresse)
    listen 127.0.0.1:443 ssl{{#https.http2}} http2{{/https.http2}}{{#reuseport}} reuseport{{/reuseport}};
    listen [::1]:443 ssl{{#https.http2}} http2{{/https.http2}}{{#reuseport}} reuseport{{/reuseport}};

    Hier wie auch bei den drei folgenden Dateien die Abschnitte mit listen am Port 443 um 127.0.0.1: bzw [::1]: erweitern (somit hört nginx nur noch am localhost)

  • /usr/syno/share/nginx/WWWService.mustache anpassen
    listen 127.0.0.1:443 default_server ssl{{#reuseport}} reuseport{{/reuseport}};
    listen [::1]:443 default_server ssl{{#reuseport}} reuseport{{/reuseport}};
  • /usr/syno/share/nginx/DSM.mustache anpassen
    listen 127.0.0.1:443 ssl{{#spdy}} http2{{/spdy}}{{#reuseport}} reuseport{{/reuseport}};
    listen [::1]:443 ssl{{#spdy}} http2{{/spdy}}{{#reuseport}} reuseport{{/reuseport}};
  • /usr/syno/share/nginx/Portal.mustache anpassen
    listen 127.0.0.1:{{port}}{{#https}} ssl{{/https}}{{#https.http2}} http2{{/https.http2}}{{#reuseport}} reuseport{{/reuseport}};
    listen [::1]:{{port}}{{#https}} ssl{{/https}}{{#https.http2}} http2{{/https.http2}}{{#reuseport}} reuseport{{/reuseport}};
  • ngnix mit synoservicecfg --restart nginx neu starten
  • Über Paket-Zentrum / Community / sslh / Aktion / Start das sslh-Paket starten
  • Portforwarding für Port 443 am Router einrichten
  • Nun sollte von extern die Diskstation mit ssh -p 443 #User#@#DynDNS-IP-Adresse der Diskstation# alles soweit klappen
    Da wir hier den ssh-Port der Öffentlichkeit freigeben habe ich noch eine zusätzliche 2FA eingebaut, wie das geht erfahrt ihr hier
  • Die Einrichtung eine ssh-Proxies kommt bald

Viel Spaß

2 Responses to “Synology DS716+ – ssl/ssh am gleichen Port mit sslh”

  1. Reviews

    Τhanks to my father whߋ shared ѡith me concerning thіѕ
    webpage, tһis website is aϲtually amazing.

×

Kommentare sind geschlossen.