Hallo!
Ich nutze schon eine ganze Weile rsync zum Sichern meiner Daten vom und zu den Rootservern. Jetzt möchte ich meine Strategie etwas verfeinern, da nun diese komfortable Sache für andere auch interessant ist. Nun dachte ich kein Problem, richteste dort auch rsync und sicherst es rüber. Aber bei einem "Komplett-Backup" entsteht das lustige Problem, dass ich
- entweder dort einen Rootzugang schaffen muss um die UID und GID zu behalten
- oder mittels eingeschränktem User darauf verzichten muss.
Ein eingeschränkten User und rsync ist kein Thema, hatte ich mittels scponly und make_chroot_jail.sh schon probiert. Leider ergibt sich das Problem, das die Rechte zwar angepasst werden, aber dadurch das man mit einem User übermittelt der Eigentümer natürlich der gleiche ist. Sprich: alle Rechte sind nicht mehr so wie Original. Gravierend ist es, wenn eine Datei mittels Root auf 000 gesetzt wurde, die kann beim nächsten Durchlauf weder gelöscht noch verändert werden. Dem rsync den Befehl für einen chmod mitzugeben ist möglich, nur ist dann die komplette Rechtestruktur hinüber. Die einzigste Möglichkeit das zu umgehen, wäre mittels einem Rootzugriff was jeder versteht, wenn ich sage dass das ist keine gute Idee ist.
Jetzt habe ich schon überlegt, ob man irgendwie ein separates chroot basteln kann, wo man mittels root nur per scp oder rsync daten übertragen kann aber sich nicht einloggen kann. Wie löst man das sonst, dass die Rechte 1:1 übertragen werden?
rsync Rechteproblem
rsync Rechteproblem
Computer würden LINUX kaufen.
- George Mason
- Beiträge: 1175
- Registriert: 01.03.2006 22:55:19
- Lizenz eigener Beiträge: MIT Lizenz
Re: rsync Rechteproblem
Quelle -> Ziel
Auf dem Quellsystem sollten die root-Rechte für rsync nicht gefährlich sein, denn du willst ja nur lesen (kannst die Partition ja zur Sicherheit ro remounten)
Auf dem Zielsystem brauchst du zum Schreiben der Systemdateien ohnehin Root-Rechte.
Also würde ich sagen, mach es ruhig mit Root-Rechten. Auf eigenes Risiko natürlich![Smile :)](./images/smilies/icon_smile.gif)
Auf dem Quellsystem sollten die root-Rechte für rsync nicht gefährlich sein, denn du willst ja nur lesen (kannst die Partition ja zur Sicherheit ro remounten)
Auf dem Zielsystem brauchst du zum Schreiben der Systemdateien ohnehin Root-Rechte.
Also würde ich sagen, mach es ruhig mit Root-Rechten. Auf eigenes Risiko natürlich
![Smile :)](./images/smilies/icon_smile.gif)
Re: rsync Rechteproblem
Ja eben genau das wollte ich nicht ![Smile :-)](./images/smilies/icon_smile.gif)
Die einzigste Variante die ich gefunden habe, ist das der Syncronisationsvorgang vom BackupZiel gestartet wird und sich die Daten von der Quelle holt. Dann besteht keine "direkte" Möglichkeit sich als root von der Quelle auf dem Ziel anzumelden.
![Smile :-)](./images/smilies/icon_smile.gif)
Die einzigste Variante die ich gefunden habe, ist das der Syncronisationsvorgang vom BackupZiel gestartet wird und sich die Daten von der Quelle holt. Dann besteht keine "direkte" Möglichkeit sich als root von der Quelle auf dem Ziel anzumelden.
Computer würden LINUX kaufen.
Re: rsync Rechteproblem
Du kannst SSH-Keys nutzen und in /root/.ssh/authorized_keys nur
evtl. mit weiteren Parametern zulassen.
Code: Alles auswählen
command=/usr/bin/rsync
Re: rsync Rechteproblem
Ja, genau, mit einem SSH-Key für root arbeiten und für diesen dann noch Beschränkungen vornehmen, siehe dazu hier:uname hat geschrieben:Du kannst SSH-Keys nutzen und in /root/.ssh/authorized_keys nurevtl. mit weiteren Parametern zulassen.Code: Alles auswählen
command=/usr/bin/rsync
http://troy.jdmz.net/rsync/index.html
https://people.chem.umass.edu/wiki/inde ... ated_Login
In diesem Zusammenhang auch interessant:
/usr/share/doc/rsync/scripts/rrsync.gz
Gruß,
Daniel
Re: rsync Rechteproblem
Das könnte dann z.B. so aussehen:
1.) ssh-Key für root erstellen und auf den Server kopieren.
2.) Auf dem Server /usr/local/bin/check_command anlegen:
Und Rechte setzen:
3.) Auf dem Server in der Datei /etc/ssh/sshd_config "PermitRootLogin" anpassen:
D.h. root kann sich nur per Key anmelden und nur der bei Punkt 4 angegebene Befehl darf und wird beim Anmelden zwangsweise ausgeführt.
4.) Auf dem Server für den Key in der Datei /root/.ssh/authorized_keys Beschränkungen setzen, z.B.:
Rechner ist der Rechnername bzw. IP-Adresse, von dem aus ein Anmelden mit diesem Key erlaubt ist, no-* verbietet so ziemlich alles und check_command wird beim Anmelden mit diesem Key erzwungen.
Tag: wiki
Gruß,
Daniel
1.) ssh-Key für root erstellen und auf den Server kopieren.
2.) Auf dem Server /usr/local/bin/check_command anlegen:
Code: Alles auswählen
#!/bin/sh
case "$SSH_ORIGINAL_COMMAND" in
*\&*)
echo "Rejected"
;;
*\(*)
echo "Rejected"
;;
*\{*)
echo "Rejected"
;;
*\;*)
echo "Rejected"
;;
*\<*)
echo "Rejected"
;;
*\`*)
echo "Rejected"
;;
*\|*)
echo "Rejected"
;;
rsync\ --server*)
$SSH_ORIGINAL_COMMAND
;;
*)
echo "Rejected"
;;
esac
Code: Alles auswählen
chmod 744 /usr/local/bin/check_command
Code: Alles auswählen
PermitRootLogin forced-commands-only
4.) Auf dem Server für den Key in der Datei /root/.ssh/authorized_keys Beschränkungen setzen, z.B.:
Code: Alles auswählen
from="Rechner",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty,command="/usr/local/bin/check_command" ssh-dss AAAAB3Nz......
Tag: wiki
Gruß,
Daniel