HOW-TO: Sicherheitsmaßnahmen, wenn die DSM im Internet steht und extern erreichbar ist.

Kamikaze01

Benutzer
Mitglied seit
06. Dez 2020
Beiträge
200
Punkte für Reaktionen
40
Punkte
28
Ihr wollte Eure DSM übers Internet erreichbar haben?
Ihr wollt von außen Zugang zu Euren Services, Dockern, VMs, etc...?
Ihr wollt aber keine unerwünschten Besucher?
Ihr wollt auch keine unerwünschten Anmelde-Versuche von irgendwelchen Bots?

Ich habe hier ein paar Dinge zusammengetragen, welche meiner Meinung nach hilfreich sind um den Schutz zu erhöhen, wenn die DSM im Internet stehen und von außen zugänglich sein soll.
Gerne könnt ihr mir helfen diese Liste zu ergänzen und/oder zu korrigieren, wenn Euch noch etwas einfällt.

**********************************************************************************************
**********************************************************************************************

1) Wildcard-Zertifikat erstellen
Unter Systemsteuerung --> Externer Zugriff --> Reiter "DDNS"
Hier auf "Hinzufügen" klicken und am besten einen Dienst von Synology auswählen. Danach einen Hostname sowie eine Endung frei wählen.
Als Beilspiel Hostname: sample und myds.me
Beide Haken setzen um ein Standard Zertifikat zu erstellen und Heartbeat zu aktivieren.
2.jpg

Danach unter Systemsteuerung --> Sicherheit --> Reiter "Zertifikat"
Hier auf "Hinzufügen" --> vorhandenes Zertifikat ersetzen --> das eben erstellte Zertifikat auswählen und auf "weiter" --> Punkt bei "Zertifikat von Let's Encrypt abrufen und auf "weiter" --> bei Domainname zum Beispiel eben sample.myds.me eintragen (ihr tragt natürlich das ein, was ihr bei DDSN selbst ausgesucht habt) --> und nun im Feld "Betreff Alternativer Name" nochmals die Domain, allerdings diesmal mit einem Stern (Wildcard) vorne dran. Also (um bei unserem Beispiel zu bleiben) *.sample.myds.me und danach auf "fertig" klicken
2.2.jpg


2) admin und guest Konto deaktiviert
Ihr solltet für die Admin-Verwaltung ein selbst gewählten User anlegen und den vorhandenen Standard "admin" User deaktiveren.
Da ich den guest User nicht benötige, habe ich diesen ebenfalls deaktiviert. Wenn ihr den User benötigt, könnt ihr ihn natürlich aktiviert lassen.
Ich habe mir für das File-Sharing unter Freunden eigene User mit selbst festgelegten Berechtigungen angelegt, aber das obliegt Euch wie ihr wollt.

Unter Systemsteuerung --> Benutzer und Gruppe --> Reiter "Benutzer"
Hier einfach das "admin" Konto auswählen, auf "Bearbeiten" klicken und den Haken bei "dieses Konto deaktivieren" klicken.
3.jpg


3) 2FA für alle Konten der admin Gruppe
Zur weiteren Sicherheit empfiehlt es sich die Zwei-Faktor-Authentifizierung (kurz 2FA) für alle Konten der admin Gruppe zu aktivieren.
Unter Systemsteuerung --> Sicherheit --> Reiter "Konto" und den Haken bei der 2FA setzen und die Benutzer der Admin Gruppe aktivieren.
Danach leitet Euch ein Menü durch die notwendigen Schritte wie zB die App für das Handy runter laden, den Benutzer daran anlegen, etc... ist kein Hexenwerk. Am besten auf den blauen Link "persönlich" klicken und gleich für den user einrichten. Ihr müsst das dann für jeden User der admin Gruppe extra einmalig einrichten (falls ihr mehrere User in dieser Gruppe habt).
Man kann bei erstmaliger Anmeldung mit der 2FA das Gerät auch als "vertrauenswürdig" kennzeichnen, wodurch es zu keiner erneuten 2FA an diesem Gerät kommt (zB der heimische PC, das eigene Handy,...). Dadurch werdet ihr nicht immer an den selben Geräten ausgebremst.
Ist meiner Meinung nach sehr zu empfehlen und kaum eine Einschränkung bei der Bequemlichkeit :)
4.jpg


4) fehlerhafte Anmeldungen innerhalb einer bestimmten Zeit führen zu dauerhaftem Ban der IP
Falls es dennoch jemand schafft und sich versucht bei euch anzumelden, könnt ihr zusätzlich einstellen,
dass diese IPs nach einer gewissen Anzahl an fehlgeschlagenen Anmeldungen automatisch gesperrt werden.
Passt aber auf, dass Ihr Euch nicht selbst aussperrt wenn ihr euch paar Mal fehlerhaft anmeldet. Sollte dies passieren, müsst ihr irgendwie (anderer User oder von einer anderen IP) zu der Liste der geblockten IPs und Eure eigene IP von dort entfernen ;)
Unter Systemsteuerung --> Sicherheit --> Reiter "Schutz" dort die entsprechenden Zahlen eintragen.
Ich habe es so eingestellt, dass es bei 3 fehlerhafte Versuche innerhalb von 60 Minuten zu einer Sperre der IP kommt und diese auch dauerhaft gesperrt bleibt.

Wie streng Ihr das einstellt, bleibt Euch selbst überlassen
5.jpg


5) Firewall am NAS aktivieren und korrekt einstellen (Stichwort Geoblocking)
Unter Systemsteuerung --> Sicherheit --> Reiter "Firewall" beide Haken setzen (FW und FW-Benachrichtigungen aktivieren).
Danach das bestehende FW Profil "default" bearbeiten oder ein eigenes neues anlegen und auf "Regeln bearbeiten" klicken.
Es öffnet sich ein neues Fenster wo man gewisse Regeln festlegen kann. Ich habe hier zB als die erste und oberste Regel so eingestellt,
dass bei den Porst nur gewisse Services ausgewählt sind, bei den IPs nur gewissen Länder (AT, DE,...) und das ganze auf "zulassen".
D.h. nur gewisse Services aus gewissen Ländern sind zugelassen.
Leider kann man immer nur 15 Länder auswählen, weshalb ich weitere Regeln erstellt habe und jeweils 15 Länder ausgewählt habe,
welche ich auf "verbieten" eingestellt habe.
Passt nur auf, falls ihr einen VPN nutzt und von extern mit einer IP aus einem anderen Land zugreifen wollt. Dann müsst ihr dieses Land natürlich ebenfalls zulassen.
6.jpg


6) Nachrichten bei Anmeldeverhalten
Es ist nützlich über alles Informiert zu werden. Daher habe ich mir noch eine Regel im Protokoll-Center erstellt um über alle ungewöhnlichen Anmeldeverhalten bzw. sperrungen von IPs informiert zu werden (auch nützlich, wenn Ihr Euch selbst gesperrt habt und es nicht mitbekommen habt ^^).
Dazu das Protokoll-Center öffnen (ggf. diese App erst installieren) und links auf "Benachrichtigung" klicken.
Bei den Stichworten ist übrigens RegEx erlaubt, falls ihr mehrere Ausdrücke verknüpfen wollt. Ich habe beim Bild gleich ein Beilspiel angehängt, damit ihr seht wie so eine Meldung aussieht.
Wenn Ihr Eure Mail Adresse hinterlegt habt, dann werdet Ihr mit genau dieser Nachricht per Mail verständigt.
7.jpg 7.2.jpg


7) einzelnen Service über eine eigene URL (via https) erreichen
Dieser Punkt ist nur noch notwendig, wenn ihr bestimmte Services unter bestimmten URLs erreichen wollt.
Habt ihr also zB einen Docker mit dem Namen "Docker1" unter Port 1234 laufen, könnt ihr den Proxy so konfigurieren, dass ihr den Docker und sein Service
zB unter D1.sample.myds.me erreichen könnt (das ganze natürlich via HTTPS).
Unter Systemsteuerung --> Anmeldeportal --> Reiter "Erweitert" --> Reverse Proxy --> Erstellen --> im Reiter "Allgemein" folgendes eintragen:

Bei Quelle:
Name: was ihr wollt um den Service zu definieren
Protokoll: HTTPS
Hostname: zB D1.sample.myds.me (oder was auch immer ihr statt "D1" für euren Service wählt)
Port: den von Euch unter Systemsteuerung --> Anmeldung --> Reiter "DSM" festgelegten HTTPS Port
Bei Ziel:
Protokoll: HTTP
Hostname: localhost
Port: den Post des jeweiligen Docker/Services (in unserem Beispiel wäre das 1234)

Danach auf Speichern klicken und kontrollieren, ob ihr den Docker/Service unter der festgelegten URL erreichen könnt.
(nicht vergessen, ihr müsst unbedingt auch am Router den 443er Port auf den von Euch unter Systemsteuerung --> Anmeldung --> Reiter "DSM" festgelegten HTTPS Port weitergeleitet haben).
8.jpg


8) Fleißaufgabe um IPs von bekannten Blacklisten automatisch zu sperren.
Es gibt ein Script welches automatisch Eure Blackliste um bekannte IPs erweitert und diese dauerhaft sperrt.
Eine Anleitung sowie das Script selbst findet ihr unter https://github.com/hasunwoo/synology-ip-blacklist/
Das ist aber nicht mehr wirklich notwendig und nur noch als "Extra" zu betrachten.
Wer sich damit nicht auskennt und den Code im Script nicht halbwegs versteht/vertraut, lässt besser die Finger davon.

9.jpg

**********************************************************************************************
**********************************************************************************************

habe ich wo Fehler?
Gibt es noch etwas was ich vergessen habe?

LG
Kami
 
Zuletzt bearbeitet:

Hellraiser123

Benutzer
Sehr erfahren
Mitglied seit
31. Jul 2024
Beiträge
764
Punkte für Reaktionen
410
Punkte
139
Zu 1. hätte ich eine Anmerkung. Wenn du extern alles über 443 laufen lässt und nicht 5001 frei gibst, dann ist der interne Port doch völlig egal. Der standard Port sollte nur nie nach außen freigegeben werden. Aber ob der Port 5001 oder 40001 ist, merkt niemand, wenn man alles über den Reverse Proxy leitet.
 
  • Like
Reaktionen: Kamikaze01

Kamikaze01

Benutzer
Mitglied seit
06. Dez 2020
Beiträge
200
Punkte für Reaktionen
40
Punkte
28
stimmt... in dem fall ist es völlig egal welchen Port man nimmt :)
Dann könnte der 5001er eigentlich auch verwendet werden und dieser Punkt ist obsolet.

Ich werde diesen Punkt entfernen

Danke für den Hinweis!!
 
Zuletzt bearbeitet:

dil88

Benutzer
Contributor
Sehr erfahren
Mitglied seit
03. Sep 2012
Beiträge
30.603
Punkte für Reaktionen
1.995
Punkte
804
Klasse Post, danke dafür! 🙏
 
  • Love
Reaktionen: Kamikaze01

synfor

Benutzer
Sehr erfahren
Mitglied seit
22. Dez 2017
Beiträge
8.995
Punkte für Reaktionen
1.606
Punkte
288
Der Abschnitt mit der Firewall ist verbesserungsfähig. Da man eh nur das erlaubt, was man wirklich braucht und alles andere mit einer einzigen Regel, die alles verbietet, am Ende der Liste erschlägt, braucht man für das Geoblocking keine expliziten Regeln zum Verweigern. Das Limit von 15 Ländern pro Regel ist also kein Hindernis.
 
  • Like
Reaktionen: Kamikaze01

Benie

Benutzer
Contributor
Sehr erfahren
Mitglied seit
19. Feb 2014
Beiträge
8.245
Punkte für Reaktionen
3.371
Punkte
344
Sauber, hätte ich nicht gedacht, daß Du meinen Pikser sofort so umsetzt ;). Klasse.!
 
  • Like
Reaktionen: Kamikaze01 und dil88

Kamikaze01

Benutzer
Mitglied seit
06. Dez 2020
Beiträge
200
Punkte für Reaktionen
40
Punkte
28
Da man eh nur das erlaubt, was man wirklich braucht und alles andere mit einer einzigen Regel, die alles verbietet, am Ende der Liste erschlägt, braucht man für das Geoblocking keine expliziten Regeln zum Verweigern. Das Limit von 15 Ländern pro Regel ist also kein Hindernis.
Ja da gebe ich Dir völlig recht - das wäre auch mein Plan gewesen...
aber wenn ich statt all der einzelnen Verbot-Regeln eine einzige ans Ende stelle, welche ALLES verbietet, speichert die DSM das Profil nicht, weil sie meint, dass ich mich damit selbst aussperren würde :unsure:
Wenn Du meinst, dass das bestimmt so funktionieren müsste, habe ich wohl noch irgendwo einen Wurm drinnen.

Ich sehe mir das bei Zeiten genauer an. Danke für den Hinweis auf alle Fälle !!
Wenn ich oben eine Regel mit ALLES zulassen habe und unten eine mit ALLES verbieten, dann ist das zwar sinnlos, aber die DSM würde es akzeptieren und speichern... vielleicht also habe ich ja in der obersten Regel irgendwo etwas übersehen, was ich noch zulassen muss.


Sauber, hätte ich nicht gedacht, daß Du meinen Pikser sofort so umsetzt ;). Klasse.!
Klar doch 🤜🤛:cool:
 
Zuletzt bearbeitet:

Hellraiser123

Benutzer
Sehr erfahren
Mitglied seit
31. Jul 2024
Beiträge
764
Punkte für Reaktionen
410
Punkte
139
Ich würde bei der Firewall das interne Netz freigeben als erste Regel. Dann dürftest du dich auch nicht aussperren. Und natürlich die Docker Netze, wenn man Container laufen hat.
 
  • Like
Reaktionen: Kamikaze01

Kachelkaiser

Benutzer
Sehr erfahren
Mitglied seit
22. Feb 2018
Beiträge
1.758
Punkte für Reaktionen
682
Punkte
134
bzgl. der Firewall.

ich hatte mal irgendwo gelesen, dass es besser sei, das in den jeweiligen Schnittstellen zu definieren, weil es hier die Möglichkeit gibt alles grundsätzlich zu verbieten.

1727352729212.png

Man muss nur aupassen bei neuen Paketen. Diese legen ihre Regeln immer in die "Alle Schnittstellen" an, dann muss das entsprechend verschieben.
Ich wollte meine Regeln auch schon lange mal so anpassen, dass das klappt......
 

Kamikaze01

Benutzer
Mitglied seit
06. Dez 2020
Beiträge
200
Punkte für Reaktionen
40
Punkte
28
Aahhh.... DA war offensichtlich auch schon der Hund begraben.
Ich hatte als oberste Regel einfach nur meine Länder und Services zugelassen.
Meine zweite Regel war auch schon die letzte und hat alles wieder verboten.
Klar, dass ich mich dann von meinen internen IPs 192.168.blabla selbst ausgesperrt hätte.
Cool, dass die DSM das gleich erkennt und es einen gar nicht erst speichern lässt ;) Sie schützt sich selbst und den User vor seiner eigenen... ähh... Unwissenheit.

Habe nun ganz oben eine dritte Regel welche meinen internen Range natürlich zulässt und schwupps läuft alles schon wieder wie es soll.

Danke @synfor für den Hinweis und Danke @Hellraiser123 (wieder einmal) für das Finden der Lösung (bzw. meines Fehlers ^^).

Ich kann den ersten Beitrag leider nicht mehr bearbeiten, aber falls sich einer der Mods müßig fühlt, könnte man das bei dem Punkt 5) zur Firewall noch korrigieren und mit einem schönen Bild versehen.

@Kachelkaiser unter https://kb.synology.com/de-de/DSM/help/DSM/AdminCenter/connection_security_firewall?version=7 findet sich ganz unten die Reihenfolge der Priorität bei den Schnittstellen:
FW.jpg
Da ich nur eine einzige Schnittstelle habe, muss ich zugeben mir darüber keine Gedanken gemacht zu haben.
Aber nachdem ich ganz oben nun eine Regel für meine Internen IP vergeben habe, klappt es ja nun :)
 


 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat