Dynamisches DNS und virtueller Webserver

Aus LinuxUser 04/2008

Dynamisches DNS und virtueller Webserver

Dynamisches Duo

Einen häuslichen Webserver aufzusetzen, ist nicht schwer – ihn zu pflegen, schon eher. Virtuelle Webserver bieten in Verbindung mit einem dynamischen DNS-Service eine pflegeleichte Alternative.

Dynamische DNS-Dienste gibt es bereits seit geraumer Zeit. Sie erlauben es Ihnen, im trauten Heim einen eigenen Webserver mit eigener Internetadresse zu betreiben, den Interessierte aus aller Welt erreichen, etwa über http://kris.dyndns.org. Das kostet Sie nicht mal etwas: Anbieter wie Dyndns.org [1], EasyDNS [2] oder Zoneedit.com [3] vergeben diese fixen Namen kostenlos. Um sie zu nutzen, benötigen Sie keine feste IP-Adresse. Weist der DSL-Provider Ihrem Router stets neue IP-Adressen zu, informieren eine spezielle Software oder gar der Router selbst den dynamischen DNS-Anbieter über die neue Adresse, und der aktualisiert seine DNS-Einträge.

Viele Nutzer schrecken aber vor dem Aufsetzen eines privaten Servers zurück, weil sie Sicherheitslücken fürchten. Nicht zu unrecht: Gelingt es Angreifern, den Webserver zu überlisten, landen sie direkt auf dem Privatrechner und gefährden eventuell wichtige Daten. Installieren Sie den Webserver hingegen in einer virtuellen Maschine (Abbildung 1), verwandeln Sie den Webserver und die feste URL in ein dynamisches Duo mit einer Reihe von Vorteilen. Randaliert ein unangemeldeter Besucher auf Ihrem Server und zerstört das mühsam aufgesetzte Weblog, starten Sie den virtuellen Server neu und stellen in Sekunden den vorherigen Zustand wieder her. Auch ein langwieriges Backup kann entfallen: Mit dem Vmware-Server nehmen Sie jederzeit Schnappschüsse vom aktuellen System auf, die bei Bedarf zur Rettung eilen. Nicht zuletzt verleiht Ihnen der Server Mobilität: Brennen Sie die gespeicherten Daten auf eine DVD oder kopieren Sie diese auf einen Stick, dann stecken Sie den Server locker in die Tasche und laden ihn in eine andere virtuellen Maschine auf einem fremden Rechner.

Abbildung 1: Ein Browser ruft die Internetadresse auf. Der dynamische DNS-Dienst übersetzt sie in die öffentliche IP-Adresse des Routers. Der leitet die Anfrage via NAT an den virtuellen Server im LAN weiter.

Abbildung 1: Ein Browser ruft die Internetadresse auf. Der dynamische DNS-Dienst übersetzt sie in die öffentliche IP-Adresse des Routers. Der leitet die Anfrage via NAT an den virtuellen Server im LAN weiter.

Aber auch die Nachteile eines virtuellen Servers seien nicht verschwiegen: Gewöhnlich ticken Systeme in virtuellen Maschinen etwas langsamer als nicht virtualisierte Systeme. Falls Sie also viele Zugriffe erwarten, weil Sie etwa einen Game-Server oder ein riesiges Content Management System betreiben, sollten Sie der virtuellen Maschine ordentlich Ressourcen spendieren oder sich die Virtualisierung komplett sparen. Auch die Hardware-Unterstützung lässt in virtuellen Maschinen zu wünschen übrig: Ihre Webcam, der MP3-Spieler oder andere externe Hardware ticken in der Vmware eventuell nicht wie gewünscht. Das Wirtssystem, das den virtuellen Server beherbergt, muss zudem über ein Kabel am heimischen Router hängen – die virtuellen Maschinen können mit einer WLAN-Anbindung des Wirtssystems nicht umgehen und bekommen keine Verbindung ins Internet. Nicht zuletzt behagen der virtuellen Maschine keine 3D-Anwendungen – was sich auf Servern allerdings eher selten als Problem erweist. Kommt ein virtueller Server für Sie nicht in Frage, macht das nichts: Der Apache-Server läuft mit dem dynamischen DNS-Dienst auch auf einer physikalischen Maschine – lediglich einen Router sollten Sie nutzen.

Schritt für Schritt

Ein kurzer Überblick verdeutlicht die Schritte hin zu einem vollständigen System. Zunächst installieren Sie einen virtuellen Server. Wir nutzen den kostenlosen Vmware-Server, der keine große Netzwerkkonfiguration erfordert. In den Server installieren Sie als virtuelle Maschinen das Betriebssystem, das Ihnen später als virtueller Server dient. Im Test kamen die Server-Variante von Ubuntu 7.10 und OpenSuse 10.3 zum Einsatz. Sie können natürlich auch beliebige andere Linux-Varianten einsetzen – die Wege zum Ziel ähneln sich stark.

Im virtualisierten Linux richten Sie dann Dienste ein, die Sie im Internet anbieten wollen. Im Artikel kommt nur der Apache-Server zum Einsatz. Nach der Installation erreichen Sie ihn zunächst nur von Rechnern im privaten Netzwerk aus. Um das zu ändern, machen Sie über NAT und Port Forwarding am Router den virtuellen Server im Internet sichtbar. Dazu verpassen Sie diesem eine feste IP-Adresse und konfigurieren den Router so, dass er alle Anfragen, die auf Port 80 ankommen, an den virtuellen Server weiterleitet. Auf diese Weise erreichen ihn Internet-Nutzer, indem sie in die Adressleiste ihrer Browser die öffentliche IP-Adresse Ihres Routers eingeben. Da man sich IPs aber schlecht merken kann und sie sich ständig ändern, richten Sie anschließend noch eine feste Internetadresse ein, über die Außenstehende Ihren Server zuverlässig ansprechen. Ddclient läuft auf dem virtuellen Server und unterrichtet den dynamischen DNS-Anbieter, sobald der Server eine neue IP-Adresse erhält.

Das hört sich jetzt erstmal nach reichlich Arbeit an, ist aber halb so wild. Die Programme lassen sich nahezu alle über den Paketmanager installieren und einrichten, ellenlange Befehlszeilen und Konfigurationen gibt es nicht. Also, frisch ans Werk.

Das Wirtstier

