Úvodná » ako » Uvoľnite ešte viac energie z vášho domáceho smerovača pomocou modulu DD-WRT Mod-Kit

    Uvoľnite ešte viac energie z vášho domáceho smerovača pomocou modulu DD-WRT Mod-Kit


    Už sme vám ukázali, ako modifikovať váš domáci smerovač pomocou alternatívneho firmvéru DD-WRT pre výrazne vylepšený výkon a dnes vám ukážeme, ako to urobiť ešte viac s modulom DD-WRT Mod-Kit.

    Ak ste to ešte neurobili, uistite sa a skontrolujte dva predchádzajúce články v sérii:

    • Prepnite svoj domovský smerovač do super-Powered Router s DD-WRT
    • Ako zvýšiť signál siete Wi-Fi a zvýšiť dosah s DD-WRT

    Za predpokladu, že ste oboznámení s týmito témami, pokračujte v čítaní. Majte na pamäti, že táto príručka je trochu technickejšia a začiatočníci by mali byť opatrní pri modifikácii svojho smerovača.

    Prehľad

    Táto príručka vám ukáže postupné zhrnutie toho, ako vytvoriť vlastný firmvér DD-WRT s úpravami a doplnkami pomocou "súpravy na úpravu firmvéru".

    Sada na úpravu firmvéru umožňuje vykonať úpravy firmvéru bez kompilácie zo zdroja. Uskutočňovanie zmien týmto spôsobom sa pomocou poskytnutých skriptov stáva jednoduchou záležitosťou sťahovania, nahrádzania a mazania niektorých súborov.

    Najpodstatnejším dôvodom na použitie tejto metódy je to, že v poslednej dobe sa podpora DD-WRT pre balíky OpenKwet IPKG posunula smerom k smerovačom, ktorý má pevné disky (cez USB), čo robí mod-kit jediným dôsledne fungujúcim spôsobom úspešnej inštalácie balíkov IPKG pre prípady, keď HD nie je k dispozícii. Okrem toho má táto metóda ďalšiu výhodu, že vás zbavuje závislosti od JFFS pre inštaláciu balíkov, čo je pre routery s iba 4MB blesku skutočným problémom.

    Obrázok publicenergy

    Ciele

    Zatiaľ čo pokyny pre tento postup sú podrobne popísané na wiki DD-WRT a na stránkach vývojára, snažíme sa, aby táto príručka urobila procedúru kopírovania a vloženia, ktorú môže ktokoľvek použiť na dosiahnutie nasledujúcich cieľov:

    • Nainštalujte baliaci balík a jeho závislosti.
    • Nainštalujte balík ssmtp s generovanými konfiguráciami založenými na NVRAM.
      • Prípadne s podporou TLS smtp (a.k.a podpora Gmailu).

    Po vykonaní tohto postupu by malo byť relevantné jednoduché prispôsobiť ho iným zariadeniam balíkov.

    Výstraha: Tread ľahko ... majte na pamäti, že nesprávne použitie modifikačnej sady, môže vás opustiť smerovač, ktorý potrebuje de-bricking (ako zase do zbytočnej tehly). Avšak ak ste skutočný geek, pravdepodobne sa prihláste k ideológii, že ten, kto môže zničiť vec, ovláda vec, a to len skutoční geekovia

    predpoklady

    1. Použitie tohto postupu môže tehla váš smerovač, ako pri vytváraní smerovača nepoužiteľný, nenesieme žiadnu zodpovednosť za akékoľvek škody, ktoré môžu byť spôsobené priamo alebo iným spôsobom v dôsledku použitia nižšie uvedených postupov.
    2. Tento postup bol vykonaný na systémoch založených na Debiane (Lenny, Squeeze a Mint) a nižšie uvedené pokyny predpokladajú, že používate aj jeden.
    3. Tento postup sa odporúča iba ľuďom, ktorí majú skúsenosti s blikaním smerovača s DD-WRT, so všetkými predpokladmi, upozorneniami a obmedzeniami, ktoré sa vzťahujú na ich nastavenie hardvéru. dobrým miestom na začiatok by bolo naše zariadenie Turn Your Home Router do super-Powered Router s DD-WRT sprievodcom.
    4. Váš smerovač musí podporovať aspoň "mini" verziu DD-WRT.
    5. Tento postup bol vytvorený a testovaný na routroch Linksys WRT54GS / L, ak používate smerovače od iných dodávateľov, vaše najazdené kilometre.

    Nastaviť

    Inštalácia požadovaných balíkov

    Sada na úpravu firmvéru má niektoré závislosti, aby mohla kompilovať a pracovať. Ak chcete nainštalovať / aktualizovať všetky naraz Vydanie tohto príkazu v termináli:

    sudo aptitude nainštalovať gcc g ++ binutils patch bzip2 flex bizón robiť gettext unzip zlib1g-dev libc6 subversion

    Stiahnite mod-kit

    Vytvorte podadresár a získajte súpravu z oficiálneho SVN:

    mkdir firmware_mod_kit
    cd firmware_mod_kit
    svn checkout http://firmware-mod-kit.googlecode.com/svn/trunk/ firmware-mod-kit-len na čítanie
    cd firmware-mod-kit-len na čítanie / kufor /

    Prevezmite firmvér, na ktorý chcete pracovať

    Prvá vec, ktorú je potrebné zvážiť, je verzia, ktorú chcete použiť?
    Pravidlo je: ak máte pochybnosti, použite "mini". Dôvodom je to, že ak váš smerovač podporuje aspoň "mini" verziu, používa sa vám všetky najčastejšie používané funkcie bez bloatware. čím ponecháva priestor pre postupy a dokonca aj niektorý priestor JFFS pre iné použitie vo väčšine prípadov.

    Akonáhle sa rozhodnete pre verziu, odporúča sa použiť najnovšiu verziu dostupného firmvéru, pretože majú tendenciu mať veľa opravných opráv v porovnaní s ich "stabilnými" partnermi.
    V čase tohto písania najnovšie bolo "03-17-11-r16454" a táto revízia sa používa v nasledujúcich príkazoch.

    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

    Aby bolo možné ľahšie sledovať, akú verziu používame, premenujte stiahnutý súbor tak, aby reprezentoval jeho číslo verzie:

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

    To je samozrejme voliteľné, ale príkazy nižšie predpokladajú, že ste súbor premenovali.

    Extrahovanie firmvéru

    Aby sme mohli meniť súbory v rámci firmvéru, musíme ich obsah nahradiť do dočasného adresára.
    Syntax tohto príkazu je:
    ./extract_firmware.sh FIRMWARE_IMAGE WORKING_DIRECTORY
    V našom prípade by sa to prejavilo na:

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

    Poznámka: Pri prvom spustení tohto príkazu budujete na svojom systéme mod-kit. stane sa to iba raz a môže chvíľu trvať ... takže buďte trpezliví ...

    Inštalácia balíkov

    Teraz, keď je firmware extrahovaný, môžeme naň balíky nainštalovať.
    Vo všeobecnosti je postup na stiahnutie balíka a jeho závislostí vo forme súboru ipk z úložiska openWRT. Po načítaní ich nainštalujte do extrahovaného firmvéru pomocou dodaného skriptu.

    Knockd balíček

    Podrobné pokyny na konfiguráciu a použitie programu Knockd budú podrobne popísané v budúcom článku, takže sa môžete rozhodnúť tento krok preskočiť alebo ho pripraviť do budúcnosti, pretože Knockd nemá veľa miesta.

    Knockd je démon, ktorý počúva komunikačné udalosti na linkovej vrstve pre sekvencie, ktoré potom pôsobí na ne.
    Znamená to, že zariadenie môže mať spustený démon, nie je ani "počúvať" na portoch (skenovanie portov ich nebude vidieť ako otvorené) a stále robiť to, čo potrebujete, z jedného príkazu celú cestu na úplný skript. Pomocou tejto techniky by ste mohli spúšťať server, aby vykonal ľubovoľnú operáciu, ktorú potrebujete na diaľku (cez internet) bez toho, aby ste vystavili domácu sieť.

    Knockd má iba jednu vymenovanú závislosť, takže si stiahnite balík a jeho závislosť vydávaním:

    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

    Nainštalujte ipokk "knock démon" (knockd) do firmware:

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

    Nainštalujte "capture packet" (libpcap) ipk do firmvéru:

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

    Keďže "knockd" môže byť vyvolaný pomocou alternatívneho konfiguračného súboru (ako bude vysvetlené v budúcom článku), nie je potrebné vykonávať žiadnu inú operáciu a môžete preskočiť na časť firmvéru budov, ak je všetko, čo chcete inštalovať.

    Balík SSMTP

    Balík SSMTP umožňuje vášmu smerovaču posielať e-mailové správy rovnako ako sme sa dostali do našich Upozornení na nastavenie e-mailu na Linux Ako používať Gmail alebo SMTP pre servery. Sme sľúbili vám, že vám ukážeme, ako to nakonfigurovať pre DD-WRT, a my teraz dodáme.
    To je hlavne užitočné, ak sa chystáte vytvárať skripty na smerovači, ktoré by ste chceli dostávať spätnú väzbu o ich fungovaní prostredníctvom e-mailu.

    Nastavenie tohto balíčka je o niečo zložitejšie, než je to na bežných systémoch Linux kvôli obmedzeniu zavedenému vstavaným systémom, tak sa zhlboka nadýchnite ... pripravený? .... Poďme… :)

    Stiahnite si balík:

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

    Nainštalujte "ssmtp" ipk do firmvéru:

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

    Podpora TLS (voliteľné)
    SSMTP nezahŕňa žiadne iné balíky ako závislosť, avšak ak chcete používať bránu smtp, ktorá vyžaduje autentifikáciu TLS (tzn.. Gmail), musíte tiež nainštalovať openSSL pakage.
    Poznámka: Je obrovský nedostatok robiť to vo forme výrazne zníženého priestoru na smerovači pre JFFS neskôr. To znamená, že balík openSSL trvá asi 500 kB priestoru z vášho celkového počtu 4 MB (pre bežný nepodporujúci "mega" router), ktorý je zložený z toho, že JFFS je nad hlavou a zistíte, že váš ľavý, ale drahý pár blokov voľný priestor JFFS (približne 60 kB na WRT54GL).

    Vzhľadom na to, že stále nie sú servery TLS, ktoré vyžadujú servery SMTP (zvyčajne poskytovatelia internetových služieb), navrhujem, aby ste chvíľu premýšľali o tom, či skutočne potrebujete použiť bránu TLS,.

    Ak ste sa rozhodli povoliť podporu TLS aj napriek nevýhode, stiahnite balík openSSL:

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

    Nainštalujte "openSSL" (libopenssl) ipk do firmvéru:

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

    konfigurácia
    Existuje obmedzenie balíka SSMTP, že nie je možné ho spustiť pomocou alternatívneho konfiguračného súboru.
    Pretože firmware je len na čítanie, keď je na routeru, to znamená, že z krabice môžeme len hardcode konfiguráciu do firmware.
    Čo však, ak nechceme prejsť všetkými krokmi úpravy firmvéru, iba zmeniť nastavenia e-mailu? (napríklad zmena hesla).

    Za týmto účelom, ako Jeremy (firmware mod-kit creator), tak aj ja som dospel k záveru (nezávisle od toho, či by som mohol pokorne dodať), že jediným rozumným spôsobom, ako to urobiť, je:

    1. Nastavte umiestnenie konfiguračných súborov, ktoré balík ssmtp odkazuje na umiestnenie len na čítanie v rámci atď., Ukážte na adresár tmp, ktorý je zapisovateľný počas spustenia.
    2. Vytvorte skript, ktorý by dynamicky vygeneroval konfigurácie založené na premenných NVRAM pri štarte.

    Aby ste to dosiahli, sú potrebné ďalšie kroky ...

    Symlink konfiguračný adresár ssmtp
    Ako bolo vysvetlené vyššie, musíme urobiť / Etc / ssmtp miesto na smerovači, prejdite na položku / tmp ako jediné zapisovateľné miesto, ktoré máme na smerovač v čase behu. Ak chcete to urobiť, odstráňte adresár ssmtp, ktorý vytvoril inštalačný program ipk:

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

    Vytvorte nový symbolický odkaz, ktorý nasmeruje / etc / ssmtp na koreňový súborový systém smerovača, aby ukazoval na / tmp / etc / ssmtp ako absolútnu cestu:

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

    Poznámka: Aj keď to momentálne vyzerá nelogicky, pretože smerovanie konfiguračného adresára balíčka smeruje na miesto mimo pracovného adresára balíka úprav firmvéru, uisťujem vás, že to vyzerá úplne jemne z pohľadu smerovača pri behu.

    Init skript
    Aj keď je úplne možné, že tento skript nebudete vložený do firmvéru a neskôr ho spustiť ako štartovací skript, považujem ho za vhodné umiestniť ho tu len ak príklad pre budúce použitie.
    Pôvodne Jeremy vytvoril skript prispôsobený na požiadavku niekoho, neskôr som ho upravil a rozšíril tak, aby bol viac kompatibilný s DD-WRT a syslog reporting.

    Vytvorte nový init (spúšťací) skript:

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

    Poznámka: Môžete použiť iný editor, používam vi, pretože je v súlade s tým, čo je k dispozícii na smerovači ...
    Urobte z neho tento obsah:

    #! / Bin / sh
    #
    # title: ssmtp_nvram.sh
    # autor: Jeremy Collake a Aviad Raviv
    # site: http://www.bitsum.com, http://howtogeek.com
    #
    # skript vytvoriť konfiguračný súbor z nvram vars.
    # bude fungovať pre ľubovoľný konfiguračný súbor, ktorý používa
    # var = páry hodnôt typu.
    #
    # používa predpony pre premenné nvram.
    #
    # napr.
    # ssmtp_hostname = niečo
    # prekladá na ssmtp.conf
    # hostname = niečo
    #
    logger_func ()

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

    logger_func "########### Začal spustiť SSMTP init run ###########"
    logger_func "Vytvorenie adresára etc v adresári / 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 "Generovanie $ CONFIG_FILE pre balík $ PACKAGE_NAME"
    #echo $ 0: generovanie $ CONFIG_FILE pre balík $ PACKAGE_NAME
    echo "#! / bin / sh"> $ CONFIG_FILE
    echo "#" >> $ CONFIG_FILE
    echo "# auto generované na základe nvram o $ 0" >> $ CONFIG_FILE
    echo "#" >> $ CONFIG_FILE

    ak [-z "'nvram show | grep ssmtp'"]
    potom
    logger_func "Zdá sa, že ste nenastavili premenné NVRAM potrebné na generovanie súboru conf"
    logger_func "** Zvážte ** použitie týchto príkazov v spúšťacom skripte:"
    logger_func "nvram nastaviť [email protected]"
    logger_func "nvram nastaviť ssmtp_mailhub = smtp.gmail.com: 587"
    logger_func "nvram nastaviť ssmtp_hostname = [email protected]"
    logger_func "nastavenie nvram ssmtp_UseSTARTTLS = ÁNO"
    logger_func "nvram set ssmtp_AuthUser = užívateľské meno"
    logger_func "nastavenie nvram ssmtp_AuthPass = heslo"
    logger_func "nastavenie nvram ssmtp_FromLineOverride = ÁNO"
    logger_func "vytvoriť premenné NVRAM a opätovne spustiť init skript alebo reštartovať nastavenia, aby sa ovplyvnili."
    exit 0
    fi

    ################################################## #########
    #
    # main loop
    #
    SED_COMMAND = "s / $ NVRAM_PREFIX / /"
    CONFIG_VARS = "nvram show | grep $ NVRAM_PREFIX | sed" $ SED_COMMAND ""
    pre i v $ CONFIG_VARS; robiť
    echo $ i >> $ CONFIG_FILE
    hotový

    ################################################## #########
    #
    # kontrola zdravia
    #
    ak [! -f "$ CONFIG_FILE"]; potom
    # echo "$ 0: ERROR - nemohol vytvoriť $ CONFIG_FILE. Možno nie je k dispozícii symink / etc / XXXX -> / tmp / etc / XXXX?"
    logger_func "ERROR - nedokázal vytvoriť $ CONFIG_FILE. Možno neexistuje symink / etc / XXXX -> / tmp / etc / XXXX?"
    fi
    logger_func "########### Dokončené spustenie SSMTP init run ###########"

    Spustite to:

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

    Berte na vedomie NVRAM čakajúce premenné v skripte, je našou zodpovednosťou dávať im niečo, s kým bude pracovať s po nainštalovaní nášho upraveného firmvéru do smerovača.

    Vytvorenie upraveného firmvéru

    Teraz, keď je všetko na mieste, je načase znovu zbaliť upravený firmware do komprimovaného binárneho priečinka, ktorý môžeme blikať na smerovači.
    Syntax skriptu "build.sh" je:
    ./build_firmware.sh OUTPUT_DIR WORKING_DIRECTORY

    K tomu použijeme dodaný skript, takže vydanie:

    ./build_firmware.sh output_mini1 ./working_dir_mini1/

    Po dokončení operácie "build" sa v adresári "output" zobrazí niekoľko obrázkov firmware.

    Môžete teraz blikať súbor s názvom "custom_image_00001-generic.bin" do smerovača, ako by ste spravidla používali firmvér DD-WRT.

    Poznámka: Nezabudnite obnoviť "predvolené nastavenia" pred, počas a hneď po bliknutí firmvéru.

    Uveďte kroky blesku

    Pretože sme balík SSMTP vybrali pre premenné NVRAM na vygenerovanie konfiguračného súboru ssmtp, teraz ho musíme dodať s chýbajúcimi informáciami.
    Vykonáme to pomocou funkcie webového rozhrania "Spustiť príkazy".

    Prejdite do webového GUI -> "administrácia" -> "príkazy" -> vložte do textového poľa nasledujúce:

    nvram nastavte [email protected]
    nvram nastaviť ssmtp_mailhub = smtp.gmail.com: 587
    nvram nastaviť [email protected]
    nvram nastaviť ssmtp_UseSTARTTLS = YES
    nvram nastaviť ssmtp_AuthUser = váš-gmail-user-name (bez @ gmail.com)
    nvram nastaviť ssmtp_AuthPass = ty-gmail-heslo
    nvram nastaviť ssmtp_FromLineOverride = YES
    nvram commit

    Nahraďte text za znamienkom equal (=) s aktuálnymi informáciami a potom stlačte "Spustiť príkazy".
    Poznámka: ak používate bežný server, ktorý nepoužíva TLS, smtp server, ktorý používa, je 25 namiesto 587.

    Teraz, keď sú informácie SSMTP pripravené na použitie, budete musieť vyvolať skript init. Takže môžete buď reštartovať smerovač, alebo vložiť do textového poľa "príkazy":

    /etc/init.d/S80ssmtp

    Potom znova kliknite na tlačidlo "Spustiť príkazy".
    Výstup tohto príkazu by mal vyzerať takto:

    Otestujte, či môžete odoslať e-mail
    Znova vložte do textového poľa "príkazy" nasledujúci príkaz s vašou e-mailovou adresou:

    echo "testovanie kelímku e-mailom 123 qwe" | ssmtp -vvv [email protected]

    Potom znova kliknite na tlačidlo "Spustiť príkazy".
    Pretože sme použili voľbu -vvv pre extra výrečnosť, výstup tohto príkazu by mal vyzerať takto:

    Ak všetko prebehlo dobre, mali by ste získať testovací e-mail v priebehu niekoľkých sekúnd.

    Dúfame, že tieto informácie môžete použiť na presadenie obmedzení vášho domáceho smerovača ešte ďalej, ako ste si mysleli, že je to možné a teraz skutočne kontrolujete svoj domovský smerovač a DD-WRT ...


    Linux rozširuje život, Linux rozširuje vedomie ... Linux je nevyhnutný pre cestovanie cez pakety