Domovská » jak » Uvolněte ještě větší výkon z vašeho domácího směrovače pomocí modulu DD-WRT Mod-Kit

    Uvolněte ještě větší výkon z vašeho domácího směrovače pomocí modulu DD-WRT Mod-Kit


    Již jsme vám ukázali, jak modifikovat svůj domácí směrovač s alternativním firmwarem DD-WRT pro výrazně lepší výkon a dnes vám ukážeme, jak je ještě více učinit pomocí modulu DD-WRT Mod-Kit.

    Pokud jste tak ještě neučinili, ujistěte se a podívejte se na dva předchozí články v sérii:

    • Otočte svůj směrovač do směrovače Super-Powered s DD-WRT
    • Jak zvýšit signál sítě Wi-Fi a zvýšit dosah s DD-WRT

    Za předpokladu, že jste obeznámeni s těmito tématy, pokračujte v čtení. Mějte na paměti, že tato příručka je o něco techničtější a začátečníci by měli být opatrní při modifikaci směrovače.

    Přehled

    Tato příručka obsahuje krok za krokem, jak vytvořit vlastní firmware DD-WRT s úpravami a dodatky pomocí "sady úprav firmwaru".

    Modifikovaná sada firmwaru umožňuje provádět úpravy firmwaru bez kompilace ze zdroje. Provádění změn tímto způsobem pomocí dodávaných skriptů se stává jednoduchou záležitostí stahování, nahrazování a mazání některých souborů.

    Nejvíce převažující důvod k použití této metody je, protože v poslední době se podpora DD-WRT pro Openwrt IPKG balíčky posunula směrem k směrovačům, které mají pevné disky (přes USB), což činí mod-kit jediným trvale fungujícím způsobem úspěšně instalovat balíčky IPKG v případech, kdy HD není k dispozici. Kromě toho má tato metoda dodatečnou výhodu, že vás zbavuje závislostí JFFS na instalaci balíčků, což je pro routery s pouze 4 MB blesku skutečný problém.

    Obrázek veřejnosti

    Cíle

    Zatímco pokyny pro tento postup jsou podrobně popsány na wiki DD-WRT a na stránkách vývojáře, usilujeme o to, aby tento průvodce vytvořil kopírovací a pastovací postup, který může použít někdo k dosažení následujících cílů:

    • Nainstalujte knockd balíček a jeho závislosti.
    • Nainstalujte balík ssmtp pomocí generovaných konfigurací založených na NVRAM.
      • Volitelně s podporou smtp TLS (například podpora Gmailu).

    Jakmile budete postupovat podle tohoto postupu, měl by být relevantní jednoduché přizpůsobení pro další instalace balíčků.

    Varování: Běhněte lehce ... mějte na paměti, že nesprávné použití modifikační sady vám může zanechat směrovač, který potřebuje de-bricking (jako zase do zbytečné cihly). Nicméně pokud jste skutečný geek, pravděpodobně se přihlásíte k ideologii, že ten, kdo může zničit věc, ovládá věc a pouze to praví geekové dělají

    Předpoklady

    1. Použití tohoto postupu může cihlový váš směrovač, jako v routeru nepoužitelný, nepřebíráme žádnou odpovědnost za škody způsobené přímo nebo jinými způsoby způsobenými použitím níže uvedených postupů.
    2. Tento postup byl prováděn na systémech založených na Debianu (Lenny, Squeeze a Mint) a níže uvedené pokyny předpokládají, že používáte jeden také.
    3. Tento postup se doporučuje pouze osobám, které mají zkušenosti s blikajícím směrovačem s DD-WRT, se všemi předpoklady, námitkami a omezeními, která se týkají nastavení hardwaru. dobrým místem pro začátek by byl náš směrovač Turn Your Home Router do super-Powered Router s průvodcem DD-WRT.
    4. Váš směrovač musí podporovat alespoň "mini" verzi DD-WRT.
    5. Tento postup byl vytvořen a testován na směrovačích Linksys WRT54GS / L, pokud používáte směrovače od jiných dodavatelů, vaše kilometry mohou velmi.

    Založit

    Instalace požadovaných balíků

    Sada pro úpravu firmwaru má nějaké závislosti, aby mohla kompilovat a pracovat. Chcete-li je nainstalovat / aktualizovat najednou Vydáte tento příkaz v terminálu:

    sudo aptitude instalace gcc g ++ binutils patch bzip2 flex bizón make get unzip zlib1g-dev libc6 subversion

    Stáhněte si mod-kit

    Vytvořte podadresář a získejte soupravu z oficiálního SVN:

    mkdir firmware_mod_kit
    cd firmware_mod_kit
    svn checkout http://firmware-mod-kit.googlecode.com/svn/trunk/ firmware-mod-kit-jen pro čtení
    cd firmware-mod-kit-read-only / trunk /

    Stáhněte si firmware, na kterém budete pracovat

    První věc, kterou je třeba zvážit, je, kterou verzi chcete použít?
    Pravidlem je: v případě pochybností použijte "mini". Důvodem je to, že pokud váš směrovač podporuje alespoň verzi "mini", používá se vám všechny nejběžněji používané funkce bez jakéhokoliv bloatwaru. čímž zůstává prostor pro procedury a dokonce i nějaký prostor JFFS pro jiné použití ve většině případů.

    Jakmile se rozhodnete pro verzi, doporučuje se použít nejnovější revizi dostupného firmwaru, neboť mají spoustu opravených chyb ve srovnání s jejich "stabilními" protějšky.
    V době tohoto psaní byla nejnovější "03-17-11-r16454" a tato revize se používá v následujících příkazech.

    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

    Abychom usnadnili sledování toho, jakou verzi používáme, přejmenujte stažený soubor na jeho číslo verze:

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

    Je to samozřejmě volitelně, ale příkazy uvedené níže předpokládají, že jste soubor přejmenovali.

    Extrahování firmwaru

    Abychom mohli měnit soubory v rámci firmwaru, musíme jej obsah vyjmout do dočasného adresáře.
    Syntaxe tohoto příkazu je:
    ./extract_firmware.sh FIRMWARE_IMAGE WORKING_DIRECTORY
    V našem případě by to znamenalo:

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

    Poznámka: Při prvním spuštění tohoto příkazu staví modemové nástroje v systému. to se děje jen jednou a může chvíli trvat ... tak buďte trpěliví ...

    Instalace balíčků

    Nyní, když je firmware extrahován, můžeme do něj instalovat balíčky.
    Postup je obecně stahovat balíček a jeho závislosti ve formě souboru ipk z repozitáře openWRT. Po stažení je nainstalujte do extrahovaného firmwaru pomocí dodaného skriptu.

    Knoflíkový balíček

    Podrobné pokyny, jak konfigurovat a používat Knockd, budou podrobně popsány v budoucím článku, takže se můžete rozhodnout tento krok vynechat nebo se připravit na budoucnost, protože Knockd neberie příliš mnoho prostoru.

    Knockd je démon, který naslouchá komunikačním událostem na vrstvě odkazů a sekvence pak na ně působí.
    Co to znamená, že je možné, že zařízení běží démon, aniž by se na porty ani "poslouchalo" (scan portu je neuvidí jako otevřený) a přesto mu udělá něco, co potřebujete, z jediného příkazu celou cestu nahoru na úplný skript. Pomocí této techniky můžete spouštět server, aby mohl provádět jakoukoli operaci, kterou potřebujete dálkově (přes internet), aniž byste vystavili vaši domácí síť.

    Knockd má pouze jednu vypsanou závislost, takže stáhnout balíček a jeho závislost vydání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

    Nainstalujte "klepání démona" (knockd) ipk do firmwaru:

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

    Nainstalujte balíček "capture packet" (libpcap) ipk do firmwaru:

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

    Protože "knockd" lze vyvolat pomocí alternativního konfiguračního souboru (jak bude vysvětleno v budoucím článku), není třeba provádět žádnou jinou operaci a můžete přeskočit na sekci budov firmwaru, pokud je vše, co chcete nainstalovat.

    Balík SSMTP

    Balík SSMTP umožňuje směrovači odesílat e-mailové zprávy, stejně jako jsme se objevili v nápovědích pro zasílání e-mailů na platformě Linux pomocí služby Gmail nebo SMTP pro servery. Slíbili jsme vám, že vám ukážeme, jak nakonfigurovat tento postup pro DD-WRT a my se nám nyní podaří.
    To je užitečné zejména v případě, že chcete vytvářet skripty na směrovači, které byste rádi obdrželi zpětnou vazbu o jejich provozu prostřednictvím e-mailu.

    Nastavení tohoto balíčku je trochu složitější než běžné systémy Linux kvůli omezením zavedeným vestavěným systémem, takže se zhluboka nadechněte ... připraven? .... Pojďme… :)

    Stáhnout balíček:

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

    Namontujte "ssmtp" ipk do firmwaru:

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

    Podpora TLS (volitelné)
    SSMTP nezahrnuje žádné jiné balíčky jako své závislosti, avšak pokud chcete použít smtp gateway, který vyžaduje autentizaci TLS (tj.. Gmail), musíte také nainstalovat openSSL pakage.
    Poznámka: Je obrovské nevýhodou a to v pozdější podobě ve výrazně sníženém prostoru na routeru pro JFFS. To znamená, že balíček openSSL trvá zhruba 500 kB prostoru z celkového počtu 4 MB (pro normální nepotřebný "mega" podporující směrovač), který je složen z toho, že nad hlavou je JFFS, a zjistíte, že vaše levice s několika vzácnými bloky volný prostor JFFS (asi 60 kB na WRT54GL).

    Vzhledem k tomu, že stále existují servery smtp, které nevyžadují servery TLS (obvykle ISP), navrhneme chvíli, kdy si myslím, zda skutečně potřebujete použít bránu TLS, která vyžaduje bránu.

    Pokud jste se rozhodli povolit podporu TLS navzdory jeho nevýhodě, stáhněte si balíček openSSL:

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

    Instalujte "openSSL" (libopenssl) ipk do firmwaru:

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

    Konfigurace
    Existuje omezení s balíkem SSMTP, že není možné jej vyvolat pomocí alternativního konfiguračního souboru.
    Vzhledem k tomu, že firmware je pouze pro čtení, když je na routeru, to znamená, že z krabice můžeme pouze hardcode konfiguraci do firmware.
    Co když však nechceme projít všemi kroky pro úpravu firmwaru, abychom změnili nastavení e-mailu? (například změna hesla).

    Za tím účelem, jak Jeremy (výrobce firmware mod-kit), tak i já dospěli k závěru (nezávisle na tom, jestli bych se mohl pokorně přidávat), že jediný rozumný způsob, jak to udělat, bude:

    1. Nastavte umístění konfiguračních souborů, které balíček ssmtp odkazuje na umístění jen pro čtení v adresáři atd., Přejděte na adresář tmp, který je zapisovatelný při běhu.
    2. Vytvořte skript, který by dynamicky generoval konfigurace založené na proměnných NVRAM při spuštění.

    K tomu je třeba provést některé další kroky ...

    Symlink konfiguračního adresáře ssmtp
    Jak bylo vysvětleno výše, musíme udělat / etc / ssmtp umístění na routeru, přejděte na / tmp jako jediné zapisovatelné místo, které máme na routeru v době běhu. Chcete-li to provést, odstraňte adresář ssmtp, který byl vytvořen instalátorem ipk:

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

    Vytvořte nový symbolický odkaz, který ukazuje / etc / ssmtp na kořenovém souborovém systému směrovače a přejděte na / tmp / etc / ssmtp jako absolutní cestu:

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

    Poznámka: Přestože to vypadá nelogicky právě teď, protože směřujeme k adresáři konfigurace balíčku do pracovního adresáře mimo pracovní soubor modulu pro úpravu firmwaru, ujišťuji vás, že to vypadá naprosto dobře z hlediska směrovačů při běhu.

    Initový skript
    I když je zcela nemožné tento skript vložit do firmwaru a spustit ho později jako spouštěcí skript, cítím jeho vhodné dát ho zde, jen jako příklad pro budoucí použití.
    Původně Jeremy vytvořil skript přizpůsobený požadavkům někoho, později jsem ho upravil a rozšířil tak, aby byl více kompatibilní s reportingem DD-WRT a syslog.

    Vytvořte nový init (spouštěcí) skript:

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

    Poznámka: Můžete použít jiný editor, používám vi, protože je v souladu s tím, co je k dispozici v routeru ...
    Proveďte jeho obsah:

    #! / bin / sh
    #
    # title: ssmtp_nvram.sh
    # autor: Jeremy Collake a Aviad Raviv
    # site: http://www.bitsum.com, http://howtogeek.com
    #
    # skript pro vytvoření konfiguračního souboru z nvram vars.
    # bude fungovat pro libovolný konfigurační soubor, který používá
    # var = dvojice typů hodnot.
    #
    # používá předpony pro proměnné nvram.
    #
    # tj.
    # ssmtp_hostname = něco
    # převede na ssmtp.conf
    # hostname = něco
    #
    logger_func ()

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

    logger_func "########### Spustil init spustit SSMTP ###########"
    logger_func "Vytvoření adresáře etc v / 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 "Generování $ CONFIG_FILE pro balíček $ PACKAGE_NAME"
    #echo $ 0: generování $ CONFIG_FILE pro balíček $ PACKAGE_NAME
    echo "#! / bin / sh"> $ CONFIG_FILE
    echo "#" >> $ CONFIG_FILE
    echo "# auto generováno na základě nvram o $ 0" >> $ CONFIG_FILE
    echo "#" >> $ CONFIG_FILE

    pokud [-z "'nvram show | grep ssmtp'"]
    pak
    logger_func "Zdá se, že jste nenastavili proměnné NVRAM potřebné k vytvoření souboru conf"
    logger_func "** Zvažte ** použití těchto příkazů ve spouštěcím skriptu:"
    logger_func "nvram nastavit [email protected]"
    logger_func "nvram nastavit ssmtp_mailhub = smtp.gmail.com: 587"
    logger_func "nvram nastavit [email protected]"
    logger_func "nvram nastavit ssmtp_UseSTARTTLS = ANO"
    logger_func "nvram set ssmtp_AuthUser = uživatelské jméno"
    logger_func "nvram nastavit ssmtp_AuthPass = heslo"
    logger_func "nvram nastavit ssmtp_FromLineOverride = ANO"
    logger_func "vytvořte proměnné NVRAM a znovu spusťte skript init nebo restartujte nastavení, aby se ovlivnila."
    výstup 0
    fi

    ########################################## #########
    #
    # main loop
    #
    SED_COMMAND = "s / $ NVRAM_PREFIX / /"
    CONFIG_VARS = "nvram show | grep $ NVRAM_PREFIX | sed" $ SED_COMMAND ""
    pro i v $ CONFIG_VARS; dělat
    echo $ i >> $ CONFIG_FILE
    Hotovo

    ########################################## #########
    #
    # sanitární kontrola
    #
    pokud [! -f "$ CONFIG_FILE"]; pak
    # echo "$ 0: ERROR - nemohl vytvořit $ CONFIG_FILE. Možná, že neexistuje žádný soubor / etc / XXXX -> / tmp / etc / XXXX?"
    logger_func "ERROR - nemohl vytvořit $ CONFIG_FILE. Možná není žádný soubor / etc / XXXX -> / tmp / etc / XXXX?"
    fi
    logger_func "########### Dokončeno spuštění init SSMTP ###########"

    Udělat to spustitelný:

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

    Vezměte si na vědomí NVRAM čekací proměnné ve skriptu, je naší povinností dát jim něco, s kým pracují s tím, co jsme nainstalovali náš upravený firmware na směrovači.

    Vytvořte upravený firmware

    Nyní, když je vše v pořádku, je načase znovu zabalit upravený firmware do komprimované binární, kterou můžeme blikat směrovači.
    Syntaxe skriptu "build.sh" je:
    ./build_firmware.sh OUTPUT_DIR WORKING_DIRECTORY

    K tomu použijeme dodávaný skript, takže vydáme:

    ./build_firmware.sh output_mini1 ./working_dir_mini1/

    Po dokončení operace "stavění" bude v adresáři "výstup" čekat několik obrázků firmwaru.

    Můžete nyní blikat soubor s názvem "custom_image_00001-generic.bin" do směrovače, jak byste normálně používali firmware DD-WRT.

    Poznámka: Nezapomeňte obnovit "výchozí nastavení" před, během a těsně po firmwaru blesku.

    Vložte kroky blesku

    Vzhledem k tomu, že jsme balíček SSMTP hledali proměnné NVRAM, abychom vygenerovali konfigurační soubor ssmtp, musíme jej nyní poskytnout chybějící informace.
    Tuto funkci dosáhneme pomocí funkce webového rozhraní GUI "Spustit příkazy".

    Přejděte do webového GUI -> "administrace" -> "příkazy" -> vložte do textového pole následující:

    nvram nastavte [email protected]
    nvram nastavit ssmtp_mailhub = smtp.gmail.com: 587
    nvram nastavit [email protected]
    nvram nastavit ssmtp_UseSTARTTLS = ANO
    nvram nastavit ssmtp_AuthUser = vaše gmail-uživatelské jméno (bez @ gmail.com)
    nvram nastavit ssmtp_AuthPass = vy-gmail-heslo
    nvram nastavit ssmtp_FromLineOverride = ANO
    nvram commit

    Nahraďte text za znaménkem equal (=) se svými aktuálními informacemi a pak stiskněte tlačítko "Run commands".
    Poznámka: Pokud používáte server smtp, který používá standardní server bez serveru TLS, použije se port namísto 587.

    Nyní, když jsou informace SSMTP připraveny k použití, budete muset vyvolat skript init. Takže můžete buď restartovat router, nebo jej vložit do textového pole "příkazy":

    /etc/init.d/S80ssmtp

    Potom klikněte znovu na příkaz Spustit příkazy.
    Výstup tohoto příkazu by měl vypadat takto:

    Otestujte, že můžete odeslat e-mail
    Opět vložte do textového pole "příkazy" následující příkaz s vaší e-mailovou adresou:

    echo "testování kelímku emailem 123 qwe" | ssmtp -vvv [email protected]

    Potom klikněte znovu na příkaz Spustit příkazy.
    Protože jsme použili volbu -vvv pro extra výmluvnost, výstup tohoto příkazu by měl vypadat takto:

    Pokud vše proběhne dobře, měli byste získat zkušební e-mail během několika vteřin.

    Doufáme, že tyto informace můžete využít k tomu, abyste dosáhli limitu domácího směrovače ještě dále, než jste si mysleli, že je to možné, a nyní skutečně řídíte svůj domovský směrovač a DD-WRT ...


    Linux rozšiřuje život, Linux rozšiřuje vědomí ... Linux je životně důležitý pro cestování po paketů