Startseite » wie man » Setzen Sie mit dem DD-WRT Mod-Kit noch mehr Leistung von Ihrem Heimrouter frei

    Setzen Sie mit dem DD-WRT Mod-Kit noch mehr Leistung von Ihrem Heimrouter frei


    Wir haben Ihnen bereits gezeigt, wie Sie Ihren Heimrouter mit der DD-WRT-Alternativfirmware für eine deutlich verbesserte Leistung modifizieren können. Heute zeigen wir Ihnen, wie Sie ihn mit dem DD-WRT-Mod-Kit noch weiter verbessern können.

    Wenn Sie dies noch nicht getan haben, lesen Sie die beiden vorherigen Artikel der Serie:

    • Verwandeln Sie Ihren Heimrouter in einen Super-Powered-Router mit DD-WRT
    • So steigern Sie Ihr Wi-Fi-Netzwerksignal und erhöhen die Reichweite mit DD-WRT

    Vorausgesetzt, Sie sind mit diesen Themen vertraut, lesen Sie weiter. Beachten Sie, dass dieses Handbuch etwas technischer ist. Anfänger sollten beim Modden ihres Routers vorsichtig sein.

    Überblick

    In diesem Handbuch wird Schritt für Schritt beschrieben, wie Sie Ihre eigene DD-WRT-Firmware mit Änderungen und Ergänzungen mithilfe des „Firmware-Modifikations-Kits“ erstellen..

    Mit dem Firmware-Änderungskit können Sie Änderungen an der Firmware vornehmen, ohne sie aus der Quelle zu kompilieren. Wenn Sie auf diese Weise Änderungen mit Hilfe der bereitgestellten Skripts vornehmen, müssen Sie einige Dateien herunterladen, ersetzen und löschen.

    Der vorherrschende Grund für die Verwendung dieser Methode ist, dass DD-WRT in letzter Zeit die Unterstützung für die Openwrt-IPKG-Pakete in Richtung Router mit Festplatten (über USB) verschoben hat. Daher ist das Mod-Kit die einzige konsistente Methode, um die IPKG-Pakete erfolgreich zu installieren für Fälle, in denen keine HD verfügbar ist. Darüber hinaus bietet diese Methode den zusätzlichen Vorteil, dass Sie von der JFFS-Abhängigkeit für die Paketinstallation befreit werden, was für Router mit nur 4 MB Flash ein echtes Problem darstellt.

    Bild von publicenergy

    Tore

    Während Anweisungen für dieses Verfahren im DD-WRT-Wiki und auf der Website des Entwicklers detailliert beschrieben werden, möchten wir dieses Handbuch zu einem Copy & Paste-Verfahren machen, mit dem jeder folgende 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 für die Installation anderer Pakete relevant einfach sein, es anzupassen.

    Warnung: Treten Sie leicht… bedenken Sie, dass ein falscher Gebrauch des Modifikationskits dazu führen kann, dass Sie einen Router haben, der entstaut werden muss (da dies wiederum zu einem unbrauchbaren Stein wird). Wenn Sie jedoch ein echter Geek sind, unterzeichnen Sie wahrscheinlich der Ideologie, dass derjenige, der ein Ding zerstören kann, ein Ding kontrolliert, und nur echte Geeks das tun

    Voraussetzungen

    1. Mit diesem Verfahren kann Backstein Ihr Router, wie in Ihrem Router unbrauchbar, Wir übernehmen keine Haftung für Schäden, die direkt oder auf andere Weise durch die Verwendung der nachstehenden Verfahren verursacht werden können.
    2. Dieses Verfahren wurde auf Debian-basierten Systemen (Lenny, Squeeze und Mint) durchgeführt. Bei den folgenden Anweisungen wird davon ausgegangen, dass Sie auch eines davon verwenden.
    3. Dieses Verfahren wird nur für Personen empfohlen, die Erfahrung mit dem Flashen ihres Routers mit DD-WRT haben, mit allen Voraussetzungen, Einschränkungen und Einschränkungen, die für das Hardware-Setup gelten. Ein guter Anfang wäre unser Turn Your Home-Router zu einem Super-Powered-Router mit DD-WRT-Anleitung.
    4. Ihr Router muss mindestens die Mini-Version von DD-WRT unterstützen.
    5. Dieses Verfahren wurde auf Linksys WRT54GS / L-Routern erstellt und getestet. Wenn Sie Router von anderen Anbietern verwenden, kann Ihre Laufleistung sehr hoch sein.

    Konfiguration

    Erforderliche Pakete installieren

    Das Firmware-Änderungskit hat einige Abhängigkeiten für die Kompilierung und Arbeit. Um sie alle gleichzeitig zu installieren / aktualisieren, geben Sie diesen Befehl in einem Terminal aus:

    sudo aptitude install gcc g ++ binutils patch bzip2 flex bison machen gettext entpacken zlib1g-dev libc6 subversion

    Laden Sie das Mod-Kit herunter

    Erstellen Sie einen Unterordner und beziehen Sie 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-read-only
    cd firmware-mod-kit-schreibgeschützt / trunk /

    Laden Sie eine Firmware herunter, an der Sie arbeiten können

    Die erste zu überlegende Frage ist, welche Version Sie verwenden möchten?
    Als Faustregel gilt: Verwenden Sie im Zweifelsfall „Mini“. Dies liegt daran, dass Ihr Router, solange Ihr Router mindestens die „Mini“ -Version unterstützt, alle gebräuchlichsten Funktionen ohne Bloatware bietet. So bleibt in den meisten Fällen sowohl Platz für die Prozeduren als auch für JFFS für andere Zwecke.

    Wenn Sie sich für eine Version entschieden haben, empfiehlt es sich, die neueste Version der verfügbaren Firmware zu verwenden, da diese im Vergleich zu ihren "stabilen" Gegenstücken viele Fehlerkorrekturen enthält.
    Zum Zeitpunkt der Erstellung dieses Dokuments war "03-17-11-r16454" das neueste und diese Revision 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

    Um die Übersicht über die verwendete Version zu behalten, benennen Sie die heruntergeladene Datei um, um die Versionsnummer darzustellen:

    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 den 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 Folgendes 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 geschieht nur einmal und kann eine Weile dauern.

    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 aus dem openWRT-Repository heruntergeladen. Nach dem Download installieren Sie sie mithilfe des bereitgestellten Skripts in der extrahierten Firmware.

    Das knockd-Paket

    Detaillierte Anweisungen zur Konfiguration und Verwendung von Knockd werden in einem zukünftigen Artikel detailliert beschrieben. Sie können diesen Schritt daher jetzt überspringen oder zur Vorbereitung auf die Zukunft tun, da Knockd ohnehin nicht viel Platz beansprucht.

    Knockd ist ein Daemon, der Kommunikationsereignisse auf der Verbindungsebene auf Sequenzen überwacht und auf sie einwirkt.
    Das bedeutet, dass das Gerät den Daemon laufen lassen kann, der die Ports nicht einmal „überwacht“ (ein Port-Scan sieht sie nicht als offen an) und er kann trotzdem von einem einzigen Befehl bis zum gewünschten Befehl etwas tun zu einem vollen Skript. Mit dieser Technik können Sie den Server veranlassen, alle erforderlichen Vorgänge aus der Ferne (über das Internet) auszuführen, ohne das Heimnetzwerk freizulegen.

    Knockd hat nur eine Abhängigkeit aufgelistet. Laden Sie also 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 den "Knock Daemon" (Knockd) -IPK in der Firmware:

    ./ipkg_install.sh knockd_0.5-1_mipsel.ipk ./working_dir_mini1/

    Installieren Sie das Paket zur Paketerfassung (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 Sie keine weiteren Vorgänge ausführen und Sie können mit dem Abschnitt Firmware-Erstellung fortfahren, wenn Sie alles installieren möchten.

    Das SSMTP-Paket

    Das SSMTP-Paket ermöglicht es Ihrem Router, E-Mail-Nachrichten zu senden, wie wir es in unseren E-Mail-Benachrichtigungen unter Linux unter Verwendung von Gmail oder SMTP für Server beschrieben sehen. Wir haben Ihnen damals versprochen, dass wir Ihnen zeigen werden, wie Sie dies für DD-WRT konfigurieren können, und wir werden nun liefern.
    Dies ist vor allem dann nützlich, wenn Sie auf dem Router Skripts erstellen, zu denen Sie per E-Mail Feedback zu deren Betrieb erhalten möchten.

    Das Setup dieses Pakets ist etwas komplexer als bei normalen Linux-Systemen, da die Einschränkungen durch ein Embedded-System auferlegt werden. Atmen Sie also tief durch ... 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 "ssmtp" -IPK 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, das eine TLS-Authentifizierung erfordert (d. H. Google Mail), müssen Sie auch das openSSL-Paket installieren.
    Hinweis: Es gibt ein RIESIGES Nachteil dies in der Form von später erheblich weniger Platz auf dem Router für JFFS. Das openSSL-Paket benötigt also etwa 500 KB Speicherplatz von insgesamt 4 MB (für einen normalen, nicht "Mega" unterstützenden Router). Dies ist mit dem JFFS-Overhead verbunden und Sie werden feststellen, dass Ihre Linken nur ein paar wenige Blöcke von freier JFFS-Speicherplatz (ca. 60 KB bei WRT54GL).

    Da es immer noch keine Nicht-TLS-Server gibt, die SMTP-Server benötigen (normalerweise Ihre ISPs), empfehle ich Ihnen, eine Minute zu überlegen, ob Sie wirklich das TLS-Erfordernis-Gateway 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 "openSSL" (libopenssl) ipk in der Firmware:

    ./ipkg_install.sh libopenssl_0.9.8d-1_mipsel.ipk ./working_dir_mini1/

    Konfigurationen
    Beim SSMTP-Paket besteht eine Einschränkung, dass es nicht möglich ist, es mit einer alternativen Konfigurationsdatei aufzurufen.
    Da die Firmware nur auf dem Router schreibgeschützt ist, bedeutet dies, dass wir die Konfiguration nur in der Firmware fest einprogrammieren können.
    Was ist jedoch, wenn wir nicht alle Schritte zur Firmware-Änderung durchführen möchten, nur um die E-Mail-Einstellungen zu ändern? (zum Beispiel eine Passwortänderung).

    Zu diesem Zweck kamen sowohl Jeremy (der Firmware-Mod-Kit-Ersteller) als auch ich zu der Schlussfolgerung (unabhängig davon, ob ich demütig hinzufügen kann), dass der einzige vernünftige Weg, dies zu tun, darin besteht:

    1. Stellen Sie den Speicherort der Konfigurationsdateien, auf den das Paket ssmtp zeigt, auf den schreibgeschützten Speicherort unter etc., Zeigen Sie auf das Verzeichnis tmp, auf das zur Laufzeit schreibbar ist.
    2. Erstellen Sie ein Skript, das die Konfigurationen basierend auf NVRAM-Variablen beim Start dynamisch generiert.

    Um dies zu erreichen, sind einige zusätzliche Schritte erforderlich…

    Symlink 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 momentan unlogisch aussieht, da wir das Konfigurationsverzeichnis des Pakets auf einen Speicherort außerhalb des Arbeitsverzeichnisses des Firmware-Änderungskits verweisen, versichere ich Ihnen, dass dies aus der Sicht des Routers zur Laufzeit völlig in Ordnung ist.

    Ein Init-Skript
    Es ist zwar durchaus möglich, dieses Skript nicht in die Firmware einzuspeisen und später als Startskript auszuführen, aber ich denke, es ist angebracht, es hier zu verwenden, wenn auch nur als Beispiel für die zukünftige Verwendung.
    Ursprünglich erstellte Jeremy das Skript, das auf die Anforderungen einer anderen Person zugeschnitten war. Ich habe es später angepasst und erweitert, um besser mit den DD-WRT- und Syslog-Berichten kompatibel zu sein.

    Erstellen Sie das neue Init (Start) -Skript:

    vi ./working_dir_mini1/rootfs/etc/init.d/S80ssmtp

    Hinweis: Sie können einen anderen Editor verwenden. Ich verwende vi, weil er mit den verfügbaren Informationen auf dem Router übereinstimmt.
    Machen Sie das zu seinem Inhalt:

    #! / bin / sh
    #
    # title: ssmtp_nvram.sh
    # author: Jeremy Collake und Aviad Raviv
    # site: http://www.bitsum.com, http://howtogeek.com
    #
    # Skript zum Erstellen der Konfigurationsdatei aus nvram vars.
    # funktioniert für alle Konfigurationsdateien, die verwendet werden
    # var = Werttyppaare.
    #
    # verwendet Präfixe für NVRAM-Variablen.
    #
    # d.
    # ssmtp_hostname = etwas
    # übersetzt in ssmtp.conf
    # hostname = etwas
    #
    logger_func ()

    Logger -s -p local0.notice -t SSMTP_init $ 1

    logger_func "########### Startet den SSMTP-Startlauf ##########".
    logger_func "etc Verzeichnis in / tmp erstellen"
    [! -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 "$ CONFIG_FILE für Paket $ PACKAGE_NAME generieren"
    #echo $ 0: Generiere $ CONFIG_FILE für das Paket $ PACKAGE_NAME
    echo "#! / bin / sh"> $ CONFIG_FILE
    echo "#" >> $ CONFIG_FILE
    echo "# automatisch basierend auf nvram von $ 0 generiert" >> $ CONFIG_FILE
    echo "#" >> $ CONFIG_FILE

    if [-z "'nvram show | grep ssmtp'"]
    dann
    logger_func "Sie haben anscheinend nicht die NVRAM-Variablen festgelegt, die zum Generieren der conf-Datei erforderlich sind."
    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 = Kennwort"
    logger_func "nvram set ssmtp_FromLineOverride = YES"
    logger_func "Erstellen Sie die NVRAM-Variablen und führen Sie das Init-Skript erneut aus, oder führen Sie einen Neustart durch, damit die Einstellungen wirksam werden."
    Ausfahrt 0
    fi

    ################################################ #########
    #
    # 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
    #
    ob [ ! -f "$ CONFIG_FILE"]; dann
    # echo "$ 0: FEHLER - $ CONFIG_FILE konnte nicht erstellt werden. Möglicherweise gibt es kein Symink / etc / XXXX -> / tmp / etc / XXXX?"
    logger_func "ERROR - $ CONFIG_FILE konnte nicht erstellt werden. Vielleicht gibt es kein Symink / etc / XXXX -> / tmp / etc / XXXX?"
    fi
    logger_func "########### Beendet den SSMTP-Startlauf ##########".

    Mach 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 zu geben, mit dem sie arbeiten können, nachdem wir unsere modifizierte Firmware auf dem Router installiert haben.

    Erstellen Sie die geänderte Firmware

    Jetzt, da alles vorhanden ist, ist es Zeit, die geänderte Firmware in eine komprimierte Binärdatei zu packen, die wir auf den Router laden können.
    Die Skript-Syntax „build.sh“ lautet:
    ./build_firmware.sh OUTPUT_DIR WORKING_DIRECTORY

    Dazu verwenden wir das mitgelieferte Skript.

    ./build_firmware.sh output_mini1 ./working_dir_mini1/

    Sobald die "build" -Operation abgeschlossen ist, werden mehrere Firmware-Images im "output" -Verzeichnis darauf warten, verwendet zu werden.

    Sie können jetzt die Datei mit dem Namen "custom_image_00001-generic.bin" auf Ihren Router flashen, wie Sie es von einer DD-WRT-Firmware gewohnt wären.

    Hinweis: Vergessen Sie nicht, vor, während und direkt nach dem Firmware-Flash die werkseitigen Standardeinstellungen wiederherzustellen.

    Post-Flash-Schritte

    Da das SSMTP-Paket nach NVRAM-Variablen gesucht hat, um die Konfigurationsdatei ssmtp zu generieren, müssen wir nun die fehlenden Informationen angeben.
    Dies erreichen wir mit der Web-GUI-Funktion "Befehle ausführen".

    Gehen Sie zur Web-GUI -> "Administration" -> "Befehle" -> fügen Sie in das Textfeld Folgendes 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-Google Mail-Benutzername (ohne @ gmail.com)
    nvram set ssmtp_AuthPass = Sie-Google Mail-Kennwort
    nvram set ssmtp_FromLineOverride = YES
    nvram begehen

    Ersetzen Sie den Text nach dem Gleichheitszeichen (=) durch Ihre tatsächlichen Informationen. Klicken Sie anschließend auf "Befehle ausführen"..
    Hinweis: Wenn Sie einen normalen SMTP-Server ohne TLS verwenden, ist der zu verwendende Port 25 statt 587.

    Nun, da die SSMTP-Informationen einsatzbereit sind, 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, dass Sie eine E-Mail senden können
    Fügen Sie dies erneut in das Textfeld "Befehle" mit dem folgenden Befehl und Ihrer E-Mail-Adresse ein:

    echo "test tiegel emailen 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 gelaufen ist, sollten Sie innerhalb von Sekunden die Test-E-Mail erhalten.

    Wir hoffen, dass Sie diese Informationen verwenden können, um die Grenzen Ihres Heimrouters noch weiter zu erhöhen, als Sie es für möglich gehalten hätten. Jetzt können Sie Ihren Heimrouter und DD-WRT wirklich steuern.


    Linux verlängert das Leben, Linux erweitert das Bewusstsein… Linux ist für das Packen von Paketen unerlässlich