Ansätze wie FTP oder FTPS eignen sich nicht wirklich, da dort manchmal die MAC Zeiten nicht beibehalten werden und somit Dateien immer wieder übertragen werden, ebenfalls wird bei FTP die gesamte Datei übertragen und nicht nur der Unterschied zur vorherigen Version.
Vorteile von rsync:
- inkrementeller Abgleich der Daten
- MAC Zeiten bleiben erhalten
- gut konfigurierbar
Leider ist rsync ein Programm aus der *nix Welt, sodass man unter Windows Cygwin nutzen muss. Wer cygwin nicht unbedingt installieren will, der kann eine portable Version von Cygwin nutzen, so wie sie Deltacopy mitliefert.
http://www.aboutmyip...p/DeltaCopy.jsp
Deltacopy ist ein Tool, welches unter Windows die Funktionalitäten von rsync bereitstellt. Das Programm unterteilt sich in eine Serverkomponente und in eine Clientanwendung.
- Deltacopy auf den Server entpacken, z.b. unter C:\Deltacopy
- DeltaS starten
- Virtual Directories -->Add new directory
- bei path gebt ihr das Verzeichnis auf dem Server an, in dem die Backups landen sollen. Das Verzeichnis muss dabei existieren
- Unter "Comment" wird der Name des Backupziels eingetragen, z.b. "tavocsBackup", dieser Name wird dann im client benutzt
- Wer möchte kann nun noch authentication verwenden, sodass der Client sich erst auf dem Server anmelden muss. Also irgendeinen Nutzernamen und passwort ausdenken und eintragen
- auf den Tab ServerStatus wechseln und den Server starten, dabei wird ein Dienst installiert, sodass der Server immer läuft.
- Port 873 auf dem Server öffnen, über diesen verbinden sich die Clients. Also einmal auf dem Server selbst (Windows Firewall) und einmal im Router, wenn es denn über das Internet gehen soll
Der Server ist nun fertig eingerichtet und bereit für den ersten Einsatz. Als nächstes brauchen wir natürlichen einen Client, der Daten sichern möchte.
- Deltacopy auf den Client entpacken, z.b. unter C:\Deltacopy
- DeltaC starten
- Add New Profile
- irgend einen Namen vergeben, IP des Servers eintragen dann auf "Test Connection" klicken, danach den Virtual Directory Namen eintippen, oder per ... auswählen lassen. In meinem Fall tavocsBackup. Wenn dieses nicht funktioniert ist das auch nicht so schlimm, man kann die Werte nachher ändern (z.b. kann es passieren, dass man erst Nutzername/Passwort brauch, um sich zu verbinden)
- Add Profile auswählen
- Wer eine authentifizierung bentutzt muss auf den Tab "authentication" und dort den user/Pass eintragen
- danach auf den Tab "File List" und dort können nun die Verzeichnisse eingegeben werden, von denen eine Sicherung erstellt werden soll
- unter ServerName ist die IP des Servers einzutragen und unter Virtual Directory (wenn es denn noch leer ist) tavocsBackup, oder was immer ihr auch im Server eingetippt habt.
- auf Modify Schedule könnt ihr nun eintragen wann das Backup durchgeführt werden soll.
- Unter dem Tab "options" können diverse Optionen vorgenommen werden, z.b. habe ich nur die ersten 3 ausgewählt, da ich nicht möchte das irgendwelche Dateien vom Server gelöscht werden.
- Um auch große Dateien zu übermitteln ist es schön, wenn Uploads fortgesetzt werden können.In Deltacopy muss dazu im Tab "Options" bei "additional parameters"
--partial --timeout=300
gesetzt sein. Damit werden die teiluploads nicht gelöscht, sondern weiterverwendet. Der Timeout sorgt dafür, dass bei Verbindungsabbruch die rsync instanz serverseitig beendet wird.
Damit würde das Backup jetzt schonmal funktionieren. Das blöde ist jedoch, dass rsync die Daten unverschlüsselt über das Netzwerk schickt. Wer das Backup nur im lokalen Netz macht kann hier aufhören zu lesen. Für alle anderen ist der folgende Abschnitt gedacht.
Um eine sichere Verbindung über das Internet zu gewährleisten nutze ich Putty in Verbindung mit einer Linux VM (die bei mir sowieso läuft). Alternativ könnte man auch auf dem Windows Server einen SSH Server installieren, z.b. http://sshwindows.so...e.net/download/
In diesem Tut erkläre ich es jedoch anhand von Linux.
Clientseitig werden die Programme putty und puttygen benötigt: http://www.chiark.greenend.org.uk/~sgtatha...y/download.html
- Puttygen ausführen
- Schlüsselparameter wählen, kann eigentlich so bleiben
- Generate klicken
- mit der Maus über das Programm wackeln, bis der balken voll ist
- Passwort für den Key angeben
- privaten Schlüssel sichern, z.b. in C:\Deltacopy auf dem Client
- public Key aus dem Feld oben kopieren und temporär in Notepad oder so einfügen
- Puttygen schliessen
Damit haben wir jetzt 1 Schlüsselpaar, mit dem man sich am SSH Server sicher anmelden kann.
- Putty nach C:\Deltacopy kopieren
- Putty ausführen
- die IP des Servers bei HostName eintragen und den SSH Port (i.d.R 22). Falls dieser auf dem Server noch nicht freigegeben ist in der Firewall durchlassen, ebenfalls im Router. Es kann auch ein mapping auf einen anderen Port stattfinden. Zb. von 22000 zu 22. Sodass in Putty dann 22000 steht.
- Bei Connection Type SSH auswählen
- Close Window on exit auf allways stellen
- Bei Saved Session den Namen "Backup" eintragen und auf Save klicken
- links auf Connection --> Data gehen und bei "auto login Name" einen LinuxNutzer eintragen. Z.b. backup. Dieser muss im Linux natürlich existieren.
- links auf SSH--> Auth klicken und bei Browse den sicheren Schlüssel angeben (c:\Deltacopy\deinkey...)
- links auf SSH-->Tunnels gehen und als Source Port 873 eintragen und als Destination die IP des Servers und den Port angeben in der Form: "192.168.1.1:873". Danach auf Add klicken und wieder auf Session (links oben) gehen und auf save klicken.
- Nun haben wir eine Putty Session und das Fenster kann geschlossen werden
Nun gehts auf gewohnte Weise in das Linux System als der User Backup. Dort muss unter /home/backup/.ssh eine Datei mit dem Namen "authorized_keys" erstellt werden. Diese mit vi öffnen, "i" drücken und den Inhalt aus notepad (public key) einfügen und dann speichern mit "wq".
Wenn wir jetzt Putty öffnen und unser Profil laden und uns verbinden, dann müsste die Verbindung klappen und eine Abfrage nach dem Zertifikatsschlüssel erscheint. Das automatische Login ist also fast fertig. Da jetzt ein Tunnel zwischen Client und Server existiert müssen folgenden Änderungen am Deltacopy Client vorgenommen werden:
- Profil laden
- Servername auf "localhost" ändern
- überprüfen ob die Verbindung noch funktioniert indem auf "..." geklickt wird. Erscheint keine fehlermeldung hat es funktioniert und die Daten werden verschlüselt übertragen.
Jetzt werden also Daten automatisch sicher und speichereffizient zum Server übertragen, aber nur wenn der Tunnel steht. Wer also nicht jedes mal den Tunnel öffnen möchte kann auch dieses automatisieren. Diese variante setzt allerdings vorraus, das der Client vertrauenswürdig ist, weil der Zertifikatskey lesbar hinterlegt werden muss. (Es gibt zwar auch Pageant, der das eintippen übernimmt, aber das ist lästig...)
- wechselt auf dem client in das Verzeichnis C:\Deltacopy
- erstellt eine Datei mit dem Namen "backup_start.bat"
- start /MIN C:\Deltacopy\putty.exe -load "Backup" -pw "deinCertKey"
- diese Zeile öffnet putty und lädt die vorgefertigte Session mit dem Namen backup und übergibt ihr das Passwort
- "aufgabenplanung" unter windows öffnen
- neue Aufgabe anlegen mit folgenden Eigenschaften: unabhängig von Benutzeranmeldung starten, Trigger: Bei Systemstart, Aktion: Programm starten C:\Deltacopy\backup_start.bat
- das sorgt dafür, dass bei Systemstart unabhängig vom Nutzer der Tunnel geöffnet wird. Wer seinen Rechner nie in den Ruhezustand schickt kann hier aufhören zu lesen.
- Nun wird eine 2te Aufgabe erstellt, bei der fast alles gleich ist, bist auf den Trigger. Dieser lautet nun: Bei einem Ereignis --> Minimal --> Protokoll: Microsoft-Windows-Diagnostics-Performance/Betriebbereit -->Quelle: Diagnostics-Performance-->Ereignis ID: 300
- damit wird der tunnel auch nach einem Standby/Hibernate wieder geöffnet, da die verbindung ja unterbrochen wird
Damit wäre das Tutorial beendet. Ihr habt nun ein Backup, welches über eine sichere Datenverbindung die Daten sehr effizient sichert.
Natürlich kann man als Server auch den Windows Server wegnehmen und direkt Linux benutzen, dann kann man rsync direkt serverseitig nutzen. Ebenfalls ist es möglich die LinuxVM wegzulassen und OpenSSH auf dem Windows Server zu installieren.
Das gesamte Konzept beruht darauf, dass Client und Server vertrauenswürdig sind und nur das Internet als gefährlich eingestuft wird. Das macht auch dahingehend Sinn, da wenn man im Besitz des Servers ist, braucht man eh nicht mehr verschlüsseln, da man alles lesen kann. Wer den Client in seiner Macht hat braucht den Server nicht mehr, da er die Daten live auf dem Client hat und nicht erst über das Backup an die Daten muss.
Ich habe mich jedoch für die oben beschriebene Kombination aus folgenden Punkten entschieden:
- das Linux hat fast keine Angriffsfläche, es ist nur Port 22 offen
- der LinuxNutzer hat überhaupt keine Berechtigungen im restlichen Netzwerk
- Linux ist so ressourcenschonend, das die VM nicht auffällt
- VM ist isoliert vom Restsystem, dadurch i.d.R sicherer als wenn ein Windows direkt ans Netz geht
Falls ihr auf dem Server nicht in der Lage seit auf die daten zuzugreifen, so kann man serversetig in Deltacopy auf das Profil rechtsklicken und "fix permission" auswählen.
Dieser Beitrag wurde von tavoc bearbeitet: 24. Mai 2010 - 12:18