If-Koubou

Vapauta enemmän kotisi reitittimestä DD-WRT Mod-Kitin avulla

Vapauta enemmän kotisi reitittimestä DD-WRT Mod-Kitin avulla (Miten)


Olemme jo osoittaneet, miten moduuta kotireitintäsi DD-WRT: n vaihtoehtoisella firmware-ohjelmalla parantamaan suorituskykyä, ja tänään aiomme näyttää, miten se otetaan vieläkin paremmin DD-WRT Mod-Kit: n avulla.

Jos et ole vielä varma, muista tarkistaa sarjan kaksi aiempaa artikkelia:

  • Käännä kotireititunnistimesi DD-WRT: n Super-Powered-reitittimeen
  • Wi-Fi-verkon signaalin lisääminen ja DD-WRT: n lisääminen

Olettaen, että olet perehtynyt näihin aiheisiin, jatka lukemista. Muista, että tämä opas on hieman teknisempi, ja aloittelijoiden tulisi olla varovainen, kun muokkaavat reitittimensa.

Yleiskatsaus

Tämä opas antaa vaiheittaista tietoa siitä, kuinka voit luoda oman DD-WRT -ohjelmistosi, jossa on muutoksia ja lisäyksiä "firmware modifikaatiokittien" avulla.

Firmware-modifikaatiokokonaisuus mahdollistaa laiteohjelmiston muuttamisen ilman lähdekoodia. Muutosten tekeminen tarjotun skriptin avulla muuttuu yksinkertaiseksi tiedostojen lataamista, korvaamista ja poistamista varten.

Tärkein syy käyttää tätä menetelmää on se, että viime aikoina DD-WRT: n tuki Openwrt IPKG-paketeille on siirtynyt reitittimiin, joilla on kiintolevyt (USB), mikä tekee mod-kitistä ainoa johdonmukainen tapa asentaa IPKG-paketit onnistuneesti tapauksissa, joissa HD ei ole käytettävissä. Lisäksi tällä menetelmällä on lisäetuna lieventää sinua JFFS-riippuvuudesta pakettien asennuksessa, mikä reitittimille, joissa on vain 4 megatavua salamaa, on todellinen ongelma.

Kuva publicenergy

Tavoitteet

Tämän ohjeen ohjeet on esitetty yksityiskohtaisesti DD-WRT: n wikissä ja kehittäjän sivustolla, ja pyrimme tekemään tämän oppaan kopiointi- ja liittämismenetelmän, jonka jokainen voi käyttää seuraavien tavoitteiden saavuttamiseen:

  • Asenna knockd-paketti ja sen riippuvuudet.
  • Asenna ssmtp-paketti NVRAM-pohjaisiin luotuihin kokoonpanoihin.
    • Valinnaisesti TLS smtp-tuki (Gmail-tuki).

Kun olet noudattanut tätä menettelyä, sen on oltava helpointa mukauttaa sitä muiden pakettien asennukseen.

Varoitus: Juoksemassa kevyesti ... Muista, että muutosmateriaalin virheellinen käyttö voi jättää reitittimen, joka tarvitsee tiilenpoistoa (joka puolestaan ​​on hyödytöntä tiiliä). Kuitenkin, jos olet todellinen geek olet luultavasti ideologiaa, että joka voi tuhota juttu, valvoa asiaa, ja vain totta geeks tehdä, että

edellytykset

  1. Tämän menettelyn avulla voit tiili reitittimesi, kuten tee reitittimesi käyttökelvottomaksi, emme ota mitään vastuuta mistään vahingoista, jotka saattavat johtua suoraan tai muusta syystä johtuen seuraavien menettelyjen käytöstä.
  2. Tämä toimenpide suoritettiin Debian-järjestelmissä (Lenny, Squeeze ja Mint) ja alla olevat ohjeet olettavat, että käytät myös yhtä.
  3. Tämä menettely on suositeltava vain niille henkilöille, joilla on kokemusta DD-WRT: n reitittimen vilkumisesta, ja niiden kaikki laitteiston asennukseen liittyvät edellytykset, varoitukset ja rajoitukset. hyvä aloituspaikka olisi Turn Your Home -reitittimen siirtyminen Super-Powered-reitittimeen DD-WRT -oppaalla.
  4. Reitittimen täytyy tukea ainakin DD-WRT: n "mini" -versiota.
  5. Tämä menettely luotiin ja testattiin Linksys WRT54GS / L reitittimissä, jos käytät reitittimiä muilta myyjiltä, ​​mittarilukema saattaa olla hyvin.

Perustaa

Vaadittujen pakettien asentaminen

Firmware-modifikaatiosarjalla on joitain riippuvuuksia sen kokoamiseksi ja toimimiseksi. Asentaminen / päivittäminen kaikki kerrallaan Tämän komennon antaminen päätelaitteessa:

sudo aptitude asenna gcc g ++ binutils patch bzip2 flex bison tehdä gettext unzip zlib1g-dev libc6 subversion

Lataa mod-kit

Luo alikansio ja hanki pakki virallisesta SVN: stä:

mkdir firmware_mod_kit
cd firmware_mod_kit
svn kassalle http://firmware-mod-kit.googlecode.com/svn/trunk/ firmware-mod-kit-vain luku
cd firmware-mod-kit-vain luku / runko /

Lataa firmware työstääksesi

Ensimmäinen asia, johon kannattaa harkita, on mikä versio haluat käyttää?
Nyrkkisääntönä on: jos epäilet, käytä "mini". Tämä johtuu siitä, että niin kauan kuin reititin tukee ainakin "mini" -versiota, sen käyttäminen antaa sinulle kaikki yleisimmin käytetyt ominaisuudet ilman bloatware-ohjelmia. mikä jättää sekä tilaa menettelyille että jopa JFFS-tilaa muille käytöille useimmissa tapauksissa.

Kun olet päättänyt version, on suositeltavaa käyttää uusinta firmware-versiota, koska niillä on yleensä paljon virheenkorjauksia verrattuna niiden "vakaisiin" vastaaviin.
Kirjoituksen aikaan viimeisin oli "03-17-11-r16454" ja tätä versiota käytetään seuraavissa komennoissa.

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

Jotta voit seurata, mitä versiota käytämme, nimeä ladattu tiedosto edustaa sen versionumeroa:

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

Tämä on tietenkin valinnainen, mutta alla olevat komennot olettavat, että olet nimittänyt tiedoston uudelleen.

Laiteohjelman purkaminen

Jotta pystymme muuttamaan tiedostoja laiteohjelmistossa, meidän täytyy purkaa sen sisältö väliaikainen hakemisto.
Tämän komennon syntaksi on:
./extract_firmware.sh FIRMWARE_IMAGE WORKING_DIRECTORY
Meidän tapauksessamme tämä merkitsisi seuraavaa:

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

Huomaa: Kun suoritat tämän komennon ensimmäisen kerran, se rakentaa mod-kit-työkalun järjestelmään. tämä tapahtuu vain kerran ja voi kestää hetken ... joten ole kärsivällinen ...

Pakettien asennus

Nyt, kun laiteohjelmisto puretaan, voimme asentaa paketit siihen.
Yleensä menettely on paketin ja sen riippuvuuksien lataaminen ipk-tiedostona avoimesta WRT-arkistosta. Kun olet ladannut, asenna ne uuteen ohjelmistoversioon mukana toimitetulla komentosarjalla.

Knockd paketti

Yksityiskohtaiset ohjeet Knockdin määrittämisestä ja käyttämisestä selostetaan tulevassa artikkelissa, joten voit halutessasi ohittaa tämän vaiheen nyt tai tehdä sen valmistautuessa tulevaisuuteen, koska Knockd ei vie paljon tilaa missään tapauksessa.

Knockd on daemon, joka kuuntelee viestitapahtumia linkkikerroksessa sekvensseille ja toimii sitten niiden suhteen.
Mitä tämä tarkoittaa, on se, että voit käyttää laitetta, joka ei toimi edes "kuuntele" porttien kautta (satelliittiratkaisu ei näe niitä auki) ja vielä tehdä siitä jotain tarvitsemasi yhdestä komennosta aina ylöspäin täydelliseen käsikirjoitukseen. Käyttämällä tätä tekniikkaa saatat käynnistää palvelimen suorittamaan kaikenlaista tarvitsemasi operaatiota etäyhteydellä (internetin kautta) paljastamatta kotiverkkoa.

Knockdilla on vain yksi lueteltu riippuvuus, joten lataa paketti ja sen riippuvuus antamalla:

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

Asenna "knock daemon" (knockd) ipk firmware:

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

Asenna "packet capture" (libpcap) ipk laiteohjelmistoon:

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

Koska "knockd" voidaan kutsua vaihtoehtoisella asetustiedostolla (mikä selitetään myöhemmin artikkelissa), mitään muuta operaatiota ei tarvitse tehdä, ja voit siirtyä firmware-rakennusosaan, jos se kaikki haluat asentaa.

SSMTP-paketti

SSMTP-paketti mahdollistaa reitittimesi lähettämään sähköpostiviestejä aivan kuten osoitimme Linuxissa tai sähköpostipalvelimissa Gmailissa tai SMTP-palvelimissa. Lupasimme sinut sitten, että näytämme, miten määritämme tämän DD-WRT: lle ja toimitamme nyt.
Tämä on pääosin hyödyllistä, jos aiot luoda komentosarjoja reitittimessä, jonka haluat saada palautetta toiminnasta sähköpostilla.

Tämä pakettiasetus on hieman monimutkaisempi kuin tavallisissa Linux-järjestelmissä, koska sulautetun järjestelmän asettama rajoitus aiheuttaa syvään hengitykseen ... valmis ...? mennään… :)

Lataa paketti:

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

Asenna "ssmtp" ipk firmware:

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

TLS-tuki (valinnainen)
SSMTP ei ole luetellut muita paketteja riippuvuuksina, mutta jos haluat käyttää SMTP-yhdyskäytävää, joka vaatii TLS-todennusta (ts. gmail), sinun on asennettava myös openSSL pakage.
Huomautus: On valtava haitta tehdä näin huomattavasti pienemmällä tilalla reitittimessä JFFS: lle myöhemmin. Eli openSSL-paketti kestää noin 500K tilaa yhteensä 4MB: sta (tavalliselle ei-mega-tukireitittimelle), yhdistää siihen JFFS: n yläpuolella ja huomaat, että vasemmalla, mutta arvokkailla vapaa JFFS-tila (noin 60 kt WRT54GL: ssä).

Koska vielä ei ole TLS: tä, joka vaatii smtp-palvelimia siellä (tavallisesti Internet-palveluntarjoajasi), ehdotan, että otat hetken miettiä, tarvitsette todella käyttää TLS: tä, joka vaatii yhdyskäytävän.

Jos olet päättänyt ottaa TLS-tuen käyttöön sen haittapuolista huolimatta, lataa openSSL-paketti:

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

Asenna "openSSL" (libopenssl) ipk firmware:

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

kokoonpanot
SSMTP-paketin kanssa on rajoituksia, joita ei voida kutsua vaihtoehtoisella asetustiedostolla.
Koska laiteohjelmisto on vain luku -toiminto, kun se on reitittimessä, se tarkoittaa, että pakkauksen ulkopuolelta voimme vain määrittää koodin kiinteäksi laitteisto-ohjelmaksi.
Mitä kuitenkin, jos emme halua mennä läpi kaikkia firmware-muokkausvaiheita vain muuttamalla sähköpostiasetuksia? (esimerkiksi salasanan muutos).

Tätä tarkoitusta varten sekä Jeremy (firmware mod-kit -luoja) että minä itse pääsivät siihen johtopäätökseen (itsenäisesti, jos voin nöyrästi lisätä), että ainoa järkevä tapa tehdä tämä olisi:

  1. Tee konfiguraatiotiedostojen sijainti, jonka ssmtp-paketti osoittaa vain luku -tilaan jne., Osoita tmp-hakemistoa, joka on kirjoitettavissa ajon aikana.
  2. Luo komentosarja, joka luo dynaamisesti NVRAM-muuttujiin perustuvat määritykset käynnistyksen yhteydessä.

Tämän saavuttamiseksi tarvitaan joitain lisätoimenpiteitä ...

Symlink ssmtp-asetusten hakemistoon
Kuten edellä on selitetty, meidän on tehtävä / Etc / ssmtp sijainti reitittimessä, osoita / tmp koska se on ainoa kirjoitettava paikka, jota meillä on reitittimessä ajon aikana. Poistaaksesi tämän, poista ipk-asennusohjelman luoma ssmtp-hakemisto:

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

Luo uusi symbolinen linkki, joka osoittaa / etc / ssmtp: n reitittimen päätiedostojärjestelmässä osoittamaan / tmp / etc / ssmtp: n absoluuttiseksi poluksi:

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

Huomautus: Vaikka tämä näyttää epäloogiselta juuri nyt, koska osoitamme paketin kokoonpanohakemiston kiinteän ohjelmiston muutostyökalun työhakemiston ulkopuolelle, vakuutan, että tämä näyttää täysin reilusti reitittimien näkökulmasta ajon aikana.

Init-skripti
Vaikka tätä skriptiä ei ole täysin mahdollista laittaa laiteohjelmistoon ja käynnistää sen aloituskäsikirjaksi myöhemmin, mielestäni se on tarkoituksenmukaista laittaa se tänne vain esimerkkinä tulevasta käytöstä.
Alun perin Jeremy loi jonkun pyynnöstä räätälöidyn käsikirjoituksen, ja sen jälkeen säädin ja lisäsin sen olevan yhteensopiva DD-WRT: n ja syslog-raportoinnin kanssa.

Luo uusi init (käynnistys) -komento:

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

Huomaa: Voit käyttää toista editoria, käytän vi, koska se on johdonmukainen reitittimen kanssa käytettävissä olevien kanssa.
Tee tämä sisältö:

#! / Bin / sh
#
# title: ssmtp_nvram.sh
# author: Jeremy Collake ja Aviad Raviv
# sivusto: http://www.bitsum.com, http://howtogeek.com
#
# script rakentaa config tiedoston nvram vars.
# toimii mille tahansa konfigurointitiedostolle, joka käyttää sitä
# var = arvotyyppiparit.
#
# käyttää etuliitteitä nvram-muuttujille.
#
# ts.
# ssmtp_hostname = jotain
# tarkoittaa ssmtp.conf
# hostname = jotain
#
logger_func ()

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

logger_func "########### Aloitti SSMTP-init-käynnin ###########"
logger_func "Luo etc-hakemisto / 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 "Luodaan $ CONFIG_FILE pakettiin $ PACKAGE_NAME"
#echo $ 0: luo $ CONFIG_FILE paketille $ PACKAGE_NAME
echo "#! / bin / sh"> $ CONFIG_FILE
echo "#" >> $ CONFIG_FILE
echo "# auto generoidaan nvramin perusteella $ 0" >> $ CONFIG_FILE
echo "#" >> $ CONFIG_FILE

jos [-z "'nvram näyttää | grep ssmtp'"]
sitten
logger_func "Näyttää siltä, ​​että et ole asettanut NVRAM-muuttujia, joita tarvitaan konf-tiedoston luomiseen"
logger_func "** Harkitse ** näitä komentoja käynnistyskomentosarjassa:"
logger_func "nvram asettaa [email protected]"
logger_func "nvram asettaa ssmtp_mailhub = smtp.gmail.com: 587"
logger_func "nvram asettaa [email protected]"
logger_func "nvram asettaa ssmtp_UseSTARTTLS = KYLLÄ"
logger_func "nvram set ssmtp_AuthUser = käyttäjätunnus"
logger_func "nvram set ssmtp_AuthPass = salasana"
logger_func "nvram set ssmtp_FromLineOverride = YES"
logger_func "luo NVRAM-muuttujat ja suorita uudelleen init-skripti tai käynnistä asetukset uudelleen, jotta ne vaikuttavat."
poistu 0
fi

###########################################################
#
# päälenkki
#
SED_COMMAND = "s / $ NVRAM_PREFIX / /"
CONFIG_VARS = "nvram show | grep $ NVRAM_PREFIX | sed" $ SED_COMMAND ""
i: lle $ CONFIG_VARS; tehdä
echo $ i >> $ CONFIG_FILE
tehty

###########################################################
#
# terveystarkastus
#
jos [! -f "$ CONFIG_FILE"]; sitten
# echo "$ 0: ERROR - ei voitu luoda $ CONFIG_FILE. Ehkä ei ole symink / etc / XXXX -> / tmp / etc / XXXX?"
logger_func "ERROR - ei voitu luoda $ CONFIG_FILE. Ehkä ei ole symink / etc / XXXX -> / tmp / etc / XXXX?"
fi
logger_func "########### Valmis SSMTP init run ###########"

Tee se suoritettavaksi:

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

Huomaa NVRAM-odotusmuuttujat komentosarjassa, meidän velvollisuutemme on antaa heille jotain työstää sen jälkeen, kun olemme asentaneet modifioidun laiteohjelmiston reitittimeen.

Rakenna muokattu laiteohjelmisto

Nyt kun kaikki on paikallaan, on aika pakata muutettu laiteohjelmisto pakattuun binaariin, jonka voimme salata reitittimeen.
"Build.sh" -skriptin syntaksi on:
./build_firmware.sh OUTPUT_DIR WORKING_DIRECTORY

Tätä varten käytämme toimitettua komentosarjaa, joten lähetämme:

./build_firmware.sh output_mini1 ./working_dir_mini1/

Kun "rakentaa" -toiminto on tehty, on olemassa useita firmware-kuvia, joita odotetaan käytettäväksi "output" -hakemistossa.

Voit nyt salata reitittimen "custom_image_00001-generic.bin" -tiedoston, kuten normaalisti DD-WRT -ohjelmisto.

Huomautus: Älä unohda palauttaa "tehdasasetukset" ennen, firmware-salaman aikana ja sen jälkeen.

Lähetä salaman vaiheet

Koska SSMTP-paketti etsi NVRAM-muuttujia ssmtp-määritystiedoston luomiseksi, meidän on nyt toimitettava sille puuttuvat tiedot.
Toteutamme tämän käyttämällä web-GUI "Suorita komentoja" -toimintoa.

Siirry web-GUI -> "administration" -> "komentoihin" -> liitä tekstikenttään seuraavat:

nvram asettaa [email protected]
nvram asettaa ssmtp_mailhub = smtp.gmail.com: 587
nvram asettaa [email protected]
nvram asettaa ssmtp_UseSTARTTLS = YES
nvram set ssmtp_AuthUser = oma-gmail-käyttäjänimi (ilman @ gmail.com)
nvram asettaa ssmtp_AuthPass = sinä-gmail-salasana
nvram asettaa ssmtp_FromLineOverride = KYLLÄ
nvram sitoutua

Korvaa teksti vastaavan (=) merkin jälkeen todellisten tietojen avulla ja paina sitten "Suorita komentoja".
Huomautus: jos käytät säännöllistä, ei TLS: tä käyttäen, smtp-palvelimella käytettävä portti on 25 sijasta 587.

Nyt, kun SSMTP-tiedot ovat käyttövalmiita, sinun on kutsuttava init-skripti. Joten voit joko käynnistää reitittimen uudelleen tai liittää sen tekstikenttään "komentoihin":

/etc/init.d/S80ssmtp

Sitten napsauta "Suorita komentoja" uudelleen.
Tämän komennon tuotoksen pitäisi näyttää:

Testaa, että voit lähettää sähköpostia
Jälleen liitä tämä "komentojen" tekstikenttään seuraava komento sähköpostiosoitteesi kanssa:

echo "testausupokkaan lähettäminen sähköpostitse 123 qwe" | ssmtp -vvv [email protected]

Sitten napsauta "Suorita komentoja" uudelleen.
Koska käytimme -vvv -vaihtoehtoa ylimääräisen verbositeetin suhteen, tämän komennon tuotoksen pitäisi näyttää:

Jos kaikki meni hyvin, sinun pitäisi saada testisähköposti muutamassa sekunnissa.

Toivomme, että voit käyttää näitä tietoja työntämään kotisi reitittimen rajoja entisestään, minkä ajattelit mahdolliseksi ja hallitset nyt kotireitintäsi ja DD-WRT ...

Linux laajentaa elämää, Linux laajentaa tietoisuutta ... Linux on elintärkeä pakettimatkalla