Dienste (z.B. PLEX/Emby/Radicale) öffentlich zur Verfügung stellen oder nicht?

odenter

Well-Known Member
Hallo ich benötige mal Ideen, Anregungen und Kritik. Ich hoffe ich bin im richtigen Forum unterwegs, ansonsten bitte verschieben.

Ich habe bei Hetzner einen Root-Server und möchte folgende Dinge machen:
1.) Termine / Kontakte zentral verwalten (www/radicale)
2.) FTP / SFTP um Dateien zu tauschen
3.) Bilder + Videos zentral verwalten und auf verschiedene Geräte (TV, Handy) streamen (PLEX oder EMBY)
4.) SQL-DB (postgresql) für verschiedene (private) Entwicklungsthemen

Grundsätzlich gilt, ich will die o.g. Punkte nur mit Personen machen die mir persönlich bekannt sind.


Aktuell ist auf dem Server ein SSH Zugang vorhanden und die Maschine ist nach bestem Wissen und Gewissen abgesichert.
Außerdem läuft pf, wobei sich deren Schutz nur auf das blockieren von brute force Angriffen beschränkt, ist ja nur ein Port offen.
Nun mache ich mir zu den oben aufgeführten Themen Gedanken, der Plan ist jeden Dienst in einer Jail zu betreiben um die Hürde das Host-System zu kompromittieren zu erhöhen.

Ich bin unentschlossen ob ich die Dienste, im speziellen 3 + 4, öffentlich zugänglichen machen soll oder nicht.

Dafür spricht:
- einfache unkomplizierte Benutzung von überall, auch von weniger versierten Benutzern in meinem Bekanntenreis
- Konfiguration ist einfacher :P

Dagegen spricht:
- Sicherheit
Wenn ich zwei Dienste PLEX/postgresql habe dann muss ich letztlich diese Dienste im Hinblick auf Sicherheit immer im Blick haben.
Alternativ könnte ich sagen die Dienste sind nicht öffentlich erreichbar sondern nur lokal und ich greife nur per VPN auf meine Maschine zu. Wobei zu klären wäre ob dann noch alles so funktioniert wie ich mir das vorstelle, speziell das Streaming auf TV/Handy.
Hier müsste ich nur die VPN-Software in Hinblick auf Sicherheit im Blick haben, die Dienste selbst wären eher unkritisch.



Was würdet Ihr (nicht)machen und warum?
Und fallen euch andere Möglichkeiten ein an die ich bisher nicht gedacht habe um vielleicht das selbe zu erreichen und trotzdem sicherer mit der Maschine unterwegs zu sein?
 
Postgresql z.B. musst du gar nicht an ein TCP-Socket binden, damit ist der Angriff übers Netz schon mal ausgeschlossen.
Bei den anderen Diensten würde ich nur schauen, ob sie auch (wie es sein sollte) unter einem unprivilegiertem Benutzerkonto laufen. Wenn dies durchgängig der Fall ist, würde ich mir sogar das ganze Geraffel mit "jeden Dienst in ein separates Jail" sparen.

Es gibt übrigens sowas wie authpf, damit kannst du SSH-Accounts einrichten, mit denen dann eine beliebige Client-Adresse erst nach erfolgreichem Login Zugriff auf deine Dienste bekommt.

Rob
 
Die Idee mit authpf wäre eine gute Lösung. Alternativ könnte man auch z.B. sowas wie owncloud, nextcloud oder wie die alle heißen, installieren. Dann das ganze nur für localhost freigeben und per ssh-proxy einen Tunnel einrichten. Dann den ganzen traffic über diesen Tunnel leiten. Soweit die Theorie. Will man allerdings mit anderen tools als dem webbrowser darauf zugreifen, ist die Lösung per ssh wiederum nicht so ideal.
 
Naja, zumindest PostgreSQL kannst du soweit absichern, dass du ohne Zertifikat nicht drauf kommst.
Bis auf ggf. Logfile-Spam hast du dann nichts zu befürchten (hier könntest du fail2ban einsetzen...).

Ob jetzt dein VPN Client-Zertifikate zur Authentisierung nimmt oder dein PostgreSQL-Server - sehe ich jetzt keinen Unterschied.
PostgreSQL bietet weiterhin die Möglichkeit eine 1:1:1-Whitelist einzurichten (User; Datenbank; Quell-IP / Quell-Host).
Wenn du die Internetanbieter der Zugreifenden weißt kannst du mittels Wildcard-Beschränkungen zumindest auf einzelne Internetanbieter einschränken
(Beispiel-Eintrag pg_hba.conf: hostssl deinedatenbank deindbuser .unitymediagroup.de cert clientcert=1)
 
Danke für die Anregungen.
Das mit PostgreSQL hört sich gut an und in authpf werde ich mich mal einlesen, klingt jedenfalls vielversprechend.
 
Zurück
Oben