Domača » kako » Sprostite še več moči iz vašega domačega usmerjevalnika z mod-kitom DD-WRT

    Sprostite še več moči iz vašega domačega usmerjevalnika z mod-kitom DD-WRT


    Pokazali smo vam, kako modificirati vaš domači usmerjevalnik z DD-WRT nadomestno strojno programsko opremo za močno izboljšano zmogljivost, in danes vam bomo pokazali, kako ga z DD-WRT mod-kitom vzeti še dlje..

    Če še niste, se prepričajte in si oglejte prejšnji članek v seriji:

    • Vključite domači usmerjevalnik v super pogon z DD-WRT
    • Kako povečati signal omrežja Wi-Fi in povečati obseg z DD-WRT

    Ob predpostavki, da ste seznanjeni s temi temami, nadaljujte z branjem. Ne pozabite, da je ta priročnik malo bolj tehničen in začetniki morajo biti previdni pri moddingih usmerjevalnika.

    Pregled

    Ta priročnik vam bo podal korak za korakom, kako ustvariti lastno programsko opremo DD-WRT s spremembami in dopolnitvami z uporabo kompleta za spreminjanje vdelane programske opreme..

    Komplet za modifikacijo vdelane programske opreme omogoča, da spreminjate vdelano programsko opremo, ne da bi jo morali prevesti iz vira. Spreminjanje tega načina s pomočjo priloženih skriptov postane preprosto vprašanje prenosa, zamenjave in brisanja nekaterih datotek.

    Najbolj prevladujoči razlog za uporabo te metode je v tem, da se je v zadnjem času DD-WRT-jeva podpora za pakete Openwrt IPKG preusmerila na usmerjevalnike, ki imajo trde diske (prek USB-ja), zaradi česar je mod-kit edini dosledno delujoč način namestitve paketov IPKG. za primere, ko HD ni na voljo. Poleg tega ima ta metoda dodatno prednost, da vas razbremeni odvisnosti JFFS za namestitev paketov, kar je za usmerjevalnike s samo 4 MB flash resnična težava..

    Slika s strani javnosti

    Cilji

    Medtem ko so navodila za ta postopek podrobno opisana na wiki DD-WRT in na spletnem mestu razvijalca, si prizadevamo, da bo ta vodnik postopek kopiranja in lepljenja, ki ga lahko vsakdo uporabi za doseganje naslednjih ciljev:

    • Namestite knockd paket in njegove odvisnosti.
    • Namestite paket ssmtp z generiranimi konfiguracijami NVRAM.
      • Po želji s podporo za smsp TLS (podpora za Gmail).

    Ko ste sledili temu postopku, bi ga bilo treba ustrezno prilagoditi za druge namestitvene pakete.

    Opozorilo: Potegnite rahlo… ne smete pozabiti, da lahko nepravilna uporaba modifikacijskega kompleta pustite z usmerjevalnikom, ki potrebuje de-brick-in (kot pa v neuporabno opeko). Če pa ste pravi geek, se verjetno strinjate z ideologijo, da tisti, ki lahko uniči stvar, nadzoruje stvar, in samo pravi geeksi delajo to

    Predpogoji

    1. S tem postopkom lahko opeko vaš usmerjevalnik, kot v usmerjevalniku neuporabna, ne prevzemamo nobene odgovornosti za škodo, ki bi lahko bila povzročena neposredno ali drugače zaradi uporabe spodnjih postopkov.
    2. Ta postopek je bil izveden na sistemih, ki temeljijo na Debianu (Lenny, Squeeze in Mint), spodnja navodila pa predvidevajo, da uporabljate tudi enega..
    3. Ta postopek je priporočljiv samo za osebe, ki imajo izkušnje z utripanjem usmerjevalnika z DD-WRT, z vsemi predpogoji, omejitvami in omejitvami, ki veljajo za nastavitev strojne opreme. dober kraj za začetek bi bil naš Turn Your Home Router v Super-Powered Router z DD-WRT vodnik.
    4. Vaš usmerjevalnik mora podpirati vsaj "mini" različico DD-WRT.
    5. Ta postopek je bil ustvarjen in preizkušen na usmerjevalnikih Linksys WRT54GS / L, če uporabljate usmerjevalnike drugih prodajalcev, lahko vaša kilometrina zelo.

    Nastaviti

    Namestitev potrebnih paketov

    Komplet za modifikacijo vdelane programske opreme ima nekaj odvisnosti, da se lahko prevede in dela. Če želite namestiti / posodobiti vse naenkrat, izdajte ta ukaz v terminalu:

    sudo aptitude namestite gcc g ++ binutils obliž bzip2 flex bison make gettext unzip zlib1g-dev libc6 subversion

    Prenesite mod-kit

    Ustvarite podmapo in dobite komplet iz uradnega SVN:

    mkdir firmware_mod_kit
    cd firmware_mod_kit
    svn checkout http://firmware-mod-kit.googlecode.com/svn/trunk/ firmware-mod-kit-samo za branje
    cd firmware-mod-kit-samo za branje / trunk /

    Prenesite vdelano programsko opremo, na kateri boste delali

    Najprej je treba razmisliti, katero različico želite uporabiti?
    Pravilo palca je: če ste v dvomih, uporabite »mini«. To je zato, ker tako dolgo, kot vaš usmerjevalnik podpira vsaj "mini" različico, ki jo uporablja vam daje vse najpogosteje uporabljene funkcije brez bloatware. tako v večini primerov puščamo prostor za postopke in celo prostor JFFS za druge uporabe.

    Ko se odločite za različico, je priporočljivo uporabiti najnovejšo revizijo firmware, ki je na voljo, saj imajo običajno veliko popravkov napak v primerjavi z njihovimi »stabilnimi« primerki..
    V času tega pisanja je bila zadnja “03-17-11-r16454” in ta revizija se uporablja v naslednjih ukazih.

    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

    Da bi lažje spremljali, katero različico uporabljamo, preneseno datoteko preimenujte tako, da predstavlja njeno številko različice:

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

    To je seveda neobvezno, vendar spodnji ukazi predvidevajo, da ste datoteko preimenovali.

    Izvlek programske opreme

    Da bi lahko spremenili datoteke v strojno-programski opremi, moramo njeno vsebino ekstrahirati v začasni imenik.
    Sintaksa tega ukaza je:
    ./extract_firmware.sh FIRMWARE_IMAGE WORKING_DIRECTORY
    V našem primeru bi to pomenilo:

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

    Opomba: Ko prvič zaženete ta ukaz, gradi orodja za mod-kit v vašem sistemu. to se zgodi samo enkrat in lahko traja nekaj časa… zato bodite potrpežljivi…

    Nameščanje paketov

    Zdaj, ko je strojna programska oprema izločena, lahko namestimo pakete z njo.
    Na splošno je postopek prenosa paketa in njegovih odvisnosti v obliki datoteke ipk iz skladišča openWRT. Ko jih prenesete, jih namestite v vdelano programsko opremo s priloženim skriptom.

    Paket knockd

    Podrobnejša navodila o tem, kako nastaviti in uporabiti Knockd, so podrobno opisana v prihodnjem članku, zato se lahko za zdaj odločite za preskok tega koraka ali pa to storite v pripravah na prihodnost, saj Knockd ne potrebuje veliko prostora.

    Knockd je demon, ki posluša komunikacijske dogodke na povezovalni plasti za sekvence, nato pa deluje na njih.
    Kaj to pomeni, je, da lahko naprava, ki teče z demonom, niti ne "posluša" vrat (skeniranje vrat ne bo videti kot odprto) in bo še vedno naredilo nekaj, kar potrebujete, od enega samega ukaza navzgor v celoten skript. S to tehniko lahko strežnik sprožite kakršnokoli operacijo, ki jo potrebujete na daljavo (prek interneta), ne da bi izpostavili domače omrežje.

    Knockd ima samo eno navedeno odvisnost, zato prenesite paket in njegovo odvisnost z izdajo:

    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

    Namestite "knock daemon" (knockd) ipk v firmware:

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

    Namestite »zajem paketa« (libpcap) ipk v vdelano programsko opremo:

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

    Ker je "knockd" mogoče priklicati z nadomestno konfiguracijsko datoteko (kako bo razloženo v prihodnjem članku), ni potrebe, da bi izvedli katero koli drugo operacijo in lahko preskočite na del stavbe firmware, če je vse, kar ste želeli namestiti.

    Paket SSMTP

    Paket SSMTP omogoča usmerjevalniku pošiljanje e-poštnih sporočil, kot smo jih pokazali v naših navodilih za nastavitev e-pošte na Linuxu z uporabo Gmaila ali SMTP za strežnike. Takrat smo vam obljubili, da bomo pokazali, kako to konfigurirati za DD-WRT in vam bomo sedaj dostavili.
    To je v glavnem uporabno, če boste na usmerjevalniku ustvarili skripte, ki bi jih radi prejemali povratne informacije o njihovem delovanju prek e-pošte.

    Namestitev tega paketa je nekoliko bolj zapletena, kot na običajnih sistemih Linuxa zaradi omejitev, ki jih nalaga vgrajeni sistem, zato globoko vdihnite… pripravljen?…. pojdimo… :)

    Prenesite paket:

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

    Namestite »ssmtp« ipk v firmware:

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

    Podpora TLS (izbirno)
    SSMTP ne navaja nobenih drugih paketov kot odvisnosti, vendar če želite imeti možnost uporabe prehoda smtp, ki zahteva overjanje TLS (tj.. Gmail), morate namestiti tudi paket openSSL.
    Opomba: Obstaja ogromen slabost da bi to naredili v obliki znatno zmanjšanega prostora na usmerjevalniku za JFFS kasneje. To pomeni, da paket openSSL potrebuje približno 500K prostora od vašega skupnega 4MB (za običajen ne-mega “usmerjevalnik), ki je sestavljen iz tega, da je JFFS nadzemnih in boste odkrili, da je vaša leva z, vendar dragoceno nekaj blokov prost prostor JFFS (približno 60 KB na WRT54GL).

    Ker še vedno ni TLS, ki zahtevajo strežnike smtp (običajno vaši ponudniki internetnih storitev), predlagam, da si vzamete minuto, da premislite, če res potrebujete TLS, ki zahteva prehod.

    Če ste se kljub svoji slabosti odločili za podporo TLS, prenesite paket openSSL:

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

    Namestite »openSSL« (libopenssl) ipk v firmware:

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

    Konfiguracije
    Paket SSMTP omejuje, da ga ni mogoče priklicati z nadomestno konfiguracijsko datoteko.
    Ker je vdelana programska oprema samo za branje, ko je na usmerjevalniku, to pomeni, da iz škatle lahko samo vnaprej nastavimo konfiguracijo v programsko opremo..
    Kaj pa, če ne želimo pregledati vseh korakov modifikacije vdelane programske opreme, samo da bi spremenili nastavitve e-pošte? (na primer sprememba gesla).

    V ta namen sta oba Jeremy (ustvarjalec modula za firmware) in jaz dosegla sklep (neodvisno, če lahko ponižno dodam), da je edina razumna pot to:

    1. Naredite lokacije konfiguracijskih datotek, ki jih paket ssmtp kaže na lokacijo, ki je samo za branje pod ipd., Pokažite na imenik tmp, ki ga je mogoče zapisati med izvajanjem.
    2. Ustvarite skript, ki bo dinamično generiral konfiguracije na osnovi spremenljivk NVRAM ob zagonu.

    Da bi to dosegli, so potrebni nekateri dodatni koraki…

    Simbolna povezava imenika konfiguracije ssmtp
    Kot je pojasnjeno zgoraj, moramo narediti / etc / ssmtp na usmerjevalniku, pokažite na / tmp imenik kot edini prostor za pisanje, ki ga imamo na usmerjevalniku med izvajanjem. To storite tako, da izbrišete imenik ssmtp, ki ga je ustvaril namestitveni program ipk:

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

    Ustvarite novo simbolično povezavo, ki usmerja / etc / ssmtp na korenski datotečni sistem usmerjevalnika, da pokažete na / tmp / etc / ssmtp kot absolutno pot:

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

    Opomba: Čeprav to zdaj izgleda nelogično, ker usmerjamo konfiguracijski imenik paketa na lokacijo zunaj delovnega imenika modula za spremembo vdelane programske opreme, zagotavljam vam, da to z vidika usmerjevalnikov v času izvajanja izgleda popolnoma v redu..

    Init skript
    Čeprav je popolnoma možno, da ta scenarij ne vstavite v programsko opremo in ga pozneje zaženete kot zagonski skript, se mi zdi primerno, da ga predstavim kot primer za prihodnjo uporabo..
    Prvotno je Jeremy ustvaril scenarij, prilagojen zahtevi nekoga, kasneje pa sem ga prilagodil in povečal, da je bolj združljiv z DD-WRT in syslog poročanjem..

    Ustvarite nov začetni skript:

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

    Opomba: Uporabite lahko drug urejevalnik, ki ga uporabljam vi, ker je skladen s tem, kar je na voljo na usmerjevalniku ...
    Naj bo njena vsebina:

    #! / bin / sh
    #
    # title: ssmtp_nvram.sh
    # avtor: Jeremy Collake in Aviad Raviv
    # stran: http://www.bitsum.com, http://howtogeek.com
    #
    # skript za izdelavo konfiguracijske datoteke iz nvram vars.
    # bo deloval za vsako konfiguracijsko datoteko, ki jo uporablja
    # var = vrednost pari vrednosti.
    #
    # uporablja predpone za spremenljivke nvram.
    #
    # i.e..
    # ssmtp_hostname = nekaj
    # prevede v ssmtp.conf
    # hostname = nekaj
    #
    logger_func ()

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

    logger_func "########### Začetni zagon SSMTP ###########"
    logger_func "Ustvarjanje imenika 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 "Ustvarjanje $ CONFIG_FILE za paket $ PACKAGE_NAME"
    #echo $ 0: generiranje $ CONFIG_FILE za paket $ PACKAGE_NAME
    echo "#! / bin / sh"> $ CONFIG_FILE
    echo "#" >> $ CONFIG_FILE
    echo "# samodejno ustvarjeno na podlagi nvram z $ 0" >> $ CONFIG_FILE
    echo "#" >> $ CONFIG_FILE

    če [-z "'nvram prikaži | grep ssmtp'"]
    potem
    logger_func "Zdi se, da niste nastavili spremenljivk NVRAM, ki so potrebni za generiranje datoteke conf"
    logger_func "** Razmislite o uporabi teh ukazov v zagonskem skriptu:"
    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 = DA"
    logger_func "nvram set ssmtp_AuthUser = uporabniško ime"
    logger_func "nvram set ssmtp_AuthPass = geslo"
    logger_func "nvram set ssmtp_FromLineOverride = DA"
    logger_func "ustvari spremenljivke NVRAM in znova zaženi začetni skript ali ponovno zaženi, da bodo nastavitve vplivale."
    izhod 0
    fi

    ################################################## #########
    #
    # glavna zanka
    #
    SED_COMMAND = "s / $ NVRAM_PREFIX / /"
    CONFIG_VARS = "nvram show | grep $ NVRAM_PREFIX | sed" $ SED_COMMAND ""
    za i v $ CONFIG_VARS; narediti
    echo $ i >> $ CONFIG_FILE
    Končano

    ################################################## #########
    #
    # preveri razumnost
    #
    če [! -f "$ CONFIG_FILE"]; potem
    # echo "$ 0: ERROR - ni mogel ustvariti $ CONFIG_FILE. Morda ni symink / etc / XXXX -> / tmp / etc / XXXX?"
    logger_func "NAPAKA - ni mogel ustvariti $ CONFIG_FILE. Morda ni symink / etc / XXXX -> / tmp / etc / XXXX?"
    fi
    logger_func "########### Dokončal je začetni zagon SSMTP ###########"

    Naj bo izvedljiv:

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

    Upoštevajte NVRAM čakajoče spremenljivke v skriptu, naša odgovornost je, da jim damo nekaj za delo, potem ko smo namestili naš spremenjeni firmware na usmerjevalniku.

    Zgradite spremenjeno programsko opremo

    Zdaj, ko je vse na svojem mestu, je čas za ponovno pakiranje spremenjene firmware v stisnjen binarni sistem, ki ga lahko bliskavico usmerjamo.
    Skladnja skripta "build.sh" je:
    ./build_firmware.sh OUTPUT_DIR WORKING_DIRECTORY

    V ta namen uporabimo priloženi skript, zato izdajamo:

    ./build_firmware.sh output_mini1 ./working_dir_mini1/

    Po končani operaciji gradnje bo več slik firmwareja, ki čakajo na uporabo v imeniku »output«.

    Sedaj lahko datoteko, imenovano »custom_image_00001-generic.bin«, preusmerite na usmerjevalnik, kot bi ponavadi napravili programsko opremo DD-WRT.

    Opomba: Ne pozabite obnoviti »tovarniških nastavitev« pred, med in takoj po zagonu programske opreme.

    Postopek po bliskavici

    Ker smo paket SSMTP poiskali za spremenljivke NVRAM, da bi ustvarili konfiguracijsko datoteko ssmtp, jo zdaj moramo posredovati manjkajoče informacije.
    To bomo dosegli z uporabo funkcije GUI "Run commands".

    Pojdite v spletni GUI -> “uprava” -> “ukazi” -> prilepite v besedilno polje naslednje:

    nvram nastavite [email protected]
    nvram set ssmtp_mailhub = smtp.gmail.com: 587
    nvram nastavite [email protected]
    nvram set ssmtp_UseSTARTTLS = DA
    nvram set ssmtp_AuthUser = vaše-gmail-ime-uporabnika (brez @ gmail.com)
    nvram je nastavil ssmtp_AuthPass = geslo za gmail
    nvram set ssmtp_FromLineOverride = YES
    nvram commit

    Zamenjajte besedilo za znak enakim (=) z dejanskimi podatki in nato kliknite »Zaženi ukaze«.
    Opomba: če uporabljate običajno, ne TLS uporabo, smtp strežnik, ki ga uporablja pristanišče, je 25 namesto 587.

    Zdaj, ko so podatki SSMTP pripravljeni za uporabo, boste morali priklicati začetni skript. Torej lahko znova zaženete usmerjevalnik, ali pa ga prilepite v besedilno polje »Ukazi«:

    /etc/init.d/S80ssmtp

    Nato znova pritisnite “Run commands”.
    Izhodni ukaz tega ukaza mora izgledati takole:

    Preverite, ali lahko pošljete e-pošto
    Znova prilepite to besedilno polje v ukazni vrstici z naslednjim ukazom s svojim e-poštnim naslovom:

    odmev "testiranje e-poštnega sporočila z luknjami 123 qwe" | ssmtp -vvv [email protected]

    Nato znova pritisnite “Run commands”.
    Ker smo uporabili možnost -vvv za dodatno podrobnost, bi moral biti rezultat tega ukaza podoben:

    Če je vse šlo dobro, bi morali preizkusiti email v nekaj sekundah.

    Upamo, da boste s temi informacijami lahko še bolj omejili omejitve domačega usmerjevalnika, potem ko ste mislili, da je to mogoče, in zdaj resnično nadzirate domači usmerjevalnik in DD-WRT ...


    Linux podaljšuje življenje, Linux širi zavest ... Linux je ključen za paketno potovanje