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.
Antworten:
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:
PasswordAuthentication yes
zuPasswordAuthentication no
und stellen Sie sicher, dass auf gesetztchallengeresponse
istno
. 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.
quelle
challengeresponse
zuno
, so dass PubKey die einzig mögliche Authentifizierungsmethode ist