Synology - Applikationen in SSH-Tunnel einfangen
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
.
Danger
Die Option AllowTcpForwarding local
funktioniert NICHT. Das führt zu dem Fehler 👉 Synology - SSH-Tunnel ist kaputt
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.
Image caption: Firewallregel die eine ausgehende Verbindung für Portainer verbietet.
Die Regel lässt sich wie folgt anlegen
Image caption: Firewallregel anlegen
Image caption: Ausgehende Verbindungen verweigern
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.
Follow Me
Source
Foto von Wil Stewart auf Unsplash