Sie können den kostenlosen Server von Vmware in Version 1.0.4 direkt von der Webseite herunterladen [4], müssen ihn dann aber per Hand installieren. Ubuntu-Nutzern steht ein wesentlich einfacherer Weg frei. Sie binden über Synaptic eine weitere externe Paketquelle ein (deb http://archive.canonical.com/ubuntu gutsy partner) und spielen das Paket vmware-server bequem ein. Anwender, die auf OpenSuse 10.3 als Wirtssystem setzen, nutzen diese Anleitung [5], um den Server zu installieren.

Auf jeden Fall benötigen Sie noch eine Seriennummer (Abbildung 2), die Sie ebenfalls unter der oben genannten Download-Adresse [4] erhalten – dazu müssen Sie allerdings erstmal einen Wust an Fragen über sich ergehen lassen. Nach der erfolgreichen Installation rufen Sie die grafische Oberfläche des Servers auf, indem Sie unter OpenSuse 10.3 und Ubuntu 7.10 [Alt]+[F2] eingeben und dann vmware tippen. Sie landen auf der in Abbildung 3 gezeigten Oberfläche.

Abbildung 2: Während der Konfiguration des Vmware-Servers erkundigt sich die Paketverwaltung von Ubuntu nach der heruntergeladenen Seriennummer.

Abbildung 2: Während der Konfiguration des Vmware-Servers erkundigt sich die Paketverwaltung von Ubuntu nach der heruntergeladenen Seriennummer.

Abbildung 3: Die grafische Oberfläche des Vmware-Servers. Über sie richten Sie nun einen oder mehrere virtuelle Server ein.

Abbildung 3: Die grafische Oberfläche des Vmware-Servers. Über sie richten Sie nun einen oder mehrere virtuelle Server ein.

Nun installieren Sie ein aus dem Netz heruntergeladenes ISO-Image. Alternativ benutzen Sie das CD- oder DVD-Laufwerk des Wirtsrechners als Installationsquelle, wenn das System auf einer CD oder DVD residiert. Wählen Sie zunächst File | New | Virtual Machine, um eine neue, “leere” virtuelle Maschine einzurichten. Wählen Sie Next, dann Typical und als zu installierendes System Linux. Aus dem Dropdownmenü suchen Sie dann die passende Version aus.

Im nächsten Dialogfenster geben Sie der virtuellen Maschinen einen Namen, hier UbuntuServer oder OpenSuse10_3, die Location ändern Sie nicht. Dann kommen Sie zu den Netzwerkeinstellungen. Wählen Sie hier Use bridged networking, wird der Server zu einem weiteren Client im lokalen Netzwerk, über den Sie auch ins WWW gelangen. Zum Testen genügt es, 5,0 GByte als Größe der Festplatte festzusetzen (Disk Size). Kreuzen Sie die Option Split disk into 2GB files an, wenn Sie die virtuelle Maschine zum Transport auf externe Medien kopieren wollen. Vor allem ältere Dateisysteme wie Ext2 und FAT32 tun sich mit großen Dateien mitunter schwer. Ein Klick auf Finish und der Server räumt auf dem Wirtssystem den benötigten Platz frei. Die virtuelle Maschine verhält sich nun quasi wie ein Computer mit leerer Festplatte – Zeit, Gäste einzuladen.

Gastfreundschaft

Auch die virtuelle Maschine mag Gastfreundschaft: Mit einem Klick auf Edit virtual machine settings teilen Sie ihr Ressourcen des Wirtsrechners zu. Unter CDROM 1 klicken Sie einfach auf Use ISO image, um ein ISO-Abbild als Installationsvorlage zu verwenden. Ein Mausklick auf Browse öffnet einen Dateimanager, und Sie suchen auf der Festplatte nach der ISO-Datei (Abbildung 4). Wollen Sie indes ein gewöhnliches Installationsmedium nutzen, behalten Sie die Vorgabe, um das Laufwerk auf dem Wirtssystem zu verwenden. Ein Klick auf Memory dient der Erweiterung des Speichers – entscheiden Sie selbst, wieviel MByte RAM die virtuelle Maschine von Ihrem Arbeitsspeicher abgreifen darf.

Treiben mehrere Prozessoren das Wirtssystem an, bestimmen Sie über den Menüpunkt Processors, welche Anzahl der virtuelle Server nutzen darf. Sie schließen dann die Konfiguration über OK ab und booten den virtuellen Rechner mit einem Klick auf Power on this virtual machine. Um Änderungen am BIOS vorzunehmen, drücken Sie schnell [Esc] – die Installation verläuft ansonsten wie auf physikalischen Rechnern auch. Im Fall des Ubuntu-Servers wählen Sie etwa die Boot-Option Install to Disk.

Generell gibt es einige Anleitungen im Internet, die zeigen, wie Sie diese oder jene Distribution installieren. Da Vmware der Distribution Standard-Hardware vorgaukelt, treten gewöhnlich auch keine Probleme mit Treibern auf. Ein Klick auf Snapshot am Ende der Installation konserviert das aktuelle System. Sie können es exakt in diesem Zustand wiederherstellen. Nehmen Sie später erneut einen Schnappschuss auf, wenn der Server läuft und die Konfiguration steht.

Abbildung 4: Für die Installation müssen Sie nicht unbedingt eine CD-ROM oder DVD zur Hand haben, ein ISO-Image der Distribution genügt auch.

Abbildung 4: Für die Installation müssen Sie nicht unbedingt eine CD-ROM oder DVD zur Hand haben, ein ISO-Image der Distribution genügt auch.

Apachen im Anmarsch

Ist Ihr Wirtssystem über ein Kabel mit dem Router verbunden, der IP-Adressen über DHCP verteilt, profitiert auch das neue virtuelle System davon. Beim Booten holt es sich direkt eine IP-Adresse vom DHCP-Server. Geben Sie ping www.linuxuser.de ein, sollten 100 Prozent der Pakete ihr Ziel erreichen. Geschieht das nicht, prüfen Sie, ob der Wirtsrechner ins Internet gelangt, ob er dazu tatsächlich das angesteckte Kabel verwendet und nicht etwa die WLAN-Karte. Unter OpenSuse können Sie über YaST die Netzwerkkarte neu initialisieren, unter Ubuntu erledigt das der Befehl sudo /etc/init.d/networking restart. Auf beiden Systemen zeigt der Befehl /sbin/ifconfig, welche IP-Adresse der Rechner nutzt. Sie notieren sich diese am besten, Sie brauchen sie gleich.

Nun gilt es, den Apache-Server zu installieren. Für Ubuntu-Nutzer erledigt das ein sudo apt-get install apache2. Der Paketmanager holt nun alle notwendigen Pakete aus dem Internet und konfiguriert den Server auch gleich mit Standardeinstellungen, die Ihren Bedürfnissen zunächst genügen sollten. Unter OpenSuse 10.3 starten Sie YaST und installieren das Paket apache2 über Software installieren oder löschen. Anschließend rufen Sie eine Konsole auf, erlangen Root-Rechte und geben /etc/init.d/apache2 start ein.

Um zu schauen, ob der Server bereits im internen Netz erscheint, verlassen Sie die Vmware und geben in den Browser auf dem Wirtssystem die eben notierte IP-Adresse des Gastsystems ein. Obwohl sich beide Betriebssysteme als Wirt und Gast auf demselben physikalischen Rechner befinden, benutzen sie verschiedene IP-Adressen. Sie erscheinen wie zwei Rechner in einem LAN. Tippen Sie also die IP-Adresse in die Adressleiste des Browsers, erscheint unter Ubuntu die verfügbare Webseite (Abbildung 5). OpenSuse 10.3 liefert eine Seite mit Error 403 aus, was zeigt, dass der Server erfolgreich läuft – es fehlt lediglich eine anzeigbare Webseite im Verzeichnis /svr/www/htdocs.

Abbildung 5: Dank des Bridged Networking in der Vmware erscheinen Gast- und Wirtsrechner als zwei separate Rechner im Netzwerk. Im lokalen Netzwerk erscheint der Apache-Server bereits.

Abbildung 5: Dank des Bridged Networking in der Vmware erscheinen Gast- und Wirtsrechner als zwei separate Rechner im Netzwerk. Im lokalen Netzwerk erscheint der Apache-Server bereits.

Klappt der Zugriff nicht, schützt sich das Gastsystem eventuell durch eine Firewall – bei OpenSuse ist das der Fall. Kehren Sie also zum Gastsystem zurück (Sicherheit und Benutzer | Firewall in YaST) und fügen Sie im Reiter Erlaubte Dienste den HTTP-Server aus dem Dropdownmenü hinzu (Abbildung 6). So erlauben Sie eingehende Verbindungen auf Port 80. Klappt’s mit dem internen Zugriff, bohren Sie nun Löcher in den Router.

Abbildung 6: Unter OpenSuse müssen Sie ein Loch in die Firewall bohren, damit Sie den installierten Apache-Server auch von Außen erreichen.

Abbildung 6: Unter OpenSuse müssen Sie ein Loch in die Firewall bohren, damit Sie den installierten Apache-Server auch von Außen erreichen.

Feste IP verteilen

Wie die Firewall auf einem Einzelrechner beschützt ein Router das lokale Netzwerk vor Gefahren aus dem Internet. Nur seine IP-Adresse, die er direkt vom Internet-Provider erhält, sieht man im WWW. Er verhindert also, dass Außenstehende direkt auf die Rechner im internen Netzwerk zugreifen. Rufen Sie im LAN eine Webseite auf, merkt sich der Router, von welchem Rechner die Anfrage stammt und schickt die angeforderten Daten genau an diesen Rechner zurück. Der Prozess nennt sich NAT (Network Address Translation ) und er stört in Ihrem Fall – Außenstehende sollen den Server ja sehen.

Die Lösung ist einfach: Sie sorgen dafür, dass der Router alle Anfragen, die auf Port 80 ankommen (dem Standardport des Apache-Servers) automatisch an die IP-Adresse des virtuellen Servers weiterleitet. Da dieser aber nach jedem Start vom DHCP-Server eine neue IP-Adresse erhält, müssen Sie ihm zunächst eine feste IP-Adresse zuweisen. Das geschieht gewöhnlich über ein eigenes Browser-Interface, das fast alle modernen Router mitbringen.

Sie erreichen es, indem Sie in die Adressleiste des Browsers die IP-Adresse des Routers eingeben. Welche das ist, verrät Ihnen neben dem Handbuch im Zweifelsfall die IP-Adresse selbst: Nutzt der Rechner die IP-Adresse 192.168.1.73, lautet die IP des Routers wahrscheinlich 192.168.1.1 oder 192.168.1.0. Jeder Router arbeitet hier etwas anders. Über das Router Interface sorgen Sie dann dafür, dass der DHCP-Server der virtuellen Maschine jedes Mal dieselbe IP-Adresse zuteilt (siehe Kasten “Feste IP zuweisen”).

Feste IP zuweisen

Der Router erkennt das Gastsystem anhand der MAC-Adresse der virtuellen Netzwerkkarte. Sie erfahren diese Adresse, indem Sie im Gastsystem eine Konsole öffnen und /sbin/ifconfig eingeben. Neben Hardware Adresse listet der Befehl die MAC-Adresse auf. Notieren Sie diese und kehren Sie zum Router Interface zurück. Dort können Sie MAC-Adressen meist feste IP-Adressen zuweisen, die aber im selben Netzwerksegment liegen müssen. Nutzt der Wirtsrechner als IP-Adresse die 192.168.0.73, vergeben Sie zum Beispiel die IP 192.168.0.111.

Starten Sie das virtuelle System nach der Änderung neu. Tippen Sie /sbin/ifconfig ein, sollte nun die von Ihnen gewählte IP-Adresse erscheinen. Alternativ weisen Sie dem Rechner über YaST (OpenSuse) oder die Netzwerkeinstellungen in der Systemverwaltung (Ubuntu) eine feste IP-Adresse zu.

Router löchern

Nach Vergabe der festen IP-Adresse, melden Sie sich erneut auf der Router-Oberfläche an. Neuer Router machen es den Nutzern einfach: Der DI-624 von D-Link bietet etwa eine eigene Sektion mit dem Namen Virtueller Server an (Abbildung 7), in der Sie einfach Port 80 für den virtuellen Server mit der IP-Adresse 192.168.0.111 freischalten.

Abbildung 7: Aktuelle Router berücksichtigen virtuelle Server bereits. Per Mausklick erlauben Sie den Zugriff über das Internet für einzelne Dienste.

Abbildung 7: Aktuelle Router berücksichtigen virtuelle Server bereits. Per Mausklick erlauben Sie den Zugriff über das Internet für einzelne Dienste.

Nach dem Neustart des Routers erscheint der virtuelle Server auch im Internet. Um das zu prüfen, finden Sie über eine entsprechende Website [6] Ihre öffentliche IP-Adresse heraus, die Sie dann im Browser eingeben. Nun sollte sich die Webseite Ihres Apache-Servers zeigen. Da jeder Router etwas anders funktioniert und nicht alle Router ein komfortables Interface mitbringen, bringen Sie über das Handbuch oder über Support-Foren in Erfahrung, wie Sie mit Ihrem Router den selben Effekt erzielen und Port 80 auf die IP des virtuellen Systems weiterleiten. Für andere Dienste müssen Sie andere Ports verwenden. Um etwa einen FTP-Server zu betreiben, leiten Sie die Ports 20 und 21 weiter.

Stets erreichbar

Die Webseite Dyndns.org [1] erlaubt – neben anderen anfangs erwähnten Anbietern – die kostenlose Vergabe von Domainnamen an Server mit dynamischen IP-Adressen. Um hier einen Account einzurichten, benötigen Sie eine gültige E-Mail-Adresse. Nach dem Anmelden auf der Webseite wählen Sie My Services und dann Add New Hostname. Hier geben Sie zunächst einen Hostnamen an, über den Andere den Server zukünftig erreichen – die Domain wählen Sie aus der Liste. Als Service Type nutzen Sie den Eintrag Host with IP address. Unter IP Address klicken Sie auf den kleinen blauen Link, der Ihre augenblickliche IP-Adresse automatisch ermittelt und einträgt (Abbildung 8). Nach einem Klick auf Create Host sollten Sie spätestens nach ein paar Minuten in der Lage sein, Ihren Server beispielsweise über http://kris.dyndns.org aufzurufen.

Abbildung 8: Ein dynamischer DNS-Anbieter lässt Andere Ihren Server trotz ständig wechselnder IP-Adressen erreichen. Das Tool Ddclient informiert den Dienst über Wechsel der IP-Adresse.

Abbildung 8: Ein dynamischer DNS-Anbieter lässt Andere Ihren Server trotz ständig wechselnder IP-Adressen erreichen. Das Tool Ddclient informiert den Dienst über Wechsel der IP-Adresse.

Natürlich können Sie die Webseite nicht jedes Mal besuchen, wenn Sie vom Provider eine neue IP-Adresse erhalten. Daher installieren Sie Ddclient: Die Software nimmt Ihnen diesen Job ab.

Läuft die virtuelle Maschine unter Ubuntu, dann geben Sie sudo apt-get install ddclient ein, um die Software zu installieren. Das System fragt Sie während der Installation nach Ihrem dynamischen DNS-Provider (hier www.dyndns.com), dann nach der vollständigen Internetadresse (kris.dyndns.org) sowie dem Benutzernamen und dem Passwort für die DynDNS-Webseite (Abbildung 9). Schließlich erkundigt sich die Software noch nach der Schnittstelle für den dynamischen DNS-Dienst – hier geben Sie die aktive Ethernet-Schnittstelle an, etwa eth0. Sie können Ddclient über sudo /etc/init.d/ddclient start aufrufen und über sudo dpkg-reconfigure ddclient noch detaillierter konfigurieren.

Nutzen Sie OpenSuse, spielen Sie via YaST das Paket ddclient ein. In die Konfigurationsdatei /etc/ddclient.conf, die Sie mit Root-Rechten bearbeiten, gehören die in Listing 1 gezeigten Einträge. In die Zeilen login, password tragen Sie die Zugangsdaten für den dynamischen DNS-Dienst ein – ganz unten steht die gewählte Internetadresse. Alle anderen Einträge übernehmen Sie wie gezeigt. Sie starten den kleinen Helfer, indem Sie mit Root-Rechten ddclient eingeben. Um zu sehen, ob er seinen Job korrekt erledigt, geben Sie auf der Konsole tail -f /var/log/messages ein. Steht im Log das Wort SUCCESS, überträgt das Tool die IP-Adresse korrekt. Andernfalls überprüfen Sie die Syntax der Konfigurationsdatei.

Abbildung 9: Unter Ubuntu richten Sie Ddclient direkt bei der Installation der Software über den Paketmanager ein.

Abbildung 9: Unter Ubuntu richten Sie Ddclient direkt bei der Installation der Software über den Paketmanager ein.

Listing 1
daemon=600
pid=/var/run/ddclient.pid
use=web, web=checkip.dyndns.org/, web-skip='IP Address'
login=kkissling
password=mein_geheimes_passwort
protocol=dyndns2
server=members.dyndns.org
wildcard=YES
kris.dyndns.org

Die Software ist nun fester Bestandteil Ihres Servers, mit dem Sie zusammen startet. Versuchen Sie es: Booten Sie den Router und den virtuellen Server neu und rufen Sie die eben eingerichtete Web-Adresse auf. Sie sollten sich nun auf Ihrem virtuellen Webserver wiederfinden. Als Webserver-Betreiber können Sie künftig beliebige Dienste anbieten. Denken Sie aber daran: Was auf dem Server liegt, sieht unter Umständen die gesamte Welt.

Infos

[1] DynDNS.org: https://www.dyndns.com

[2] EasyDNS: http://www.easydns.com

[3] Zoneedit.com: http://www.zoneedit.com

[4] Vmware-Server herunterladen: http://www.vmware.com/download/server/

[5] Vmware-Server unter OpenSuse: http://www.howtoforge.com/the_perfect_desktop_opensuse10.3_p6

[6] IP-Adresse herausfinden: http://www.ip-adresse-ermitteln.de

[]

LinuxUser 04/2008 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben