Zum Inhalt

Synology - Applikationen in SSH-Tunnel einfangen

Mann mit Fackel in einem Tunnel

Durch einen SSH-Tunnel lassen sich Applikationen und Dienste aufrufen, ohne das in der Firewall ein eigener Port geöffnet sein muss.

Sinnvoll ist das bei z.B. für Applikationen die

  • über keine Zwei-Faktor-Authentifizierung verfügen,
  • die in einem besonders geschützten Bereich stehen,
  • man die Firewall nicht extra dafür öffnen möchte,
  • aus Bequemlichkeit, weil SSH gut und zuverlässig funktioniert,
  • man den Dienst "verstecken" möchte,
  • etc.

Da SSH meist schon für die Administration verwendet wird, ruft man einfach die entsprechenden Dienste über einen SSH-Tunnel auf. Einschränkungen gibt es dabei meist nicht.

Bei einer Synology, ist wie bei jedem anderen Linux-System, eine kleinere Anpassung der sshd_config-Datei notwendig.

In dem nachfolgenden Beispiel soll die Applikation Portainer ausschließlich über einen SSH-Tunnel erreichbar gemacht werden. Der Aufruf über die IP-Adresse der Synology und den Port 9000 soll nicht mehr möglich sein.

1. Schritt: SSH aktivieren

In DSM ist der SSH-Dienst zu aktivieren. Welchen Port man für SSH verwendet ist dabei Geschmackssache. Im Beispiel wird der Port 22 belassen.

Terminal & SNMP --> Terminal --> SSH-Dienst aktivieren.

2. Schritt: sshd_config anpassen

Nachdem der SSH-Dienst aktiviert wurde, kann man sich über die Konsole auf der Synology anmelden.

ssh benutzername@<ip-adresse-synology>

Nach der Anmeldung hangelt man sich durch zum Ordner /etc/ssh/ und editiert mit dem Editor vi die Datei sshd_config

cd /etc/ssh/

sudo vi sshd_config

In der Datei sucht man den Eintrag AllowTcpForwarding und ersetzt das no durch ein yes.

Nach einem Speichern der Datei ist der sshd-Dienst der Synology neu zu starten.

sudo /usr/syno/bin/synosystemctl restart sshd.service

3. Schritt: SSH-Tunnel auf dem eigenen Client einrichten

Auf dem eigenen Client 💻 richtet man die SSH-Verbindung zur Synology so ein, dass automatisch der Tunnel geöffnet wird und die Applikation darüber erreichbar gemacht wird.

nano ~/.ssh/config

Einfach am Ende der Datei einfügen:

Host synology-portainer
    HostName <ip-addresse-der-synology>
    User benutzername
    Port 22
    ConnectTimeout 10
    Compression yes
    LocalForward 9000 localhost:9000

Der SSH-Tunnel lässt sich mit dem einfachen Aufruf ssh synology-portainer starten. Anschließen kann Portainer im Webbrowser aufgerufen werden. Aber anstatt die Ip-Adresse der Synology zu verwenden, wird localhost verwendet.

http://127.0.0.1:9000

4. Schritt: Synology Firewall anpassen

In DSM ist die Firewall anzupassen

Sicherheit --> Firewall --> Regeln bearbeiten

Die fertige Regel soll wie folgt aussehen.

Firewallregel für Portainer

Image caption: Firewallregel die eine ausgehende Verbindung für Portainer verbietet.

Die Regel lässt sich wie folgt anlegen

Firewallregel anlegen

Image caption: Firewallregel anlegen

Ausgehende Verbindungen verweigern

Image caption: Ausgehende Verbindungen verweigern

Aus einer Liste integrierter Anwendungen auswählen und Portainer anklicken

Aus einer Liste integrierter Anwendungen auswählen und Portainer anklicken

Image caption: Docker Container von Portainer auswählen

Die Änderungen sind zu speichern. Ab diesem Zeitpunkt ist Portainer nur noch bei einem bestehenden SSH-Tunnel zur Synology aufrufbar.

Wird versucht Portainer normale über die IP-Adresse der Synology und Port 9000 aufzurufen, ist das nicht mehr möglich.


Gib mir gerne einen Kaffee ☕ aus 😀

Wenn dir meine Beiträge gefallen und geholfen haben, dann kannst du mir gerne einen Kaffee ☕️ ausgeben.

Donation via PayPalDonation via LiberaPay

Donation via Bitcoin
Bitcoin Address: bc1qfuz93hw2fhdvfuxf6mlxlk8zdadvnktppkzqzj

Source

Foto von Wil Stewart auf Unsplash