If-Koubou

Oslobodite još veću snagu od svog kućnog usmjerivača s DD-WRT Mod-Kitom

Oslobodite još veću snagu od svog kućnog usmjerivača s DD-WRT Mod-Kitom (Kako da)


Već smo vam pokazali kako modificirati vaš kućni usmjerivač s alternativnim firmverom DD-WRT za uvelike poboljšane performanse, a danas ćemo vam pokazati kako to učiniti čak i dalje pomoću DD-WRT mod kita.

Ako još niste, provjerite dva prethodna članka u seriji:

  • Pretvorite svoj početni usmjerivač u Super-Powered Router s DD-WRT
  • Kako potaknuti vašu Wi-Fi mrežu i povećati raspon s DD-WRT-om

Pod pretpostavkom da ste upoznati s tim temama, nastavite čitati. Imajte na umu da je ovaj vodič malo tehničniji, a početnici trebaju biti oprezni prilikom modiranja usmjerivača.

Pregled

Ovaj će vam vodič detaljno opisati kako izraditi vlastiti firmver DD-WRT s izmjenama i dopunama pomoću "kompleta za izmjenu firmvera".

Kit za modifikaciju firmwarea omogućuje izmjenu firmvera bez da je sastavlja iz izvora. Izmjene na ovaj način, uz pomoć dostavljenih skripti, postaju jednostavna stvar preuzimanja, zamjene i brisanja nekih datoteka.

Najčešći razlog korištenja ove metode je jer je zadnja podrška DD-WRT-a za Openwrt IPKG pakete pomaknuta prema usmjerivačima koji imaju tvrde diskove (preko USB-a), što mod-kit čini jednim dosljedno funkcionalnim načinom instalacije IPKG paketa za slučajeve u kojima HD nije dostupan. Osim toga, ova metoda ima dodatnu prednost olakšavanja od ovisnosti JFFS-a za instalaciju paketa, što je za routere sa samo 4 MB bljeskalice pravi problem.

Slika javnosti

ciljevi

Dok se upute za ovaj postupak detaljno opisuju na wiki DD-WRT-a i na web mjestu razvojnog programera, mi nastojimo napraviti ovaj vodič postupak kopiranja i lijepljenja koji svatko može koristiti kako bi postigao sljedeće ciljeve:

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

Nakon što ste slijedili ovaj postupak, trebao bi biti relevantno jednostavan za prilagodbu za instalacije drugih paketa.

Upozorenje: Lagano trčati ... imajte na umu da se pogrešna upotreba kompleta za modifikaciju može ostaviti s usmjerivačem koji treba de-opeke (kao u slučaju beskorisne opeke). Međutim, ako ste pravi geek vjerojatno se pretplatite na ideologiju da, onaj tko može uništiti stvar, kontrolira stvar, i to samo pravi gejci to čine

Preduvjeti

  1. Korištenje ovog postupka može cigla vaš usmjerivač, kao u svom usmjerivaču neupotrebljiv, ne preuzimamo nikakvu odgovornost za bilo kakvu štetu koja bi mogla biti uzrokovana izravno ili drugačije zbog uporabe dolje navedenih postupaka.
  2. Ovaj je postupak izveden na Debianovim sustavima (Lenny, Squeeze i Mint), a dolje navedene upute pretpostavljaju da koristite i jedan.
  3. Ovaj postupak se preporučuje samo za osobe koje imaju iskustvo s treptanjem njihovog usmjerivača s DD-WRT-om, uz sve preduvjete, upozorenja i ograničenja koja se primjenjuju za postavljanje hardvera. dobro mjesto za početak bit će naš Turn Your Home Router u Super-Powered Router s DD-WRT vodič.
  4. Vaš usmjerivač mora podržati barem "mini" verziju DD-WRT-a.
  5. Ovaj postupak je stvoren i testiran na Linksys WRT54GS / L usmjerivačima, ako vašim korištenjem usmjerivača od drugih dobavljača, vaša kilometraža može vrlo.

Postaviti

Instaliranje potrebnih paketa

