Der erste Artikel im neuen Jahr, hurra! Aber worum geht’s? Um eine Beispielkonfiguration.
Mehrfach habe ich in verschiedenen Artikeln über meine genutzte Hard-/Software sowie Serverkonfiguration gesprochen. Um das mal derzeit alles zusammenzufassen:
- Router: D-Link DIR-615 Rev D3 mit dd-wrt v24 PreSP2 Firmware
- Pseudo-NAS: ellion labo 110 HD Media Player, daran eine Samsung S1 mit 120 GB
- Server: netcup.de vServer “easyV lite”
Nun stand ich mit besagtem vServer vor einem kleinen Problem, denn der Support für das derzeit darauf genutzte Debian “Lenny” 5.0 läuft im Februar aus. Ein Upgrade ist an sich keine Schwierigkeit, jedoch ist die Möglichkeit eines Reinitialisieren durch Backup sehr angenehm – blöd nur, dass diese “easyV lite”-Variante keine einfache Backupmöglichkeit anbieten. Also verschiedene Tools angelesen und durchprobiert und doch nie glücklich gewesen. Bis heute.
Das Update
Auf dem vServer läuft ein performantes und übersichtliches Wartungstool, was auf den Namen webmin hört. Es dient mir hauptsächlich dazu, mich nicht mittels ssh einzuloggen, um beispielsweise eine Prozessliste zu sehen oder die Dateiliste zu betrachten, denn das geht alles mittels Browser. Gerade auf dem Smartphone eine sehr schicke Sache, denn nicht jeder hat eine Hardwaretastatur zur Hand. Webmin bietet aber auch ein Feature, welches ich bislang nicht bedacht hatte: das Dumping – also ein Backup.
Man findet es im Webmin selbst unter dem Punkt System -> Dateisystem-Backup. Es ermöglicht, mehrere Verzeichnisse entweder auf das eigene System, oder auf einen entfernten Speicher zu sichern. Dabei ist es möglich, die Dateien alle in ein Archiv zu packen, das Archiv zu splitten, Bandlaufwerke anzusprechen, es zeitgesteuert laufen zu lassen etc. Kurzum: Es ist alles möglich. Ich für meinen Teil sichere vor allem mein /home-Verzeichnis, um explizit meinen Funambol-Server gespiegelt zu haben, allerdings geht es ja gerade um ein gesamtes Systembackup, weshalb auch /var, /opt und Teile von /etc gesichert werden.
Doch ohne weitere Konfiguration ist es eben nur möglich, ein Spiegelbild der Verzeichnisse Lokal auf dem Server zu lagern. Anschließend müsste man dieses in ein aus dem Web zugängliches Verzeichnis schieben und herunterladen, um die Daten auf dem hauseigenen Speicher vorzuhalten. Mir zu umständlich, deshalb nutze ich mein NAS.
NAS als lokalen Speicher
Als NAS kommt bei mir ein sogenannter HD Mediaplayer mit Realtek-Chipsatz zum Einsatz. Dieser Player bietet mir die Möglichkeit, auch als FTP/SMB-Server zu arbeiten. Im lokalen Netzwerk ist das schon schön, wenn es um Medieninhalte und Streaming geht, aber explizit die FTP-Funktion macht noch viel mehr her, denn damit steht in meinem lokalen Netz auch ein gesamter FTP-Server, welcher auch von außen erreichbar ist. Um eine ordentliche Konfiguration einzurichten, fange ich aber ganz vorn an:
- Im Player auf die Einstellungen
- In den Reiter Netzwerk
- In der Ethernet/W-Lan-Verbindung nicht mittels DHCP, sondern mittels statischer IP die Verbindung einstellen
- Hier die entsprechenden Daten eingeben (für mich als als interne IP die 192.168.1.155, als DNS und Server je die 192.168.1.1 und als Broadcast die 255.255.255.0)
- Testen, ob mit den eingegebenen Daten eine Netzwerkverbindung ins Internet geht (bestenfalls mittels IMS oder Internetradio)
- Wenn diese erfolgreich ist, zurück in die Einstellungen -> Netzwerk
- Nun Samba aktivieren und nach belieben einstellen
- Nun FTP aktivieren und bei den Einstellungen einen eindeutigen Nutzer mit Passwort bestimmen (für mich heißt dieser backup)
Nun dient der MediaPlayer als Netzwerkserver im internen Netz und kann prinzipiell intern von jedem Gerät angesprochen werden. Um das zu testen, wäre es auf einfachstem Wege möglich, in seinen Webbrowser die Adresse ftp://IP-Des-Geräts einzugeben und zu schauen, ob man sich einloggen kann.
Den NAS von außen erreichbar machen – bestenfalls sicher
Aber was bringt es mir, einen FTP-Server im Heimnetz zu haben, wenn ich doch das Backup meines vServers aus dem Internet hier hinterlegen will? Die Antwort darauf findet sich in sogenannten DynDNS-Services. Diese erlauben es einem geeigneten Endgerät, quasi eine URL im Internet zu registrieren. Ich selbst nutze dafür dyndns. Der Anbieter ist für den privaten Gebrauch kostenlos, zuverlässig und bietet eine Vielzahl an möglichen Endungen für die eigene Domain. Eine Anleitung, wie man hier eigene Adressen registriert, ist mir gerade zu aufwändig, jedoch sollte jeder Nutzer, welcher der englischen Sprache mächtig ist, damit keine allzu großen Umstände haben.
Nachdem ich also nun eine dynamische Adresse registriert habe (in meinem Fall bspw. siyman.dyndns.org), muss ich diese auch mit einem Endgerät verbinden. Es geht also darum, meinem heimischen Router zu erklären, dass er eigentlich ein Webserver ist und dass er mittels siyman.dyndns.org auch erreicht werden kann. Heutzutage sollten das alle halbwegs guten Router von sich aus können (Fritzboxen können das für gewöhnlich alle), aber solche Features können bei passenden Geräten auch mittels spezieller Firmware nachgerüstet werden – so in meinem Fall. Die originale D-Link Firmware bietet zwar schon einen DynDNS-Service, jedoch ist mir die Konfiguration nicht ausgefeilt genug.
Ich verbinde mich also mit meinem Router (http://192.168.1.1) und logge mich ein. Hierauf folgt ein Klick auf Setup -> DDNS und ich richte meine Konfiguration ein. Schön bei DD-WRT-Firmware: DynDNS ist bereits vorkonfiguriert, sodass ich nur noch Benutzername, Passwort und Domain angeben muss und alles funktioniert von selbst. Die Konfiguration speichere ich und wende ich an und mit einem Test auf http://siyman.dyndns.org sollte mein Router nun antworten.
Sicherheit wird groß geschrieben
Aber will ich denn wirklich, dass jedes Scriptkiddie auf meinen Router/meinen NAS-FTP zugreifen kann? Nein, sicher nicht, denn das birgt ein enormes Sicherheitsrisiko. Also überlege ich mir, wie ich das ausschließen kann. Und hier kommt sogenanntes Port-Forwarding ins Spiel.
In meiner Routerkonfiguration geh ich auf den Reiter NAT/QoS -> Port-Weiterleitung und trage meine Informationen in die Maske ein. Meine Anwendung nenne ich backup ftp, als Protokoll wähle ich “beides”, in den Punk von Netz trage ich meinen vServer ein (also “siyman.de”), mein Port ist die 21 (also der FTP-Port, damit lediglich das FTP-Protokoll auf meinen NAS weitergeleitet wird), als IP-Adresse nutze ich die vorher festgelegte, in meinem Fall also die 192.168.1.155, auch hier ist der Port die 21 und mein Häkchen muss ich auch noch setzen. Diese Einstellungen speichere ich und wende sie ebenfalls an.
Fertig: Damit habe ich sichergestellt, dass der im Heimnetz befindliche NAS lediglich aus dem Netz von meinem eigenen Server siyman.de angesprochen werden kann und dies auch noch ausschließlich mittels FTP. Mögliche Angriffe funktionieren also nur noch mittels Man-in-the-Middle oder indem jemand den vServer hackt, was hoffentlich dank Debians Sicherheitsrichtlinien nicht so leicht möglich ist.
Der Test
Auf meinen vServer logge ich mich mittels ssh ein, um zu testen, ob auch wirklich alles funktioniert. Danach nutze ich den Befehl “ftp” (wenn nicht vorhanden, unter Debian/Ubuntu mittels “sudo apt-get update && sudo apt-get install ftp” nachinstallieren). Jetzt sehe ich eine leere Befehlszeile, angeführt von einer spitzen Klammer “>”. Ich gebe folgendes ein: “open” (es öffnet sich eine Verbindung), trage nun meinen Server ein (siyman.dyndns.org), danach den Benutzernamen (backup) und das Passwort. Arbeitet alles einwandfrei, so bin ich nun mit meinem NAS verbunden und kann meine gewohnten UNIX-Befehl nutzen. Beispielhaft würde mir ein “ls” meine Ordnerumgebung anzeigen.
Wohin speichern?
Nun liegt es an mir, herauszufinden, wo sich meine eingehängten Festplatten auf dem NAS befinden. In meinem Fall liegen diese unter /tmp/usbmounts, mein erster Datenträger ist die 120 GB Samsung Festplatte, welche im Unterordner sda1 zu finden ist. Damit liegt diese also auf dem FTP im Pfad “/tmp/usbmounts/sda1”. Diesen benötige ich, um im Webmin anzugeben, wohin mein Backup gespeichert werden soll.
Webmin auf Webbackup konfigurieren
Im Backupmodul nehme ich also als Speicherpfad nicht mehr ein lokales Laufwerk, sondern wähle den Punkt Host, trage hier meine DynDNS-Domain ein (siyman.dyndns.org), den Nutzer des FTP-Servers (backup) und das entfernte Verzeichnis inkl. Datei (backup.tar), wohin mein Backup geschrieben werden soll (/tmp/usbmounts/sda1/backup.tar). Als Befehl wähle ich ftp und mein Passwort muss ich ebenfalls angeben. Ich kann nun auch mit den Backup-Optionen oder der Zeitsteuerung spielen, aber das sollte jeder für sich selbst herausfinden. Letztlich ist meine Konfiguration nun perfekt und ich habe es ermöglicht, meine vServer mittels dump-Backup auf meinen lokalen, allein über das Netz von meinem vServer erreichbaren FTP-Server zu spiegeln. Und das, obwohl ich eigentlich weder NAS noch Server in meiner Wohnung habe, sondern allein mit meinen zur Verfügung stehenden Endgeräten, welche in vielen Haushalten zu finden sind.
Fertig, die helle Freude
Derzeit sichert mein /home-Verzeichnis von meinem vServer auf die Festplatte. Das dauert eine kleine Weile, aber das Ergebnis ist die Ersparnis von vieeel Arbeit, sollte beim Upgrade etwas schiefgehen. Außerdem sind meine sensiblen Daten vom Server, explizit der Synchronisierungsserver Funambol, noch einmal auf einem weiteren Endgerät gespiegelt.
Bei Fragen/spezifischen Konfigurationseinstellungen/Unklarheiten bitte ich um Kommentare oder Mails.