Wie richte ich ein rsync-Backup für Ubuntu sicher ein?

7

Ich habe verschiedene andere Tutorials und Blog-Beiträge zum Einrichten eines Ubuntu-Computers als Backup- "Server" (ich nenne es einen Server, aber es läuft nur Ubuntu-Desktop) befolgt, auf die ich mit rsync neue Dateien schiebe. Im Moment kann ich mit rsync und ssh mit einem von mir erstellten RSA-Schlüssel und ohne Kennwortabfrage eine Verbindung zum Server von meinem Laptop aus herstellen, wenn mein Laptop mit meinem Heimrouter verbunden ist, mit dem auch der Server verbunden ist. Ich möchte in der Lage sein, Dateien von meinem Laptop zu senden, wenn ich nicht zu Hause bin. Einige der Tutorials, die ich mir angesehen habe, hatten einige kurze Vorschläge zur Sicherheit, aber sie haben sich nicht auf sie konzentriert.

Was muss ich tun, damit mein Laptop Dateien an den Server senden kann, ohne dass es jemand anderem zu leicht fällt, sich in den Server zu hacken?

Folgendes habe ich bisher getan:

  • Führen Sie ssh-keygen und ssh-copy-id aus, um ein Schlüsselpaar für meinen Laptop und Server zu erstellen.

  • Erstellt ein Skript auf dem Server, um seine öffentliche IP-Adresse in eine Datei zu schreiben, die Datei zu verschlüsseln und auf einen FTP-Server hochzuladen, auf den ich Zugriff habe (ich weiß, dass ich mich für diesen Teil für ein kostenloses dynamisches DNS-Konto anmelden könnte, aber seit ich Ich habe das FTP-Konto und muss die IP nicht wirklich öffentlich zugänglich machen. Ich dachte, das wäre besser.

Hier sind die Dinge, die ich vorgeschlagen habe:

  • Portweiterleitung: Ich weiß, dass ich dem Server eine feste IP-Adresse auf dem Router zuweisen und dann den Router anweisen muss, einen oder mehrere Ports an ihn weiterzuleiten. Sollte ich nur Port 22 verwenden oder einen zufälligen Port auswählen und diesen verwenden?

  • Schalten Sie die Firewall ein (ufw). Wird dies irgendetwas tun oder wird mein Router bereits alles außer dem gewünschten Port blockieren?

  • Führen Sie fail2ban aus.

Sind all diese Dinge es wert, getan zu werden? Soll ich noch etwas tun? Könnte ich den Server so einrichten, dass nur Verbindungen mit dem RSA-Schlüssel (und nicht mit einem Kennwort) zugelassen werden, oder bietet fail2ban einen ausreichenden Schutz vor böswilligen Verbindungsversuchen? Ist es möglich, die Art der Verbindungen zu begrenzen, die der Server zulässt (z. B. nur ssh)?

Ich hoffe das sind nicht zu viele Fragen. Ich bin ziemlich neu in Ubuntu (aber benutze die Shell- und Bash-Skripte unter OSX). Ich muss nicht die absolut sicherste Einrichtung haben. Ich möchte etwas, das einigermaßen sicher ist, ohne so kompliziert zu sein, dass es leicht auf eine Weise kaputt geht, die für mich schwer zu reparieren wäre.

ws_e_c421
quelle
Ich werde gleich in längerer Form antworten, aber jetzt sage ich nur, dass die Kennwortanmeldung in sshd_config deaktiviert wird. Dies bedeutet, dass nur Personen mit einem öffentlichen Schlüssel auf dem Server (dh Sie) eine Verbindung herstellen können und eine Kennwortanmeldung nicht möglich ist. Wenn Sie dies tun, sollten Sie nicht fail2ban
jackweirdy

Antworten:

6

Ok, ich denke du versuchst ein bisschen zu viel zu architektonisch. SSH ist eines der sichersten Dateiübertragungsprotokolle. Wenn Sie bereits über ssh synchronisieren, sind Sie zu 90% dort. Ihr Router fungiert als grundlegende Firewall, sodass Sie iptables für einen persönlichen Sicherungsserver nicht aktivieren müssen.

Halten Sie sich an Port 22. Es wird das Leben viel einfacher machen.

fail2ban ist ein nettes Skript für öffentliche Server, insbesondere wenn kennwortbasierte Anmeldungen aktiviert sind. Auf Ihrem Server wird es mehr Probleme geben, als es beheben wird. Ich würde es nicht empfehlen. Hier sind meine Vorschläge:

  • Holen Sie sich die dynamische IP, sie wird es einfacher machen, und ungefähr zu der Zeit, in der Sie unterwegs sind, wird Ihr FTP-Skript aus einem wirklich seltsamen Grund fehlschlagen. Grundsätzlich KISS.
  • Deaktivieren Sie die Kennwortanmeldungen für ssh. In / etc / sshd_config ändern Sie PasswordAuthentication yeszu PasswordAuthentication nound stellen Sie sicher, dass auf gesetzt challengeresponseist no. Dadurch wird verhindert, dass sich jemand ohne Ihren privaten Schlüssel anmeldet.

Abgesehen davon, dass Sie standardmäßig ziemlich gut abgedeckt sind. ssh verschlüsselt den Datenverkehr und überprüft den Host / Client. Danach ist nicht mehr viel übrig.

coteyr
quelle
Ändern Sie auch challengeresponsezu no, so dass PubKey die einzig mögliche Authentifizierungsmethode ist
jackweirdy
Danke Leute! Ich werde Ihren Vorschlägen folgen. @coteyr - ein paar Klarstellungen zu Tippfehlern: Sie meinen "Ihr Router fungiert als grundlegende Firewall " und "Er blockiert jeden, ohne dass sich Ihr privater Schlüssel anmeldet", oder?
ws_e_c421
Ja, korrigiert. Hinzugefügt in "Challengeresponse no".
Coteyr