Libérez encore plus d'énergie de votre routeur domestique avec le kit modulaire DD-WRT

Table des matières:

Libérez encore plus d'énergie de votre routeur domestique avec le kit modulaire DD-WRT
Libérez encore plus d'énergie de votre routeur domestique avec le kit modulaire DD-WRT

Vidéo: Libérez encore plus d'énergie de votre routeur domestique avec le kit modulaire DD-WRT

Vidéo: Libérez encore plus d'énergie de votre routeur domestique avec le kit modulaire DD-WRT
Vidéo: Les futurs produits APPLE pour 2023 | LE JDH #123 - YouTube 2024, Peut
Anonim
 Nous vous avons déjà montré comment modifier votre routeur domestique avec le microprogramme alternatif DD-WRT pour améliorer considérablement les performances, et aujourd’hui, nous allons vous montrer comment aller encore plus loin avec le Mod-Kit DD-WRT.
Nous vous avons déjà montré comment modifier votre routeur domestique avec le microprogramme alternatif DD-WRT pour améliorer considérablement les performances, et aujourd’hui, nous allons vous montrer comment aller encore plus loin avec le Mod-Kit DD-WRT.

Si vous ne l’avez pas déjà fait, consultez les deux articles précédents de la série:

  • Transformez votre routeur domestique en un routeur super-alimenté avec DD-WRT
  • Comment augmenter le signal de votre réseau Wi-Fi et augmenter la portée avec DD-WRT

En supposant que vous connaissez ces sujets, continuez à lire. N'oubliez pas que ce guide est un peu plus technique et que les débutants doivent faire attention lorsqu'ils modifient leur routeur.

Vue d'ensemble

Ce guide vous expliquera pas à pas comment créer votre propre micrologiciel DD-WRT avec modifications et ajouts à l’aide du «kit de modification du micrologiciel».

Le kit de modification du firmware permet d’apporter des modifications au firmware sans le compiler à la source. Effectuer les modifications de cette manière, à l’aide des scripts fournis, devient une simple tâche de téléchargement, de remplacement et de suppression de certains fichiers.

La principale raison d'utiliser cette méthode est que, dernièrement, la prise en charge des paquets Openwrt IPKG par DD-WRT s'est déplacée vers des routeurs dotés de disques durs (via USB), ce qui fait du mod-kit le seul moyen efficace pour installer correctement les paquets IPKG. pour les cas où un disque dur n'est pas disponible. En outre, cette méthode présente l’avantage supplémentaire de vous libérer de la dépendance JFFS pour l’installation de packages, ce qui est un réel problème pour les routeurs ne disposant que de 4 Mo de mémoire flash.

Photo par publicenergy

Buts

