* Al Bogner schrieb am Freitag, 2003-07-04:
client erstellt eine tgz-Datei von den Homeverzeichnissen von server, wobei server eine Datei authorized_keys mit Schlüssel von client hat.
Es ist IMHO nicht übermäßig sinnvoll, den Client die Wahl treffen zu lassen, was er vom Server holen möchte -- besser wäre es, auf dem Server eine Liste der zu sichernden Verzeichnisse zu führen und ein Skript auszuführen, das genau diese Verzeichnisse sichert. Etwa so: (Server /etc/backupdirs) /etc /home (Server /root/bin/remotebackup) #!/bin/sh tar -czf - `cat /etc/backupdirs` (Client /home/user/bin/serverbackup) #!/bin/sh ssh root@server /root/bin/remotebackup > serverbackup.tar.gz Das hat zur Folge, daß auf dem Server der tar-Befehl ausgeführt wird und die Daten in die Standardausgabe geschrieben werden, die ssh an den Client weiterleitet, wo sie dann in eine Datei umgeleitet werden. Diese Lösung hat aber ein klaffendes Sicherheitsloch, weil der Benutzer, als der das Backup läuft, eine interaktive Shell auf dem Server als derjenige Benutzer bekommen kann, als der er sich via SSH anmeldet -- in diesem Fall root, was aus backuptechnischen Gründen wohl in den meisten Fällen so sein wird. Besser ist es, ein neues SSH-Schlüsselpaar ohne Passphrase anzulegen, das nur für die Anmeldung zum Sichern benutzt wird und dann in authorized_keys ganz am Anfang der Zeile mit dem öffentlichen Schlüssel folgendes zu schreiben: command="/root/bin/remotebackup",no-pty,no-port-forwarding Diese Option bewirkt, daß bei der Anmeldung mit diesem Schlüssel immer dieser Befehl ausgeführt wird, ganz gleich, was der Client für Wünsche äußert. Auf diese Weise kann zwar der Backupbenutzer auf dem Client immer noch an alle Daten kommen, die in den zu sichernden Verzeichnissen liegen, aber immerhin kann er den Server nicht mehr sabotieren. Zudem wird noch das Port-Forwarding unterbunden, damit der Client den Server auch nicht während der Laufzeit des Backupskriptes als Ausgangspunkt für Angriffe auf andere Systeme benutzen oder auf irgendwelche Dienste auf dem Server zugreifen kann. Zum Durchführen des Backups reicht dann ein: ssh -T root@server > serverbackup.tar.gz Die Option -T bestätigt auch von der Client-Seite aus, daß der Server keine tty zuzuweisen braucht. Gebe ich das nicht an, bekomme ich bei Textausgaben vom Server den Treppenstufeneffekt. Trotz aller Sicherheit gegen Manipulation des Servers ist so ein DoS-Angriff auf den Server bzw. seine Netzwerkanbindung möglich, indem man einfach zehn Backups gleichzeitig startet. Das noch zu vermeiden, soll dem Leser überlassen bleiben. Und natürlich muß der private Schlüssel gut geschützt werden. -- Christian Ullrich Registrierter Linux-User #125183 "Remember: 'I am a person. I have a right to the ball.'"