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

Inhaltsverzeichnis:

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

Video: Setzen Sie mit dem DD-WRT Mod-Kit noch mehr Leistung von Ihrem Heimrouter frei
Video: Windows Virus entfernen im Notfall: So löscht ihr jeden Virus! 2024, März
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
Anonim
 Wir haben Ihnen bereits gezeigt, wie Sie Ihren Heimrouter mit der alternativen DD-WRT-Firmware für eine erheblich verbesserte Leistung modifizieren können. Heute zeigen wir Ihnen, wie Sie ihn mit dem DD-WRT-Mod-Kit noch weiter verbessern können.
Wir haben Ihnen bereits gezeigt, wie Sie Ihren Heimrouter mit der alternativen DD-WRT-Firmware für eine erheblich 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 Modification Kit“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 nur 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 Entwicklerseite 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. Gmail-Unterstützung).

    Sobald Sie dieses Verfahren befolgt haben, sollte es für die Installation anderer Pakete relevant einfach sein.

    Warnung: Treten Sie leicht… bedenken Sie, dass eine falsche Verwendung des Modifikationskits dazu führen kann, dass ein Router entfernt werden muss, der entstaut werden muss (da dies wiederum zu einem unbrauchbaren Ziegelstein führt). Wenn Sie jedoch ein echter Geek sind, unterschreiben Sie wahrscheinlich die Ideologie, dass derjenige, der ein Ding zerstören kann, ein Ding kontrolliert, und nur echte Geeks das tun

    Image
    Image

    Voraussetzungen

    1. Mit diesem Verfahren können Sie Backstein Ihr Router, wie in Ihrem Router unbrauchbar, Wir übernehmen keine Verantwortung 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. Die folgenden Anweisungen setzen voraus, 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 / zu aktualisieren, geben Sie diesen Befehl in einem Terminal aus:

    sudo aptitude install gcc g++ binutils patch bzip2 flex bison make gettext unzip 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 https://firmware-mod-kit.googlecode.com/svn/trunk/ firmware-mod-kit-read-only cd firmware-mod-kit-read-only/trunk/

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

    Das erste, was zu beachten 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" die neueste Version. Diese Revision wird in den folgenden Befehlen verwendet.

    wget https://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 etwas dauern… also haben Sie etwas Geduld…

    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 Herunterladen 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 vorerst ü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 dennoch von einem einzigen Befehl bis zum gewünschten Befehl etwas tun zu einem vollen Skript. Mit dieser Technik können Sie den Server dazu veranlassen, alle erforderlichen Operationen aus der Ferne (über das Internet) auszuführen, ohne das Heimnetzwerk freizulegen.

    Knockd hat nur eine aufgelistete Abhängigkeit. Laden Sie das Paket und seine Abhängigkeit herunter, indem Sie Folgendes ausgeben:

    wget https://downloads.openwrt.org/backports/rc5/knockd_0.5-1_mipsel.ipk wget https://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 Google Mail 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, die Sie per E-Mail über deren Betrieb informieren möchten.

    Das Setup dieses Pakets ist etwas komplexer als bei normalen Linux-Systemen, da ein Embedded-System die Einschränkungen auferlegt. Atmen Sie also tief durch … fertig?…. Lass uns gehen…:)

    Laden Sie das Paket herunter:

    wget https://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 erheblich weniger Platz auf dem Router für JFFS später. 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 die Ihres Internet-Providers), empfehle ich mir kurz zu überlegen, ob Sie wirklich das TLS-Gateway benötigen, das ein Gateway benötigt.

    Wenn Sie sich entschlossen haben, die TLS-Unterstützung trotz ihres Nachteils zu aktivieren, laden Sie das openSSL-Paket herunter:

    wget https://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 Verzeichnis als 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 erscheint, da wir das Konfigurationsverzeichnis des Pakets auf einen Speicherort außerhalb des Arbeitsverzeichnisses des Firmware-Änderungskits verweisen, kann ich Ihnen versichern, 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 nur als Beispiel für die zukünftige Verwendung zu verwenden. 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 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 auf dem Router verfügbaren Daten übereinstimmt. Machen Sie das zu seinem Inhalt:

    #!/bin/sh # # title: ssmtp_nvram.sh # author: Jeremy Collake and Aviad Raviv # site: https://www.bitsum.com, https://howtogeek.com # # script to build config file from nvram vars. # will work for any config file that uses # var=value type pairs. # # uses prefixes for nvram variables. # # i.e. # ssmtp_hostname=something # translates to ssmtp.conf # hostname=something # logger_func() { logger -s -p local0.notice -t SSMTP_init $1 }

    logger_func '###########Started the SSMTP init run###########' logger_func 'Creating the etc directory 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 'Generating $CONFIG_FILE for package $PACKAGE_NAME' #echo $0: generating $CONFIG_FILE for package $PACKAGE_NAME echo '#!/bin/sh' > $CONFIG_FILE echo '#' >> $CONFIG_FILE echo '# auto generated based on nvram by $0' >> $CONFIG_FILE echo '#' >> $CONFIG_FILE

    if [ -z '`nvram show | grep ssmtp`' ] then logger_func 'It appears that you have not set the NVRAM variables required to generate the conf file' logger_func '**Consider** using these commands in you startup script:' 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=username' logger_func 'nvram set ssmtp_AuthPass=password' logger_func 'nvram set ssmtp_FromLineOverride=YES' logger_func 'create the NVRAM variables and re-run the init script or reboot for the settings to take affect.' exit 0 fi

    ########################################################### # # main loop # SED_COMMAND='s/$NVRAM_PREFIX/ /' CONFIG_VARS=`nvram show | grep $NVRAM_PREFIX | sed '$SED_COMMAND'` for i in $CONFIG_VARS; do echo $i >> $CONFIG_FILE done

    ########################################################### # # sanity check # if [ ! -f '$CONFIG_FILE' ]; then # echo '$0: ERROR - could not create $CONFIG_FILE. Perhaps there is no symink /etc/XXXX -> /tmp/etc/XXXX ?' logger_func 'ERROR - could not create $CONFIG_FILE. Perhaps there is no symink /etc/XXXX -> /tmp/etc/XXXX ?' fi logger_func '###########Finished the SSMTP init run###########'

    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 auf die Werkseinstellungen zurückzusetzen.

    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=your-gmail-user-name(without the @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. Klicken Sie anschließend auf "Befehle ausführen". Hinweis: Wenn Sie einen normalen, nicht-TLS verwenden, der SMTP-Server verwendet, ist der zu verwendende Port 25 statt 587.

    Jetzt, 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:
    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 'testing crucible emailing 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.
    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 den DD-WRT wirklich steuern.

    Linux verlängert das Leben, Linux erweitert das Bewusstsein… Linux ist für die Paketreise von entscheidender Bedeutung

Empfohlen: