Synology DS723+ Reverse Proxy (als OpenVPN-Client)

tollertyp

Fleet Admiral
Registriert
Feb. 2020
Beiträge
16.477
Hallo,

ich versuche seit gestern mit meinem laienhaften Basis-Wissen, Google/YouTube und einer guten Portion ChatGPT mein Synology NAS DS723+ mit einem gemieteten Ubuntu-Server im Internet zu verbinden.

Kurz zur Motivation:
Ich habe keine eigene öffentliche IPv4-Adresse, sondern bin hinter einem Provider-NAT. Ich habe auch keine IPv6-Adresse. Mein Wunsch ist es, über den gemieteten Server im Internet auf NAS-Funktionen zugreifen zu können.

Mittlerweile habe ich erfolgreich eine VPN-Verbindung zwischen NAS und meinem Ionos-Server. Und ich kann für mein NAS auch eine synology.me-"Domain" samt Wildcard-Zertifikat von Let's Encrypt erstellen, dort wird die öffentliche IP des Ionos-Servers angezeigt.
1700692022300.png


Ich kann über diese (nennen wir sie einfach beispielhaft nas.synology.me, so lautet sie natürlich nicht) anpingen (bzw. sehe zumindest, dass die IP korrekt aufgelöst wird) und über Port 5001 auch auf das NAS-Interface zugreifen. Dazu habe ich entsprechend die Firewall bei Ionos konfiguriert und Weiterleitungen eingerichtet.

Zum Problem:
Ich möchte weitere Dienste auf dem NAS bereitstellen, z.B. Nextcloud. Das würde ich dann als Reverse-Proxy konfigurieren:
1700691901965.png

Das Problem ist, dass ich diese Subdomain nicht auflösen kann, also in dem Beispiel nextcloud.nas.synology.me kann nicht aufgelöst werden (z.B. durch einen Ping).
1700692140551.png

Habe die Meldung abgeschnitten, sie lautet: "Ping-Anforderung konnte Host "nextcloud.nas.synology.me" nicht finden. Überprüfen Sie den Namen, und versuchen Sie es erneut"

Hat jemand Erfahrung mit der Thematik? Muss ich irgendwelche DNS-Anfragen routen zwischen dem Ionos-Server und dem NAS?

Anbei noch meine server.conf:
Code:
port 1194
proto udp
dev tun
ca ca.crt
cert issued/server.crt
key private/server.key  # This file should be kept secret
dh dh.pem
topology subnet
server 172.16.20.0 255.255.255.0
ifconfig-pool-persist /var/log/openvpn/ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"
push "route 172.16.20.2 255.255.255.255"
client-to-client
keepalive 10 120
tls-auth ta.key 0 # This file is secret
cipher AES-256-CBC
;comp-lzo
persist-key
persist-tun
status /var/log/openvpn/openvpn-status.log
log-append  /var/log/openvpn/openvpn.log
verb 3
explicit-exit-notify 1
auth SHA512
 
Zuletzt bearbeitet:
Moin..
vorweg: Der VPN Tunnel funktioniert sicher?
Zeig mal bitte die nextcloud config.
Wie und wo hast du Nextcloud installiert?
Im Container? ( Falls ja, zeig mal bitte sudo docker ps)
Von Hand (Falls ja, welcher stack, also: Welche php version, welche nextcloud version, welcher Webserver, welches DBMS?)

Zeig mal bitte auf der synology
sudo netstat -tulpn
curl 127.0.0.18082
 
Der Tunnel funktioniert, ich komme ja über die IP-Adresse bzw. die Domain von Ionos auf meine NAS.
NextCloud läuft auch, wenn ich die NAS-IP im LAN eingebe 192.168.0.10:8082 kommt die Login-Seite. Die möchte mich dann halt auf die Domain umleiten.

sudo docker ps
1700727324018.png


Was genau interessiert dich bei netstat? Dass das Listen auf 8082 da ist?
1700727402954.png


Auf den CURL-Befehl verzichte ich direkt (auch weil der ohne Doppelpunkt eh nicht funktionieren wird).

Ich habe mal an der Stelle eine dumme Frage: Was hat das Nicht-Auflösen der im Reverse Proxy angegebenen Adresse konkret mit der Installation und Konfiguration von NextCloud auf dem NAS zu tun?
 
Zuletzt bearbeitet:
Kurzes Feedback:
Ich habe nun folgendes gemacht, um auf NextCloud zugreifen zu können. Und zwar muss ich von Port 443 ausweichen. Ich verwende nun Port 4444 und habe entsprechend die Firewall konfiguriert auf dem gemieteten Server. Die Weiterleitung findet aber auf Port 443 statt, so dass der Reverse-Proxy greift.

In der NextCloud-Config wird nicht nur der Host, sondern auch der Port überschrieben:
- OVERWRITEHOST=nextcloud.<meinid>.synology.me:4444

Von außen muss ich halt nun über Port 4444 zugreifen, aber damit kann ich denke ich leben.
 
Grüße.
Ich stand vor dem gleichen Problem und habe es über WireGuard gelöst. Ich möchte aber eine Synology DiskStation eines Freundes über den VPS mit meinem Heimnetz verbinden. @tollertyp könntest vielleicht kurz umreisen wie du die Verbindung zwischen NAS und Ionos VPS hergestellt hast? Ich habe versucht mich an deiner server.conf zu orientieren. Die NAS schluckt die .ovpn nicht.
Vielen Dank
 
