Skip to main content

Išnaudokite dar daugiau galios iš savo namų maršrutizatoriaus su DD-WRT mod-Kit

Išnaudokite dar daugiau galios iš savo namų maršrutizatoriaus su DD-WRT mod-Kit

Geoffrey Carr

Mes jau parodyta, kaip mod savo namų maršrutizatorius su DD-wrt alternatyvios firmware žymiai pagerėjo veiklos, ir šiandien mes ketiname parodyti jums, kaip jį dar su DD-wrt MOD-Kit.

Jei dar to nepadarėte, įsitikinkite ir patikrinkite du ankstesni serijos straipsniai:

  • Paverskite savo namų maršrutizatorių į Super-Powered maršrutizatorius su DD-WRT
  • Kaip padidinti savo "Wi-Fi" tinklo signalą ir padidinti DD-WRT diapazoną

Darant prielaidą, kad esate susipažinę su šiomis temomis, toliau skaitykite. Turėkite omenyje, kad šis vadovas yra šiek tiek daugiau techninio pobūdžio, o pradedantiesiems reikia būti atsargiems, kai moderuoja jų maršrutizatorių.

Apžvalga

Šis vadovas padės žingsnis po žingsnio išsiaiškinti, kaip sukurti savo "DD-WRT" programinę įrangą su pakeitimais ir papildymais naudojant "firmware modification kit".

Firmware modifikavimo rinkinys leidžia keisti aparatinę įrangą, nesudarydamas jos iš šaltinio. Pakeitus tokiu būdu, naudojant pateiktus scenarijus, tampa paprastas dalykas, kai kuriuos failus atsisiųsti, pakeisti ir ištrinti.

Labiausiai dominuojantis priežastis naudoti šį metodą, nes pastaruoju metu DD-WRT parama už Openwrt IPKG paketų perėjo į maršrutizatorių, kurie kietuosius diskus (per USB), todėl AM-Kit tik nuosekliai darbo būdą įdiegti IPKG paketus sėkmingai tais atvejais, kai HD yra nepasiekiamas. Be to, šis metodas turi papildomą pranašumą: atlaisvina jus nuo JFFS priklausomybės paketų diegimui, o tik maršrutizatoriams, kuriuose yra tik 4 MB blykstės, yra tikra problema.

Viešųjų energetikos nuotrauka

Tikslai

Nors instrukcijos šią procedūrą, yra detaliai aprašytos dd-wrt anketa wiki ir kūrėjo svetainėje, mes siekiame, kad šį vadovą kopija & įklijuokite procedūra, kad kiekvienas gali naudoti, kad būtų pasiekti šie tikslai:

  • Įdiekite pažeistą paketą ir jo priklausomybes.
  • Įdiekite ssmtp paketą su sugeneruotomis NVRAM pagrindu sukurtomis konfigūracijomis.
    • Pasirinktinai su parama TLS smtp (a.k.a. "Gmail" palaikymas).

Kai atliksite šią procedūrą, turėtumėte būti tinkamai pritaikyti ją kitiems paketų įrenginiams.

Įspėjimas: Padrąsinkite lengvai ... nepamirškite, kad netinkamas modifikacijos rinkinio naudojimas gali palikti jus su maršrutizatoriumi, kuris reikalingas de-brick-ing (kaip savo ruožtu tai į nenaudingas plytas). Tačiau, jei esate tikras geekas, galbūt užsiprenumeravote ideologiją, kad tas, kuris gali sunaikinti dalyką, kontroliuoja dalyką ir tai daro tik tikri geeks

Būtinos sąlygos

  1. Naudojant šią procedūrą galima plyta jūsų maršrutizatorius, kaip ir jūsų maršrutizatorius netinkamas mes neprisiimame atsakomybės už bet kokius nuostolius, kurie gali būti tiesiogiai ar kitaip išmintingi dėl toliau nurodytų procedūrų naudojimo.
  2. Ši procedūra buvo atlikta naudojant "Debian" sistemas ("Lenny", "Squeeze" ir "Mint"), o toliau pateiktose instrukcijose daroma prielaida, kad jūs taip pat naudojate.
  3. Ši procedūra rekomenduojama tik tiems žmonėms, kurie turi patirties su mirksi savo maršrutizatorių su DD-wrt, su visas prielaidas, įspėjimų ir apribojimus, kurie taikomi jų įrangos sąrankos. gera vieta pradėti - tai "Turn Your Home" maršrutizatorius į "Super-Powered" maršrutizatorių su "DD-WRT" vadovu.
  4. Jūsų maršrutizatorius turi palaikyti bent "mini" versiją DD-WRT.
  5. Ši procedūra buvo sukurta ir išbandyta "Linksys WRT54GS / L" maršrutizatoriuose. Jei naudojate kitų tiekėjų maršrutizatorius, jūsų rida gali būti labai didelė.

