Wir haben Ihnen bereits gezeigt, wie Sie Ihren Heimrouter mit der alternativen DD-WRT-Firmware modifizieren können, um die Leistung erheblich zu verbessern. Heute zeigen wir Ihnen, wie Sie mit dem DD-WRT Mod-Kit noch weiter gehen können.
Wenn Sie es noch nicht getan haben, lesen Sie unbedingt die beiden vorherigen Artikel in der Reihe:
- Verwandeln Sie Ihren Heimrouter in einen Super-Power-Router mit DD-WRT
- So steigern Sie Ihr Wi-Fi-Netzwerksignal und erhöhen die Reichweite mit DD-WRT
Angenommen, Sie sind mit diesen Themen vertraut, lesen Sie weiter. Beachten Sie, dass diese Anleitung etwas technischer ist und Anfänger beim Modifizieren ihres Routers vorsichtig sein sollten.
Überblick
In diesem Handbuch erfahren Sie Schritt für Schritt, wie Sie Ihre eigene DD-WRT-Firmware mit Änderungen und Ergänzungen erstellen. firmware modification kit “.
Mit dem Firmware-Änderungskit können Änderungen an der Firmware vorgenommen werden, ohne diese aus dem Quellcode zu kompilieren. Das Vornehmen von Änderungen auf diese Weise mithilfe der bereitgestellten Skripte wird zum einfachen Herunterladen, Ersetzen und Löschen einiger Dateien.
Der Hauptgrund für die Verwendung dieser Methode ist, dass DD-WRT in letzter Zeit die Openwrt IPKG-Pakete haben sich auf Router mit Festplatten (über USB) verlagert. Damit ist das Mod-Kit die einzige konsistent funktionierende Methode, um die IPKG-Pakete erfolgreich zu installieren, wenn keine Festplatte verfügbar ist. Darüber hinaus hat diese Methode den zusätzlichen Vorteil, dass Sie von der JFFS-Abhängigkeit für die Paketinstallation entlastet werden, was für Router mit nur 4 MB Flash ein echtes Problem darstellt.
Tore
Anweisungen für dieses Verfahren finden Sie unter DD-WRT Wiki und auf der Entwickler-Website Wir möchten dieses Handbuch zu einem Copy & Paste-Verfahren machen, mit dem jeder die folgenden Ziele erreichen kann:
- Installieren Sie das knockd-Paket und seine Abhängigkeiten.
-
Installieren Sie das ssmtp-Paket mit NVRAM-basierten generierten Konfigurationen.
- Optional mit Unterstützung für TLS-SMTP (a.k.a. Google Mail-Unterstützung).
Sobald Sie dieses Verfahren befolgt haben, sollte es relevant einfach sein, es für andere Paketinstallationen anzupassen.
Warnung
:
Treten Sie leicht… denken Sie daran, dass eine falsche Verwendung des Modifikationskits dazu führen kann, dass Sie einen Router haben, der benötigt wird
Entmauerung
(wie wiederum in eine
nutzloser Ziegel
). Wenn Sie jedoch ein echter Geek sind, schließen Sie sich wahrscheinlich der Ideologie an, dass
Wer etwas zerstören kann, kontrolliert etwas
und das tun nur echte Geeks
Voraussetzungen
- Mit diesem Verfahren kann Backstein Ihr Router, wie in machen Sie Ihren Router unbrauchbar, Wir übernehmen keine Verantwortung für Schäden, die direkt oder auf andere Weise durch die Anwendung der folgenden Verfahren verursacht werden.
- Dieses Verfahren wurde auf Debian-basierten Systemen (Lenny, Squeeze und Mint) durchgeführt. In den folgenden Anweisungen wird davon ausgegangen, dass Sie auch eines verwenden.
- Dieses Verfahren wird nur Personen empfohlen, die Erfahrung mit dem Flashen ihres Routers mit DD-WRT haben, mit allen Voraussetzungen, Einschränkungen und Einschränkungen, die für ihre Hardware-Einrichtung gelten. Ein guter Anfang wäre unser Verwandeln Sie Ihren Heimrouter in einen Super-Power-Router mit DD-WRT leiten.
- Ihr Router muss mindestens die Mini-Version von DD-WRT unterstützen.
- Dieses Verfahren wurde auf Linksys WRT54GS / L-Routern erstellt und getestet. Wenn Sie Router von anderen Anbietern verwenden, kann Ihr Kilometerstand sehr hoch sein.
Konfiguration
Erforderliche Pakete installieren
Das Firmware-Änderungskit weist einige Abhängigkeiten auf, damit es kompiliert und funktioniert. Um sie alle auf einmal zu installieren / aktualisieren, geben Sie diesen Befehl in einem Terminal ein:
sudo aptitude install gcc g ++ binutils patch bzip2 flex bison gettext entpacken zlib1g-dev libc6 subversion
Laden Sie das Mod-Kit herunter
Erstellen Sie einen Unterordner und holen Sie sich das Kit vom offiziellen SVN:
mkdir firmware_mod_kit
cd firmware_mod_kit
svn checkout http://firmware-mod-kit.googlecode.com/svn/trunk/ firmware-mod-kit-schreibgeschützt
cd firmware-mod-kit-schreibgeschützt / trunk /
Laden Sie eine Firmware herunter, an der Sie arbeiten können
Als erstes sollten Sie überlegen, welche Version Sie verwenden möchten.
Als Faustregel gilt: Verwenden Sie im Zweifelsfall „mini“. Dies liegt daran, dass Sie, solange Ihr Router mindestens die „Mini“ -Version unterstützt, mit dieser Funktion alle am häufigsten verwendeten Funktionen ohne Bloatware erhalten. Dadurch bleibt sowohl Platz für die Prozeduren als auch Platz für JFFS
andere Verwendungen
in den meisten Fällen.
Sobald Sie sich für eine Version entschieden haben, wird empfohlen, die neueste Version der verfügbaren Firmware zu verwenden, da diese im Vergleich zu ihren "stabilen" Gegenstücken häufig viele Fehlerbehebungen aufweist.
Zum Zeitpunkt dieses Schreibens war die letzte Version „03-17-11-r16454“, und diese Überarbeitung wird in den folgenden Befehlen verwendet.
wget http://www.dd-wrt.com/dd-wrtv2/downloads/others/eko/BrainSlayer-V24-preSP2/2011/03-17-11-r16454/broadcom/dd-wrt.v24_mini_generic.bin
Benennen Sie die heruntergeladene Datei um, um die Versionsnummer wiederzugeben, damit Sie leichter verfolgen können, welche Version wir verwenden:
mv dd-wrt.v24_mini_generic.bin dd-wrt.v24_mini_generic-03-17-11-r16454.bin
Dies ist natürlich optional, aber die folgenden Befehle setzen voraus, dass Sie die Datei umbenannt haben.
Firmware extrahieren
Um Dateien innerhalb der Firmware ändern zu können, müssen wir deren Inhalt in ein temporäres Verzeichnis extrahieren.
Die Syntax dieses Befehls lautet:
./extract_firmware.sh FIRMWARE_IMAGE WORKING_DIRECTORY
In unserem Fall würde dies bedeuten:
./extract_firmware.sh dd-wrt.v24_mini_generic-03-17-11-r16454.bin ./working_dir_mini1
Hinweis: Wenn Sie diesen Befehl zum ersten Mal ausführen, werden die Mod-Kit-Tools auf Ihrem System erstellt. Dies passiert nur einmal und kann eine Weile dauern. Seien Sie also geduldig.
Pakete installieren
Nachdem die Firmware extrahiert wurde, können wir die Pakete darauf installieren.
Im Allgemeinen wird das Paket und seine Abhängigkeiten in Form einer IPK-Datei von der heruntergeladen
openWRT-Repository
. Nach dem Herunterladen installieren Sie sie mit dem bereitgestellten Skript in der extrahierten Firmware.
Das klopfte Paket
Detaillierte Anweisungen zum Konfigurieren und Verwenden von Knockd werden in einem zukünftigen Artikel beschrieben. Sie können diesen Schritt daher vorerst überspringen oder zur Vorbereitung auf die Zukunft ausführen, da Knockd ohnehin nicht viel Platz beansprucht.
Knockd ist ein Daemon, der Kommunikationsereignisse auf der Verbindungsschicht auf Sequenzen abhört und dann auf diese einwirkt.
Dies bedeutet, dass das Gerät, auf dem der Dämon ausgeführt wird, die Ports nicht einmal „abhören“ kann (bei einem Port-Scan werden sie nicht als geöffnet angezeigt) und dennoch mit einem einzigen Befehl alle erforderlichen Schritte ausführen kann
Aufstieg
zu einem vollständigen Skript.
Mit dieser Technik
Sie können den Server dazu veranlassen, jede Art von Operation, die Sie benötigen, remote (über das Internet) auszuführen, ohne Ihr Heimnetzwerk freizulegen.
Knockd hat nur eine aufgelistete Abhängigkeit. Laden Sie das Paket und seine Abhängigkeit herunter, indem Sie Folgendes ausgeben:
wget http://downloads.openwrt.org/backports/rc5/knockd_0.5-1_mipsel.ipk
wget http://downloads.openwrt.org/whiterussian/packages/libpcap_0.9.4-1_mipsel.ipk
Installieren Sie das ipk "knock daemon" (knockd) in der Firmware:
./ipkg_install.sh knockd_0.5-1_mipsel.ipk ./working_dir_mini1/
Installieren Sie das IPK "Packet Capture" (libpcap) in der Firmware:
./ipkg_install.sh libpcap_0.9.4-1_mipsel.ipk ./working_dir_mini1/
Da "knockd" mit einer alternativen Konfigurationsdatei aufgerufen werden kann (wie in einem zukünftigen Artikel erläutert wird), müssen keine weiteren Vorgänge ausgeführt werden, und Sie können zum Abschnitt zum Erstellen von Firmware springen, wenn dies alles ist, was Sie installieren möchten.
Das SSMTP-Paket
Mit dem SSMTP-Paket kann Ihr Router E-Mail-Nachrichten senden, wie wir sie in unserem Artikel gezeigt haben
So richten Sie E-Mail-Benachrichtigungen unter Linux mit Google Mail oder SMTP ein
für Server. Wir haben Ihnen damals versprochen, dass wir zeigen werden, wie dies für DD-WRT konfiguriert wird, und wir werden jetzt liefern.
Dies ist vor allem dann hilfreich, wenn Sie Skripte auf dem Router erstellen möchten, für die Sie per E-Mail Feedback zu deren Betrieb erhalten möchten.
Das Setup dieses Pakets ist aufgrund der durch ein eingebettetes System auferlegten Einschränkungen etwas komplexer als auf normalen Linux-Systemen. Atmen Sie also tief ein… fertig?…. Lass uns gehen… :)
Laden Sie das Paket herunter:
wget http://downloads.openwrt.org/backports/rc5/ssmtp_2.61-1_mipsel.ipk
Installieren Sie das IPK "ssmtp" in der Firmware:
./ipkg_install.sh ssmtp_2.61-1_mipsel.ipk ./working_dir_mini1/
TLS-Unterstützung (optional)
SSMTP listet keine anderen Pakete als Abhängigkeiten auf. Wenn Sie jedoch ein SMTP-Gateway verwenden möchten, für das eine TLS-Authentifizierung erforderlich ist (d. H.
Google Mail
) müssen Sie auch das openSSL-Paket installieren.
Hinweis
: Es gibt eine riesige
Nachteil
Dies geschieht in Form eines erheblich reduzierten Speicherplatzes auf dem Router für JFFS später. Das heißt, das openSSL-Paket benötigt ungefähr 500 KB Speicherplatz von insgesamt 4 MB (für einen normalen, nicht „mega“ unterstützenden Router), zusammen mit dem JFFS-Overhead, und Sie werden feststellen, dass Sie nur noch wenige Blöcke übrig haben freier JFFS-Speicherplatz (ca. 60 KB bei WRT54GL).
Da es immer noch keine TLS-Server gibt, für die SMTP-Server erforderlich sind (normalerweise Ihre ISPs), sollten Sie sich eine Minute Zeit nehmen, um zu überlegen, ob Sie das TLS, für das ein Gateway erforderlich ist, wirklich verwenden müssen.
Wenn Sie sich entschieden haben, die TLS-Unterstützung trotz ihres Nachteils zu aktivieren, laden Sie das openSSL-Paket herunter:
wget http://downloads.openwrt.org/whiterussian/packages/libopenssl_0.9.8d-1_mipsel.ipk
Installieren Sie das IPK "openSSL" (libopenssl) in der Firmware:
./ipkg_install.sh libopenssl_0.9.8d-1_mipsel.ipk ./working_dir_mini1/
Konfigurationen
Das SSMTP-Paket hat die Einschränkung, dass es nicht mit einer alternativen Konfigurationsdatei aufgerufen werden kann.
Da die Firmware schreibgeschützt ist, wenn sie sich auf dem Router befindet, bedeutet dies, dass wir die Konfiguration sofort nur fest in die Firmware codieren können.
Was ist jedoch, wenn wir nicht alle Schritte zur Firmware-Änderung ausführen möchten, nur um die E-Mail-Einstellungen zu ändern? (zum Beispiel eine Passwortänderung).
Zu diesem Zweck kamen sowohl Jeremy (der Entwickler des Firmware-Mod-Kits) als auch ich zu dem Schluss (unabhängig, wenn ich demütig hinzufügen darf), dass der einzig vernünftige Weg, dies zu tun, darin besteht:
- Stellen Sie den Speicherort der Konfigurationsdateien, auf den das ssmtp-Paket verweist, auf den schreibgeschützten Speicherort unter etc und auf das tmp-Verzeichnis, in das zur Laufzeit geschrieben werden kann.
- Erstellen Sie ein Skript, das die Konfigurationen beim Start dynamisch basierend auf NVRAM-Variablen generiert.
Um dies zu erreichen, sind einige zusätzliche Schritte erforderlich…
Verknüpfen Sie das ssmtp-Konfigurationsverzeichnis
Wie oben erklärt, müssen wir das machen
/ etc / ssmtp
Position auf dem Router, zeigen Sie auf die
/ tmp
Das Verzeichnis ist der einzige beschreibbare Ort, den wir zur Laufzeit auf dem Router haben. Löschen Sie dazu das vom ipk-Installationsprogramm erstellte ssmtp-Verzeichnis:
rm -rf ./working_dir_mini1/rootfs/etc/ssmtp/
Erstellen Sie einen neuen symbolischen Link, der auf / etc / ssmtp im Root-Dateisystem des Routers verweist, um auf / tmp / etc / ssmtp als absoluten Pfad zu verweisen:
ln -s / tmp / etc / ssmtp / ./working_dir_mini1/rootfs/etc/ssmtp
Hinweis : Auch wenn dies derzeit unlogisch erscheint, da wir das Konfigurationsverzeichnis des Pakets auf einen Speicherort außerhalb des Arbeitsverzeichnisses des Firmware-Änderungskits verweisen, versichere ich Ihnen, dass dies aus Sicht des Routers zur Laufzeit völlig in Ordnung aussieht.
Ein Init-Skript
Obwohl es durchaus möglich ist, dieses Skript nicht in die Firmware einzufügen und später als Startskript auszuführen, halte ich es für angebracht, es hier zu platzieren, wenn auch nur als Beispiel für die zukünftige Verwendung.
Ursprünglich hat Jeremy das Skript erstellt, das auf die Anfrage einer anderen Person zugeschnitten ist. Später habe ich es angepasst und erweitert, um es besser mit DD-WRT- und Syslog-Berichten kompatibel zu machen.
Erstellen Sie das neue Init-Skript (Startskript):
vi ./working_dir_mini1/rootfs/etc/init.d/S80ssmtp
Hinweis: Sie können einen anderen Editor verwenden. Ich verwende vi, da dies mit den auf dem Router verfügbaren Elementen übereinstimmt.
Machen Sie dies zu seinem Inhalt:
#!/bin/sh
#
# title: ssmtp_nvram.sh
# Autor: Jeremy Collake und Aviad Raviv
# Website: http://www.bitsum.com, http://howtogeek.com
#
# Skript zum Erstellen einer Konfigurationsdatei aus nvram vars.
# funktioniert für jede Konfigurationsdatei, die verwendet wird
# var = Werttyppaare.
#
# verwendet Präfixe für NVRAM-Variablen.
#
# и.е.
# ssmtp hostname = etwas
# übersetzt in ssmtp.conf
# hostname = etwas
#
logger_func ()
{
logger -s -p local0.notice -t SSMTP_init $ 1
}
logger_func "############ Startete den SSMTP-Init-Lauf ############"
logger_func "Erstellen des Verzeichnisses etc in / tmp"
[ ! -d /etc/ssmtp/ ] && mkdir -p / tmp / etc / ssmtp /
CONFIG_FILE = / etc / ssmtp / ssmtp.conf
NVRAM_PREFIX = ssmtp_
PACKAGE_NAME = ʻecho $ NVRAM_PREFIX | sed 's / _ / /' `
logger_func "Generieren von $ CONFIG_FILE für das Paket $ PACKAGE_NAME"
#echo $ 0: Generieren von $ CONFIG_FILE für das Paket $ PACKAGE_NAME
echo "#! / bin / sh"> $ CONFIG_FILE
echo "#" >> $ CONFIG_FILE
echo "# automatisch generiert basierend auf nvram von $ 0" >> $ CONFIG_FILE
echo "#" >> $ CONFIG_FILE
wenn [ -z "`nvram show | grep ssmtp`" ]
dann
logger_func "Es scheint, dass Sie die zum Generieren der conf-Datei erforderlichen NVRAM-Variablen nicht festgelegt haben."
logger_func "** Betrachten Sie ** die Verwendung dieser Befehle in Ihrem Startskript:"
logger_func "nvram set [email protected]"
logger_func "nvram set ssmtp_mailhub = smtp.gmail.com: 587"
logger_func "nvram set [email protected]"
logger_func "nvram set ssmtp_UseSTARTTLS = YES"
logger_func "nvram set ssmtp_AuthUser = Benutzername"
logger_func "nvram set ssmtp_AuthPass = password"
logger_func "nvram set ssmtp_FromLineOverride = YES"
logger_func "Erstellen Sie die NVRAM-Variablen und führen Sie das Init-Skript erneut aus oder starten Sie es neu, damit die Einstellungen wirksam werden."
Ausfahrt 0
Sein
###########################################################
#
# Hauptschleife
#
SED_COMMAND = "s / $ NVRAM_PREFIX / /"
CONFIG_VARS = `nvram show | grep $ NVRAM_PREFIX | sed "$ SED_COMMAND" `
für i in $ CONFIG_VARS; tun
echo $ i >> $ CONFIG_FILE
erledigt
###########################################################
#
# Gesundheitsüberprüfung
#
wenn [ ! -f "$CONFIG_FILE" ]; dann
# echo "$ 0: ERROR - $ CONFIG_FILE konnte nicht erstellt werden. Möglicherweise gibt es kein Symink / etc / XXXX -> / tmp / etc / XXXX?"
logger_func "FEHLER - $ CONFIG_FILE konnte nicht erstellt werden. Möglicherweise gibt es kein Symink / etc / XXXX -> / tmp / etc / XXXX?"
Sein
logger_func "############ Beendet den SSMTP-Init-Lauf ############"
Machen Sie es ausführbar:
chmod + x ./working_dir_mini1/rootfs/etc/init.d/S80ssmtp
Beachten Sie die NVRAM-Wartevariablen im Skript. Es liegt in unserer Verantwortung, ihnen etwas zur Verfügung zu stellen, mit dem sie arbeiten können, nachdem wir unsere geänderte Firmware auf dem Router installiert haben.
Erstellen Sie die geänderte Firmware
Nachdem alles vorhanden ist, ist es an der Zeit, die geänderte Firmware in eine komprimierte Binärdatei zu packen, die wir auf den Router flashen können.
Die Skriptsyntax "build.sh" lautet:
./build_firmware.sh OUTPUT_DIR WORKING_DIRECTORY
Dazu verwenden wir das mitgelieferte Skript. Geben Sie also Folgendes ein:
./build_firmware.sh output_mini1 ./working_dir_mini1/
Sobald der Build-Vorgang abgeschlossen ist, warten mehrere Firmware-Images darauf, im Verzeichnis "output" verwendet zu werden.
Sie können jetzt die Datei "custom_image_00001-generic.bin" als auf Ihren Router flashen Normalerweise würden Sie eine DD-WRT-Firmware verwenden .
Hinweis : Vergessen Sie nicht, vor, während und direkt nach dem Firmware-Flash die Werkseinstellungen wiederherzustellen.
Post Flash-Schritte
Da das SSMTP-Paket nach NVRAM-Variablen gesucht hat, um die ssmtp-Konfigurationsdatei zu generieren, müssen wir sie jetzt mit den fehlenden Informationen versorgen.
Dies erreichen wir mithilfe der Web-GUI-Funktion "Befehle ausführen".
Gehen Sie zur Web-GUI -> "Administration" -> "Befehle" -> fügen Sie Folgendes in das Textfeld ein:
nvram set [email protected]
nvram set ssmtp_mailhub = smtp.gmail.com: 587
nvram set [email protected]
nvram set ssmtp_UseSTARTTLS = YES
nvram set ssmtp_AuthUser = Ihr-gmail-Benutzername (ohne @ gmail.com)
nvram set ssmtp_AuthPass = you-gmail-password
nvram set ssmtp_FromLineOverride = YES
nvram commit
Ersetzen Sie den Text nach dem Gleichheitszeichen (=) durch Ihre tatsächlichen Informationen und klicken Sie dann auf "Befehle ausführen".
Hinweis
: Wenn Sie einen regulären SMTP-Server verwenden, der kein TLS verwendet, ist der zu verwendende Port 25 anstelle von 587.
Nachdem die SSMTP-Informationen verwendet werden können, müssen Sie das Init-Skript aufrufen. Sie können den Router also entweder neu starten oder in das Textfeld "Befehle" einfügen:
/etc/init.d/S80ssmtp
Drücken Sie dann erneut auf "Befehle ausführen".
Die Ausgabe dieses Befehls sollte folgendermaßen aussehen:
Testen Sie, ob Sie E-Mails senden können
Fügen Sie diesen Befehl mit Ihrer E-Mail-Adresse erneut in das Textfeld "Befehle" ein:
echo "Tiegel per E-Mail testen 123 qwe" | ssmtp -vvv [email protected]
Drücken Sie dann erneut auf "Befehle ausführen".
Da wir die Option -vvv für zusätzliche Ausführlichkeit verwendet haben, sollte die Ausgabe dieses Befehls folgendermaßen aussehen:
Wenn alles gut gegangen ist, sollten Sie die Test-E-Mail innerhalb von Sekunden erhalten.
Wir hoffen, dass Sie diese Informationen verwenden können, um die Grenzen Ihres Heimrouters noch weiter zu verschieben, als Sie es jetzt für möglich gehalten haben Steuern Sie wirklich Ihren Heimrouter und DD-WRT …
Linux verlängert das Leben, Linux erweitert das Bewusstsein ... Linux ist entscheidend für die Paketreise