Frizbox als Webserver

 

Webseite zu hause Hosten?

Hier will ich eine kleine Anleitung geben wie ich , als Linux Dummy und Windooof gewöhnter , es hin bekommen habe die Fritzbox zum Webserver aufzubohren.

Ich nutze eine Fritzbox 7390 mit Firmware-Version 84.05.50 . Ab iOS 05.50 gibt es einige Änderungen die weiter unten beschrieben sind. Ich übernehme keine Haftung falls etwas nicht funktioniert oder Schäden auftreten.

Vorbereitungen

- Download einer Recovery für die Fritzbox bei AVM.de . Falls etwas daneben geht kann das originale System wieder hergestellt werden .

- Bringen Sie die Firmware auf den neusten Stand.

Achtung: Falls nach erfolgreicher Aktivierung des Apache Servers ein erneutes Firmwareupdate durchgeführt werden soll, müssen die Einträge in der debug.cfg zurückgesetzt (Raute "#" vor die Befehle setzen) werden und die Box neu gestartet werden. Ansonsten kann sich die Fritzbox beim Firmwareupdate aufhängen, was dann eine Recovery nötig macht.

- aktivieren des NAS auf der Fritzbox unter Heimnetz/Speicher (NAS)/Aktivierung. In Sicherheit; Heimnetz Kennwortschutz  anklicken und ein Passwort vergeben z.B. "Fritz" vergeben. dann noch die "lesen und schreiben" Option aktivieren.

- Den FritzNAS als Netzlaufwerk einrichten. Dazu gibt es für das jeweilige Betriebsystem eine Anleitung bei AVM.de . Für XP Start/Ausführen; \\fritz.Box eingeben , FRITZ.NAS rechtsklick > Netzlaufwerk verbinden . Username : ftpuser  Passwort : Fritz ! ! !wie oben! Danach ist der interne Speicher der Box im Arbeitsplatz wie eine Festplatte zu erreichen.

- im internen Speicher wird ein Ordner namens "server" angelegt

- jetzt entpackt man mit Winrar die Datei apache.tar in direkt den Ordner "server" (nicht erst auf die Festplatte) . Es sollte nach den entpacken im Ordner "server" ein Ordner "apache" mit Unterordnern vorhanden sein.

- Die Datei 7390inf.zip downloaden und in der apache Unterordner "conf" entpacken. Originale apache.conf überschreiben .

- Notepad++ downloaden und installieren (Google hilft) . Unter Einstellungen/Optionen/Neu_Öffen_Speichern/unter Neue Datei/ Format den Punkt auf Unix setzen . Alle Änderungen an den Serverdateien mit Notepad++ duchführen.

- auf dem Desktop eine neue Verknüpfung erstellen mit : cmd.exe /k telnet fritz.box

- Auf der Fritzbox Telnet aktivieren , mit dem Telefon #96*7* anrufen .

 

erster manueller Start

 

- Die erstellte Verknüpfung starten, und das Fritzbox Zugangspasswort eingeben . Prüfen ob man drin ist ls (list) eingeben. Dann sollte es so aussehen .

- Server manuell starten:

Aus der 7390.txt im Ordner apachhe/conf/ mit Notepad++ die Zeilen kopieren und in die Eingabe einfügen und Enter.

Metode 1 : Server ist unter 192.168.178.1:85 erreichbar. ar7.conf muss bearbeitet werden.

HDD='server'

HDD_ABSOLUT='/var/media/ftp/'$HDD

while ! [ -d $HDD_ABSOLUT ] ; do sleep 5; done

$HDD_ABSOLUT/apache_bin -f $HDD_ABSOLUT/apache/conf/apache.conf

oder alternativ

Metode 2 : Server ist unter 192.168.178.253:85 erreichbar. ar7.conf muss nicht bearbeitet werden. In appache.conf muss die IP angepasst werden. (Beschreibung weiter unten)

USBPATH="/var/media/ftp/server"
ifconfig eth0:0 192.168.178.253 netmask 255.255.255.0 up
$USBPATH/apache_bin -f $USBPATH/apache/conf/apache.conf

Für Metode 1 sollte das so aussehen:

wenn keine Fehlermeldung kommt sollte der Server laufen. Ob das so ist kann man mit ps prüfen.

- der Server ist jetzt manuell gestartet und unter fritz.box:85 oder 192.168.178.1:85 mit dem Browser zu erreichen.

- Jetzt kann man seine Webinhalte in den Ordner apache/htdocs/ einfügen. Vorher die 2 Dateien im Ordner löschen. F5 (neu laden) und die neue index.htm (html,php....) sollte angezeigt werden.

Automatischer Start

 

Um den Server auch beim Neustart der Box automatisch zu starten , muss nun das Startkomando das eben manuell eingegeben wurde , automatisch beim Boxstart ausgeführt werden . Dafür ist die Datei debug.cfg zu edieren. Diese befindet sich im Ordener var/flash/ auf der Fritzbox. mit  cd var/flash/ und dann ls wird der Inhalt des Ordners angezeigt. Dort sollte auch die debug.cfg vorhanden sein. Edieren der Datei mit :

nvi /var/flash/debug.cfg

Die Datei sollte leer sein. Nun die Taste s drücken.  Jetzt kopiert man das gewünschteStartkomando für den Server in den Editor. Das sollte für Metode1 so aussehen:

"Escape" Taste drücken und dann :wq eingeben. Als nächstes die Box neu starten reboot eingeben !

Bei meiner jungfreulichen Box gab das ein Problem. Ich konnte die Datei nicht öffnen. Das liegt wohl daran das die debug.cfg zwar im Ordner  flash angezeigt wird aber nicht wirklich edierbar vorhanden ist. Also musste ich diese erst erzeugen mit:

echo > /var/flash/debug.cfg

Danach konnte ich sie dann wie beschrieben mit nvi ediert werden.

Nach dem Neustart mit Telnet (Verknüpfung) wieder in die Box und schauen ob der Server mit gestartet wurde. Eingabe ps ! Apache sollte jetzt geladen und erreichbar sein wie nach dem manuellen Start .

Zugang aus dem Netz

- Jetzt muß der Server auch aus den Internet zu erreichen sein. In der Fritzbox unter Internet/Freigaben/Portfreigaben/ legt man eine neue Portfreigabe wie folgt an :

Für Metode 2 die Portweiterleitung auf die 192.168.178.253:85 Legen, und das bearbeiten der ar7.conf überspringen.

Für Metode 1 wie folgt:

Unter der IP 192.168.178.40 Port 85 ist der Server aber nicht zu erreichen ! Aber wenn man die Freigabe auf die 192.168.178,1 legen will , verweigert das die Fritzbox ! Um das zu umgehen muss die Datei var/flash/ar7.cfg auf der Fritzbox ediert werden . Dieses kann man mit nvi machen . Einfacher geht es aber mit FBEditor-0.5.3 (Fritzboxeditor) . Das Programm downloaden und installieren. Unter Einstellungen Host IP und Passwort eingeben. Danach unter Datei/Konfiguration einlesen , wird die ar7.cfg zugänglich. Unter Bearbeiten/Suchen/ nach apache suchen lassen . Es sollte folgendes gefunden werden:

Die IP 192.168.178.40 wird in 0.0.0.0 geänder !

Unter Datei/Konfiguration zurückspielen , wird die Änderung zurück in die Fritzbox übertragen. Achtung es dauert eine Weile bis das Programm die Datei zurück in die Box gespielt hat . Die Box startet dann neu.

Nach dem Neustart ist der Server unter der exterernen Fritzbox IP aus dem Internet erreichbar. Diese findet man in der Fritzbox in der Übersicht:

Die Eingabe der IP im Browser http://84.184....... zeigt ob es funktioniert. Evtl. vom Nachbarn aus testen .

Dynamische DNS

 

Da die Fritzbox bei jedem Reconnect eine andere IP Adresse bekommt , währe der Server auch immer über eine andere IP zu erreichen . Um das zu umgehen richtet man einen Zugang z.B. bei dyndns.org ein. Die dort erhaltenen Daten gibt man unter Internet/Freigaben/Dynamic DNS/ ein. Ob es funktioniert hat kann man unter Internet/OnlineMonitor  Dynamic DNS überprüfen .

Jetzt ist der Server unter http://meinname.dyndns.org erreichbar .

Zugang per www.meineadresse.de :

 

Dieses ist nicht unbedingt erforderlich . Denn die dynamische Adresse ist ausreichend. Wenn nicht , beantragt man eine .de Adresse . Hierfür gibt es verschiedene Anbieter , wobei dann das preisgünstigste Packet meist ausreichend ist. Danach richtet man eine Umleitung auf die Adresse des Servers ein.

Ab iOS 05.50:

Ab Firmware 84.05.50 gibt es einige Änderungen.

1. Das Passwort in der apache.conf muß vom boxusr80 auf boxusr99 (=ftpusr) geändert werden. Wenn der nicht funktioniert mit cat /etc/passwd  nachschauen welche User auf der Box aktiv sind. Ich habe von anderen gehört das es auch mal der 89 war. Es kommt darauf an welche Benutzer ihr auf der Box angelegt habt. Deshalb den ftpusr nicht löschen.

2. Um das edieren der ar7.config zu umgehen ( Metode 2 ), läuft der Server bei mir jetzt auf 192.168.178.253 ( IP in apache.conf ändern ). Evtl. die ar7.conf auf Originalzustand zurücksetzen.

 

Dann die apache Portfreigabe auf Port 192.168.178.253:85 in der Fritzbox ändern.  In die debug.config kommen folgende Startbefehle:

USBPATH="/var/media/ftp/server"
ifconfig eth0:0 192.168.178.253 netmask 255.255.255.0 up
$USBPATH/apache_bin -f $USBPATH/apache/conf/apache.conf

Der Server ist jetzt unter 192.168.178.253:85 zu erreichen.

Das hier Beschriebene funktioniert auch mit Fritzboxen 7270 und älter. Dabei wird eine andere Version des Apache verwendet. Hilfreich ist hier das Forum  http://www.ip-phone-forum.de/ .

Quellen:

http://www.ip-phone-forum.de/ Tipps und Tricks

http://www.fritzmod.net Apache Server Programm und Anleitung unbedingt ansehen !

http://www.xobztirf.de/selfsite.php?aktion=Apache%20und%20PHP Apache Server und Anleitung