Willkommen auf linux-home-server.de

Anleitung zur Installation eines Linux-Home-Servers mit Ubuntu 14.04

Letztes Update: 03. Juni 2014

Diese Dokumentation beschreibt die Installallation eines Linux-Home-Servers mit Ubuntu 14.04.
Warum Ubuntu? Weil die LTS-Versionen von Ubuntu 5 Jahre mit Updates versorgt werden. Ich hatte diese Dokumentation ursprünglich vor vielen Jahren für Debian 4.0 (Etch) geschrieben. Zu dieser Zeit dauerte es noch mehrere Jahre bis bei Debian ein neues Release heraus kam. Inzwischen erfolgen die Releasewechsel bei Debian alle 1 bis 2 Jahre. Das ist mir einfach zu stressig.

Ich beschränke mich hier auf die Anwendungen und Dienste, die man, aus meiner Sicht, typischer Weise auf einem Linux-Home-Server installieren würde. Das Ganze versuche ich so einfach wie möglich zu halten, so dass man kein Linux-Profi sein muss, um die Installation nachzuvollziehen. Allerdings sollte man schon mal etwas Erfahrungen unter Linux gesammelt haben. Wenn nicht, dann dauert es sicherlich nur etwas länger. Support kann ich aus Zeitgründen nicht leisten. Dafür stehen einschlägige Internetforen zur Verfügung. Zu empfehlen ist zum Beispiel: http://forum.ubuntuusers.de/.

Über Informationen zu mehr oder weniger erfolgreich verlaufenen Installationen würde ich mich freuen, um ggf. Verbesserungen vornehmen zu können.

Inhalt

  1. Vorüberlegungen
  2. Installation Linux-Grundsystem
  3. DNS- und DHCP-Server Installation und Konfiguration
  4. Datei-Server Samba installieren und konfigurieren
  5. Linux-Druck-Server CUPS einrichten
  6. Media Streaming Server
  7. Web-Server Apache2 mit PHP5 installieren
  8. Mail-Server Installieren und Konfigurieren
  9. Datensicherung
  1. Vorüberlegungen

    Was soll der Linux-Home-Server können?

    • Datei-Server - Dateiablage für persönliche und gemeinsame Dokumente
    • Druck-Server - Den PCs im Heimnetz den vorhandenen Drucker zur Verfügung stellen. (Damit kann auch über WLAN gedruckt werden.)
    • Media Streaming Server - Fotos, Videos und Musik zum Fernsehgerät streamen.
    • E-Mail Server - Zentrale und sichere Speicherung aller Emails mit Zugriff über IMAP
    • Grafische Benutzeroberfläche zur Administration
    • Datensicherung

    Tipps zur Server-Hardware

    Komplett-Systeme für Linux-Home-Server, die ich wirklich empfehlen kann, habe ich noch nicht gefunden.

    Deshalb habe ich meine PCs und Server bisher immer selbst gebaut. Meistens waren es alte PCs, die ich mit neuen Komponenten für meine Ansprüche hergerichtet habe. Inzwischen gibt es viele Bauanleitungen für energiesparende Heimserver. Zum Beispiel hier:
    http://www.heise.de/ct/projekte/Bauvorschlaege-fuer-PCs-und-Server-1375124.html

    Mein altes, nach vielen Jahren immer noch produktiv laufendes System:
    Mainboard: Intel Q35
    CPU: Intel Celeron 430
    RAM: 2 GB DDR2
    Festplatte: 1TB SATA2, Western Digital Modell: WD10EADS
    Festplatte: 500 GB IDE, Seagate, für Backup
    Netzteil: bequiet! Pure Power 300Watt

    Empfehlung zur Arbeitsspeichergröße:
    Ich habe schon Linuxserver mit nur 128 MB RAM installiert. Möglich ist das, nur für den produktiven Betrieb nicht sehr performant, denn Linux benötigt RAM für den Dateisystemcache. Ohne Media-Streaming-Server sollten es mindestens 1 GB, mit Streaming-Server mindestens 2 GB sein, weil das System sonst auf die Festplatte auslagert.

    Empfehlung zur Festplattenauswahl:
    In meinem Linux-Home-Server läuft seit vielen Jahren eine "WD Green". Diese war im Preis günstig und verbraucht wenig Energie, ist aber nicht für Dauerbetrieb ausgelegt. Mich stört das nicht, weil ich meinen Server, wenn ich ihn nicht brauche, ausschalte.
    Soll der Server im Dauerbetrieb laufen, benötigt man auch eine passende Festplatte. Hier sind z.B. die WD Red zu empfehlen.
    Ein RAID-System würde ich zu Hause nicht betreiben. Es verbraucht nur unnötig mehr Energie. Das Geld kann man lieber in eine gute USB-Backup-Platte investieren. (siehe weiter unten)

    Die nachfolgend beschriebene Installation erfolgt auf einem Wortmann-PC mit Artikel-Nr.: 1009385. Die Leistungsaufnahme liegt im Leerlauf bei ca. 24 Watt.

    Hinweise zum Betrieb

    An einem Server (egal ob Linux, Unix oder Windows) muss man sich nicht anmelden, um ihn zu betreiben. Nur zu administrativen Zwecken, wenn man darauf etwas einzurichten hat, meldet man sich an und auch das macht man üblicherweise remote per ssh. Das Herunterfahren erfolgt bei unserem Heimserver durch kurzes drücken des Powerknopfes (Einschalters). Befindet man sich auf der Konsole, löst ein init 0 das Herunterfahren und init 6 den Neustart aus. Zum Abmelden von der Konsole genügt es exit einzugeben.

  2. Installation Linux-Grundsystem

    Zuerst laden wir uns die CD herunter: Ubuntu-Server 14.04 LTS

    Zur Installation ist von der Linux-CD zu starten und die Sprache auszuwählen, danach F6 Sonstiges und Expertenmodus. Jetzt wählen wir den obersten Menüpunkt Ubuntu Server installieren.

    Angaben und Auswahlpunkte während der Installation:

    Menüpunkt / Abfrage Auswahl / Angaben
    Ubuntu Installer Hauptmenü Wählen Sie den nächsten Schritt im Installationsprozess: Sprache wählen
    wählen Sie eine Sprache Installation in der gewählten Sprache fortsetzen? Ja
    Auswählen des Standorts Land oder Gebiet: Deutschland
    Konfigurieren des Gebietsschemas (locale) Land, das zur Bestimmung des Standard-Gebietsschemas verwendet wird: Deutschland - de_DE.UTF-8
    Konfigurieren des Gebietsschemas (locale) Zusätzliche-Gebietsschemata: hier muss nichts ausgewählt werden
    Konfigurieren des Gebietsschemas (locale) System-Gebietsschema: de_DE.UTF-8
    Ubuntu Installer Hauptmenü Wählen Sie den nächsten Schritt in der Installationsroutine: Tastatur konfigurieren
    Tastatur konfigurieren Tastaturmodell erkennen? Ja
    Tastatur konfigurieren - Tastaturmodell erkennen? Ja - danach sind ein paar Tasten zur Erkennung zu drücken, was sich über mehrere Auswahldialoge erstreckt.
    Ubuntu Installer Hauptmenü Wählen Sie den nächsten Schritt in der Installationsroutine: CD-ROM erkennen und einbinden
    CD-ROM erkennen und einbinden Diese Module laden: usb-storage (Es schadet nicht, hier die vorgeschlagenen Module zu aktzeptieren.)
    Ubuntu Installer Hauptmenü Wählen Sie den nächsten Schritt in der Installationsroutine: Debconf-Vorkonfigurationsdatei laden
    Ubuntu Installer Hauptmenü Wählen Sie den nächsten Schritt in der Installationsroutine: Installer-Komponenten von CD laden
    Installer-Komponenten von CD laden Zu ladende Installer-Komponenten: hier brauchen wir nichts auszuwählen
    Ubuntu Installer Hauptmenü Wählen Sie den nächsten Schritt in der Installationsroutine: Virtuelle Treiber-Disks des Hardware-Herstellers detektieren
    Ubuntu Installer Hauptmenü Wählen Sie den nächsten Schritt in der Installationsroutine: Netzwerk-Handware erkennen
    Ubuntu Installer Hauptmenü Wählen Sie den nächsten Schritt in der Installationsroutine: Netzwerk einrichten
    Netzwerk einrichten Netzwerk automatisch einrichten? Nein
    Netzwerk einrichten IP-Adresse: 192.168.2.98 (Informieren Sie sich, welchen IP-Adressbereich Ihr DSL-Router vergibt und welche Adresse außerhalb des DHCP-Bereichs liegt.)
    Netzwerk einrichten Netzmaske: 255.255.255.0
    Netzwerk einrichten Gateway: 192.168.2.1 (Das ist die Adresse Ihres DSL-Routers.)
    Netzwerk einrichten Adresse des DNS-Servers: 192.168.2.1 (Das der DSL-Router.)
    Netzwerk einrichten Gegenwärtig konfigurierte Netzwerk-Parameter:
    Schnittstelle = p2p1
    IP-Adresse = 192.168.2.98
    Netzmaske = 255.255.255.0
    Gateway = 192.168.2.1
    pointopoint = nichts
    Nameserver = 192.168.2.1
    Sind diese Informationen richtig? Ja (Falls die Informationen wirklich richtig sind.)
    Netzwerk einrichten Wartezeit (in Sekunden) für die Erkennung einer Verbindung: 3
    Netzwerk einrichten Rechnername: srv01 (oder auch ein anderer Name)
    Netzwerk einrichten Domain-Name: heimnetz.local
    Ubuntu Installer Hauptmenü Wählen Sie den nächsten Schritt in der Installationsroutine: Benutzer und Passwörter einrichten
    Benutzer und Passwörter einrichten Shadow-Passwörter benutzen? Ja
    Benutzer und Passwörter einrichten root das Anmelden erlauben? Ja
    Benutzer und Passwörter einrichten Root-Passwort: ********** (Es sollten schon mindestens 8 Zeichen sein.)
    Benutzer und Passwörter einrichten Soll jetzt ein normales Benutzerkonto erstellt werden? Nein
    Ubuntu Installer Hauptmenü Wählen Sie den nächsten Schritt in der Installationsroutine: Uhr einstellen
    Uhr einstellen Die Uhr mittels NTP einstellen? Ja
    Uhr einstellen Zu verwendender NTP-Server: ntp.ubuntu.com
    Uhr einstellen Ist die Zeitzone korrekt? Ja - wenn Europe/Berlin angezeigt wird.
    Ubuntu Installer Hauptmenü Wählen Sie den nächsten Schritt in der Installationsroutine: Festplatten erkennen
    Ubuntu Installer Hauptmenü Wählen Sie den nächsten Schritt in der Installationsroutine: Festplatten partitionieren
    Festplatten partitionieren Partitionierungsmethode: Manuell
    Festplatten partitionieren Wir wählen jetzt die Zeile mit "FREIER SPEICHER"
    Festplatten partitionieren Wie mit freiem Speicher verfahren: Eine neue Partition erstellen
    Festplatten partitionieren Neue Größe der Partition: 1 GB
    Festplatten partitionieren Typ der neuen Partition: Primär
    Festplatten partitionieren Position der neuen Partition: Anfang
    Festplatten partitionieren Partitionseinstellungen: Benutzen als: Auslagerungsspeicher (Swap)
    Festplatten partitionieren Partitionseinstellungen: Anlegen der Partition beenden
    Festplatten partitionieren Wir wählen jetzt wieder "FREIER SPEICHER"
    Festplatten partitionieren Wie mit freiem Speicher verfahren: Eine neue Partition erstellen
    Festplatten partitionieren Neue Größe der Partition: 499.1 GB (Hier wird jetzt der gesamte verbleibende Speicher angezeigt, den wir die übernehmen.)
    Festplatten partitionieren Typ der neuen Partition: Primär
    Festplatten partitionieren Partitionseinstellungen: Benutzen als: Ext4-Journaling-Dateisystem - so lassen und "Einbindungsoptionen" wählen
    Festplatten partitionieren Einbindungsoptionen: noatime (mit Leertaste wählen)
    Festplatten partitionieren Anlegen der Partition beenden
    Festplatten partitionieren Partitionierung beenden und Änderungen übernehmen
    Festplatten partitionieren Änderungen auf die Festplatten schreiben? Ja (Nur wenn Sie sich sicher sind, dass keine wichtigen Daten überschrieben werden!)
    Ubuntu Installer Hauptmenü Wählen Sie den nächsten Schritt in der Installationsroutine: Das System installieren
    Das System installieren Art der Installation: normal
    Das System installieren Zu installierender Kernel: linux-generic
    Das System installieren In die initrd aufzunehmende Treiber: generisch: alle verfügbaren Treiber einbinden
    Ubuntu Installer Hauptmenü Wählen Sie den nächsten Schritt in der Installationsroutine: Paketmanager konfigurieren
    Paketmanager konfigurieren Einen Netzwerkspiegel verwenden? Ja
    Paketmanager konfigurieren Protokoll für Datei-Downloads: http
    Paketmanager konfigurieren Land des Ubuntu-Spiegelservers: Deutschland
    Paketmanager konfigurieren Ubuntu-Archiv-Spiegelserver: de.archive.ubuntu.com
    Paketmanager konfigurieren HTTP-Proxy-Daten: leer lassen
    Paketmanager konfigurieren Eingeschränkte Software verwenden? Ja (Das muß jeder selbst für sich entscheiden.)
    Paketmanager konfigurieren Software von der universe-Komponente verwenden? Ja
    Paketmanager konfigurieren Software von der multiverse-Komponente verwenden? Ja
    Paketmanager konfigurieren Zurückportierte Software verwenden? Nein
    Paketmanager konfigurieren Service to use: security updates
    Ubuntu Installer Hauptmenü Wählen Sie den nächsten Schritt in der Installationsroutine: Software auswählen und installieren
    Konfiguriere tasksel Wie möchten Sie Aktualisierungen auf diesem System verwalten? Keine automatischen Aktualisierungen
    Welche Software soll installiert werden? OpenSH server, LAMP server, Print server, Samba file server
    Konfiguriere mysql-server-5.5 Neues Passwort für den root-Benutzer: ***** (damit ist der mysql-root gemeint, alles klein schreiben ohne Sonderzeichen)
    Ubuntu Installer Hauptmenü Wählen Sie den nächsten Schritt in der Installationsroutine: GRUB-Bootloader auf einer Festplatte installieren
    GRUB-Bootloader auf einer Festplatte installieren Den GRUB-Bootloader in den Master Boot Record installieren? Ja
    Ubuntu Installer Hauptmenü Wählen Sie den nächsten Schritt in der Installationsroutine: Installation abschließen
    Installation abschließen Ist die Systemzeit auf UTC gesetzt? Nein
    Installation abschließen Installation abgeschlossen - cd wird ausgeworfen und System neu gestartet

    Damit sollte das Grundsystem laufen und eine Anmeldung auf der Konsole möglich sein.

    Als Nächstes erfolgt eine Systemaktualisierung:

    apt-get update && apt-get dist-upgrade

    Danach starten wir das System neu:

    init 6

    Jetzt machen wir uns die Bedienung etwas einfacher und installieren den Midnight Commander:

    apt-get install mc

    Den Midnight Commander startet man danach mit mc. Mit F9 kommt man in die Konfiguration und kann den internen Editor einstellen.

    Minimales grafisches System installieren

    Unter Linux-Administratoren gilt es als verpönt, auf Servern grafische Benutzeroberflächen zu installieren. Aber schon alte UNIX-Systeme kamen in der Standardinstallation mit grafischer Benutzeroberfläche. Es spricht aus meiner Sicht nichts dagegen ein minimales grafisches System zu installieren. Der Grafiktreiber des X-Servers soll noch dazu den Energiebedarf senken.

    apt-get install xdm lxde policykit-1-gnome

    Danach starten wir das System neu:

    init 6

    Jetzt sollten wir den grafischen Anmeldebildschirm sehen. Nach der Anmeldung starten wir einen LXTerminal und installieren noch ein paar Programme:

    apt-get install synaptic geany gkrellm catfish ntp
     
    • Synaptic ist eine auf apt basierende Paketverwaltung.
    • Geany ist ein guter Texteditor mit integrierten Dateibrowser.
    • Gkrellm ist ein System-Monitoring Programm.
    • Catfish hilft beim Suchen von Dateien.
    • Ntp synchronisiert die Systemzeit mit Zeitservern im Internet.

    Damit die Clients den Hostnamen "srv01" in die IP-Adresse 192.168.2.98 auflösen können, sollte man den Server in die hosts-Datei der Clients eintragen, es sei denn, man installiert den nachfolgend beschriebenen DNS-Server.

  3. DNS- und DHCP-Server Installation und Konfiguration

    In den meisten Heimnetzen stellt der DSL-Router den DNS- und DHCP-Server zur Verfügung. Diese Geräte sind aber im Funktionsumfang sehr unterschiedlich. So kann es trotzdem sein, dass man die Namensauflösung für den Heimserver über die Hosts-Dateien der beteiligten Computer realisieren muss. Das funktioniert gut und der Konfigurations-Aufwand ist in kleinen Netzen vertretbar. Damit besteht in den meisten Fällen keine Notwendigkeit, auf dem Linux-Home-Server DNS- und DHCP-Server zu installieren. Warum es also trotzdem tun? Weil wir es können!

    Für ein kleines Heimnetz angemessen ist der, für solche Einsatzfälle konzipierte "Dnsmasq". Er liefert DNS- und DHCP-Dienste gemeinsam.

    Die Installation erfolgt mit:

    apt-get install dnsmasq

    Auf dem Bildschirm sieht man u.a.

    Starting DNS forwarder and DHCP server dnsmasq

    Die Dienste laufen jetzt also schon.

    DNS-Server-Konfiguration

    Dnsmasq nutzt zur Namensauflösung die lokale hosts-Datei /etc/hosts. Deshalb sollten wir uns diese zur Kontrolle ansehen:

    127.0.0.1 localhost
    192.168.2.98 srv01.heimnetz.local srv01

    Nun müssen wir dafür sorgen, dass unser Linux-Home-Server auch seinen eigenen DNS-Server befragt. Dafür bearbeiten wir die Datei /etc/network/interfaces

    # This file describes the network interfaces available on your system
    # and how to activate them. For more information, see interfaces(5).
     
    # The loopback network interface
    auto lo
    iface lo inet loopback
     
    # The primary network interface
    auto p2p1
    iface p2p1 inet static
    address 192.168.2.98
    netmask 255.255.255.0
    network 192.168.2.0
    broadcast 192.168.2.255
    gateway 192.168.2.1
    # dns-* options are implemented by the resolvconf package, if installed
    dns-nameservers 127.0.0.1 192.168.2.1
    dns-search heimnetz.local

    Bei dns-nameservers 127.0.0.1 192.168.2.1 steht zuerst unser dnsmasq und danach der DSL-Router.

    DHCP-Server-Konfiguration

    Zur Konfiguration des DHCP-Dienstes bearbeiten wir die Datei /etc/dnsmasq.conf:

    dhcp-range=192.168.2.50,192.168.2.60,255.255.255.0,24h
    dhcp-option=3,192.168.2.1
    log-queries
    log-dhcp

    dhcp-range gibt den DHCP-Bereich an und die max. Leasdauer.
    dhcp-option=3 sorgt für die Übermittlung der Routeradresse
    Die beiden log-Einträge sorgen für ausführliche Einträge in den Logfiles.

    Danach starten wir dnsmasq neu:

    service dnsmasq restart

    Damit verfügt unser Linux-Home-Server nun auch über einen eigenen DNS- und DHCP-Server.

  4. Linux-Datei-Server Samba installieren und konfigurieren

    Quellen, die ich verwendet habe:
    http://wiki.ubuntuusers.de/Samba_Server
    http://gertranssmb3.berlios.de/output/
    c't 8/2005 "c't-Debian-Server: Samba und CUPS"

    Es soll eine gemeinsame Dateiablage mit dem Namen public geben, auf die alle Benutzer vollen Zugriff haben.

    Verzeichnis anlegen

    Wir legen das Verzeichnis an:

    mkdir /home/public

    Zugriff darauf sollen die Mitglieder der Gruppe users haben.

    Der Gruppe users übereignen wir das Verzeichnis:

    chgrp users /home/public

    Danach passen wir noch die Rechte an:

    chmod 770 /home/public
    chmod g+sw /home/public

    Jetzt legen wir einen Linux-Benutzer an:

    adduser andreas

    Der Gruppe users den User andreas hinzufügen:

    addgroup andreas users

    Freigabe anlegen:

    Samba Konfigurationsdatei /etc/samba/smb.conf anpassen

    Der Abschnitt [homes] legt die Benutzerfreigaben fest:

    [homes]
    comment = Home Directories
    browseable = no
    valid users = %S
    read only = no
    ceate mode = 0600
    directory mode = 0700

    Neue Freigabe public einrichten durch hinzufügen des folgenden Abschnitts z.B. am Ende der Datei:

    [Public]
    comment = gemeinsame Ablage
    writeable = yes
    path = /home/public
    browseable = yes
    valid users = @users
    force directory mode = 660
    force create mode = 660
    force group = users

    Wer seine Samba-Freigaben in der Windows-Netzwerkumgebung "sehen will", kann noch folgende Einträge vornehmen, die außerdem das Browsing beschleunigen:

    os level = 255
    preferred master = yes
    local master = yes

    Noch ein paar grundlegende Einstellungen:

    [global]
    workgroup = heimnetz
     
    [Authentication]
    server role = standalone server
    security = user
    encrypt passwords = true

    Hier die komplette Konfiguration:

    #======================= Global Settings =======================
     
    [global]
     
    workgroup = heimnetz
    server string = %h server (Samba, Ubuntu)
    dns proxy = no
     
    #### Networking ####
     
    local master = yes
    os level = 255
    prefered master = yes
     
    #### Debugging/Accounting ####
     
    log file = /var/log/samba/log.%m
    max log size = 1000
    syslog = 0
    panic action = /usr/share/samba/panic-action %d
     
    ####### Authentication #######
     
    server role = standalone server
    security = user
    encrypt passwords = true
    passdb backend = tdbsam
    obey pam restrictions = yes
    unix password sync = yes
    passwd program = /usr/bin/passwd %u
    passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
    pam password change = yes
    map to guest = bad user
    ############ Misc ############
    usershare allow guests = no
     
    #======================= Share Definitions =======================
     
    [homes]
    comment = Home Directories
    browseable = no
    valid users = %S
    read only = no
    create mode = 0600
    directory mode = 0700
     
    [printers]
    comment = All Printers
    browseable = no
    path = /var/spool/samba
    printable = yes
    guest ok = no
    read only = yes
    create mask = 0700
     
    [print$]
    comment = Printer Drivers
    path = /var/lib/samba/printers
    browseable = yes
    read only = yes
    guest ok = no
     
    [Public]
    comment = gemeinsame Ablage
    writeable = yes
    path = /home/public
    browseable = yes
    valid users = @users
    force directory mode = 660
    force create mode = 660
    force group = users

    Damit ist die Konfiguration von Samba erledigt. Die Datei kann gespeichert und geschlossen werden.

    Testen ob die Konfigurationsdatei in Ordnung ist mit:

    testparm -v

    Samba-Benutzer hinzufügen (auf der Linuxconsole):

    smbpasswd -a andreas

    Samba neu starten:

    service samba restart

    Zum Test kann man jetzt in der Adreßzeile des Windows-Dateiexplorers \\srv01 eingeben. Es sollten die Freigaben zu sehen sein.

  5. Linux-Druck-Server CUPS einrichten

    Die CUPS-Konfigurationsdatei /etc/cups/cupsd.conf muß bearbeitet werden:

    Listen localhost:631
    # muss geändert werden in
    Listen 192.168.2.98:631
    <Location />
    # ergänzen mit folgender Zeile:
    Allow 192.168.2.0/24
    </Location>
    <Location /admin>
    # ergänzen mit folgender Zeile:
    Allow 192.168.2.0/24
    </Location>
    <Location /admin/conf>
    # ergänzen mit folgender Zeile:
    Allow 192.168.2.0/24
    </Location>

    Nach dem Speichern der Datei muß diese neu geladen werden:

    service cups restart

    Jetzt kann man in Firefox die CUPS-Seite aufrufen mit: http://192.168.2.98:631

    Unter "Drucker" werden bereits gefundene Drucker angezeigt. Der Rest ist selbsterklärend.

    Wenn beim Verbinden eines Windows-Systems mit dem Drucker die Meldung kommt, man hätte keinen Zugriff mangels erforderlicher Rechte, dann sind damit die Windows-Rechte gemeint, die nicht ausreichen einen neuen Drucker einzurichten. Dem kann man mit temporären Admin-Rechten abhelfen. Ggf. ist dann noch der Druckertreiber, durch Angabe des Installationspfades, zu installieren.

    Wenn man von Windows aus auf einen, über Samba freigegebenen Drucker drucken will, ist dabei eine Authentifizierung erforderlich. Hat man vorher mindestens ein Netzlaufwerk verbunden, ist die Authentifizierung schon erfolgt und somit kein Problem.

    Drucken geht aber auch ohne Samba, über das Internet Printing Protocol (ipp). Dazu ist bei der Druckereinrichtung unter Windows die URL anzugeben. Bei mir:

    https://srv01:631/printers/Brother

    Bei meinem Linux-Client habe ich die Adresse so eingegeben:

    ipp://srv01:631/printers/Brother

    Nach einer Authentifizierung fragt Cups an dieser Stelle nicht.

    Weblinks zum Thema:
    wiki ubuntuusers.de CUPS

  6. Media Streaming Server

    Als Streaming-Server setzen wir Mediatomb ein.

    apt-get install mediatomb libav-tools

    Danach funktioniert Mediatomb schon.
    Die Administrationsoberfläche erreicht man über das Webinterface von Mediatomb http://srv01:49152 oder http://192.168.2.98:49152.
    Der User Mediatomb braucht Leserechte auf unseren public-Ordner. Deshalb fügen wir ihn der Gruppe users hinzu:

    addgroup mediatomb users
    service mediatomb restart

    Um Medieninhalte hinzuzufügen legen wir z.B. im Public-Ordner einen Ordner "medien" an, in dem wir dann Fotos, Musik oder Videos ablegen. Auf der Mediatomb-Admin-Oberfläche wählen wir dann "Filesystem" und hangeln uns zu unserem Medienordner durch. Ganz rechts gibt es dann ein Symbol für "add as autoscan dir", das wir anklicken. Danach wählen wir inotify, full, Recursiv und zum Schuß Set. Daraufhin werden alle Änderungen in dem Ordnern in die Datenbank geschrieben, also auch wenn wir später neue Dateien hinein kopieren.

    Links zum Thema:

    Wikipedia Streaming_Media
    Wikipedia Universal_Plug_and_Play
    Artikel über Mediatomb bei Ubuntuusers
    DLNA
  7. Web-Server Apache2 mit PHP5

    Die Installation ist bereits erledigt und der Apache läuft bereits. Feststellen können wir das, indem wir srv01 im Webbrowser aufrufen. Mehr ist erst einmal nicht zu tun.

  8. Linux-Mail-Server installieren

    Wir wollen E-Mails aus dem Internet empfangen. Das erledigt der Mail Retrieval Agent (MRA) fetchmail für uns.

    Wir wollen E-Mails im lokalen Netz aber auch über das Internet versenden. Das übernimmt der Mail Transfer Agent (MTA) Postfix für uns.

    Die Howtos folgender Quellen waren mir sehr hilfreich:
    http://wiki.ubuntuusers.de/Postfix
    http://www.howtoforge.de/howto/das-perfekte-setup-debian-etch-40/5/
    c't 8/2004 "Transportsicherung"

    Zuerst installieren wir:

    • den Mail Transfer Agent (MTA) Postfix
    • bsd-mailx - ein einfaches Mailprogramm zum Testen
    • das Authentifizierungsmodul libsasl2-modules

    apt-get install postfix bsd-mailx libsasl2-modules

    Bei der Installation werden ein paar Fragen gestellt, die wir wie folgt beantworten:

    Postfix Configuration
    Allgemeine Art der Konfiguration
    "Internet mit Smarthost"
    E-Mail-Name lautet: srv01.heimnetz.local
    SMTP Relay-Server: Hier den smtp-server des Providers angeben.

    Linux-Mail-Server konfigurieren

    Postfix konfigurieren

    In der Datei /etc/aliases stehen die Alias-Namen und deren Zuweisung:

    postmaster: andreas
    root: andreas
    www-data: andreas

    Die Änderungen an dieser Datei werden wirksam, nachdem man sie mit

    newaliases

    in die Datenbank geschrieben und mit

    postfix reload

    in Postfix neu eigelesen hat.

    Jeder vernünftige Internet-Service-Provider verlangt heute eine Absenderauthentifizierung für das Versenden von E-Mails. Dafür ist bei uns SASL zuständig.

    Als nächstes wird die Datei /etc/postfix/sasl/smtp_auth angelegt:

    touch /etc/postfix/sasl/smtp_auth

    Der Dateiinhalt ist sinngemäß:

    SMTP-Server Benutzername:Paßwort
    z.B.:
    mailout.example.com Benutzername:Geheim

    Der Dateiinhalt muß jetzt noch in eine Datenbankdatei geschrieben werden. Das geschieht mit:

    postmap /etc/postfix/sasl/smtp_auth

    Dadurch sollte die folgende Datei angelegt werden: /etc/postfix/sasl/smtp_auth.db

    Damit kein Unbefugter die Zugansdaten auslesen kann, werden noch die Rechte passend gesetzt:

    chmod 600 /etc/postfix/sasl/smtp_auth

    Absenderadressen setzen:

    Damit der Empfänger einer unserer E-Mails nicht die lokale Adresse, wie z.B. root@srv01.heimnetz.local zu sehen bekommt, müssen wir noch dafür sorgen, dass Postfix die Adressen automatisch richtig umsetzt. Dazu erstellen wir die Datei:

    touch /etc/postfix/sender_canonical

    Die Zuordnung in der Datei kann beispielsweise so aussehen:

    root spam@linux-home-server.de
    andreas andreas@linux-home-server.de

    Die Postfix-Konfigurationsdatei /etc/postfix/main.cf ändern wir, sodass folgendes drin steht:

    smtpd_banner = $myhostname ESMTP
    biff = no
    append_dot_mydomain = no
    readme_directory = no
     
    #Authentifizierung beim ISP
    smtp_sasl_auth_enable = yes
    smtp_sasl_password_maps = hash:/etc/postfix/sasl/smtp_auth
    smtp_sasl_security_options = noanonymous
     
    #Verschlüsselte Übertragung zum ISP:
    smtp_tls_security_level = encrypt
    smtp_tls_loglevel = 1
    smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
    smtp_tls_CApath = /etc/ssl/certs
     
    # TLS parameters
    smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
    smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
    # TLS Verschlüsselung zwischen Postfix und den SMTP-Clients
    smtpd_tls_security_level=may
    smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
    smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
     
    smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
    myhostname = srv01.heimnetz.local
    alias_maps = hash:/etc/aliases
    alias_database = hash:/etc/aliases
    myorigin = /etc/mailname
    mydestination = srv01.heimnetz.local, localhost.heimnetz.local, localhost
    relayhost = smtp-server des ISP
    mynetworks = 127.0.0.0/8, 192.168.2.0/24
    mailbox_size_limit = 0
    recipient_delimiter = +
    inet_interfaces = all
    sender_canonical_maps = hash:/etc/postfix/sender_canonical
    home_mailbox = Mails/

    Sollte es Probleme mit der Verbindung zum ISP geben, hilft es bei der Fehlersuche smtp_tls_loglevel = 3 zu setzen und in /var/log/mail.log nachzusehen.

    Nach einem Reload von Postfix (service postfix reload) funktioniert der Emailversand. Das können wir testen indem wir auf der Konsole eine E-Mail an uns selber versenden:

    echo "testmail" | mail -s "betreff test" spam@andreas-micknass.de

    SASL-Authentifizierung der smtp-Clients gegenüber Postfix

    Bis jetzt können unsere smtp-Clients ohne jeglich Authentifizierung E-Mails versenden. Ein solches offenes Relais ist zu vermeiden. Wir benötigen eine Absenderauthentifizierung der Mailclients gegenüber den Postfixserver. Die gewählte Methode "PAM" authentifiziert gegen die Benutzerdatenbank des Linux-Systems.

    Zuerst ist die Installation des SASL-Authentifizierungsdienstes erforderlich:

    apt-get install sasl2-bin

    Danach gibt es die Konfigurationsdatei /etc/default/saslauthd, die wie folgt anzupassen ist:

    START=yes
    MECHANISMS="pam"
    MECH_OPTIONS=""
    THREADS=5
    OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r"

    Das unter Options genannte Verzeichnis muß existieren und wird deshalb angelegt:

    mkdir -p /var/spool/postfix/var/run/saslauthd

    Nun wird folgende Datei erstellt:

    touch /etc/postfix/sasl/smtpd.conf

    mit folgendem Inhalt:

    pwcheck_method: saslauthd
    mech_list: plain login

    Die Datei /etc/postfix/main.cf wurde wie folgt angepaßt:

    smtpd_banner = $myhostname ESMTP
    biff = no
    append_dot_mydomain = no
    readme_directory = no
     
    #Authentifizierung beim ISP
    smtp_sasl_auth_enable = yes
    smtp_sasl_password_maps = hash:/etc/postfix/sasl/smtp_auth
    smtp_sasl_security_options = noanonymous
     
    #Verschlüsselte Übertragung zum ISP:
    smtp_tls_security_level = encrypt
    smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
    smtp_tls_CApath = /etc/ssl/certs
     
    # Authentifizierung der smtp-Clients beim Postfix-Server
    smtpd_sasl_auth_enable = yes
    smtpd_sasl_security_options = noanonymous
    smtpd_sasl_local_domain =
    smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, check_recipient_maps, reject_unauth_destination, permit_auth_destination
     
    # TLS parameters
    smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
    smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
    # TLS Verschlüsselung zwischen Postfix und den SMTP-Clients
    smtpd_tls_security-level=may
    smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
    smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
     
    smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
    myhostname = srv01.heimnetz.local
    alias_maps = hash:/etc/aliases
    alias_database = hash:/etc/aliases
    myorigin = /etc/mailname
    mydestination = srv01.heimnetz.local, localhost.heimnetz.local, localhost
    relayhost = smtp-server des ISP
    mynetworks = 127.0.0.0/8, 192.168.2.0/24
    mailbox_size_limit = 0
    recipient_delimiter = +
    inet_interfaces = all
    sender_canonical_maps = hash:/etc/postfix/sender_canonical
    home_mailbox = Mails/

    Postfix benötigt Zugriff auf SASL. Dafür müssen wir noch Postfix in die Gruppe SASL aufnehmen:

    addgroup postfix sasl

    Jetzt noch die Dienste neu starten und alles sollte funktionieren:

    service saslauthd restart
    service postfix restart

    Nach den Änderungen an der Konfigurationsdatei ist Postfix neu zu starten und alles sollte funktionieren.

    E-Mails mit fetchmail abholen

    Die Installation erfolgt mit:

    apt-get install fetchmail

    Damit fetchmail als Dienst arbeitet und automatisch beim Systemstart gestartet wird, ist die Datei /etc/default/fetchmail anzupassen:

    START_DAEMON=yes

    Die Konfigurationsdatei erzeugen wir mit:

    touch /etc/fetchmailrc

    und editieren diese Datei wie folgt (POP3-Server, Benutzername und das Paßwort sind natürlich zu ersetzen.):

    set daemon 300
    set syslog
    poll POP3-Servername with proto POP3 auth password
    user "Benutzername" there with password "*****" is andreas here options ssl fetchall
     
    poll IMAP-Servername with proto IMAP auth password
    user "Benutzername" there with password "*****" is andreas here options ssl fetchall

    Die E-Mails werden ab sofort abgeholt, wenn wir jetzt noch den Service starten:

    service fetchmail start

    IMAP-Server installieren und konfigurieren

    Als IMAP-Server verwenden wir Courier-IMAP. Die Installation erfolgt mit:

    apt-get install courier-imap-ssl

    Bei der Installation werden ein paar Fragen gestellt und Hinweise angezeigt:

    Verzeichnisse für WWW-Administration anlegen? Nein
    Hinweis: SSL-Zertifikat erforderlich

    Nun sind die Konfigurationsdateien zu bearbeiten:

    /etc/courier/imapd-ssl
     
    # Diese beiden Werte anpassen:
    MAXDAEMONS=100
    MAXPERIP=40
    #Am Ender der Datei ist der Maildirpath anzupassen:
    MAILDIRPATH=Mails

    In der Datei /etc/courier/imapd-ssl machen wir das ebenso.

    Als Nächstes passen wir die Datei /etc/courier/authdaemonrc an:

    # Unter authmodulelist="authpam" schreiben wir:
    version="authdaemond.plain"

    Zum Schluss starten wir noch die Dienste neu:

    service courier-authdaemon restart
    service courier-imap-ssl restart

    Damit sollte der IMAP-Server laufen.

  9. Die Datensicherung

    Ich habe lange nach einer Lösung gesucht, bis ich in einer alten Ausgabe der c't (7/2006, S. 212) auf das Programm "dirvish" gestoßen bin.
    Dirvish legt bei bereits vorhandenen Dateien, diese nicht erneut an, sondern erzeugt Hardlinks. Das hat den Vorteil, dass das Backup schnell und platzsparend erfolgt.

    Mit USB 3.0 erreicht man heute Datenübertragungsraten, die es erlauben auch große Datenmengen in kurzer Zeit zu sichern. Deshalb verwende ich als Backup-Medium eine kleine, handliche und robuste 1TB USB-3.0-Festplatte (WD Elements).

    Dirvish empfielt das etwas veraltete Dateisystem reiserfs, weil es besonders platzsparend mit kleinen Dateien umgeht. Leider wird dieses Dateisystem seit einigen Jahren nicht mehr weiterentwickelt. Damit unsere Lösung zeitgemäß funktioniert, verwende ich das Dateisystem xfs, dass ähnlich speicherplatzsparend arbeitet und aktiv weiterentwickelt wird.

    Die Installation erfolgt mit:

    apt-get install dirvish

    Die globale Konfiguration von Dirvish befindet sich in /etc/dirvish/master.conf. Weil diese bei der Installation nicht angelegt wird, müssen wir das selbst übernehmen:

    touch /etc/dirvish/master.conf

    Der Inhalt der Datei:

    # /etc/dirvish/master.conf

    bank:
       /media/backup/backup

    xdev: 1

    index: gzip

    image-default: %Y%m%d-%H%M

    # checksum: 1

    summary: long

    exclude:
       lost+found/
       core
       
    Runall:
       home

    expire-default: +7 days

    expire-rule:
    #  MIN  HR  DOM  MON  DOW  STRFTIME_FMT
        *   *    *    *    *    +7 days
        *   *    *    *    7    +1 month
        *   *    1    *    *    +1 year

    Das globale Backupverzeichnis, die sogenannte "Bank", ist /media/backup/backup (/media/backup ist der Mountpunkt. Auf der Festplatte gibt es den Ordner backup. Der Verzeinispfad ist damit /media/backup/backup).
    Darin werden die "Vaults" (Tresore) angelegt, die unter "Runall" aufgeführt sind.
    "expire" bestimmt den Zeitplan, nachdem ein Backup verfällt.

    Unsere Backupstrategie:

    • Die täglichen Backups werden 1 Woche aufgehoben.
    • Die Sicherung an jedem letzten Tag der Woche wird einen Monat aufgehoben.
    • Das Backup von jedem 1. des Monats wird 1 Jahr aufgehoben.

    udev-Regel für USB-Festplatte erstellen

    Als Nächstes müssen wir dafür sorgen, dass unsere USB-Backup-Festplatte immer an der gleichen Stelle im Dateisystem eingehängt wird. Das erledigt eine eigene udev-Regel.

    Wir legen eine Datei für die udev-Regel an:

    touch /lib/udev/rules.d/backupmedium.rules

    Als Nächstes schreiben wir unsere Regel in die Datei:

    KERNEL=="sd?1", SUBSYSTEMS=="usb", ATTRS{serial}=="575839314137333937333532", SYMLINK+="backup", RUN+="/etc/dirvish/dirvish-cronjob"

    Statt der Seriennummer meiner Platte muss da natürlich die, der eigenen Platte rein. Um diese heraus zu finden schließen wir die Platte an. Danach begeben wir uns auf die Konsole:

    root@srv01:~#lsusb
    Bus 002 Device 002: ID 8087:8000 Intel Corp.
    Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 006 Device 002: ID 1058:10a8 Western Digital Technologies, Inc.
    Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
    Bus 005 Device 002: ID 046d:c046 Logitech, Inc. RX1000 Laser Mouse
    Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 001 Device 002: ID 8087:8008 Intel Corp.
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
    Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

    Die Zeile mit Western Digital ... ist für uns interessant, weil sie uns die Bus- und Devicenummern liefert. Damit kommen wir an die gewünschten Detailinformationen:

    root@srv01:~#lsusb -vs 006:002
    Bus 006 Device 002: ID 1058:10a8 Western Digital Technologies, Inc.
    Device Descriptor:
    bLength 18
    bDescriptorType 1
    bcdUSB 3.00
    bDeviceClass 0 (Defined at Interface level)
    bDeviceSubClass 0
    bDeviceProtocol 0
    bMaxPacketSize0 9
    idVendor 0x1058 Western Digital Technologies, Inc.
    idProduct 0x10a8
    bcdDevice 10.42
    iManufacturer 1 Western Digital
    iProduct 2 Elements 10A8
    iSerial 3 575839314137333937333532
    und noch viele weitere Angaben, die wir jetzt nicht brauchen ....

    iSerial 3 575839314137333937333532 zeigt uns die gesuchte Seriennummer.

    Die udev-Regel startet das Backupscript /etc/dirvish/dirvish-cronjob, welches bei der Installation von dirvish bereits angelegt wurde. Allerdings wurde dabei auch ein cronjob angelegt, den wir nicht benötigen. Deshalb verschieben wir diesen an eine Stelle wo er uns nicht stört:

    mv /etc/cron.d/dirvish /root

    Die udev-Regel soll das Backupscript starten, welches die USB-Platte nach /media/backup mountet. Diesen Mountpunkt müssen wir noch erstellen:

    mkdir /media/backup

    In der /etc/fstab fehlt jetzt noch der passende Eintrag zum mounten, den ich als letzte Zeile hinzugefügt habe:

    # /etc/fstab: static file system information.
    UUID=6602f9b2-362b-45d5-b94d-2bae83d34973 / ext4 noatime,errors=remount-ro 0 1
    UUID=cbe39c87-895a-4766-a4cb-dffe427a1405 none swap sw 0 0
    /dev/backup /media/backup xfs rw,users,noauto,async 0 0

    Nun müssen wir noch die fstab neu einlesen und reloaden udev:

    reload udev
    mount -a

    Backup-Festplatte formatieren

    Vermutlich hat die USB-Festplatte noch das falsche Dateisystem, sodass wir sie mit xfs formatieren müssen.
    Vorsicht: Dabei gehen alle Daten auf der Festplatte verloren!

    fdisk -l zeigt uns, dass die zu formatierende Partition /dev/sdb1 ist.

    fdisk -l
    Disk /dev/sda: 500.1 GB, 500107862016 bytes
    255 Köpfe, 63 Sektoren/Spur, 60801 Zylinder, zusammen 976773168 Sektoren
    Einheiten = Sektoren von 1 × 512 = 512 Bytes
    Sector size (logical/physical): 512 bytes / 4096 bytes
    I/O size (minimum/optimal): 4096 bytes / 4096 bytes
    Festplattenidentifikation: 0x9eb4ea50
     
    Gerät boot. Anfang Ende Blöcke Id System
    /dev/sda1 2048 1953791 975872 82 Linux Swap / Solaris
    /dev/sda2 * 1953792 976771071 487408640 83 Linux
     
    Disk /dev/sdb: 1000.2 GB, 1000170586112 bytes
    255 Köpfe, 63 Sektoren/Spur, 121597 Zylinder, zusammen 1953458176 Sektoren
    Einheiten = Sektoren von 1 × 512 = 512 Bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Festplattenidentifikation: 0x463610f8
     
    Gerät boot. Anfang Ende Blöcke Id System
    /dev/sdb1 2048 1953458175 976728064 83 Linux

    Mit diesen Informationen wird formatiert, nachdem wir die Unterstützung für das xfs-Dateisystem installiert haben:

    apt-get install xfsprogs
    mkfs.xfs -f /dev/sdb1

    Wir mounten die USB-Festplatte und legen den Ordner /media/backup/backup darauf an:

    mount /media/backup
    mkdir /media/backup/backup

    Weitere Konfiguration dirvish

    Im Dateisystem müssen wir das Verzeichniss (Tresor) /media/backup/backup/home anlegen:

    mkdir /media/backup/backup/home

    In jedem Tresor muss ein Verzeichnis /dirvish angelegt sein und darin eine Datei default.conf:

    mkdir /media/backup/backup/home/dirvish
    touch /media/backup/backup/home/dirvish/default.conf

    Für den Tresor "home" sollte das so aussehen:

    # /media/backup/backup/home/dirvish/default.conf
    client: srv01
    tree: /home
    exclude:
       *.bak
       *~
       *.tmp
       *.TMP
       *.temp
       *.jnl

    "client" ist der Hostname des Servers
    "tree" ist das zu sichernde Verzeichnis
    "exclude" schließt Dateien aus der Sicherung aus.

    Nun erfolgt die Erstinitialisierung, die gleichzeitig ein Vollbackup ist, auf der Konsole:

    dirvish -vault home --init

    Ist das erfolgreich gelaufen, müssen wir dem Backupscript /etc/dirvish/dirvish-cronjob noch beibringen, die USB-Platte automatisch zu mounten und nach getaner Arbeit wieder auszuwerfen. Vor dem Bearbeiten sichert man die Datei am besten:

    cp /etc/dirvish/dirvish-cronjob /etc/dirvish/dirvish-cronjob.old

    Danach ist die Datei /etc/dirvish/dirvish-cronjob so zu bearbeiten, dass ihr Inhalt wie folgt aussieht:

    #! /bin/sh
    #
    # daily cron job for the dirvish package
    #
     
    if mount | grep /media/backup
    then
    umount /dev/backup
    echo "Backup-Platte war schon gemountet -> umount!"
    fi
    mount /media/backup
    echo "Backup-Platte gemountet!"
     
    if [ ! -x /usr/sbin/dirvish-expire ]; then exit 0; fi
    if [ ! -s /etc/dirvish/master.conf ]; then exit 0; fi
     
    /usr/sbin/dirvish-expire --quiet && /usr/sbin/dirvish-runall --quiet
    rc=$?
     
    sync
    umount /dev/backup || rc=$?
    eject dev/backup
    exit $rc
     

    Zum Schuß hängen wir die Platte aus und testen, indem wir sie wieder anschließen. Damit sollte unser Backup laufen:

    umount /media/backup

    Noch ein Hinweis: Wenn die USB-Festplatte vermeintlich vom Backupscript nicht ausgeworfen wird, liegt das mit hoher Wahrscheinlichkeit am lxde-Desktop, an dem man gerade angemeldet ist und der die Platte automatisch einhängt.

    Weitere Informationen zum Backup mit Dirvish und mysqldump zum Sichern einer mysql-Datenbank findet man z.B. unter den folgenden Links:
    http://www.dirvish.org/
    http://wiki.ubuntuusers.de/dirvish
    http://dev.mysql.com/doc/refman/5.1/de/mysqldump.html

Ich hoffe, dass dieses kleine howto hilfreich war.

Hier gibt es die Printversion.

Zum Impressum & zur Datenschutzerklärung gehts hier entlang: Impressum & Datenschutzerklärung

Meinungen, Kritiken und Fehlermeldungen bitte an: bild