Komplet za modifikaciju firmwarea ima neke zavisnosti za sastavljanje i rad. Da biste ih instalirali / ažurirali odjednom Izdajte ovu naredbu na terminalu:

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

Preuzmite mod kit

Izradite podmapa i nabavite komplet od službenog SVN-a:

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 firmware za rad

Prva stvar koju valja razmotriti je inačica koju želite koristiti?
Pravilo je: kada je u pitanju, upotrijebite "mini". To je zato što sve dok vaš usmjerivač podržava barem "mini" verziju, upotrebljavate li vam sve najčešće korištene značajke bez ikakvih nadmetanja. ostavljajući tako prostor za procedure i čak i neke JFFS prostora za druge namjene u većini slučajeva.

Nakon što odlučite o verziji, preporučujemo vam da upotrijebite najnoviju verziju dostupnog firmvera jer imaju mnogo popravaka bugova u usporedbi s njihovim "stabilnim" kolegama.
U vrijeme pisanja najnovije je bilo "03-17-11-r16454", a 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 verziju koju koristimo, preimenujte preuzetu datoteku da biste predstavili njegov broj verzije:

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

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

Izdvajanje firmvera

Da bismo mogli mijenjati datoteke unutar firmvera, 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 prevesti na:

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

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

Instaliranje paketa

Sada kada se ekstrahira firmware, možemo ga instalirati.
Općenito, postupak je za preuzimanje paketa i njegovih ovisnosti u obliku ipk datoteke iz openWRT repozitorija. Nakon preuzimanja instalirajte ih u ekstrahirani firmver pomoću isporučene skripte.

Kucni paket

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

Knockd je daemon koji sluša komunikacijske događaje na sloju veze za sekvence, a zatim djeluje na njih.
Što to znači jest da uređaj može pokrenuti daemon čak i "ne sluša" na portovima (skeniranje portova neće ih vidjeti kao otvoreno) i još uvijek ga učiniti nešto što vam treba od jedne naredbe sve do do potpune skripte. Koristeći ovu tehniku ​​možete pokrenuti poslužitelj za obavljanje bilo kakve operacije koja vam je potrebna za daljinski (preko interneta) bez izlaganja vaše kućne mreže.

Knockd ima samo jednu navedenu ovisnost, 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 uputiti s alternativnom konfiguracijskom datotekom (kako će biti objašnjeno u budućem članku), ne morate izvršiti niti jednu drugu operaciju, a možete se preseliti u odjeljak za zgradu firmvera, ako je sve što ste htjeli instalirati.

SSMTP paket

SSMTP paket omogućuje vašem usmjerivaču slanje poruka e-pošte baš kao što smo pokazali u našem Kako postaviti e-mail upozorenja o Linuxu koristeći Gmail ili SMTP za poslužitelje. Tada smo vam obećali da ćemo vam pokazati kako to konfigurirati za DD-WRT i sada ćemo ga isporučiti.
To je uglavnom korisno ako vaš ide za stvaranje skripti na ruteru koji biste željeli primati povratne informacije o njihovom radu putem e-pošte.

Postavljanje ovog paketa je malo složenije nego u normalnim Linux sustavima zbog ograničenja koje nameće ugrađeni sustav, pa se duboko udahnite ... spreman ...? 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 neke druge pakete kao svoje ovisnosti, no ako želite biti u mogućnosti koristiti SMTP pristupnik koji zahtijeva provjeru autentičnosti TLS (tj. Gmail), morate instalirati i openSSL pakage.
Bilješka: Postoji ogroman mana da to učini u obliku znatno smanjenog prostora na ruteru za JFFS kasnije. To znači da openSSL paket traje oko 500K prostora od vašeg ukupnog broja od 4MB (za normalan ne-mega-podržavajući usmjerivač), spoj s tim da je JFFS iznad glave, a otkrit ćete da vaše lijevo, ali nekoliko dragocjenih blokova slobodan JFFS prostor (oko 60KB na WRT54GL).

Budući da još uvijek nema TLS-a koji zahtijevaju SMTP poslužitelje vani (obično vaš ISP), predlažem da uzmete minutu da razmislite ako stvarno trebate koristiti TLS koji zahtijeva pristupnik.

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

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

Instalirajte "openSSL" (libopenssl) ipk u firmver:

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

konfiguracije
Postoji ograničenje kod SSMTP paketa, da ga nije moguće pozvati zamjenskom konfiguracijskom datotekom.
Budući da je firmware čitan samo kada je na routeru, to znači da iz kutije možemo konfigurirati konfiguraciju samo u firmware.
Međutim, što ako ne želimo proći sve korake za izmjenu programskog softvera, samo da promijenimo postavke e-pošte? (npr. promjena lozinke).

U tu svrhu, i Jeremy (kreator mod-kit firmwarea) i ja smo došli do zaključka (samostalno, ako mogu ponizno dodati) da je jedini siguran način da to učinite:

  1. Napravite lokaciju konfiguracijskih datoteka koje paket ssmtp ukazuje na lokaciju samo za čitanje pod itd itd., Pokažite na tmp direktorij koji se može pisati tijekom izvođenja.
  2. Stvorite skriptu koja bi dinamički generirala konfiguracije na temelju NVRAM varijabli prilikom pokretanja.

Da bi to postigli, potrebni su neki dodatni koraci ...

Simfonirajte ssmtp konfiguracijski direktorij
Kao što je objašnjeno gore, moramo napraviti / Etc / ssmtp mjesto 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 izradio IPK instalacijski program:

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

Izradite novu simboličku vezu koja usmjerava / etc / ssmtp na root datotečni sustav usmjerivača, kako bi se / apsolutna putanja usmjerila na / tmp / etc / ssmtp:

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

Bilješka: Iako ovo izgleda nelogično upravo sada, jer usmjeravamo mapu za konfiguraciju paketa na lokaciju izvan radnog direktora modifikacijskog kompleta firmwarea, uvjeravam vas da to izgleda sasvim u redu od točke usmjerivača u vrijeme pokretanja.

Init skripta
Iako je posve moguće ne ubaciti ovu skriptu u firmware i pokrenuti ga kao startup skriptu kasnije, osjećam da je prikladno da ga ovdje, samo kao primjer za buduću uporabu.
Izvorno je Jeremy stvorio skriptu prilagođenu nečijem zahtjevu, kasnije, prilagodio sam i povećavajući ga kako bih bio kompatibilniji s DD-WRT i syslog izvješćivanjem.

Stvaranje nove init (pokretanje) skripte:

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

Napomena: Možete upotrijebiti drugi urednik, koristim Vi jer je dosljedan onome što je dostupno na usmjerivaču ...
Učinite to svoj sadržaj:

#! / Bin / sh
#
# naslov: ssmtp_nvram.sh
# author: Jeremy Collake i Aviad Raviv
# mjesto: http://www.bitsum.com, http://howtogeek.com
#
# skripta za izradu konfiguracijske datoteke iz nvram.
# će raditi za bilo koju konfiguracijsku datoteku koja koristi
# var = parovi vrsta vrijednosti.
#
# upotrebljava prefikse za nvram varijable.
#
# tj.
# ssmtp_hostname = nešto
# prevodi se na ssmtp.conf
# hostname = nešto
#
logger_func ()

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

logger_func "########### Započela SSMTP init run ###########"
logger_func "Izrada direktorija itd 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" / _ / / "

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 "# auto generiran na temelju nvram od $ 0" >> $ CONFIG_FILE
echo "#" >> $ CONFIG_FILE

ako [-z "'nvram show | grep ssmtp'"]
zatim
logger_func "Čini se da niste postavili NVRAM varijable potrebne za generiranje konf datoteke"
logger_func "** Razmislite ** pomoću ovih naredbi u pokretnoj skripti:"
logger_func "nvram postavite [email protected]"
logger_func "nvram postavite ssmtp_mailhub = smtp.gmail.com: 587"
logger_func "nvram postavite [email protected]"
logger_func "nvram set ssmtp_UseSTARTTLS = YES"
logger_func "nvram set ssmtp_AuthUser = korisničko ime"
logger_func "nvram postavite ssmtp_AuthPass = lozinku"
logger_func "nvram set ssmtp_FromLineOverride = YES"
logger_func "stvoriti NVRAM varijable i ponovno pokrenuti init skriptu ili ponovno podizanje sustava za postavke da se utjecati."
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 - nije mogao stvoriti $ CONFIG_FILE. Možda nema symink / etc / XXXX -> / tmp / etc / XXXX?"
logger_func "ERROR - nije mogao stvoriti $ CONFIG_FILE. Možda nema symink / etc / XXXX -> / tmp / etc / XXXX?"
fi
logger_func "########### Završila SSMTP init run ###########"

