Linux als SOHO-Server

für Linux- und Windows-Clients
http://linux.eusterholz.dyndns.org

Kapitel:

Home
Debian Installation
Debian Etc.
Internet-Zugang
Telnet
FTP
r-Utilities
SSH
Printing
NTP
Nameserver
NFS/NIS/Automount
Samba (SMB-Server)
Apache (WEB-Server)
Modem / ISDN
Backup
Etc.


BackupPC

Grundlagen Backup ] Standard-Backup-Tools ] Backup im Netzwerk ] Bandlaufwerke ] rsnapshot / dirvish / rdiff-backup ] [ BackupPC ] Amanda ]


Bei dem Programm 'BackupPC' handelt es sich um eine Web-basierte Backup-Lösung zur Sicherung von diversen Clients mit verschiedenen Betriebssystemen, z.B. Unix/Linux- oder Windows-Systemen. Dabei ist 'BackupPC' mehr für die Sicherung im Netzwerk, mit mehreren zu sichernden Clients geeignet, als für die Sicherung von autonome Einzelplatzsysteme. 'BackupPC' unterstützt dabei volle- und inkrementelle-Sicherungen, das Programm basiert aus einer Reihe von Perl-Scripten, die über eine Weboberfläche bedient werden. Über diese können sich Benutzer und Administratoren einloggen, um Sicherungen zu erstellen oder Dateien/Verzeichnisse wiederherzustellen. Auch kann die Konfiguration über die Web-Oberfläche erfolgen. Der eigentliche Backup-Vorgang arbeitet dateiorientiert mit diverser Standard-Unix-Tools (wie z.B.: 'ssh', 'tar', 'rsync', 'smbmount', ...), dabei wird auf dem zu sichernden Systemen keine spezielle Client-Software benötigt. Weiterhin verfügt 'BackupPC' über ein informatives Reporting in Form von Status-Berichten und Log-Files, die über die Web-Schnittstelle, bzw. auch über E-Mails gegeben werden. Die Sicherungen werden von 'BackupPC' durch einen  intelligenten zeitgesteuerten Backup-Plan angestoßen. Im Normalfall werden die Sicherungen auf ein Festplattenmedium (einzelne Festplatten, Raid-Arrays, Logical Volumes, etc.) gesichert, was eine sehr schnelle Sicherung und auch Wiederherstellung möglich macht. Auch angesichts der immer steigenden Kapazitäten und sinkenden Kosten von Festplatten ist dieses Medium hierfür prädestiniert.

Auf der vorliegenden Seite wird der Einsatz von 'BackupPC' als Sicherungs-Lösung aufgezeichnet. Dabei wird zunächst auf die Installation/Konfiguration des Servers unter Debian-Linux eingegangen. Weiterhin wird anhand von zwei Beispiel-Clients das Vorgehen zum Sichern/Widerherstellen gezeigt. Bei den Beispiel-Clients wird exemplarisch ein Linux-System und ein Windows-System berücksichtigt.

Installation von BackupPC

Wie unter Debian üblich, kann 'BackupPC' am einfachsten mittels 'aptitude install backuppc' installiert werden. Alle weiteren Abhängigkeiten, wie die Installation von 'Apache' oder den notwendigen 'Samba'-Komponenten, sowie die Erstellung eines gesonderten Benutzers, werden hierbei berücksichtigt. Während der Installation sind noch einige Fragen zu 'Samba' und 'BackupPC' zu beantworten:

  • Workgroup/Domain Name ?                                         <eusterholz.smb>
  • Use password encryption?                                            <Ja>
  • Modify smb.conf to use WINS settings from DHCP?    <Nein>
  • Den Konfigurationsdateien Ihres Apache Aliase
    für /backuppc/ hinzufügen?                                            <Ja>

Danach wird ein Standardbenutzer 'backuppc' für die Web-Administration erstellt. Das Passwort des erstellten Benutzers wird bei der Installation angezeigt, es sollte wie vorgeschlagen, mit dem Kommando 'htpasswd' nach Abschluss der Installation geändert werden:

Nach Bestätigung mit dem 'Ok'-Buttons sollte die Installation abgeschlossen sein und ein erster Zugang auf die Web-Oberfläche kann versucht werden. Nach Eingabe von Benutzer und Passwort zur Authentifizierung, sollte sich 'BackupPC' im Browser ungefähr wie folgt darstellen:

Über den Web-Zugang kann das Sichern/Widerherstellen der einzelnen Clients geschehen, sowie der Status von  Server/Clients abgefragt werden. Auch kann hier die Konfiguration des Servers und der Clients zum größten Teil erfolgen, weiterhin steht eine Online-Dokumentation zur Verfügung.

Nach der Installation ist als einziger Client der 'BackupPC'-Server selbst, als 'localhost', eingetragen. Mit dem 'localhost' sollte auch schon alles funktionieren, d.h. es kann schon jetzt eine Sicherung bzw. Wiederherstellung durchführen können. Auch sollte man sich jetzt schon mal mit dem Handling des über die Web-Oberfläche vertraut machen.

Konfiguration von BackupPC

Im weiteren Verlauf wird kurz auf die weitere globale Konfiguration von 'BackupPC' eingegangen. Dabei werden auch schon die ersten Vorbereitungen für zwei zu sichernde Clients berücksichtigt. Wie erwähnt, sollen eine Linux- und ein Windows-Client dem Sicherungs-Server exemplarisch hinzugeführt werden. Die Konfiguration kann über die Web-Oberfläche oder auch in den einzelnen Konfigurationsdateien geschehen. Da die Konfiguration über die Web-Oberfläche zunächst vielleicht etwas verwirrend erscheint und eine gewisse Vertrautheit verlangt, wird die Konfiguration mittels eines normalen Editors direkt in den Konfigurationsdateien erfolgen.

Nach der Installation befinden sich die Konfigurationsdateien von 'BackupPC' im Verzeichnis '/etc/backuppc/'. Hier gibt es zwei elementare Konfigurationsdateien, die Datei 'hosts' und 'config.pl'.

Die Konfigurationsdatei 'hosts' enthält sozusagen die zu berücksichtigen Clients vom 'BackupPC'-Servers, mit den dazu berechtigten Benutzern. Bezogen auf die Web-Oberfläche sind die Clients in der 'Select-Box' für die einzelnen Clients wiederzufinden. Hier der Aufbau und Inhalt der 'hosts'-Konfigurationsdatei:

/etc/backuppc/hosts

...

#
# The first non-comment non-empty line gives the field names and should
# not be edited!!
#
host        dhcp    user    moreUsers     # <--- do not edit this line
#farside    0       craig   jill,jeff     # <--- example static IP host entry
#larson     1       bill                  # <--- example DHCP host entry
localhost   0       backuppc
nettop      1       admin    localuser,linux     # My Debian GNU/Linux System
notebook    1       admin    localuser,norbert   # My Windows XP System

In der ersten Spalte ist der Name des Backup-Clients zu finden, hier sollte der 'hostname' bzw. 'NetBIOS'-Name eingetragen werden. In der zweiten Spalte ist das DHCP-Flag zu finden, hierbei steht der Wert '0' für Systeme mit statische IP und '1' für Systeme mit dynamische IP (DHCP). Die dritte Spalte beinhaltet einen Benutzer, dem es erlaubt ist, sich an der 'BackupPC' Web-Oberfläche anzumelden um diesen Backup-Client zu managen. In der vierten Spalte können noch weitere Benutzer angegeben werden, die auch eine Berechtigung wie in der dritten Spalte haben.
In der vorliegenden 'hosts'-Datei sind schon zwei weitere Clients eingetragen, einmal der Debian-Linux-Client 'nettop' und der 'Windows XP'-Client 'notebook'. Beide Clients bekommen via DHCP ihre Netzwerk-Parameter und beide Clients können vom Benutzer 'admin' gemanagt werden, wobei der erste zusätzlich vom Benutzer 'localuser' und 'linux' und der zweite zusätzlich vom Benutzern 'localuser' und 'norbert' gemanagt werden kann.

Die zusätzlichen Benutzer müssen natürlich noch dem Backup-Server hinzugefügt werden. Hierdas Hinzufügen am Beispiel des Benutzers: 'localuser':

debian:~# htpasswd /etc/backuppc/htpasswd localuser
New password:********
Re-type new password:********
Adding password for user localuser
debian:~#

Die Konfigurationsdatei 'config.pl' ist als zentrale Konfigurationsdatei für alle Clients zu sehen. In ihr sind sozusagen die Default-Werte, die zunächst für alle Clients gelten, zu finden. Zusammen mit einer weiteren individuellen Client-Konfigurationsdatei '<CLIENT>.pl', wird hieraus die spezielle Konfiguration für den einzelnen Client gebildet. Auf die individuelle Konfigurationsdatei '<CLIENT>.pl' wird im weiteren Verlauf dieser Seite eingegangen. Für erste Versuche kann die zentrale Konfigurationsdatei zunächst so belassen werden, zumal fast jeder Parameter durch die individuelle Client-Konfiguration mit der Datei '<CLIENT>.pl' überschrieben werden kann. Hier ein Auszug aus der zentralen Konfigurationsdatei:

Auszug aus: /etc/backuppc/config.pl

...
#
# Important installation directories:
#
# TopDir - where all the backup data is stored
# ConfDir - where the main config and hosts files resides
# LogDir - where log files and other transient information
# InstallDir - where the bin, lib and doc installation dirs reside.
# Note: you cannot change this value since all the
# perl scripts include this path. You must reinstall
# with configure.pl to change InstallDir.
# CgiDir - Apache CGI directory for BackupPC_Admin
#
$Conf{TopDir} = '/var/lib/backuppc';
$Conf{ConfDir} = '/etc/backuppc';
$Conf{LogDir} = '';
$Conf{InstallDir} = '/usr/share/backuppc';
$Conf{CgiDir} = '/usr/share/backuppc/cgi-bin';
...
#
# Language to use. See lib/BackupPC/Lang for the list of supported
# languages, which include English (en), French (fr), Spanish (es),
# German (de), Italian (it), Dutch (nl), Polish (pl), Portuguese
# Brazillian (pt_br) and Chinese (zh_CH).
#
# Currently the Language setting applies to the CGI interface and email
# messages sent to users. Log files and other text are still in English.
#
$Conf{Language} = 'de';
...

Parameter die man sofort anpassen kann sind z.B. '$Conf(TopDir)', welches das Verzeichnis auf dem Server bezeichnet, wo die Sicherungen abgelegt werden. Oder 'Conf(Language)', welches die Sprache der Web-Oberfläche definiert.
Die Konfigurationsdatei ist recht gut dokumentiert, weitere Infos zu den einzelnen Parametern können in der Dokumentation nachgeschlagen werden. Auch lassen sich die einzelnen Parameter in der Web-GUI des Sicherungs-Servers wiederfinden und können dort verändert werden.

Zu bemerken ist, gemachte Konfigurations-Änderungen erst berücksichtigt werden, wenn 'BackupPC' neu gestartet wird ('/etc/init.d/packuppc restart').

Bsp.-Konfiguration eines Linux-Clients 'nettop'

Nun zur Sicherung eines Linux-Clients, wie schon in der obigen Konfigurationsdatei 'hosts' zu finden, der Client mit dem Namen 'nettop'.

Allgemein wird von 'BackupPC' empfohlen einen Linux-Clients mit dem Tool 'rsync' zu sichern. Aus diesem Grund muss der Linux-Client über das SSH-Protokoll verfügen und auch das Tool 'rsync' installiert haben. Bezogen auf ein Debian-System können evtl. diese Komponenten einfach mit:

aptitude install ssh rsync

nachinstalliert werden.

Als erstes sollte geprüft werden ob die Namensauflösung für den zu sichernden Client in beiden Richtungen korrekt arbeitet. Hierzu kann das Tool 'nslookup' genutzt werden:

debian:~# nslookup nettop
Server: 192.168.10.10
Address: 192.168.10.10#53

Name: nettop.eusterholz.tld
Address: 192.168.10.132

debian:~#

Auch sollte die umgekehrte Auflosung IP-Adresse nach 'hostname' funktionieren:

debian:~# nslookup 192.168.10.132
Server: 192.168.10.10
Address: 192.168.10.10#53

132.10.168.192.in-addr.arpa name = nettop.eusterholz.tld.

debian:~#

Zu sehen ist hier, dass der Client 'nettop' und auch die IP-Adresse von 'nettop' korrekt aufgelöst werden (grüne Markierung).

Damit der Zugriff auf dem Client gewährleistet ist, ist ein passwortloser SSH-Zugang einzurichten. Hier ein komplettes Beispiel wie dieses zu machen ist:
Zunächst die notwendeigen Aktionen auf dem 'BackupPC'-Server (ausgehend als Benutzer 'root' auf dem Server 'debian'):

debian:~# su backuppc
debian:/root$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/var/lib/backuppc/.ssh/id_rsa):<RETURN>
Created directory '/var/lib/backuppc/.ssh'.
Enter passphrase (empty for no passphrase):<RETURN>
Enter same passphrase again:<RETURN>
Your identification has been saved in /var/lib/backuppc/.ssh/id_rsa.
Your public key has been saved in /var/lib/backuppc/.ssh/id_rsa.pub.
The key fingerprint is:
81:49:3d:91:17:4b:d5:53:2a:1d:1f:5a:0b:f6:ad:f0 backuppc@debian
The key's randomart image is:
+--[ RSA 2048]----+
| ...ooo.+.+.     |
| . o+.....B++    |
| o .o. B.o+o     |
| . + .           |
| S E             |
|                 |
|                 |
|                 |
|                 |
+-----------------+
debian:/root$ ssh-copy-id -i ~/.ssh/id_rsa.pub root@nettop
root@nettop's password:********
Now try logging into the machine, with "ssh 'root@nettop'", and check in:

.ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

debian:/root$

Anschließend die notwendigen Aktionen für dem zu sichernden Linux-Client (ausgehend als Benutzer 'root' auf dem Client 'nettop'):

nettop:~# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):<RETURN>
Enter passphrase (empty for no passphrase):<RETURN>
Enter same passphrase again:<RETURN>
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
ab:a0:d4:84:9a:93:d3:26:45:c5:66:df:9c:de:99:8f root@nettop
The key's randomart image is:
+--[ RSA 2048]----+
| ..              |
| .+              |
| .o . o .        |
| . . . +         |
| o . oS. o       |
| * o ..+         |
|B + o . o        |
| * C . . E .     |
| . .             |
+-----------------+
nettop:~# ssh-copy-id -i ~/.ssh/id_rsa.pub backuppc@debian
The authenticity of host 'debian (192.168.10.212)' can't be established.
RSA key fingerprint is e5:19:65:5c:6e:10:f1:c8:0a:61:aa:cf:07:6a:97:2a.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'debian,192.168.10.212' (RSA) to the list of known hosts.
backuppc@debian's password:********
Now try logging into the machine, with "ssh 'backuppc@debian'", and check in:

.ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

nettop:~#

Nachdem die Keys erzeugt und ausgetauscht wurden, sollte der wechselseitige passwortlose SSH-Zugang geprüft werden. Das Prüfen des Zugangs kann, bezogen auf das Beispiel, mit dem Kommando:

ssh root@nettop auf dem 'BackupPC'-Server, bzw. mit: ssh backuppc@debian

auf dem Client erledigt werden. Beide Zugänge sollten nun ohne Passwortabfrage möglich sein.

Als nächstes ist ist die individuelle Konfigurationsdatei für das zu sichernde System zu erstellen. Wie schon erwähnt, die Konfigurationsdatei für das zu sichernde System setzt sich aus der globalen Konfigurationsdatei 'config.pl' und '<CLIENT>.pl' zusammen, wobei die individuelle '<CLIENT>.pl' die Werte der globalen Konfigurationsdatei sozusagen überschreibt. Hier ein Beispiel einer individuellen Konfigurationsdatei, bezogen auf die Beispielsicherung die Datei 'nettop.pl':

Auszug aus: /etc/backuppc/nettop.pl

$Conf{XferMethod} = 'rsync';
$Conf{RsyncShareName} = '/';
$Conf{BackupFilesExclude} = ['/cdrom','/dev','/media','/mnt','/proc','/sys','/tmp'];

# $Conf{RsyncClientPath} = '/usr/bin/rsync';
# $Conf{RsyncClientCmd} = '$sshPath -q -x -l root $host $rsyncPath $argList+';
# $Conf{RsyncClientRestoreCmd} = '$sshPath -q -x -l root $host $rsyncPath $argList+';

# $Conf{BackupFilesOnly} = {'/' => ['/home']}; # Nur dieses Verzeichnis
# $Conf{FullPeriod} = 6.97;                    # Welcher Abstand zwischen den Fullbackup
# $Conf{FullKeepCnt} = [1,1,1,1];              # Anzahl der Fullbackups
# $Conf{IncrKeepCnt} = 1;                      # Anzahl der Inkrementellen Backups

Da die empfohlene Sicherungsmethode bei Unix-Systemen für 'BackupPC' 'rsync' ist, wird der Parameter '$Conf(XferMethod' entsprechend gesetzt. Mit '$Conf(RsyncShareName)' wird das Verzeichnis definiert, ab der die Sicherung passieren soll. Dabei können mit '$Conf(BackupFilesExclude)' gezielt Verzeichnisse ausgeschlossen werden.
Eigentlich sollten diese drei Parameter schon ausreichen für eine Komplettsicherung eines Linux-Systems.

Bsp.-Konfiguration eines Windows-Clients 'notebook'

In dem nun folgenden Beispiel, zum sichern eines Window-Systems, wird die Methode 'smb' mittels 'smbclient' eingesetzt. Das Windows-System hört dabei auf dem Namen 'notebook'.

Auch sind bei dem zu sichernden Windows-System ebenfalls einige Dinge zu beachten und Vorbereitungen zu treffen, bevor mittels 'BackupPC'-Server gesichert werden kann.

Zunächst sollte geprüft werden, ob die NetBIOS-Namensauflösung via 'nmblookup' gewährleistet ist. Hier ein Beispiel, ob die Auflösung vom Sicherungs-Server aus gewährleistet ist:

debian:~# nmblookup notebook
querying notebook on 192.168.10.255
192.168.10.130 notebook<00>
debian:~#

Es wird zunächst versucht anhand des NetBIOS-Namen 'notebook' die IP-Adresse zu ermitteln. In diesem Beispiel wird diese mit der IP-Adresse '192.168.10.130' positiv zurückgegeben.
Auch sollte gleich geprüft werden, ob die ungekehrte Auflösung, also von IP-Adresse nach NetBIOS-Namen, gewährleistet ist:

debian:~# nmblookup -A 192.168.10.130
Looking up status of 192.168.10.130
NOTEBOOK <00> - M <ACTIVE>
EUSTERHOLZ.SMB <00> - <GROUP> M <ACTIVE>
NOTEBOOK <20> - M <ACTIVE>
EUSTERHOLZ.SMB <1e> - <GROUP> M <ACTIVE>

MAC Address = 00-17-42-00-0A-91

debian:~#

 In diesem Beispielen wird der NetBIOS-Name 'notebook' und auch die IP-Adresse '192.168.10.130' korrekt aufgelöst.

Als nächstes ist auf dem Windows-Client eine Freigabe für den zu sichernden Bereich zu erstellen. Da in diesem Beispiel der komplette PC gesichert werden soll, ist das Laufwerk , in diesem Fall 'C:' freizugeben:

    

Als Freigabename wurde 'C' gewählt und hierfür eine Freigabeberechtigung für den Lokalen-Benutzer 'NOTEBOOK\Backup' erstellt, welcher einen Vollzugriff für die Freigabe besitzt, sodass auch ein Sichern und Widerherstellen möglich ist. Zuvor wurde der Lokale Benutzer 'Backup' dem System hinzugeführt und mit Administrationsrechten und einen Passwort versehen.

Wie auch schon beim vorherigen Linux-Client ist auch für den Windows-Client eine individuelle '<CLIENT>.pl'  zu erstellen., hier in diesem Beispiel mit den Namen 'notebook.pl':

Auszug aus: /etc/backuppc/notebook.pl

$Conf{XferMethod} = 'smb';
$Conf{SmbShareName} = ['C'];
$Conf{SmbShareUserName} = 'Backup';
$Conf{SmbSharePasswd} = 'SECRET-PASSWORD';

# These files/paths will be excluded from the backup:
$Conf{BackupFilesExclude} = {
  '*' => [
    '/hiberfil.sys',
    '/pagefile.sys',
    '/WUTemp',
    '/RECYCLER',
    'UsrClass.dat',
    'UsrClass.dat.LOG',
    'NTUSER.DAT',
    'ntuser.dat.LOG',
    '*/Temporary?Internet?Files/*',
    '*/Temp/*',
    '*.tmp',
    '*.bak'
  ]
};

# Minimum period in days between full and incremental backups:
# $Conf{FullPeriod} = '6.97';
# $Conf{IncrPeriod} = '0.97';

# Number of full and incremental backups to keep:
# $Conf{FullKeepCnt} = ['2'];
# $Conf{IncrKeepCnt} = '6';

Mit '$Conf{XferMethod}' wird die Transfermethode 'smb' gesetzt und mit '$Conf{SmbShareName}' wird die Freigabe 'C' definiert. Damit auf die Freigabe zugegriffen werden kann ist mit '$Conf{SmbShareUserName}' der Benutzer und mit '$Conf{SmbSharePasswd}' das dazugehörige Passwort mit anzugeben. Mit '$Conf{BackupFilesExclude}' können noch Dateien und Verzeichnisse angegeben werden die bei der Sicherung nicht berücksichtigt werden sollen.

Sicherung/Widerherstellung mittels BackupPC

Nachdem der Backup-Server und die Clients eingerichtet sind, kann das Sichern und Wiederherstellen über die Web-Oberfläche von 'BackupPC' erfolgen. Ausgehend von der Web-Startseite von 'BackupPC', ist zunächst der zu berücksichtigenden Client aus der 'Select Box' auszuwählen.

Zum Sichern eines Clients kann ausgehend von der Hauptseite des Clients nun ein vollständiges- bzw. inkrementeles-Backup gestartet werden. Nach einigen Bestätigungen zum Starten der Sicherung sollte der Sicherungs-Job aktiv werden. Je nach Größe des zu sichernden Datenbestands, kann dieses einige Zeit in Anspruch nehmen.

Der Erfolg der Sicherung kann in den Log-Dateien, die auch über die GUI von 'BackupPC' erreichbar ist, geprüft werden.

Zum Wiederherstellen von Verzeichnissen und Dateien ist der Punkt 'Datensicherung anzeigen' auszuwählen, woraufhin sich eine Art Explorer mit der kompletten Datensicherung des jeweiligen Clients öffnet. In diesem Art Web-Explorer kann wie gewohnt navigiert werden. Dateien oder Verzeichnisse können einfach zum Wiederherstellen selektiert werden und die Widerherstellung kann eingeleitet werden.

Auf jeden Fall sollte man sich gerade mit der Bedienung  der GUI-Oberfläche von 'BackupPC' vertraut machen und einige Sicherungen und Wiederherstellungen von Clients für den evtl. eintretenden Ernstfall üben.

Anmerkungen

Einige Konfigurationsbeispiele für diverse Client-Konfigurationsdateien '<CLIENT>.pl' sind im Verzeichnis '/usr/share/doc/backuppc/examples' zu finden. Diese Dateien können als Template für eigene individuelle Lösungen dienen.

Auch sollte man sich mit der Konfiguration von Zeitplänen die von 'BackupPC' unterstützt werden vertraut machen. Die Dokumentation bietet hier Hilfestellung.

Mit dem Parameter '$Conf(EMailAdminUserName)' kann eine E-Mail Adresse festgelegt werden. Eine Test-Mail kann als Benutzer 'backuppc' mit folgenden Kommando versendet werden:

/usr/share/backuppc/bin/BackupPC_sendEmail -u backuppc@domain.tld

Weitere Infos

Homepage: BackupPC http://backuppc.sourceforge.net/
System-Dokumentation: backuppc /usr/share/doc/backuppc
Manualseite zu Backuppc man backuppc
BackupPC Wiki http://backuppc.wiki.sourceforge.net/

Home ] Nach oben ] Grundlagen Backup ] Standard-Backup-Tools ] Backup im Netzwerk ] Bandlaufwerke ] rsnapshot / dirvish / rdiff-backup ] [ BackupPC ] Amanda ]

letzte Änderung: 08. Mai 2009

 

Copyright © 2004 Norbert Eusterholz