Sąranka

Reikalingų paketų diegimas

Firmware modifikavimo rinkinys turi tam tikrų priklausomybių, kad jis galėtų rinkti ir dirbti. Norėdami juos visus įdiegti / atnaujinti iš karto Išmesti šią komandą į terminalą:

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

Atsisiųskite mod-rinkinį

Sukurkite pogrupį ir gaukite rinkinį iš oficialaus SVN:

mkdir firmware_mod_kit cd firmware_mod_kit svn checkout http://firmware-mod-kit.googlecode.com/svn/trunk/ firmware-mod-kit-read-only cd firmware-mod-kit-read-only/trunk/

Atsisiųskite programinę aparatinę įrangą

Pirmasis dalykas, kurį reikia apsvarstyti, yra kokia versija norite naudoti? Nykščio taisyklė yra tokia: kai kyla abejonių, naudokite "mini". Taip yra todėl, kad tol, kol jūsų maršrutizatorius palaiko bent "mini" versiją, naudojant ją jums suteikiamos visos dažniausiai naudojamos funkcijos be jokių patobulinimų. todėl daugeliu atvejų paliekant erdvę procedūroms ir netgi kai kuriai JFFS erdvei kitų naudojimo būdų.

Kai jūs nusprendėte ant versiją, ji yra rekomenduojama naudoti naujausią persvarstymą firmware galima, nes jie linkę turėti klaidų daug, palyginti su jų "stable" kolegomis. Šio rašymo metu naujausia versija buvo "03-17-11-r16454", ir ši peržiūra naudojama tolesnėse komandose.

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

Kad būtų lengviau sekti, kokią versiją naudosime, pervadinkite atsisiųstą failą, kad pateiktumėte jo versijos numerį:

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

Tai, žinoma, yra neprivaloma, tačiau toliau pateiktose komandose daroma prielaida, kad pakeitėte failą.

Ištraukiama programinė įranga

Kad galėtume pakeisti failus per programinę įrangą, turime ištraukti jo turinį į laikiną katalogą. Šios komandos sintaksė yra: ./extract_firmware.sh FIRMWARE_IMAGE WORKING_DIRECTORY Mūsų atveju tai reikštų:

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

Pastaba: pirmą kartą paleidus šią komandą, ji kuria jūsų sistemoje esančius mod-rinkinio įrankius. tai atsitinka tik vieną kartą ir gali užtrukti šiek tiek ... taip būkite kantrūs ...

Paketų diegimas

Dabar, kai pasirodo aparatinė įranga, mes galime įdiegti paketus prie jos. Paprastai procedūra yra atsisiųsti paketą ir jo priklausomybes ipk failo forma iš openWRT saugyklos. Kai atsisiunčiate, įdiekite juos į ištraukiamą programinę įrangą, naudodami numatytą scenarijų.

Nepakankamas paketas

Išsamios instrukcijos, kaip sukonfigūruoti ir naudoti "Knockd", bus išsamiai aprašytos būsimame straipsnyje, todėl jūs galite nuspręsti praleisti šį žingsnį dabar arba pasiruošti ateičiai, nes "Knockd" vis tiek neužima daug vietos.

"Knockd" yra demonas, kuris seka seansų metu seka komunikacijos įvykius nuorodų sluoksnyje, tada veikia jiems. Tai reiškia, kad jūs galite turėti įrenginį, paleidžiančią demoną, net ne "klausytis" uostuose (uosto nuskaitymas jų nebus atviras) ir vis tiek atliks kažką, ko jums reikia, iš vienos komandos iki galo į visą scenarijų. Naudodamiesi šia technine priemone, jūs galite suaktyvinti serverį, kad nuotoliniu būdu (visame internete) atliktumėte kokią nors operaciją, kurios jums reikia, neatskleisdami savo namų tinklo.

"Knockd" turi tik vieną išvardytų priklausomybę, todėl atsisiųskite paketą ir jo priklausomybę išduodant:

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

"Firmware" įdiekite "trankyti demoną" (išjudinti) ipk:

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

Įdėkite "paketų surinkimo" (libpcap) ipk į programinę įrangą:

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

Kadangi "sukrėtimas" gali būti naudojamas alternatyviame konfigūracijos faile (kaip bus paaiškinta būsimame straipsnyje), nereikia atlikti jokios kitos operacijos, ir jūs galite praleisti į patį aparatinės įrangos skyrių, jei norite tik jį įdiegti.

SSMTP paketas

SSMTP paketas leidžia maršrutizatoriui siųsti el. Pašto pranešimus, kaip parodyta "Kaip nustatyti el. Pašto įspėjimus" "Linux" naudojant "Gmail" arba SMTP serveriams. Tada mes jums pažadėjome, kad mes parodysime, kaip sukonfigūruoti šį DD-WRT, ir mes dabar pristatysime. Tai daugiausia naudinga, jei ketinate kurti maršrutizatoriaus scenarijus, kuriuos norėtumėte gauti elektroniniu paštu atsiliepimų apie jų veikimą.

Šis paketo nustatymas yra šiek tiek sudėtingesnis, nes jis yra įprastose "Linux" sistemose, nes įterptoje sistemoje nustatytas apribojimas, todėl giliai įkvėpkite ... pasiruošę ...? Eime… :)

Atsisiųskite paketą:

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

Įdiekite "ssmtp" ipk į programinę įrangą:

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

TLS palaikymas (neprivaloma) SSMTP nepateikia jokių kitų paketų kaip priklausomybių, tačiau jei norite naudoti smtp vartelį, kuris reikalauja TLS autentifikavimo (t. Y. "Gmail"), turite įdiegti openSSL pakage. Pastaba: Yra didžiulis trūkumas tai daroma taip, kad vėliau JFFS maršrutizatorius sumažintų vietos. Tai reiškia, kad "openSSL" paketas užima maždaug 500K erdvę iš viso 4 MB (įprastam ne "mega" palaikančiam maršrutizatoriui), jungiantis prie "JFFS" pridėtinių išlaidų, ir jūs atrasite, kad esate kairėje, bet vertingas mažai blokų nemokama JFFS erdvė (apie 60KB WRT54GL).

Kadangi ten vis dar nėra TLS, kuriuose reikalingi smtp serveriai (dažniausiai jūsų ISP), siūlau vieną minutę mintis, ar tikrai reikia naudoti TLS, reikalaujantį vartai.

Jei nusprendėte įjungti TLS palaikymą nepaisant jo nepalankumo, atsisiųskite "openSSL" paketą:

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

"Firmware" įdiekite "openSSL" (libopenssl) ipk:

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

Konfigūracijos Su SSMTP paketu yra apribojimas, kad jo negalima naudoti alternatyviu konfigūracijos failu. Kadangi aparatinė įranga yra tik skaitymo, kai ji yra maršrutizatoriuje, tai reiškia, kad iš dėžutės mes galime konfigūruoti tik programinę įrangą. Tačiau ką daryti, jei nenorime eiti per visas programinės įrangos keitimo veiksmus, norint pakeisti el. Pašto nustatymus? (pvz., slaptažodžio keitimas).

Tuo tikslu tiek "Jeremy" ("firmware mod-kit" kūrėjas), tiek aš padarėme išvadą (nepriklausomai, jei aš galiu švelniai pridėti), kad vienintelis tinkamas būdas tai padaryti būtų:

  1. Padarykite konfigūravimo failų vietą, kurią paketas ssmtp nurodo į vietą tik skaitymui po tt, nukreipkite į tmp katalogą, kuris yra įrašomas į runtime.
  2. Sukurkite scenarijų, kuris paleidžiant dinamiškai sugeneruotų konfigūracijas, pagrįstas NVRAM kintamaisiais.

Norėdami tai pasiekti, reikia papildomų žingsnių ...

Symlink susiejimo ssmtp konfigūracijos katalogas Kaip paaiškinta pirmiau, mes turime padaryti / etc / ssmtp vieta maršrutizatoriuje, nukreipkite į / tmp katalogą kaip vienintelę įrašomą vietą, kurią mes turime maršrutizatoriuje paleidimo metu. Norėdami tai padaryti, ištrinkite ssmtp katalogą, kurį sukūrė ipk diegimo programa:

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

Sukurkite naują simbolinę nuorodą, nurodančią / etc / ssmtp maršrutizatoriaus šakninėje failų sistemoje, norėdami nurodyti / tmp / etc / ssmtp kaip absoliutų kelią:

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

Pastaba: Nors tai atrodo nelogiška dabar, nes mes nukreipiame į paketo konfigūracijos katalogą į vietą, esančią už programinės įrangos modifikavimo rinkinio katalogo ribų, aš užtikrinu, kad paleidimo metu tai atrodo visiškai gerai.

Init scenarijus Nors visiškai neįmanoma įterpti šio scenarijaus į aparatinę įrangą ir paleisti ją kaip paleidimo scenarijų vėliau, manau, kad tikslinga jį pateikti čia, jei tik kaip pavyzdį būsimam naudojimui. Iš pradžių Jeremy sukūrė scenarijų, pritaikytą kažkam prašant. Vėliau aš pakoregavau ir papildiau, kad jis būtų labiau suderinamas su DD-WRT ir "syslog" ataskaitomis.

Sukurkite naują init (paleisties) scenarijų:

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

Pastaba: galite naudoti kitą redaktorių, aš naudoju vi, nes jis atitinka tai, kas yra prieinama maršrutizatoriuje ... Padarykite šį turinį:

#!/bin/sh # # title: ssmtp_nvram.sh # author: Jeremy Collake and Aviad Raviv # site: http://www.bitsum.com, http://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###########'

Padarykite vykdomąjį:

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

Atkreipkite dėmesį į NVRAM laukimo kintamuosius scenarijuje, todėl mes esame įsipareigoję suteikti jiems kažką, su kuria mes dirbame, kai mes įdiegsime pakeistą programinę įrangą maršrutizatoriuje.

Sukurkite pakeistą programinę įrangą

Dabar, kai viskas yra vietoje, atėjo laikas pakartotinai paketą pakeistą programinę įrangą į suspaustą dvejetainę, kurią galime užsidegti prie maršrutizatoriaus. Sintekstas "build.sh" scenarijų yra toks: ./build_firmware.sh OUTPUT_DIR WORKING_DIRECTORY

Norėdami tai padaryti, mes naudojame pateiktą scenarijų, todėl išduoti:

./build_firmware.sh output_mini1 ./working_dir_mini1/

Kai "build" operacija bus atlikta, bus keli programinės įrangos vaizdai, kurie laukia, kol bus naudojamas "išvesties" kataloge.

Dabar galite paleisti failą "custom_image_00001-generic.bin" į savo maršrutizatorių, kaip įprastai, būtų "DD-WRT" programinė įranga.

Pastaba: Nepamirškite atstatyti "gamyklinius numatytuosius" prieš, per, ir iš karto po firmware flash.

Paskelbkite žingsnius

Kadangi mes sukūrėme SSMTP paketą ieškodami kintamųjų NVRAM, norėdami sukurti ssmtp konfigūracijos failą, dabar turime pateikti trūkstamą informaciją. Mes tai atliksime naudodamiesi žiniatinklio GUI funkcija "Vykdyti komandas".

Eikite į žiniatinklio GUI -> "administravimas" -> "komandas" -> įterpkite į teksto laukelį taip:

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

Pakeiskite tekstą po vienodo (=) ženklo su savo tikra informacija, tada paspauskite "Vykdyti komandas". Pastaba: jei naudodamiesi reguliariu, ne TLS naudojimu, SMTP serveris, kurį norite naudoti, yra 25, o ne 587.

Dabar, kai SSMTP informacija yra paruošta naudoti, turėsite naudoti init scenarijų. Taigi galite perkrauti maršrutizatorių, arba įklijuoti į "komandų" teksto laukelį:

/etc/init.d/S80ssmtp

Tada paspauskite "Vykdyti komandas" dar kartą. Šios komandos išvestis turėtų atrodyti taip:

Patikrinkite, ar galite siųsti el. Laišką Vėl įklijuokite tai į komandų teksto laukelį šią komandą su savo el. Pašto adresu:

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

Tada paspauskite "Vykdyti komandas" dar kartą. Kadangi mes panaudojome -vvv parinktį papildomam atsakymui, šios komandos išvestis turėtų atrodyti taip:

Jei viskas vyktų gerai, per kelias sekundes turėtumėte gauti bandomąjį el. Laišką.

Tikimės, kad galėsite pasinaudoti šia informacija, norėdami pakelti savo namų maršrutizatoriaus ribas dar toliau, tada manote, kad įmanoma, ir jūs dabar tikrai kontroliuojate savo namų maršrutizatorių ir DD-WRT ...


Linux prailgina gyvenimą, Linux praplečia sąmonę ... "Linux" yra gyvybiškai svarbus paketų kelionėms

Link
Plus
Send
Send
Pin