Neka bude izvršna:

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

Imajte na umu NVRAM čekanje varijabli u skripti, naša je odgovornost dati im nešto za rad nakon što smo instalirali našu modificiranu firmware na usmjerivač.

Izgradite modificirani firmver

Sada kada je sve na mjestu, došlo je vrijeme da ponovno promijeni modificirani firmver u komprimiranu binarnu koja bismo mogli bljeskati usmjerivaču.
Sintaksa "build.sh" skripte je:
./build_firmware.sh OUTPUT_DIR WORKING_DIRECTORY

Da biste to učinili koristimo isporučenu skriptu, stoga izdajte:

./build_firmware.sh output_mini1 ./working_dir_mini1/

Nakon završetka radnje "graditi", čeka se nekoliko firmware slika koje se čekaju na korištenje u direktoriju "izlaz".

Sada možete baciti datoteku "custom_image_00001-generic.bin" na svoj usmjerivač kao što bi inače DD-WRT firmver.

Bilješka: Nemojte zaboraviti vratiti "tvorničke postavke" prije, za vrijeme i odmah nakon bljeska firmvera.

Post bljesak korake

Budući da smo napravili SSMTP paket za traženje NVRAM varijabli kako bismo generirali ssmtp konfiguracijsku datoteku, moramo ga dostaviti nedostajućim informacijama.
To ćemo postići pomoću funkcije "Run commands" web-GUI.

Idite na web-GUI -> "administracija" -> "naredbe" -> zalijepite u tekstualni okvir sljedeće:

nvram postavite [email protected]
nvram postavite ssmtp_mailhub = smtp.gmail.com: 587
nvram postavite [email protected]
nvram postavite ssmtp_UseSTARTTLS = YES
nvram set ssmtp_AuthUser = vaš-gmail-user-name (bez @ gmail.com)
nvram postavite ssmtp_AuthPass = you-gmail-password
nvram set ssmtp_FromLineOverride = YES
nvram počiniti

Zamijenite tekst nakon jednake (=) znakove, sa svojim stvarnim informacijama, a zatim pritisnite "Run naredbe".
Bilješka: ako upotrebljavate redovito, ne TLS koji koristite, SMTP poslužitelj koji koristi port je 25 umjesto 587.

Sada kada su informacije o SSMTP-u spremne za upotrebu, morat ćete se pozvati na init skriptu. Zato možete ponovno pokrenuti usmjerivač, ili ga zalijepiti u tekstni okvir "naredbe":

/etc/init.d/S80ssmtp

Zatim ponovo pritisnite "Run commands".
Izlaz ove naredbe trebao bi izgledati kao:

Provjerite možete poslati e-poštu
Ponovno zalijepite ovo u tekstni okvir "naredbi" sljedeću naredbu s adresom e-pošte:

echo "ispitivanje krilima e-pošte 123 qwe" | ssmtp -vvv [email protected]

Zatim ponovo pritisnite "Run commands".
Budući da smo koristili -vvv opciju za dodatnu verbositet, izlaz ove naredbe treba izgledati kao:

Ako sve bude dobro, trebali biste dobiti e-poštu za testiranje u roku od nekoliko sekundi.

Nadamo se da možete upotrijebiti ove informacije kako biste još više potisnuli ograničenja vašeg kućnog usmjerivača, a onda ste smatrali mogućim i sada upravljate svojim kućnim usmjerivačem i DD-WRT ...

Linux produžuje život, Linux širi svijest ... Linux je od vitalnog značaja za paketne putovanje