Ich versuche, einen Sicherungsserver einzurichten. Ich mag chroot jeden Benutzer (Client) zu seinem Home - Verzeichnis, und nur erlauben , es zu benutzen SFTP und rsync .
Ich stellte schnell fest, dass ich nicht der einzige war, der versuchte, so etwas zu tun, und fand diesen Leitfaden und folgte ihm. Jetzt habe ich nur noch Benutzer mit SFTP.
Dann fand ich heraus, dass rsync ssh benötigt, um sich auf dem anderen Computer zu erzeugen, und dass sftp nicht ausreicht. Jedem Benutzer ein SSH-Login zu geben, wollte ich zunächst vermeiden.
Kann sich jemand mögliche Lösungen vorstellen?
Vielen Dank,
Kennzeichen
Antworten:
Eine SFTP-Lösung würde auch ein SSH-Login für alle erfordern, sodass Sie hier nichts wirklich verloren haben. Das Gewähren des SSH-Zugriffs bedeutet nicht unbedingt einen vollständigen Shell-Zugriff. Dies zeigt beispielsweise, wie die SSH-
authorized_keys
Datei verwendet wird, um eine Sicherung über rsync zu ermöglichen, während die verfügbaren Befehle nur auf den rsync-Empfänger beschränkt werden.Wenn Sie sich für eine schlüsselbasierte Authentifizierung anstelle einer Kennwortauthentifizierung entscheiden (was Sie sollten), können Sie alles unter einem Benutzerkonto ausführen, anstatt mehrere Konten zu benötigen. Sie würden Schlüssel verwenden, um entfernte Benutzer zu identifizieren und den rsync-Empfänger auf ein bestimmtes Verzeichnis zu lenken.
So etwas in Ihrer
authorized_keys
Datei:Jemand, der den
user1
privaten Schlüssel verwendet, wird in sichern/tmp/user1
, und jemand, der denuser2
privaten Schlüssel verwendet, wird in sichern/tmp/user2
. Und so weiter...quelle
Führen Sie wie gewohnt
rsync
vom Client zum Remote-Server aus, fügen Sie jedoch einen zusätzlichen ausführlichen Schalter hinzu :SSH -v
, und suchen Sie nachSending command
. Sie sehen den genauen Befehl, den der Client an den Remote-Server sendet:In meinem Fall war es
Fügen Sie dies als
command="..."
Remote-Server-/home/USER/.ssh/authorized_keys
Datei hinzu, wie @larsks erwähnt. Fügen Sie bei Bedarf zusätzliche Sicherheitseinstellungen hinzu:no-agent-forwarding,no-port-forwarding,no-pty,no-user-rc,no-X11-forwarding ssh-rsa AAAAB3NzaC1yc2..CPhIJ+LVULWz arnis@server
Alle zusammen:
(Entnommen aus einem sehr guten Tutorial http://en.positon.org/post/Rsync-command-restriction-over-SSH )
quelle
Sie müssen eine Form von Shell-Zugriff bereitstellen, um rsync verwenden zu können, es sei denn, Sie stellen eine direkte Verbindung zum rsync-Server her. Der Standardport ist 873 (TCP).
Von der rysnc-Manpage :
Beachten Sie die folgende Anleitung, um einen eingeschränkten Shell-Zugriff zu ermöglichen . (Hinweis: Der ursprüngliche Link ist tot.) Zusammenfassung:
Oder nehmen Sie einen Blick auf mit rssh (es gibt eine Anleitung zur Einrichtung rssh hier ):
quelle
rrsync
anstelle von rssh verwenden, das im offiziellen rsync-Paket enthalten ist. Siehe derek.simkowiak.net/backing-up-multiple-servers-with-rsnapshotSie können eine Shell schreiben, die rsync umschließt.
Schauen Sie sich die allgemeine Idee hier an: https://sixohthree.com/1458/locking-down-rsync-using-ssh
In Ihrer Wrapping-Shell können Sie tun, was Sie wollen, und den Benutzer möglicherweise herausfordern.
In meinem Fall musste ich das virtuelle Konto mit demselben * nix-Benutzer aktivieren. Ich schaffe es mit dieser Art von Shell und vielen Zeilen in der Datei "authorized_keys". Ich habe den Benutzer nicht chrooted, aber ich habe dem Befehl rsync server eine Benutzerordnerebene hinzugefügt.
Betrachten Sie den Prozessbenutzer mit dem SSH-Schlüssel anders
quelle
SFTP mit Rsync-Funktionen ohne Shell
Sie können LFTP + SFTP in einer Chroot-Umgebung verwenden und dieselben Ergebnisse wie bei Verwendung von rsync erzielen, ohne dem Benutzer eine Shell bereitzustellen oder umfangreiche Anpassungen in ssh mit Wrappern vorzunehmen.
Dies ist sicherer und kann wesentlich schneller sein.
quelle
Rsync in chroot ist schwierig :) Sie müssen eine minimale Umgebung für / bin / sh und / usr / bin / rsync im chrooted-Verzeichnis (Zielseite) einrichten, damit es funktioniert.
Den gesamten Artikel finden Sie hier. Das Setup für die rsync-Umgebung ist am Ende
https://medium.com/@deltazero/linux-remote-backup-rsync-chroot-d797ba6babe5
quelle