Bien que les instructions relatives à cette procédure soient détaillées sur le wiki de DD-WRT et sur le site du développeur, notre objectif est de faire de ce guide une procédure de copier-coller que tout le monde peut utiliser pour atteindre les objectifs suivants:

  • Installez le paquet knockd et ses dépendances.
  • Installez le package ssmtp avec les configurations générées basées sur la NVRAM.

    En option, avec prise en charge de TLS smtp (support Gmail a.k.a.).

    Une fois que vous avez suivi cette procédure, il devrait être simple de l'adapter à d'autres installations de packages.

    Attention: Marchez légèrement… gardez à l'esprit que l'utilisation incorrecte du kit de modification peut vous laisser avec un routeur qui doit être décortiqué (car il devient alors une brique inutile). Cependant, si vous êtes un vrai geek, vous adhérez probablement à l’idéologie selon laquelle, lui qui peut détruire une chose, la contrôle, et que seuls les vrais geeks peuvent faire.

    Image
    Image

    Conditions préalables

    1. En utilisant cette procédure peut brique votre routeur, comme dans votre routeur inutilisable, nous n'assumons aucune responsabilité pour les dommages qui pourraient être causés directement ou autrement par l'utilisation des procédures ci-dessous.
    2. Cette procédure a été effectuée sur des systèmes Debian (Lenny, Squeeze et Mint) et les instructions ci-dessous supposent que vous en utilisez également un.
    3. Cette procédure est recommandée uniquement aux personnes ayant déjà utilisé le routeur DD-WRT pour flasher leur routeur, avec toutes les conditions préalables, les avertissements et les limitations qui s'appliquent à leur configuration matérielle. Notre guide Transformez votre routeur domestique en un routeur super-alimenté avec guide DD-WRT constitue un bon point de départ.
    4. Votre routeur doit prendre en charge au moins la version «mini» de DD-WRT.
    5. Cette procédure a été créée et testée sur les routeurs Linksys WRT54GS / L, si vous utilisez des routeurs d’autres fournisseurs, votre kilométrage risque d’être très élevé.

    Installer

    Installer les paquets requis

    Le kit de modification du microprogramme comporte des dépendances permettant de le compiler et de fonctionner. Afin de les installer / mettre à jour en une fois, lancez cette commande dans un terminal:

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

    Télécharger le mod-kit

    Créez un sous-dossier et récupérez le kit auprès du SVN officiel:

    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/

    Télécharger un firmware sur lequel travailler

    La première chose à considérer est la version que vous souhaitez utiliser. Une règle de base est la suivante: en cas de doute, utilisez «mini». En effet, tant que votre routeur prend en charge au moins la version «mini», son utilisation vous offre toutes les fonctionnalités les plus utilisées sans aucun bloatware. laissant ainsi à la fois un espace pour les procédures et même un espace JFFS pour d'autres utilisations dans la plupart des cas.

    Une fois que vous avez choisi une version, il est recommandé d’utiliser la dernière version du micrologiciel disponible, car ils ont généralement de nombreuses corrections de bugs par rapport à leurs équivalents «stables». Au moment d'écrire ces lignes, la dernière était «03-17-11-r16454» et cette révision est utilisée dans les commandes qui suivent.

    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

    Afin de faciliter le suivi de la version utilisée, renommez le fichier téléchargé afin qu'il représente son numéro de version:

    mv dd-wrt.v24_mini_generic.bin dd-wrt.v24_mini_generic-03-17-11-r16454.bin

    Ceci est bien sûr facultatif, mais les commandes ci-dessous supposent que vous avez renommé le fichier.

    Extraire le firmware

    Afin de pouvoir modifier les fichiers dans le firmware, nous devons extraire son contenu dans un répertoire temporaire. La syntaxe de cette commande est la suivante:./extract_firmware.sh FIRMWARE_IMAGE WORKING_DIRECTORY Dans notre cas, cela se traduirait par:

    ./extract_firmware.sh dd-wrt.v24_mini_generic-03-17-11-r16454.bin./working_dir_mini1

    Remarque: la première fois que vous exécutez cette commande, les outils Mod-Kit sont créés sur votre système. cela ne se produit qu'une fois et peut prendre un peu de temps… alors soyez patient…

    Installation de packages

    Maintenant que le micrologiciel est extrait, nous pouvons installer les packages. En général, la procédure consiste à télécharger le paquet et ses dépendances sous la forme d'un fichier ipk à partir du référentiel openWRT. Une fois téléchargés, installez-les dans le firmware extrait à l'aide du script fourni.

    Le paquet knockd

    Des instructions détaillées sur la façon de configurer et d’utiliser Knockd seront détaillées dans un prochain article. Vous pouvez donc choisir d’ignorer cette étape pour le moment ou de le faire pour préparer l’avenir, car Knockd ne prend de toute façon pas beaucoup de place.

    Knockd est un démon qui écoute les événements de communication au niveau de la couche liaison pour que les séquences agissent sur eux. Cela signifie que le périphérique qui exécute le démon peut ne même pas «écouter» les ports (une analyse de port ne les verra pas comme ouverte) tout en lui permettant de faire quelque chose dont vous avez besoin, à partir d'une commande unique allant jusqu'au bout. à un script complet. En utilisant cette technique, vous pouvez amener le serveur à effectuer toutes les opérations dont vous avez besoin à distance (sur Internet) sans exposer votre réseau domestique.

    Knockd n'a qu'une seule dépendance listée, donc téléchargez le paquet et sa dépendance en émettant:

    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

    Installez le “knock daemon” (knockd) ipk dans le firmware:

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

    Installez le «paquet capture» (libpcap) ipk dans le firmware:

    ./ipkg_install.sh libpcap_0.9.4-1_mipsel.ipk./working_dir_mini1/

    Comme «knockd» peut être appelé avec un autre fichier de configuration (comment cela sera expliqué dans un article ultérieur), il n'est pas nécessaire d'exécuter une autre opération et vous pouvez passer à la section de construction du firmware, si c'est tout ce que vous vouliez installer.

    Le paquet SSMTP

    Le package SSMTP permet à votre routeur d’envoyer des courriers électroniques comme nous l’avons montré dans la section Comment configurer des alertes par courrier électronique sous Linux, à l’aide de Gmail ou SMTP pour serveurs. Nous vous avions alors promis de montrer comment configurer cela pour le DD-WRT et nous allons maintenant vous livrer la marchandise. Ceci est principalement utile si vous allez créer des scripts sur le routeur pour lesquels vous souhaitez recevoir des commentaires sur leur fonctionnement par courrier électronique.

    La configuration de ce paquet est un peu plus complexe qu’elle ne l’est sur les systèmes Linux normaux à cause des limitations imposées par un système embarqué, prenez donc une profonde respiration… prêt?…. Allons-y…:)

    Télécharger le package:

    wget https://downloads.openwrt.org/backports/rc5/ssmtp_2.61-1_mipsel.ipk

    Installez le “ssmtp” ipk dans le firmware:

    ./ipkg_install.sh ssmtp_2.61-1_mipsel.ipk./working_dir_mini1/

    Prise en charge TLS (facultatif) SSMTP ne répertorie aucun autre package en tant que dépendance, mais si vous souhaitez pouvoir utiliser une passerelle smtp nécessitant une authentification TLS (c'est-à-dire Gmail), vous devez également installer le paquet openSSL. Remarque: Il y a un énorme inconvénient faire cela sous la forme d’espace considérablement réduit sur le routeur pour JFFS ultérieurement. C'est-à-dire que le paquet openSSL occupe environ 500 Ko de votre total de 4 Mo (pour un routeur support non "méga" normal), auquel s'ajoute la surcharge JFFS et vous découvrirez que votre gauche avec, mais quelques précieux, blocs de espace JFFS libre (environ 60 Ko sur le WRT54GL).

    Comme il existe toujours des serveurs smtp n’exigeant pas le protocole TLS (généralement ceux de votre fournisseur d’accès à Internet), je suggère de prendre une minute pour réfléchir si vous devez vraiment utiliser la passerelle nécessitant TLS.

    Si vous avez décidé d'activer le support TLS malgré son inconvénient, téléchargez le paquet openSSL:

    wget https://downloads.openwrt.org/whiterussian/packages/libopenssl_0.9.8d-1_mipsel.ipk

    Installez l’opk «openSSL» (libopenssl) dans le firmware:

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

    Les configurations Il existe une limitation avec le package SSMTP, à savoir qu’il est impossible de l’appeler avec un autre fichier de configuration. Étant donné que le micrologiciel est en lecture seule lorsqu'il se trouve sur le routeur, cela signifie que nous pouvons uniquement coder en dur la configuration dans le micrologiciel. Cependant, que se passe-t-il si nous ne voulons pas passer par toutes les étapes de modification du micrologiciel, simplement pour modifier les paramètres de messagerie? (par exemple un changement de mot de passe).

    À cette fin, Jeremy (le créateur du micrologiciel du microprogramme) et moi-même sommes parvenus à la conclusion (indépendamment si je puis humblement ajouter) que le seul moyen raisonnable de le faire serait de:

    1. Définissez l'emplacement des fichiers de configuration vers lequel le package ssmtp pointe vers l'emplacement en lecture seule sous etc., pointez sur le répertoire tmp auquel vous pouvez écrire au moment de l'exécution.
    2. Créez un script qui générerait dynamiquement les configurations basées sur des variables NVRAM au démarrage.

    Pour y parvenir, quelques étapes supplémentaires sont nécessaires…

    Lien symbolique vers le répertoire de configuration ssmtp Comme expliqué ci-dessus, nous devons faire la / etc / ssmtp sur le routeur, pointez sur le / tmp répertoire en tant que seul endroit accessible en écriture sur le routeur au moment de l’exécution. Pour ce faire, supprimez le répertoire ssmtp créé par le programme d'installation ipk:

    rm -rf./working_dir_mini1/rootfs/etc/ssmtp/

    Créez un nouveau lien symbolique pointant vers / etc / ssmtp sur le système de fichiers racine du routeur, pour pointer vers / tmp / etc / ssmtp en tant que chemin absolu:

    ln -s /tmp/etc/ssmtp/./working_dir_mini1/rootfs/etc/ssmtp

    Remarque: Même si cela semble illogique à l’heure actuelle, étant donné que nous pointons le répertoire de configuration du paquet vers un emplacement situé en dehors du répertoire de travail du kit de modification du microprogramme, je vous assure que cela semble tout à fait correct du point de vue des routeurs au moment de l’exécution.

    Un script d'init Bien qu'il soit tout à fait possible de ne pas injecter ce script dans le microprogramme et de l'exécuter ultérieurement en tant que script de démarrage, je pense qu'il est approprié de le mettre ici, ne serait-ce que comme exemple pour une utilisation future. A l'origine, Jeremy avait créé le script sur mesure, puis je l'avais ajusté et augmenté pour qu'il soit plus compatible avec les rapports DD-WRT et syslog.

    Créez le nouveau script init (démarrage):

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

    Remarque: vous pouvez utiliser un autre éditeur, j’utilise vi car il correspond à ce qui est disponible sur le routeur… Faites-en son contenu:

    #!/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###########'

    Rendez-le exécutable:

    chmod +x./working_dir_mini1/rootfs/etc/init.d/S80ssmtp

    Prenez note des variables d’attente NVRAM dans le script. Il est de notre responsabilité de leur donner un outil de travail après avoir installé notre micrologiciel modifié sur le routeur.

    Construire le firmware modifié

    Maintenant que tout est en place, il est temps de reconditionner le micrologiciel modifié dans un fichier binaire compressé que nous pouvons envoyer au routeur. La syntaxe de script «build.sh» est la suivante:./build_firmware.sh OUTPUT_DIR WORKING_DIRECTORY

    Pour ce faire, nous utilisons le script fourni.

    ./build_firmware.sh output_mini1./working_dir_mini1/

    Une fois que l’opération «build» est terminée, plusieurs images de microprogramme attendent d’être utilisées dans le répertoire «output».

    Vous pouvez maintenant flasher le fichier intitulé «custom_image_00001-generic.bin» sur votre routeur, comme vous le feriez normalement avec un micrologiciel DD-WRT.

    Remarque: N’oubliez pas de restaurer les “paramètres par défaut” avant, pendant et juste après le flash du firmware.

    Post-flash étapes

    Comme nous avons demandé au paquet SSMTP de rechercher les variables NVRAM afin de générer le fichier de configuration ssmtp, nous devons maintenant lui fournir les informations manquantes. Pour ce faire, nous utiliserons la fonction "Exécuter les commandes" de l'interface Web.

    Allez dans l'interface Web -> “administration” -> “commandes” -> collez dans la zone de texte ce qui suit:

    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

    Remplacez le texte après le signe égal (=) par vos informations réelles, puis appuyez sur «Exécuter les commandes». Remarque: si vous utilisez un serveur smtp standard et non TLS, le port à utiliser est 25 au lieu de 587.

    Maintenant que les informations SSMTP sont prêtes à être utilisées, vous devez appeler le script init. Vous pouvez donc soit redémarrer le routeur, soit coller cette information dans la zone de texte «commandes»:

    /etc/init.d/S80ssmtp

    Puis cliquez sur "Exécuter les commandes" à nouveau. Le résultat de cette commande devrait ressembler à ceci:

    Testez que vous pouvez envoyer un email Encore une fois, collez-le dans la zone de texte «Commandes» de la commande suivante avec votre adresse électronique:
    Testez que vous pouvez envoyer un email Encore une fois, collez-le dans la zone de texte «Commandes» de la commande suivante avec votre adresse électronique:

    echo 'testing crucible emailing 123 qwe' | ssmtp -vvv [email protected]

    Puis cliquez sur "Exécuter les commandes" à nouveau. Comme nous avons utilisé l'option -vvv pour plus de verbosité, le résultat de cette commande devrait ressembler à ceci:

    Si tout s'est bien passé, vous devriez recevoir le courriel de test en quelques secondes.
    Si tout s'est bien passé, vous devriez recevoir le courriel de test en quelques secondes.

    Nous espérons que vous pourrez utiliser ces informations pour repousser encore plus loin les limites de votre routeur domestique, alors vous pensiez que c'était possible et vous contrôlez désormais réellement votre routeur domestique, ainsi que le DD-WRT…

    Linux prolonge la vie, Linux élargit la conscience… Linux est vital pour le transport de paquets

Conseillé: