Studieren in Chemnitz. Wissen, was gut ist.






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:

  1. Kontrolle der installierten Software rsync
  2. 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
         
  3. 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 !
  4. 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
    • in /etc/ssh/sshd_config sollten folgende Optionen kontrolliert werden:
      PasswordAuthentication yes
      ChallengeResponseAuthentication no
      RhostsRSAAuthentication yes
      IgnoreRhosts no
              
  5. 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
         
  6. 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
  7. Mitteilung über den eingerichteten Nutzer an das URZ und Absprache einer geeigneten Backup-Zeit
  8. Das Backup (RSYNC) wird vom URZ (per cron) gesteuert
  9. 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
  10. Der Zugriff auf die Datensicherungen kann per NFS erfolgen, siehe dazu den Punkt Rückstellen von Daten
  11. 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