Početna » kako da » Oslobodite još veću snagu vašeg kućnog usmjerivača pomoću DD-WRT mod-seta

    Oslobodite još veću snagu vašeg kućnog usmjerivača pomoću DD-WRT mod-seta


    Već smo vam pokazali kako modificirati svoj kućni usmjerivač pomoću DD-WRT alternativnog firmware-a za uvelike poboljšane performanse, a danas ćemo vam pokazati kako ga još više iskoristiti s DD-WRT mod-kitom..

    Ako to već niste učinili, provjerite prethodna dva članka iz serije:

    • Pretvorite svoj kućni usmjerivač u super-powered router s DD-WRT
    • Kako pojačati signal Wi-Fi mreže i povećati domet pomoću DD-WRT-a

    Pod pretpostavkom da ste upoznati s tim temama, nastavite čitati. Imajte na umu da je ovaj vodič malo više tehnički, a početnici bi trebali biti oprezni kada modding svoj usmjerivač.

    Pregled

    Ovaj će vam vodič pružiti korak po korak kako napraviti vlastiti DD-WRT firmware s izmjenama i dopunama pomoću "modula za modifikaciju firmware-a".

    Komplet za modifikaciju firmvera omogućuje izmjene firmvera bez kompajliranja iz izvora. Ovakve promjene, uz pomoć skripti, postaju jednostavne za preuzimanje, zamjenu i brisanje nekih datoteka.

    Najdominantniji razlog za korištenje ove metode je u tome što se u posljednje vrijeme DD-WRT podrška Openwrt IPKG paketa pomaknula prema usmjerivačima koji imaju tvrde diskove (preko USB-a), što mod-kit čini dosljedno radnim načinom uspješnog instaliranja IPKG paketa. za slučajeve kada HD nije dostupan. Osim toga, ova metoda ima dodatnu prednost oslobađanja od ovisnosti o JFFS-u za instalaciju paketa, što je za usmjerivače sa samo 4 MB flash-a pravi problem..

    Picture by publicenergy

    ciljevi

    Dok su upute za ovaj postupak detaljno opisane na wiki DD-WRT-u i na web-lokaciji razvojnog programera, nastojimo da ovaj vodič bude postupak kopiranja i lijepljenja koji svatko može koristiti za postizanje sljedećih ciljeva:

    • Instalirajte knockd paket i njegove ovisnosti.
    • Instalirajte ssmtp paket s NVRAM generiranim konfiguracijama.
      • Po želji uz podršku za TLS smtp (a.k.a. Gmail podrška).

    Nakon što ste slijedili ovaj postupak, trebalo bi ga vrlo jednostavno prilagoditi drugim instalacijama paketa.

    Upozorenje: Lagano gazite ... imajte na umu da vas nepravilna upotreba modifikacijskog kompleta može ostaviti s usmjerivačem koji treba de-brick-u (kao da se pretvori u beskorisnu ciglu). Međutim, ako ste pravi geek, vjerojatno se pretplatite na ideologiju koja, onaj tko može uništiti stvar, kontrolira stvar, a samo pravi geeksi to rade

    Preduvjeti

    1. Koristeći ovaj postupak možete cigla usmjerivač, kao u vašem usmjerivaču neupotrebljiv, ne preuzimamo nikakvu odgovornost za bilo kakve štete koje bi mogle biti uzrokovane izravno ili na drugi način zbog korištenja dolje navedenih postupaka.
    2. Ovaj je postupak proveden na sustavima temeljenim na Debianu (Lenny, Squeeze i Mint), a upute u nastavku pretpostavljaju da i vi.
    3. Ovaj se postupak preporučuje samo osobama koje imaju iskustva s bljeskanjem rutera s DD-WRT-om, sa svim preduvjetima, upozorenjima i ograničenjima koja vrijede za postavljanje hardvera. dobro mjesto za početak bi bilo naše Turn Your Home Router u super-powered Router s DD-WRT vodič.
    4. Vaš ruter mora podržavati barem "mini" verziju DD-WRT-a.
    5. Ovaj postupak je stvoren i testiran na Linksys WRT54GS / L usmjerivačima, ako koristite rutere drugih dobavljača, vaša kilometraža može vrlo.

    Postaviti

    Instaliranje potrebnih paketa

    Komplet za modifikaciju firmvera ima neke ovisnosti za kompajliranje i rad. Da biste ih instalirali / ažurirali odjednom Izdajte ovu naredbu u terminalu:

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

    Preuzmite mod-kit

    Napravite podmapu i nabavite kit iz službene SVN:

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

    Preuzmite firmver na kojem ćete raditi

    Prvo što treba razmotriti jest koja verzija želite koristiti?
    Pravilo je: u nedoumici koristiti “mini”. To je zato što sve dok vaš usmjerivač podržava barem "mini" verziju, pomoću nje dobivate sve najčešće korištene značajke bez ikakvog bloatwarea. tako ostavljajući i prostor za postupke, pa čak i neki JFFS prostor za druge upotrebe u većini slučajeva.

    Kada se odlučite za verziju, preporučuje se da koristite najnoviju verziju firmware-a dostupnu, jer oni obično imaju puno ispravaka grešaka u usporedbi s njihovim „stabilnim“ kolegama..
    U vrijeme pisanja ovog teksta najnovije je bilo "03-17-11-r16454" i ova se revizija koristi u naredbama koje slijede.

    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 biste lakše pratili koju verziju koristimo, preimenujte preuzetu datoteku da biste prikazali njezin broj verzije:

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

    To je, naravno, izborno, ali naredbe u nastavku pretpostavljaju da ste preimenovali datoteku.

    Izdvajanje firmvera

    Kako bismo mogli mijenjati datoteke unutar firmware-a, moramo izdvojiti njegov sadržaj u privremeni direktorij.
    Sintaksa ove naredbe je:
    ./extract_firmware.sh FIRMWARE_IMAGE WORKING_DIRECTORY
    U našem slučaju, to bi se prevelo na:

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

    Napomena: Kada prvi put pokrenete ovu naredbu, ona gradi mod-kit alate na vašem sustavu. to se događa samo jednom i može potrajati… pa budite strpljivi…

    Instaliranje paketa

    Sada kada je izvađen firmware možemo instalirati pakete na njega.
    Općenito, postupak je preuzimanje paketa i njegovih ovisnosti u obliku ipk datoteke iz openWRT spremišta. Nakon preuzimanja instalirati ih u izvučeni firmware pomoću priloženog skripta.

    Kucni paket

    Detaljne upute o tome kako konfigurirati i koristiti Knockd bit će detaljno opisane u budućem članku, tako da za sada možete preskočiti ovaj korak ili to učiniti u pripremi za budućnost jer Knockd ionako ne zauzima puno prostora.

    Knockd je demon koji sluša komunikacijske događaje na sloju veze za sekvence koje potom djeluje na njih.
    Što to znači, da uređaj može pokrenuti demon čak i ne "slušati" na lukama (skeniranje porta neće ih vidjeti kao otvorene) i još uvijek će učiniti nešto što trebate, od jedne naredbe pa sve do na punu skriptu. Pomoću ove tehnike možete pokrenuti poslužitelj za daljinsko izvršavanje bilo kakve operacije koja vam je potrebna (preko interneta) bez izlaganja kućne mreže.

    Knockd ima samo jednu ovisnost o popisu, pa preuzmite paket i njegovu ovisnost izdavanjem:

    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

    Instalirajte "knock daemon" (knockd) ipk u firmware:

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

    Instalirajte "packet capture" (libpcap) ipk u firmware:

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

    Budući da se "knockd" može pozvati s alternativnom konfiguracijskom datotekom (kako će biti objašnjeno u budućem članku), nema potrebe za izvođenjem bilo koje druge operacije i možete preskočiti na odjeljak zgrade, ako je sve što ste htjeli instalirati.

    SSMTP paket

    SSMTP paket omogućuje vašem usmjerivaču slanje poruka e-pošte kao što smo pokazali u našim Kako postaviti e-mail obavijesti na Linuxu koristeći Gmail ili SMTP za poslužitelje. Obećali smo vam tada da ćemo pokazati kako to konfigurirati za DD-WRT i sada ćemo isporučiti.
    To je uglavnom korisno ako kreirate skripte na usmjerivaču koje želite primati povratne informacije o njihovom radu putem e-pošte.

    Postavljanje ovog paketa je malo složenije nego na normalnim Linux sustavima zbog ograničenja koje nameće ugrađeni sustav, pa duboko udahnite… spremni?…. idemo… :)

    Preuzmite paket:

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

    Instalirajte "ssmtp" ipk u firmware:

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

    TLS podrška (izborno)
    SSMTP ne navodi ostale pakete kao svoje ovisnosti, ali ako želite biti u mogućnosti koristiti smtp gateway koji zahtijeva TLS provjeru autentičnosti (tj.. Gmail), morate instalirati i openSSL pakage.
    Bilješka: Postoji OGROMNA mana da to učinimo u obliku znatno smanjenog prostora na ruteru za JFFS kasnije. To znači da openSSL paket zauzima oko 500K prostora od ukupno 4MB (za normalan ne-mega-podržavajući usmjerivač), složen na taj JFFS iznad i otkrit ćete da je vaš lijevi s, ali dragocjeno nekoliko blokova besplatni JFFS prostor (oko 60 KB za WRT54GL).

    Budući da još uvijek ne postoje TLS-ovi koji zahtijevaju SMTP poslužitelje (obično vaši ISP-ovi), predlažem da odvojite minutu da razmislite trebate li stvarno koristiti TLS koji zahtijevaju pristupnik.

    Ako ste odlučili omogućiti TLS podršku unatoč nedostatku, preuzmite openSSL paket:

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

    Instalirajte "openSSL" (libopenssl) ipk u firmware:

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

    konfiguracije
    Postoji ograničenje s paketom SSMTP da ga nije moguće pozvati s alternativnom konfiguracijskom datotekom.
    Budući da je firmware samo za čitanje kada je na ruteru, to znači da iz kutije možemo samo hardcode konfiguraciju u firmware..
    Međutim, što ako ne želimo proći kroz sve korake modifikacije firmvera, samo da bismo promijenili postavke e-pošte? (na primjer, promjena zaporke).

    U tu svrhu, i Jeremy (kreator mod-kit-a firmware-a) i ja sam došao do zaključka (neovisno o tome mogu li ponizno dodati) da je jedini razumni način da se to učini:

    1. Postavite lokaciju konfiguracijskih datoteka koje ssmtp paket upućuje na lokaciju samo za čitanje pod itd., Pokažite na tmp direktorij koji se može pisati u vrijeme izvođenja.
    2. Stvorite skriptu koja će dinamički generirati konfiguracije temeljene na isključivanju NVRAM varijabli prilikom pokretanja.

    Da bi se to postiglo, potrebni su neki dodatni koraci ...

    Simbolična veza konfiguracijskog imenika ssmtp
    Kao što je gore objašnjeno, moramo napraviti / Etc / ssmtp na usmjerivaču, pokažite na / tmp direktorij kao jedino mjesto za pisanje koje imamo na usmjerivaču u vrijeme izvođenja. Da biste to učinili, izbrišite ssmtp direktorij koji je stvorio instalacijski program ipk:

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

    Stvorite novu simboličku vezu koja usmjerava / etc / ssmtp na root datotečni sustav usmjerivača, da pokaže / tmp / etc / ssmtp kao apsolutni put:

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

    Bilješka: Iako to sada izgleda nelogično, jer smo usmjerili direktorij konfiguracije paketa na mjesto izvan radnog direktorija modula za modifikaciju firmvera, uvjeravam vas da ovo izgleda sasvim u redu s gledišta usmjerivača tijekom izvođenja.

    Init skripta
    Iako je u potpunosti moguće ne ubaciti ovu skriptu u firmware i pokrenuti ga kao startup skriptu kasnije, osjećam se prikladnim staviti je ovdje samo kao primjer za buduću upotrebu.
    Izvorno je Jeremy kreirao skriptu skrojenu prema nečijim zahtjevima, kasnije sam je prilagodio i povećao tako da bude kompatibilniji s DD-WRT i syslog izvještavanjem.

    Stvorite novu inicijalnu skriptu (pokretanje):

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

    Napomena: Možete upotrijebiti drugi uređivač, koristim vi jer je u skladu s onim što je dostupno na usmjerivaču ...
    Neka ovo bude njegov sadržaj:

    #! / Bin / sh
    #
    # title: ssmtp_nvram.sh
    # autor: Jeremy Collake i Aviad Raviv
    # site: http://www.bitsum.com, http://howtogeek.com
    #
    # skriptu za izgradnju konfiguracijske datoteke s nvram vars.
    # će raditi za bilo koju konfiguracijsku datoteku koja koristi
    # var = vrijednost tipa parova.
    #
    # koristi prefiks za varijable nvram.
    #
    # i.
    # ssmtp_hostname = nešto
    # prevodi na ssmtp.conf
    # hostname = nešto
    #
    logger_func ()

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

    logger_func "########### Pokrenuo je početni SSMTP ###########"
    logger_func "Stvaranje direktorija etc u / 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 "Generiranje $ CONFIG_FILE za paket $ PACKAGE_NAME"
    #echo $ 0: generiranje $ CONFIG_FILE za paket $ PACKAGE_NAME
    echo "#! / bin / sh"> $ CONFIG_FILE
    echo "#" >> $ CONFIG_FILE
    echo "# automatski generiran na temelju nvram od $ 0" >> $ CONFIG_FILE
    echo "#" >> $ CONFIG_FILE

    ako je [-z "'nvram show | grep ssmtp'"]
    zatim
    logger_func "Čini se da niste postavili NVRAM varijable potrebne za generiranje conf datoteke"
    logger_func "** Razmotrite ** koristeći ove naredbe u skripti za pokretanje:"
    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 = korisničko ime"
    logger_func "nvram set ssmtp_AuthPass = lozinka"
    logger_func "nvram set ssmtp_FromLineOverride = DA"
    logger_func "kreirajte NVRAM varijable i ponovno pokrenite inicijalnu skriptu ili ponovno pokrenite sustav kako bi se postavke primijenile."
    izlaz 0
    fi

    ################################################## #########
    #
    # glavna petlja
    #
    SED_COMMAND = "s / $ NVRAM_PREFIX / /"
    CONFIG_VARS = "nvram show | grep $ NVRAM_PREFIX | sed" $ SED_COMMAND ""
    za i u $ CONFIG_VARS; čini
    echo $ i >> $ CONFIG_FILE
    učinio

    ################################################## #########
    #
    # sanitarna provjera
    #
    ako [! -f "$ CONFIG_FILE"]; zatim
    # echo "$ 0: ERROR - ne može stvoriti $ CONFIG_FILE. Možda nema symink / etc / XXXX -> / tmp / etc / XXXX?"
    logger_func "ERROR - nije mogao stvoriti $ CONFIG_FILE. Možda ne postoji symink / etc / XXXX -> / tmp / etc / XXXX?"
    fi
    logger_func "########### Završio je pokretanje SSMTP-a ###########"

    Neka bude izvršna:

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

    Zapamtite NVRAM varijable čekanja u skripti, naša je odgovornost da im damo nešto za rad nakon što smo instalirali modificirani firmware na usmjerivaču.

    Izradite modificirani firmver

    Sada kada je sve na mjestu, vrijeme je za ponovno pakiranje modificiranog firmware-a u komprimirani binarni koji možemo bljesnuti na usmjerivač.
    Sintaksa skripte "build.sh" je:
    ./build_firmware.sh OUTPUT_DIR WORKING_DIRECTORY

    Da bismo to učinili, koristimo isporučenu skriptu, tako da je problem:

    ./build_firmware.sh output_mini1 ./working_dir_mini1/

    Jednom kada se završi "build", bit će više slika firmware-a koje čekaju na korištenje u "output" direktoriju.

    Sada možete prenijeti datoteku pod nazivom “custom_image_00001-generic.bin” na svoj usmjerivač kao što biste inače imali DD-WRT firmware..

    Bilješka: Ne zaboravite vratiti na tvorničke postavke prije, tijekom i odmah nakon bljeskalice firmvera.

    Objavite korake bljeskalice

    Budući da smo SSMTP paket tražili za NVRAM varijable kako bismo generirali ssmtp konfiguracijsku datoteku, sada nam je potrebno dostaviti informacije koje nedostaju.
    To ćemo postići korištenjem web-GUI “Run commands” funkcije.

    Idite na web-GUI -> “administracija” -> “naredbe” -> zalijepite u tekstni okvir sljedeće:

    nvram postavi [email protected]
    nvram postavljen ssmtp_mailhub = smtp.gmail.com: 587
    nvram postavi [email protected]
    nvram postavi ssmtp_UseSTARTTLS = DA
    nvram postavi ssmtp_AuthUser = vaše-gmail-korisničko-ime (bez @ gmail.com)
    nvram postavi ssmtp_AuthPass = you-gmail-password
    nvram postavljen ssmtp_FromLineOverride = YES
    nvram počiniti

    Zamijenite tekst nakon jednakog (=) znaka sa svojim stvarnim podacima, a zatim pritisnite "Pokreni naredbe".
    Bilješka: ako koristite regularni, ne TLS korištenjem, smtp poslužitelj koji će koristiti port je 25 umjesto 587.

    Sada kada su SSMTP informacije spremne za upotrebu, morat ćete pozvati inicijalnu skriptu. Možete ponovno pokrenuti usmjerivač, ili ga zalijepiti u okvir za naredbe:

    /etc/init.d/S80ssmtp

    Zatim ponovno pritisnite "Run commands".
    Izlaz ove naredbe trebao bi izgledati ovako:

    Testirajte da možete poslati e-poštu
    Ponovno umetnite ovo u tekstni okvir "naredbe" sljedeću naredbu s adresom e-pošte:

    jeka "testiranje slanja e-poštom na jedrilici 123 qwe" | ssmtp -vvv [email protected]

    Zatim ponovno pritisnite "Run commands".
    Budući da smo koristili opciju -vvv za dodatnu verbosity, izlaz ove naredbe trebao bi izgledati ovako:

    Ako je sve prošlo dobro, trebali biste dobiti testnu e-poštu u roku od nekoliko sekundi.

    Nadamo se da možete koristiti ove informacije kako biste još više pogurali granice svog kućnog usmjerivača, a onda ste mislili da je to moguće i sada doista kontrolirate svoj kućni usmjerivač i DD-WRT ...


    Linux produžuje život, Linux proširuje svijest ... Linux je ključan za paketno putovanje