Kui te pole seda juba teinud, veenduge kindlasti ja vaadake seeriast kahte eelmist artiklit:
- Pöörake oma kodune marsruuter DD-WRT-ga Super-Powered ruuterisse
- Kuidas suurendada Wi-Fi võrgu signaali ja suurendada vahemikku DD-WRT-iga
Oletades, et olete nende teemadega tuttav, jätkake lugemist. Pidage meeles, et see juhend on veidi tehniline, ja algajad peaksid oma marsruuteri modifitseerimisel olema ettevaatlikud.
Ülevaade
See juhend annab samm-sammult teada, kuidas luua oma püsivara DD-WRT koos muudatustega ja täiendustega, kasutades püsivara modifikatsioonikomplekti.
Püsivara muudatuste komplekt võimaldab teha püsivara muudatusi, kui neid pole allikast kompileerides. Selliste muudatuste tegemine antud skriptide abil muutub lihtsaks mõne faili allalaadimise, asendamise ja kustutamise asjus.
Selle meetodi kõige domineerivam põhjus on see, et viimasel ajal on OpenWrt IPKG-paketid toetanud DD-WRT-i nihkunud kõvakettadesse (USB kaudu) suunduvate ruuterite kaudu, mis muudab mod-komplekti IPKG-paketide edukaks installimiseks järjepidevalt töötavana juhtude puhul, kus HD pole saadaval. Lisaks sellele on sellel meetodil lisaväärtus, mis aitab vabastada pakettide paigaldamisest JFFS-i sõltuvusest, mis ainult 4MB välise marsruuteriga on tõeline probleem.
Pilt avaliku energiast
Eesmärgid
Kuigi selle protseduuri juhised on üksikasjalikult kirjeldatud DD-WRT-i wiki-le ja arendaja veebilehel, püüame selle juhendi koostada koopia ja kleepimise protseduuriga, mida igaüks saab kasutada järgmiste eesmärkide saavutamiseks:
- Paigaldage komplektpakett ja selle sõltuvused.
-
Paigaldage ssmtp-pakett NVRAM-i genereeritud konfiguratsioonidega.
TLS smtp (nt Gmaili tugi) toetuseks valikuliselt.
Kui olete järginud seda protseduuri, peaks see olema asjakohaselt lihtne kohandada teiste pakettide käitistega.
Hoiatus: Proovige kergelt … pidage meeles, et modifikatsioonikomplekti vale kasutamine võib jätta teid ruuteriga, mis vajab tellimuse eemaldamist (see omakorda on see kasutuaks tellistuseks). Kuid kui oled tõeline geek, siis arvatavasti tellite ideoloogiast, et see, kes võib midagi hävitada, kontrollib asju ja seda teevad ainult tõelised geeksid
Eeltingimused
- Seda protseduuri saab kasutada tellis oma ruuter, nagu teete oma ruuteri kasutamiskõlbmatu me ei vastuta kahjude eest, mis võivad otseselt või muul viisil olla põhjustatud alltoodud menetluste kasutamisest.
- See protseduur viidi läbi Debiani süsteemidel (Lenny, Squeeze ja Mint) ning alltoodud juhised eeldavad, et kasutate ka üht.
- See protseduur on soovitatav ainult inimestele, kellel on oma ruuteri DD-WRT-ga vilkuv kogemus, kusjuures kõik eeldused, piirangud ja piirangud, mis kehtivad nende riistvara häälestamisel. hea koht alustuseks oleks meie Turn Your Home Router Super-Powered Router koos DD-WRT juhend.
- Teie ruuter peab toetama vähemalt DD-WRT-i "mini" versiooni.
- See protseduur loodi ja testiti Linksys WRT54GS / L ruuterites, kui teie teiste mobiilsideoperaatorite marsruuterid võivad teie läbisõidul olla väga.
Seadistamine
Nõutavate pakettide paigaldamine
Püsivara muudatuste komplektil on mõned sõltuvad selle kompileerimiseks ja töötamiseks. Selleks, et need kõik korraga neid installida / uuendada. Küsi selles käskluses terminali:
sudo aptitude install gcc g++ binutils patch bzip2 flex bison make gettext unzip zlib1g-dev libc6 subversion
Laadige alla mod-komplekt
Loo alamkaust ja hankige komplekt ametlikust SVNist:
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/
Laadige püsivara tööle
Esimene asi, mida kaaluda on, millist versiooni soovite kasutada? Pöialde reegel on: kui kahtlete, kasutage "mini". Seda seetõttu, et seni, kuni teie ruuter toetab vähemalt mini-versiooni, annab see teile kõigile kõige sagedamini kasutatavatele funktsioonidele ilma igasuguse nuhksideta. jättes nii ruumi protseduuridele kui ka mõnele JFFS-ruumi muudele kasutusviisidele enamikul juhtudel.
Kui olete versioonis otsustanud, on soovitatav kasutada püsivara viimast versiooni, sest neil on võrreldes nende "stabiilsete" partneritega palju viga parandusi. Selle kirjutamise ajal oli viimane versioon "03-17-11-r16454" ja seda versiooni kasutatakse järgnevates käskudes.
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
Selleks, et oleks lihtsam jälgida, millist versiooni kasutame, nimetame allalaaditud fail ümber oma versiooni numbri esindamiseks:
mv dd-wrt.v24_mini_generic.bin dd-wrt.v24_mini_generic-03-17-11-r16454.bin
See on muidugi vabatahtlik, kuid allpool olevad käsud eeldavad, et olete faili ümber nimetanud.
Püsivara väljavõtmine
Selleks, et saaksime firmware tarkvara faile muuta, peame selle sisu ajutiseks kataloogiks hankima. Selle käsu süntaks on:./extract_firmware.sh FIRMWARE_IMAGE WORKING_DIRECTORY Meie juhul tähendaks see järgmist:
./extract_firmware.sh dd-wrt.v24_mini_generic-03-17-11-r16454.bin./working_dir_mini1
Märkus. Selle käskluse esmakordsel käivitamisel ehitatakse teie süsteemi mod-kit tööriistad. see juhtub ainult üks kord ja võib veidi aega võtta … nii et ole kannatlik …
Pakettide paigaldamine
Nüüd, kui püsivara on välja tõmmatud, saame selle pakette installida. Üldiselt on selle meetod pakendi ja selle sõltuvuste allalaadimine avatud veebirakenduste hoidla ipk-faili kujul. Kui olete allalaaditud installige need väljavõttev püsivara, kasutades selleks ettenähtud skripti.
Takitud pakett
Üksikasjalikke juhiseid Knockardi seadistamise ja kasutamise kohta kirjeldatakse järgmises artiklis, nii et võite selle sammu vahele jätta vahele jätta või teha seda tuleviku ettevalmistamisel, sest Knockd ei võta mingil juhul palju ruumi.
Knockd on deemon, mis kuulab linkide kihis side sündmusi järjestuste jaoks ja mõjutab neid seejärel. Mida see tähendab, on see, et sul võib olla seade, mis käivitab deemonit, isegi sadamates "ei kuulata" (sadama skannimine ei näe neid avatud) ja teeb ikkagi vajaliku midagi ühest käskist ülespoole täisskripti. Selle meetodi abil saate käivitada serveri mis tahes toimingu tegemiseks, mida vajate seda kaugjuhtimiseks (Interneti kaudu), ilma et peaksite oma koduvõrku kasutama.
Knockdil on ainult üks loetletud sõltuvus, nii et laadige pakett ja selle sõltuvus välja, andes välja:
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
Installige püsivara ipk "knockd" ipk:
./ipkg_install.sh knockd_0.5-1_mipsel.ipk./working_dir_mini1/
Paigaldage pakettvõtte (libpcap) ipk püsivara:
./ipkg_install.sh libpcap_0.9.4-1_mipsel.ipk./working_dir_mini1/
Kuna "knockd" saab käivitada alternatiivse konfiguratsioonifailiga (nagu seda selgitatakse tulevases artiklis), ei ole vaja mingeid muid toiminguid teha ja võite vahele jätta püsivara ehituse sektsiooni, kui see on kõik, mida soovite installida.
SSMTP-pakett
SSMTP-pakett võimaldab ruuteril saata e-kirju just nagu me näitasime meie Linuxi e-posti käskude seadistamisel Gmaili või SMTP serverite jaoks. Me lubasime teile sel korral, et näeme, kuidas seda DD-WRT-i jaoks seadistada, ja me esitame selle nüüd. See on ennekõike kasulik siis, kui kavatsete luua routeri skripte, mille abil soovite saada tagasisidet nende toimimise kohta e-posti teel.
Selle paketi seadistamine on natuke keerukam, kui see on tavapärastes Linuxi süsteemides manustatud süsteemi poolt kehtestatud piirangute tõttu, nii et võtke sügavalt sisse … valmis? … lähme…:)
Laadige pakett alla:
wget https://downloads.openwrt.org/backports/rc5/ssmtp_2.61-1_mipsel.ipk
Installige ssmtp ipk püsivarustusse:
./ipkg_install.sh ssmtp_2.61-1_mipsel.ipk./working_dir_mini1/
TLS tugi (valikuline) SSMTP ei loe muud pakette oma sõltuvusteks, aga kui soovite, et saaksite kasutada TLS autentimiseks vajalikku smtp-lüüsi (st Gmail), peate installima avatudSSL pakage ka. Märge: On tohutu puudus seda hiljem JFFS ruuteri ruumi märkimisväärselt vähendatud kujul. See tähendab, et avatudSSL-i pakett võtab teie kogusummast 4MB (tavapärase mitte-mega toetava marsruuteri jaoks) ligikaudu 500 000 ruutu, ühendamaks seda JFFS-i üldkulusid ja te leiate, et teie vasakpoolne, kuid väärtuslik vähesed plokid tasuta JFFS-ruum (umbes 60KB WRT54GL-il).
Kuna seal on ikka veel TLS-i, mis vajavad smtp-servereid (tavaliselt teie Interneti-teenuse pakkujad), soovitame minut mõelda, kas peate tõesti kasutama lüüsi vajavat TLS-i.
Kui olete otsustanud TLS-i tugiteenuste lubamise ebasoodsamas olukorras, laadige alla openSSL-pakett:
wget https://downloads.openwrt.org/whiterussian/packages/libopenssl_0.9.8d-1_mipsel.ipk
Paigaldage avatud tarkvara (openSSL) (libopenssl) ipk püsivara:
./ipkg_install.sh libopenssl_0.9.8d-1_mipsel.ipk./working_dir_mini1/
Konfiguratsioonid SSMTP-paketiga on piiratud, et seda ei saa kasutada alternatiivse konfiguratsioonifailiga. Kuna püsivara on ainult lugemiseks, kui see on ruuteril, tähendab see, et pakendist välja pandud saab konfigureerida ainult püsivara. Kuid mis siis, kui me ei soovi läbi viia kõiki püsivara muudatuste etappe, vaid et muuta e-posti seaded? (näiteks parooli muutmine).
Sel eesmärgil jõudis nii Jeremy (püsivara mod-kit-looja) kui ka mina ise järelduseni (sõltumatult, kui ma võin alandavalt lisada), et ainus mõistlik viis seda teha oleks:
- Tehke konfiguratsioonifailide asukoht, mille pakett ssmtp osutab ainult kirjutuskaitstud asukohale jms, viidates kataloogi tmp, mis on käitamise ajal kirjutatav.
- Loo skript, mis käivitusprotsessi ajal dünaamiliselt genereeriks konfiguratsioone, mis põhinevad NVRAM-i muutujate puhul.
Selle saavutamiseks on vaja veel täiendavaid samme …
Sisselülitamine ssmtp-i konfiguratsioonikataloogi Nagu eespool selgitatud, peame tegema / etc / ssmtp asukoht ruuteris, suunake see / tmp kataloog on selle ainus kirjutatav koht, mis meil on ruuteril jooksev ajal. Selleks kustutage ssmtp kataloogi, mille ipk installer on loonud:
rm -rf./working_dir_mini1/rootfs/etc/ssmtp/
Loo uus sümboolne link, mis osutab ruuteri juurfailide süsteemile / etc / ssmtp, et osutada / tmp / etc / ssmtp absoluutsele teele:
ln -s /tmp/etc/ssmtp/./working_dir_mini1/rootfs/etc/ssmtp
Märge: Isegi kui see tundub praegu ebaloogiline, kuna pakume konfiguratsioonikataloogi asukohta väljaspool püsivara muudatuste komplekti töökataloogi, kinnitan teile, et see tundub täiesti korrektselt ruuterite vaatepunktist töötamise ajal.
Init-skript Kuigi see on täiesti võimalik mitte süstida seda skripti püsivara ja käivitada see käivitusskriptina hiljem, pean ma asjakohaseks panna selle siia, kui see on ainult näide tulevaseks kasutamiseks. Algselt lõi Jeremy kellegi soovile kohandatud skripti, hiljem kohandasin ja suurendasin seda, et see sobiks paremini DD-WRT-i ja syslogi aruandlusega.
Loo uus init (käivitamisel) skript:
vi./working_dir_mini1/rootfs/etc/init.d/S80ssmtp
Märkus. Te võite kasutada mõnda muud toimetajat, ma kasutan vi, sest see vastab ruuteri käsutuses olevatele omadustele … Tee selle sisu:
#!/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###########'
Tehke käivitatav fail:
chmod +x./working_dir_mini1/rootfs/etc/init.d/S80ssmtp
Võtke teadmiseks skriptis olevad NVRAMi ootereguleerijad, meie kohustus on anda neile midagi töötama pärast seda, kui oleme paigaldanud meie modifitseeritud püsivara ruuterisse.
Ehitage muudetud püsivara
Nüüd, kui kõik on paigas, on aeg uuendatud püsivara uuesti pakkida kokkusurutud binaariks, mida saame marsruuterile vältida. Skripti süntaks "build.sh" on:./build_firmware.sh OUTPUT_DIR WORKING_DIRECTORY
Selleks kasutame kaasasolevat skripti, mistõttu tehke järgmist.
./build_firmware.sh output_mini1./working_dir_mini1/
Kui "ehitamine" operatsioon on lõpetatud, ilmub "väljundi" kataloogis ootamas mitu püsivara pilti.
Nüüd võite faili nimega custom_image_00001-generic.bin vältida oma ruuterile nagu tavaliselt DD-WRT püsivara.
Märge: Ärge unustage taastada "tehase vaikeseaded" enne püsivälgu, selle ajal ja vahetult pärast seda.
Postitage flash-sammud
Kuna me tegi SSMTP-paketi otsimiseks NVRAM-i muutujate, et luua ssmtp-konfiguratsioonifaili, peame nüüd esitama selle puuduva teabega. Me teeme seda veebi-GUI funktsiooni abil "Käivita käsud".
Minge veebi-GUI-le -> "administreerimine" -> "käskud" -> kleepige tekstikasti järgmiselt:
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
Asenda tekst pärast võrdväärset (=) tähist koos oma tegeliku teabega ja seejärel käsku "Käivita käsud". Märge: kui teie tavapärane, mitte TLS-i kasutamine, smtp-serveri kasutatav port on 25, mitte 587.
Nüüd, kui SSMTP teave on kasutusvalmis, peate kasutama init-skripti. Nii saate kas reboot ruuteri, või kleepige see tekstikasti käsudesse:
/etc/init.d/S80ssmtp
Seejärel vajuta uuesti käsku Käivita käsud. Selle käsu väljund peaks välja nägema:
echo 'testing crucible emailing 123 qwe' | ssmtp -vvv [email protected]
Seejärel vajuta uuesti käsku Käivita käsud. Kuna me kasutasime -vvv-valikut lisaväärtusteks, peaks selle käsu väljund olema järgmine:
Loodame, et saate seda teavet kasutada, et suruda oma kodurakenduse piirid veelgi kaugemale, kui arvasite, et see on võimalik, ja nüüd kontrollite oma koduteradapterit ja DD-WRT-d …
Linux pikendab elu, Linux laieneb teadvuse … Linux on pakettreiside jaoks hädavajalik