Einrichten eines Linux-Klienten für RSYNC
Vom Server des URZ wird i.d.R. nachts mittels ssh auf dem Klienten ein Script (
backup.sh) gestartet, das mit root-Rechten laufen muss und alle Daten mit dem Server synchronisiert. Die Kommunikation erfolgt über einen geeigneten Nutzer auf dem Klienten mittels eines vereinbarten Security-Keys.
Die folgenden Schritte beschreiben das Einrichten eines Klienten für die Nutzung des Backupdienstes mittels rsync im URZ der TU Chemnitz:
- Kontrolle der installierten Software rsync
- Installation des Backup-Scripts nach /usr/local/sbin/backup.sh
das Script muss ausführbar sein (chmod +x backup.sh)
Das Kommando rsync wird auf dem Klienten im Standardsuchpfad (z.B. /usr/bin/ ) erwartet. Sollte rsync an einer anderen Stelle installiert sein, so müsste der Pfad entsprechend in dem Skript ergänzt werden, z.B.
PATH=$PATH:Rsync_Path
- Die Kommunikation mit dem Server sollte nicht über den Nutzer root laufen, dieser ist Hauptangriffsziel von Hacker-Attacken. Es sollte ein lokaler Benutzer BACKUP_USER (z.B. rsync) für das Backup lokal eingerichtet werden, der als ssh-Partner für den RSYNC-Server dient und selbst per sudo root-Rechte für das Sichern der Daten erlangt. Der lokale Name von BACKUP_USER muss beim Antrag angegeben werden. Der Name BACKUP_USER in dieser Beschreibung muss an allen Stellen durch den real gewählten Namen ersetzt werden !
- Kontrolle der ssh-Konfiguration: die Backupserver backup01.hrz backup02.hrz backup03.hrz müssen per ssh (Port 22) auf den zu sichernden Rechner zugreifen können
- Einrichten des HOME-Verzeichnisses für den ausgewählten Benutzer
cd ~BACKUP_USER # HOME-Verzeichnis des für das Backup eingerichteten Nutzers !
mkdir .ssh
chmod 0755 .ssh # es genügt auch chmod 0711 .ssh
# die Datei authorized_keys wird per E-Mail vom URZ bereitgestellt
# ACHTUNG: falls .ssh/authorized_keys existiert, muss dieses angepasst werden
cat authorized_keys_vom_URZ >>.ssh/authorized_keys
chmod 0644 .ssh/authorized_keys
visudo # ältere Versionen: vi /etc/sudoers
BACKUP_USER ALL = NOPASSWD: /usr/local/sbin/backup.sh
# BACKUP_USER durch realen Namen des Backup-Nutzers ersetzen !
#! ACHTUNG: ab Version sudo-1.6.9 folgenden Eintrag
BACKUP_USER ALL = NOPASSWD: SETENV: /usr/local/sbin/backup.sh
# ACHTUNG: Option requiretty darf NICHT gesetzt sein:
# Defaults requiretty
# sonst typischer Fehler: sudo: no tty present and no askpass program specified
# sollte die Option env_keep konfiguriert sein, muss folgende Variable ergänzt werden:
Defaults env_keep = "... SSH_ORIGINAL_COMMAND"
# diese benötigt rsync zur Übergabe seiner Argumente, sonst typischer Fehler:
# protocol version mismatch -- is your shell clean?
# ACHTUNG: im HOME-Verzeichnis des BACKUP_USER sollten keine Startup-Skripte stehen
- Test des root-Zugriffs zu Backup-Skript:
- ssh BACKUP_USER@BACKUP_KLIENT
ACHTUNG : Es dürfen keine Zusatzausschriften auf der Konsole erscheinen !
HINWEIS : die Anzeige von /etc/motd kann durch Anlegen des leeren Files .hushlogin im HOME-Verzeichnis verhindert werden.
- Aufruf: sudo [-E] /usr/local/sbin/backup.sh
ACHTUNG: die Option -E gilt ab Version sudo-1.6.9
BITTE: Es gibt Versionen von sudo, die NUR mit /bin/sh aufgerufen werden können, in diesem Fall bitte /bin/sh -c nach sudo in der Datei authorized_keys ergänzen. BItte in diesem Fall auch Hinweis an Server-Admin.
- Kontrolle Antwort: Rejected
- Mitteilung über den eingerichteten Nutzer an das URZ und Absprache einer geeigneten Backup-Zeit
- Das Backup (RSYNC) wird vom URZ (per cron) gesteuert
- Nach dem Ende der Datensicherung werden Informationen zum Backup im AFS bereitgestellt im Verzeichnis:
/afs/tu-chemnitz.de/admin/backupservice/URZBACKUP/info/hostname
info gibt Informationen über die vorhandenen Sicherungsstände und deren Größen
log enthält log-Informationen vom täglichen rsync-Aufruf
Übersicht zu den Daten der Struktureinheit
- Der Zugriff auf die Datensicherungen kann per NFS erfolgen, siehe dazu den Punkt Rückstellen von Daten
- Bei Nutzung eines Firewalls "vor" dem Klienten müssen die entsprechenden Ports freigeschaltet werden. im Falle Linux und ssh ist das TCP-Port 22, siehe dazu auch http://samba.anu.edu.au/rsync/firewall.html