so sieht das Verzeichnis /etc/openvpn/server bei mir aus auf meinen IONOS-VPS:
1716321318124.png


Also anbei meine client.ovpn nochmals, in eckigen Klammern das, was individuell ist:
Code:
client
dev tun
proto udp
remote [ionos-ip] 1194
resolv-retry infinite
nobind
persist-key
persist-tun
key-direction 1
cipher AES-256-CBC
auth SHA256
remote-cert-tls server
;comp-lzo
auth SHA512
verb 3
<ca>
-----BEGIN CERTIFICATE-----
[... entspricht dem certificate der ca, also ca.crt bei mir ...]
-----END CERTIFICATE-----
</ca>
<cert>
-----BEGIN CERTIFICATE-----
[... entspricht dem certificate des NAS, exemplarisch nas.crt ...]
-----END CERTIFICATE-----
</cert>
<key>
-----BEGIN PRIVATE KEY-----
[... entspricht dem private-key des NAS, exemplarisch nas.key ...]
-----END PRIVATE KEY-----
</key>
<dh>
-----BEGIN DH PARAMETERS-----
[... entspricht meiner dh.pem ...]
-----END DH PARAMETERS-----
</dh>
<tls-auth>
#
# 2048 bit OpenVPN static key (Server)
#
-----BEGIN OpenVPN Static key V1-----
[... entspricht meiner ta.key ...]
-----END OpenVPN Static key V1-----
</tls-auth>

Die server.conf dazu, Pfade zu den Zertifikatsdateien und die für das VPN verwendete IP-Bereich müssen halt ggf. angepasst werden, DNS-Server können auch andere verwendet werden logischerweise:
Code:
port 1194
proto udp
dev tun
ca ca.crt    # Anpassen oder Datei an gleiche Stelle legen
cert issued/server.crt    # Anpassen oder Datei an gleiche Stelle legen
key private/server.key  # This file should be kept secret    # Anpassen oder Datei an gleiche Stelle legen
dh dh.pem    # Anpassen oder Datei an gleiche Stelle legen
topology subnet
server 172.16.20.0 255.255.255.0    # VPN-Netzwerk
ifconfig-pool-persist /var/log/openvpn/ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 208.67.222.222"    # DNS #1
push "dhcp-option DNS 208.67.220.220"    # DNS #2
client-to-client
keepalive 10 120
tls-auth ta.key 0 # This file is secret    # Anpassen oder Datei an gleiche Stelle legen
cipher AES-256-CBC
;comp-lzo
persist-key
persist-tun
status /var/log/openvpn/openvpn-status.log
log-append  /var/log/openvpn/openvpn.log
verb 3
explicit-exit-notify 1
auth SHA512

Es war bei mir auch nicht ganz trivial, bis es mal funktioniert hat.

Folgende Firewall-Konfiguration habe ich noch vorgenommen auf dem IONOS VPS:
Code:
- VPN
ufw allow 1194/udp

-- SSH
ufw allow 22

-- VPN
ufw allow from 172.16.20.2

-- HTTPS
ufw allow 443
ufw route allow to 172.16.20.2 port 443 proto tcp

--
ufw allow 5001

--
ufw allow 8082

--
ufw allow 32400


--
ufw route allow to 172.16.20.2 port 80 proto tcp
ufw route allow to 172.16.20.2 port 4444 proto tcp
ufw route allow to 172.16.20.2 port 5000 proto tcp
ufw route allow to 172.16.20.2 port 5001 proto tcp
ufw route allow to 172.16.20.2 port 8082 proto tcp
ufw route allow to 172.16.20.2 port 8096 proto tcp
ufw route allow to 172.16.20.2 port 8920 proto tcp
ufw route allow to 172.16.20.2 port 32400 proto tcp


ufw enable


sudo iptables -t nat -A PREROUTING -p tcp --dport 4444 -j DNAT --to-destination 172.16.20.2:443
sudo iptables -t nat -A PREROUTING -p tcp --dport 5000 -j DNAT --to-destination 172.16.20.2:5000
sudo iptables -t nat -A PREROUTING -p tcp --dport 5001 -j DNAT --to-destination 172.16.20.2:5001
sudo iptables -t nat -A PREROUTING -p tcp --dport 8082 -j DNAT --to-destination 172.16.20.2:8082
sudo iptables -t nat -A PREROUTING -p tcp --dport 8096 -j DNAT --to-destination 172.16.20.2:8096
sudo iptables -t nat -A PREROUTING -p tcp --dport 8920 -j DNAT --to-destination 172.16.20.2:8920
sudo iptables -t nat -A PREROUTING -p tcp --dport 32400 -j DNAT --to-destination 172.16.20.2:32400

sudo iptables -t nat -A POSTROUTING -j MASQUERADE

Ich bin da kein Experte. Bei mir greife ich über den Port auf der öffentlichen IP-Adresse/Domain 4444 auf Dienste auf dem NAS zu, die dort via Reverse-Proxy dann auf 443 "übersetzt" werden. Port 443 direkt zu verwenden habe ich nicht geschafft, aber damit kann ich leben.

Analog dazu habe ich noch die Firewall im Webinterface von IONOS entsprechend konfiguriert:
1716321819121.png
 
Zuletzt bearbeitet:
Was genau sollte das denn deiner Meinung nach sein? Du stellst die Frage doch mit einer Intension. Warum redest du um den heißen Brei?
Was genau sollte ich deiner Meinung verbieten?
 
Zurück
Oben