2024 Autor: Peter John Melton | [email protected]. Zuletzt bearbeitet: 2024-01-31 06:08
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
Voraussetzungen
- 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.
- Dieses Verfahren wurde auf Debian-basierten Systemen (Lenny, Squeeze und Mint) durchgeführt. Die folgenden Anweisungen setzen voraus, dass Sie auch eines davon verwenden.
- 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.
- 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 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:
- 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.
- 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:
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:
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:
Die kostenlose Stufe von Canary hat sich zwar geändert, bietet jedoch immer noch mehr als andere Cams
Canary, die Macher der Wi-Fi-Kamera für Heimsicherheit, die wir Anfang des Jahres kurz überprüft haben, hat einige Änderungen an ihren Mitgliedschaften vorgenommen. Insbesondere reduzieren sie die Anzahl der für die Benutzer verfügbaren Funktionen in der kostenlosen Schicht, wodurch ein gewisser Spielraum mit Rücksicht auf den Benutzer entsteht.
Die Funktion "Definieren" von iOS ist jetzt "Nachschlagen" und kann noch viel mehr
Die Funktion "Definieren" in iOS wurde in iOS 10 in "Look Up" umbenannt und wurde erweitert, um mehr als nur Definitionen bereitzustellen. Look Up bietet Ihnen jetzt Ergebnisse aus dem App Store, Apple Music, Websites und Wikipedia.
So machen Sie Speicherplatz frei, den die lokalen Sicherungen von Time Machine auf Ihrem Mac verwenden
Time Machine sichert nicht nur externe Laufwerke. Aktivieren Sie Time Machine auf Ihrem MacBook, und es werden auch "lokale Momentaufnahmen" erstellt, die möglicherweise mehr als 100 GB Festplattenspeicher im internen Speicher beanspruchen.
So stellen Sie sicher, dass auf Ihrem Heimrouter die neuesten Sicherheitsupdates verfügbar sind
Wenn Sie Ihren Heimrouter auf dem neuesten Stand halten, ist dies ein wesentlicher Bestandteil der Sicherheit. Shellshock betraf eine Reihe von Routern, und wir haben auch gesehen, wie Router gehackt und in Botnets umgewandelt wurden. Die Sicherheit der Heimrouter ist bekanntermaßen schlecht.
Mit dem Barcode-Scanner von Amazon können Sie ganz einfach alles von Ihrem Telefon kaufen
Manchmal möchten Sie einfach nur, dass die Dinge einfach sind, und ob Sie ein Buch, eine DVD oder sogar Produkte wie Rasiercreme und Trockenware kaufen möchten, Sie können dies mit der mobilen App von Amazon ganz einfach tun. Wenn Sie ein Prime-Mitglied sind, ist der Versand innerhalb von zwei Tagen kostenlos.