Linux Server absichern ohne großartiges Netzwerke-Studium

Robocopy

Cadet 4th Year
Registriert
Dez. 2021
Beiträge
95
Hallo Freunde.

Kurz zu meinen Kentnissen, damit die Antworten darauf abgestimmt werden können: Ich bin ein mittelmäßiger, 24 Jahre alter Hobbyprogrammierer, der gerne herumexperimentiert, aber nicht all zu viel weiß, jedoch behaupte ich nicht zu stark auf den Kopf gefallen zu sein.

Ich bin in der Lage, auf einem Linuxserver (natürlich terminal only) einen Minetest-Gameserver aufzusetzen und da auch meine Dateien über SFTP cloud-mäßig zu speichern.

Und genau das will ich nun im Netz auf einem Strato Server (Ubuntu) tun. Ich weiß, wie ich einen Minetest-Server dort aufsetze und wie ich SFTP benutze. Jedoch habe ich keine Ahnung von Sicherheit, außer natürlich, dass man den direkten root-Login verhindert, starke Passwörter benutzt und so wenig wie nötig mit Admin-Rechten arbeitet.

Und jetzt kommt die spannende Frage: Reicht das, um einen Linuxserver im Netz abzusichern, für genannte Anwendungszwecke? Wahrscheinlich nicht. Was muss ein Hobby-Hoster wie ich wissen, um einen Linux-Server sicher zu betreiben?

Ich wäre bereit, ein Lernzeitpensum von 48 Stunden zu investieren, sofern ihr gute Straight-Forward-Literatur aus eurer Erfahrung heraus anbieten könnt.

Auflistung der Aufgaben des Servers:
  • Nonstop-Ausführung eines Minetest-Gameservers mit snap
  • Speichern häufig benötigter, privater Dateien und Zugriff über SFTP, Einbindung auf privaten Rechnern als Netzlaufwerk, die Linux und Android haben
 
Da gelten eigentlich die allgemeinen Grundlagen unabhängig vom Betriebssystem:
  • Updates regelmäßig und zeitnah einspielen
  • Dienste die nicht gebraucht werden müssen auch nicht laufen, schon gar nicht von außen erreichbar sein
  • Was von außen erreichbar ist sollte entsprechend geschützt sein. Gescheite Passwörter (Länge ist wichtiger als Komplexität) oder besser Authentifizierung mit Schlüsseln, eventuell reverse Proxy oder ähnliche Module bei Webseiten, Fail2Ban um Passwort raten zu verhindern
  • Dienste die laufen bekommen nur die Rechte die sie brauchen, ein Gameserver läuft nicht als root/Administrator
  • Für die Sicherheit eher zweitrangig aber für die eigenen Nerven gut: regelmäßige Backups des Systems
 
  • Gefällt mir
Reaktionen: Partyarty, GTrash81, polyphase und eine weitere Person
Vielleicht noch eins dazu, nur den Leuten Zugriff geben dem man 100% vertrauen kann. Am besten es sein lassen wenn es geht.

Sonst top von Masamune2!
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: GTrash81
Robocopy schrieb:
auch meine Dateien über SFTP cloud-mäßig zu speichern.
Warum SFTP? Was Spricht gegen DAV? welche software soll da zum eisntaz kommen?
Minitest = Minecraft?



Was absichern angeht - Ich werfe dir hier zwischendrin Stichworte hin, ohne sie zu erklaeren. Bei fragen, frag.
Das wichtigste ist : Updatres, 1x Pro woche. Keine Ausreden. Bei akuten Sicherheitsvorfaellen, sofort reagieren - das wird im zwiefelsfall durch deinen provider erzwungen.

SSH-> Root login verbieten. Keine Authentifizierung mit Passwort, nur mit Public key
das schaut ganz gut aus: https://blog.devolutions.net/2017/04/10-steps-to-secure-open-ssh/
im 1. schritt bei 10. wuerde ich jedoch eher Ed25519 anstelle von rsa nehmen.

Fail2Ban (hat @Masamune2 ja schon erwaehnt) scxhaut sich deine Log dateien an und blockt eventuelle packt eventuelle Angreifer in der Firewall

Was den "Cloud" Teil angeht, schau dir mal nextcloud an: https://www.c-rieger.de/nextcloud-installationsanleitung/ du findest auch ein skript auf der Seite, was vieles automatisiert. Fail2ban wird hier auch abgedeckt.

Robocopy schrieb:
Ich wäre bereit, ein Lernzeitpensum von 48 Stunden zu investieren, sofern ihr gute Straight-Forward-Literatur aus eurer Erfahrung heraus anbieten könnt.
Wenn du einen server betreiben willst, investier so viel zeit wie es Noetig ist. Wenn du das nicht willst, zahl Geld.

Fuer einen anfaenger noch ein Tip, der dir viel Frust ersparen kann, den man vor 10+ jahren noch andauernd hatte: Fang mit kleinen VMs an. Miete keine HArdware. Dann kannst du ohne selbst massig Aufwand zu haben snapshots erstellen und wenn du was kaputt gemacht hast, zum letzten brauchbaren Stand zurueck
 
  • Gefällt mir
Reaktionen: Robocopy
Bei einigen V-Server Anbietern wie z.B. Hetzner, gibt es eine Snapshot Funktion, die erspart dir viel Ärger. Hetzner hat zudem auch einige Dokus über wie man den Server absichert. Das hat mir damals ganz gut geholfen zu verstehen was ich da mache und warum die Schritte notwendig sind.
 
  • Gefällt mir
Reaktionen: BeBur und madmax2010
Passwörter sind schön und gut, wenn du SSH bzw. SFTP nutzt wäre es sinnvoller public-key Auth zu nutzen und Passwörter zu deaktivieren:
https://wiki.ubuntuusers.de/SSH/#Publickey-Authentifizierung

Updates gehören automatisiert und nicht wie hier geschrieben wurde im Wochenrythmus sondern eher im Bereich 4-12h für Sicherheitspatches. Im Zweifelsfall startet es dir dann mal während der Benutzung den minetest-Server durch. Was aber besser ist als ein Server, der den Herren wechselt.
Als Begründung: In dem Moment wo ein Patch veröffentlicht wird, nehmen die bösen Buben diesen Patch auseinander und schauen nach welche Lücke gestopft wurde. Mit diesem Wissen werden dann Schädlinge erstellt und innerhalb von 24h nach dem Patch ist jedes System ohne Fix Freiwild.
https://wiki.ubuntuusers.de/Aktualisierungen/Konfiguration/#Automatische-Updates-ohne-Interaktion

Und was schon gesagt wurde, es ist sinnvoll, dass jeder (von außen erreichbare) Dienst einen eigenen Nutzer bekommt. Wobei dieser Nutzer gerade so genug Rechte bekommen sollte um diesen Dienst auszuführen.
Das wäre dann auch das Wichtigste, was WIRKLICH verinnerlicht werden muss. Die Rechte- und Nutzerverwaltung von Linux.
Viele Anleitungen von und für Anfänger machen so Dinge wie
chmod 777 ...
Wenn du ausführlich erklären kannst, wieso das eine sehr dämliche Idee, sieht es gar nicht so schlecht ;)

edit:
Und vielleicht sollest du dich mit "nmap" beschäftgien, damit du deinen eigenen Server auf offene Ports abklopfen kannst.
 
  • Gefällt mir
Reaktionen: madmax2010 und Robocopy
Firewall nicht vergessen. Ein Port ist schnell falsch geöffnet.
Nicht nur Updates des System machen, sondern auch der installierten Anwendungen.

Nicht einfach Anleitungen abtippen oder kopieren. Versuch es zu verstehen.
 
madmax2010 schrieb:
SSH-> Root login verbieten
Muss gar nicht sein, es reicht Port 22 auf IPv4 dicht zu machen. Mit SSH über IPv6 only wird es Jahr(e/zente) dauern, bis Du einen Login-Versuch im Log siehst ;)
 
madmax2010 schrieb:
Warum SFTP? Was Spricht gegen DAV?
Keine Ahnung. Habe mir in der Zigarettenpause von einem Kollegen erklären lassen, was DAV überhaupt ist :-D
Wenn ich recht verstehe versendet DAV Daten über HTTPS. Aber ich frage mich dann doch wozu, wenn ichs auch bequem über SSH (SFTP) machen kann. Ich glaube, ohne viel Ahnung zu haben, dass das reine Geschmackssache ist.
Piktogramm schrieb:
In dem Moment wo ein Patch veröffentlicht wird, nehmen die bösen Buben diesen Patch auseinander und schauen nach welche Lücke gestopft wurde. Mit diesem Wissen werden dann Schädlinge erstellt und innerhalb von 24h nach dem Patch ist jedes System ohne Fix Freiwild.

Das war mir so noch nicht bekannt, aber die Argumentation ist bestechend, danke für diesen wertvollen Tipp!
Piktogramm schrieb:
chmod 777 ...
Wenn du ausführlich erklären kannst, wieso das eine sehr dämliche Idee, sieht es gar nicht so schlecht
Aus meinem angedauten Studium weiß ich noch: 7 setzt Lese, Schreibe und Ausführungsrechte. In diesem Falle für den Datei-Eigentümer, für die Gruppe und für Fremde. Das ist natürlich suboptimal, wobei ein Laie oft das Glück haben dürfte, dass der Ordner, in dem die Datei liegt, wiederum nicht für jedermann Leserechte gesetzt hat. :D
xammu schrieb:
Firewall nicht vergessen. Ein Port ist schnell falsch geöffnet.
Nicht nur Updates des System machen, sondern auch der installierten Anwendungen.

Nicht einfach Anleitungen abtippen oder kopieren. Versuch es zu verstehen.
Okay, also im Prinzip nur den SSH-Login-Port und die Spieleports offen lassen. Und Ports zum Apps per apt installieren... Ach da kenne ich mich noch nicht so aus, da muss ich nochmal genau schauen.

madmax2010 schrieb:
Keine Authentifizierung mit Passwort, nur mit Public key

Als Bequemlichkeits-Junkie musst du mir die Frage erlauben: Ist das wirklich gänzlich unabdingbar? Wenn ich ein wirklich starkes Passwort habe - reicht dies nicht zur Not?
 
Robocopy schrieb:
Aber ich frage mich dann doch wozu, wenn ichs auch bequem über SSH (SFTP) machen kann. Ich glaube, ohne viel Ahnung zu haben, dass das reine Geschmackssache ist.
WerbDav -> Dateien Synchron halten.
Caldav -> Adressbuch / Termine Synchron halten
ist halt fuer automatische synchronisation cool
Robocopy schrieb:
Als Bequemlichkeits-Junkie musst du mir die Frage erlauben: Ist das wirklich gänzlich unabdingbar? Wenn ich ein wirklich starkes Passwort habe - reicht dies nicht zur Not?
Keine passwort auth. Pubkey ist dazu noch viel bequemer
Du entsperrst ihn 1x und danach machst du nur noch ssh user@server und bist ohne tippen sofort drin
;)
 
madmax2010 schrieb:
Du entsperrst ihn 1x und danach machst du nur noch ssh user@server und bist ohne tippen sofort drin
Gut gut, allerdings kann ich mich dann nicht mehr von einer x-beliebigen Shell in meinen Server einloggen... hmm...
 
@Robocopy
Von jeder xbeliebigen Shell geht das schon. Den private Key sollte man sowieso mit einem eigenem Passwort versehen. Entsprechend kannst du den private Key dann auf einem USB Stick mit dir herumtragen.

Ich würde sowieso empfehlen einen Nutzer zu haben, der nicht in der sudoer Gruppe ist und den im Alltag für den Datenaustausch zu nutzen und einen Account der zum Verwalten genutzt wird und der seine Rechte über sudo erweitern darf.


Der Einwurf mit DAV ist nicht ganz verkehrt. Im Zweifelsfall wird das dann eine eigene Nextcloudinstanz. Dann kannst du auf all deinen Systemen den Datenaustausch über den Syncclienten von NextCloud bewerkstelligen oder mittels eines via DAV eingebundenen Laufwerkes und unterwegs reicht dir ein x-beliebiger Browser.
 
  • Gefällt mir
Reaktionen: madmax2010
Piktogramm schrieb:
Nextcloudinstanz. Dann kannst du auf all deinen Systemen den Datenaustausch über den Syncclienten von NextCloud bewerkstelligen oder mittels eines via DAV eingebundenen Laufwerkes und unterwegs reicht dir ein x-beliebiger Browser.
Nunja. Ich hatte mit Nextcloud mal das Problem, dass ich mir über den Android-Client keine Dateien automatisiert auf den Handyspeicher laden kann, weil dafür wieder irgendein Premium-Zeug notwendig gewesen wäre. Ich habe Tuxedo-Cloud-Speicher zu meinem PC damals geschenkt bekommen.

Aber einen SFTP-Server könnte ich über Android als ein Laufwerk, quasi wie eine SD-Karte, einfach einbinden. Und das wäre natürlich ein Traum. Ich denke das sollte klappen - auf Linux Mint XFCE funktioniert es so jedenfalls.
 
Robocopy schrieb:
Nunja. Ich hatte mit Nextcloud mal das Problem, dass ich mir über den Android-Client keine Dateien automatisiert auf den Handyspeicher laden kann, weil dafür wieder irgendein Premium-Zeug notwendig gewesen wäre. Ich habe Tuxedo-Cloud-Speicher zu meinem PC damals geschenkt bekommen.
Das einzige was bei nextcloud Geld kostet ist Support.

Dateien synchronisiren kann die offizielle app zum teil, jede webdav filesync app tut das aber auch :)
Ergänzung ()

schau mal: https://stackoverflow.com/questions/11216884/which-file-access-is-the-best-webdav-or-ftp
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Robocopy
Zurück
Oben