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
- 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ä.
- Tämä toimenpide suoritettiin Debian-järjestelmissä (Lenny, Squeeze ja Mint) ja alla olevat ohjeet olettavat, että käytät myös yhtä.
- 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.
- Reitittimen täytyy tukea ainakin DD-WRT: n "mini" -versiota.
- 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:
- Tee konfiguraatiotiedostojen sijainti, jonka ssmtp-paketti osoittaa vain luku -tilaan jne., Osoita tmp-hakemistoa, joka on kirjoitettavissa ajon aikana.
- 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ää:
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ää:
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