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

Sisällysluettelo:

Vapauta enemmän kotisi reitittimestä DD-WRT Mod-Kitin avulla
Vapauta enemmän kotisi reitittimestä DD-WRT Mod-Kitin avulla
Anonim
 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.
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ä

    Image
    Image

    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 install gcc g++ binutils patch bzip2 flex bison make 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 checkout https://firmware-mod-kit.googlecode.com/svn/trunk/ firmware-mod-kit-read-only cd firmware-mod-kit-read-only/trunk/

    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 https://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 https://downloads.openwrt.org/backports/rc5/knockd_0.5-1_mipsel.ipk wget https://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 https://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 https://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 and Aviad Raviv # site: https://www.bitsum.com, https://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###########'

    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 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

    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:
    Testaa, että voit lähettää sähköpostia Jälleen liitä tämä "komentojen" tekstikenttään seuraava komento sähköpostiosoitteesi kanssa:

    echo 'testing crucible emailing 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.
    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

Suositeltava: