Már megmutattuk, hogyan módosíthatja otthoni útválasztóját a DD-WRT alternatív firmware-rel a jelentősen javított teljesítmény érdekében, és ma megmutatjuk, hogyan lehet még tovább vinni a DD-WRT Mod-Kit segítségével.
Ha még nem tette meg, mindenképpen nézze meg a sorozat két korábbi cikkét:
- Kapcsolja otthoni útválasztóját egy nagy teljesítményű útválasztóvá DD-WRT-vel
- Hogyan lehet növelni a Wi-Fi hálózati jelet és növelni a hatótávolságot a DD-WRT segítségével
Feltéve, hogy ismeri ezeket a témákat, olvassa tovább. Ne feledje, hogy ez az útmutató egy kicsit technikai jellegű, és a kezdőknek óvatosnak kell lenniük az útválasztó módosításakor.
Áttekintés
Ez az útmutató lépésről lépésre ismerteti, hogyan hozhatja létre saját DD-WRT firmware-jét módosításokkal és kiegészítésekkel a „ firmware módosító készlet “.
A firmware módosító készlet lehetővé teszi a firmware módosítását anélkül, hogy azt forrásból lefordítaná. Az ilyen változtatások végrehajtása a mellékelt szkriptek segítségével egyszerűvé válik egyes fájlok letöltésével, cseréjével és törlésével.
A módszer legelterjedtebb oka az, hogy az utóbbi időben a DD-WRT támogatja a Openwrt Az IPKG csomagok a merevlemezzel (USB-n keresztül) rendelkező útválasztók felé mozdultak el, ami a mod-kit teszi az egyetlen következetesen működő módja az IPKG-csomagok sikeres telepítésének azokban az esetekben, amikor a HD nem érhető el. Ezen túlmenően ennek a módszernek az az előnye, hogy mentesíti Önt a csomagok telepítésének JFFS-függőségétől, ami a csak 4 MB flash memóriával rendelkező routerek számára valós probléma.
Célok
Míg az eljárással kapcsolatos utasítások részletesen olvashatók DD-WRT wiki és a fejlesztői webhely , arra törekszünk, hogy ez az útmutató másolási és beillesztési eljárás legyen, amelyet bárki használhat a következő célok eléréséhez:
- Telepítse a knockd csomagot és annak függőségeit.
-
Telepítse az ssmtp csomagot NVRAM-alapú generált konfigurációkkal.
- Opcionálisan a TLS smtp támogatásával (más néven: Gmail támogatás).
Miután betartotta ezt az eljárást, relevánsnak kell lennie annak, hogy más csomagok telepítéséhez alkalmazkodjon.
Figyelem
:
Könnyedén tapossa ... ne feledje, hogy a módosítókészlet helytelen használata miatt szüksége lehet egy útválasztóra
téglázás
(ahogy viszont a
haszontalan tégla
). Ha azonban igazi stréber vagy, valószínűleg feliratkozol az ideológiára,
aki elpusztíthat egy dolgot, irányít egy dolgot
, és ezt csak az igazi geekek teszik
Előfeltételek
- Ennek az eljárásnak a segítségével tégla az útválasztóját, mint a router elkészítésében használhatatlan, nem vállalunk felelősséget azokért a károkért, amelyeket közvetlenül vagy más módon okozhat az alábbi eljárások alkalmazása.
- Ezt az eljárást Debian alapú rendszereken (Lenny, Squeeze és Mint) hajtották végre, és az alábbi utasítások feltételezik, hogy Ön is egyet használ.
- Ez az eljárás csak azoknak ajánlott, akik rendelkeznek tapasztalattal az útválasztó DD-WRT használatával történő villogtatásával, a hardver beállításához szükséges összes előfeltétel, figyelmeztetés és korlátozás mellett. egy jó kiindulási hely lenne a miénk Kapcsolja otthoni útválasztóját egy nagy teljesítményű útválasztóvá DD-WRT-vel útmutató.
- Az útválasztójának támogatnia kell legalább a DD-WRT „mini” változatát.
- Ezt az eljárást a Linksys WRT54GS / L útválasztókon hozták létre és tesztelték, ha más gyártók útválasztóit használja, akkor a futásteljesítménye igen.
Beállít
A szükséges csomagok telepítése
A firmware módosító készletnek van néhány függősége a fordításhoz és a működéshez. Az összes telepítéséhez / frissítéséhez adja ki ezt a parancsot egy terminálon:
sudo aptitude install gcc g ++ binutils patch bzip2 flex bison make gettext unzip zlib1g-dev libc6 subversion
Töltse le a mod-kit
Hozzon létre egy almappát, és szerezze be a készletet a hivatalos SVN-től:
mkdir firmware_mod_kit
cd firmware_mod_kit
svn checkout http://firmware-mod-kit.googlecode.com/svn/trunk/ firmware-mod-kit-read-only
cd firmware-mod-kit-only-read / trunk /
Töltsön le egy firmware-t, amelyen dolgozhat
Először figyelembe kell venni, hogy melyik verziót szeretné használni?
Alapszabály: ha kétségei vannak, használja a „mini” szót. Ez azért van, mert mindaddig, amíg az útválasztó legalább a „mini” verziót támogatja, annak használata megadja az összes leggyakrabban használt funkciót mindenféle bloatware nélkül. így helyet hagyva mind az eljárásoknak, mind a JFFS számára is
egyéb felhasználások
a legtöbb esetben.
Miután eldöntött egy verziót, ajánlatos a rendelkezésre álló firmware legújabb verzióját használni, mivel általában sok hibajavítást tartalmaznak a „stabil” társaikhoz képest.
Az írás idején a legújabb a „03-17-11-r16454” volt, és ezt a változatot a következő parancsokban használják.
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
Annak érdekében, hogy könnyebb legyen nyomon követni, hogy melyik verziót használjuk, nevezze át a letöltött fájlt annak verziószámára:
mv dd-wrt.v24_mini_generic.bin dd-wrt.v24_mini_generic-03-17-11-r16454.bin
Ez természetesen nem kötelező, de az alábbi parancsok feltételezik, hogy átnevezte a fájlt.
A firmware kibontása
A firmware-n belüli fájlok megváltoztatásához ki kell bontanunk a tartalmát egy ideiglenes könyvtárba.
A parancs szintaxisa:
./extract_firmware.sh FIRMWARE_IMAGE WORKING_DIRECTORY
Esetünkben ez a következőket jelenti:
./extract_firmware.sh dd-wrt.v24_mini_generic-03-17-11-r16454.bin ./working_dir_mini1
Megjegyzés: A parancs első futtatásakor a mod-kit eszközöket épít a rendszerére. ez csak egyszer fordul elő, és eltarthat egy ideig ... ezért légy türelmes ...
Csomagok telepítése
Most, hogy kibontjuk a firmware-t, telepíthetjük rá a csomagokat.
Általában az eljárás a csomag és annak függőségeinek letöltése ipk fájl formájában a
openWRT adattár
. A letöltés után telepítse őket a kibontott firmware-be a mellékelt szkript segítségével.
A knockd csomag
A Knockd konfigurálására és használatára vonatkozó részletes utasításokat egy későbbi cikkben részletezzük, ezért dönthet úgy, hogy egyelőre kihagyja ezt a lépést, vagy megteheti a jövőre való felkészülés során, mivel a Knockd egyébként sem foglal sok helyet.
A Knockd egy démon, amely a kapcsolati réteg kommunikációs eseményeit hallgatja meg, majd szekvenciákra hat.
Ez azt jelenti, hogy megadhatja, hogy a démonot futtató eszköz ne is „hallgasson” a portokra (egy port-szkennelés nem fogja nyitottnak tekinteni őket), és mégis ráveheti valamire, amire szüksége van, egyetlen parancsból
felfelé
teljes forgatókönyvig.
Ezzel a technikával
rákényszerítheti a szervert arra, hogy bármilyen szükséges műveletet hajtson végre távolról (az interneten keresztül) anélkül, hogy kitenné otthoni hálózatát.
A Knockd csak egy felsorolt függőséggel rendelkezik, ezért töltse le a csomagot és annak függőségét a következő kiadással:
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
Telepítse a „knock démon” (knockd) ipk-t a firmware-re:
./ipkg_install.sh knockd_0.5-1_mipsel.ipk ./working_dir_mini1/
Telepítse a „packet capture” (libpcap) ipk-t a firmware-re:
./ipkg_install.sh libpcap_0.9.4-1_mipsel.ipk ./working_dir_mini1/
Mivel a „knockd” alternatív konfigurációs fájllal meghívható (ezt egy későbbi cikk elmagyarázza), nincs szükség semmilyen más művelet végrehajtására, és ugorhat a firmware-építés szakaszra, ha mindent telepíteni szeretett volna.
Az SSMTP csomag
Az SSMTP csomag lehetővé teszi, hogy az útválasztó e-mail üzeneteket küldjön, ugyanúgy, mint a mi
E-mail értesítések beállítása Linux rendszeren a Gmail vagy az SMTP használatával
szerverekhez. Akkor megígértük neked, hogy megmutatjuk, hogyan kell ezt konfigurálni a DD-WRT-hez, és most át is adjuk.
Ez főleg akkor hasznos, ha olyan szkripteket készít az útválasztón, amelyekről e-mailben szeretne visszajelzést kapni a működésükről.
Ez a csomag egy kicsit bonyolultabb, mint a normál Linux rendszereken, a beágyazott rendszer által előírt korlátozások miatt, ezért vegyen egy mély lélegzetet… kész?…. Gyerünk… :)
Töltse le a csomagot:
wget http://downloads.openwrt.org/backports/rc5/ssmtp_2.61-1_mipsel.ipk
Telepítse az „ssmtp” ipk-t a firmware-re:
./ipkg_install.sh ssmtp_2.61-1_mipsel.ipk ./working_dir_mini1/
TLS támogatás (opcionális)
Az SSMTP nem sorol fel más csomagokat függőségként, azonban ha egy SMTP-átjárót szeretne használni, amely TLS-hitelesítést igényel (azaz
Gmail
), telepítenie kell az openSSL csomagot is.
jegyzet
: HATALMAS van
hátrány
hogy ezt a későbbiekben jelentősen csökkentette a routeren a JFFS számára. Vagyis az openSSL csomag kb. 500 KB helyet foglal el a 4 MB-ból (egy normál, nem „mega” támogató útválasztó esetén), összevonva ezzel a JFFS rezsivel, és rájössz, hogy a bal oldala, de néhány értékes ingyenes JFFS-hely (kb. 60 KB a WRT54GL-en).
Mivel még mindig vannak nem TLS-k, amelyek smtp szervereket igényelnek (általában az internetszolgáltatóitok), azt javaslom, szánjon egy percet arra, hogy elgondolkodjon, valóban szüksége van-e az átjárót igénylő TLS-re.
Ha úgy döntött, hogy engedélyezi a TLS támogatás hátrányait, töltse le az openSSL csomagot:
wget http://downloads.openwrt.org/whiterussian/packages/libopenssl_0.9.8d-1_mipsel.ipk
Telepítse az „openSSL” (libopenssl) ipk-t a firmware-re:
./ipkg_install.sh libopenssl_0.9.8d-1_mipsel.ipk ./working_dir_mini1/
Konfigurációk
Az SSMTP csomag korlátozott, hogy nem lehet alternatív konfigurációs fájllal meghívni.
Mivel a firmware csak olvasható, ha az útválasztón van, ez azt jelenti, hogy a dobozból csak a hardverbe tudjuk kódolni a konfigurációt.
Mi történik azonban akkor, ha nem akarunk minden firmware-módosítási lépést elvégezni, csak az E-mail beállításainak megváltoztatásához? (például jelszóváltoztatás).
Ennek érdekében Jeremy (a firmware mod-kit készítője) és jómagam arra a következtetésre jutottunk (függetlenül, ha alázatosan hozzá tudom tenni), hogy ennek egyetlen józan módja az lenne:
- Helyezze el a konfigurációs fájlok helyét, amelyre az ssmtp csomag az csak olvasható helyre mutat, stb., Mutasson a tmp könyvtárra, amelyre futás közben írható.
- Hozzon létre egy parancsfájlt, amely az indításkor dinamikusan generálja a konfigurációkat az NVRAM-változók alapján.
Ennek eléréséhez néhány további lépés szükséges ...
Jelölje be az ssmtp konfigurációs könyvtárat
Amint azt fentebb kifejtettük, meg kell tennünk a
/ etc / ssmtp
helyet az útválasztón, mutasson a
/ tmp
könyvtár, mint az egyetlen írható hely a routeren futás közben. Ehhez törölje az ssmtp könyvtárat, amelyet az ipk telepítő hozott létre:
rm -rf ./working_dir_mini1/rootfs/etc/ssmtp/
Hozzon létre egy új szimbolikus linket, amely az / etc / ssmtp-re mutat az útválasztó gyökér fájlrendszerében, hogy abszolút elérési útként mutasson a / tmp / etc / ssmtp fájlra:
ln -s / tmp / etc / ssmtp / ./working_dir_mini1/rootfs/etc/ssmtp
jegyzet : Annak ellenére, hogy ez most logikátlannak tűnik, mivel a csomag konfigurációs könyvtárát a firmware-módosító készlet munkakönyvtárán kívülre mutatjuk, biztosíthatom Önöket, hogy ez futás közben teljesen jól néz ki az útválasztók szempontjából.
Egy init szkript
Bár teljesen lehetséges, hogy ezt a szkriptet nem futtatja be a firmware-be, és később indító szkriptként futtatja, úgy érzem, helyénvaló itt elhelyezni, ha csak példaként szolgál a jövőbeni felhasználásra.
Eredetileg Jeremy valakinek a kérésére szabott szkriptet készített, később a DD-WRT és a syslog jelentésekkel való összeegyeztethetőség érdekében módosítottam és bővítettem.
Hozzon létre egy új init (startup) parancsfájlt:
vi ./working_dir_mini1/rootfs/etc/init.d/S80ssmtp
Megjegyzés: Használhat másik szerkesztőt, én a vi-t, mert összhangban van az útválasztón elérhetővel ...
Legyen ez tartalma:
#! / bin / sh
#
# title: ssmtp_nvram.sh
# szerző: Jeremy Collake és Aviad Raviv
# webhely: http://www.bitsum.com, http://howtogeek.com
#
# szkript a config fájl létrehozásához az nvram vars-ból.
A # minden beállítófájlnál használható lesz
# var = értéktípus párok.
#
A # előtagokat használ az nvram változókhoz.
#
# и.е.
# ssmtp hosztnév = valami
# fordítás: ssmtp.conf
# hostname = valami
#
logger_func ()
{
naplózó -s -p local0.notice -t SSMTP_init $ 1
}
logger_func "########### Indította az SSMTP init futtatását ###########"
logger_func "Az etc könyvtár létrehozása a / tmp fájlban"
[ ! -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 "$ CONFIG_FILE létrehozása a (z) $ PACKAGE_NAME csomaghoz"
#echo $ 0: $ CONFIG_FILE létrehozása a (z) $ PACKAGE_NAME csomaghoz
echo "#! / bin / sh"> $ CONFIG_FILE
echo "#" >> $ CONFIG_FILE
echo "# automatikusan létrehozva az nvram alapján: $ 0" >> $ CONFIG_FILE
echo "#" >> $ CONFIG_FILE
ha [ -z "`nvram show | grep ssmtp`" ]
azután
logger_func "Úgy tűnik, hogy nem állította be a conf fájl előállításához szükséges NVRAM-változókat"
logger_func "** Fontolja meg ** a következő parancsok használatát az indítási szkriptben:"
logger_func "nvram set ssmtp_root=felhasználóné[email protected]"
logger_func "nvram set ssmtp_mailhub = smtp.gmail.com: 587"
logger_func "nvram set ssmtp_hostname=felhasználóné[email protected]"
logger_func "nvram set ssmtp_UseSTARTTLS = IGEN"
logger_func "nvram set ssmtp_AuthUser = felhasználónév"
logger_func "nvram set ssmtp_AuthPass = jelszó"
logger_func "nvram set ssmtp_FromLineOverride = YES"
logger_func "hozza létre az NVRAM változókat, és futtassa újra az init szkriptet, vagy indítsa újra, hogy a beállítások befolyásolják."
kilépés 0
lenni
###########################################################
#
# fő hurok
#
SED_COMMAND = "s / $ NVRAM_PREFIX / /"
CONFIG_VARS = `nvram show | grep $ NVRAM_PREFIX | sed "$ SED_COMMAND" "
i-re a $ CONFIG_VARS; csináld
echo $ i >> $ CONFIG_FILE
Kész
###########################################################
#
# józanság ellenőrzés
#
ha [ ! -f "$CONFIG_FILE" ]; azután
# echo "$ 0: HIBA - nem sikerült létrehozni a (z) $ CONFIG_FILE fájlt. Talán nincs symink / etc / XXXX -> / tmp / etc / XXXX?"
logger_func "ERROR - nem sikerült létrehozni a $ CONFIG_FILE fájlt. Talán nincs symink / etc / XXXX -> / tmp / etc / XXXX?"
lenni
logger_func "############ Befejezte az SSMTP init futtatását ############"
Tegye futtathatóvá:
chmod + x ./working_dir_mini1/rootfs/etc/init.d/S80ssmtp
Vegye figyelembe az NVRAM várakozó változókat a szkriptben, felelősségünk, hogy munkát adjunk nekik, miután telepítettük a módosított firmware-t az útválasztóra.
Készítse el a módosított firmware-t
Most, hogy minden a helyén van, itt az ideje újracsomagolni a módosított firmware-t egy tömörített bináris fájlba, amelyet felvillanthatunk az útválasztóra.
A „build.sh” parancsfájl szintaxisa:
./build_firmware.sh OUTPUT_DIR WORKING_DIRECTORY
Ehhez a mellékelt szkriptet használjuk, ezért adjuk ki:
./build_firmware.sh output_mini1 ./working_dir_mini1/
A „build” művelet elvégzése után számos firmware-kép vár a felhasználásra a „output” könyvtárban.
Most a „custom_image_00001-generic.bin” nevű fájlt az útválasztónként villoghatja általában DD-WRT firmware-t használna .
jegyzet : Ne felejtse el visszaállítani a „gyári alapértékeket” a firmware villogása előtt, közben és közvetlenül azután.
Flash-lépések közzététele
Mivel arra késztettük az SSMTP csomagot, hogy keresse meg az NVRAM változókat az ssmtp konfigurációs fájl előállítása érdekében, most meg kell adnunk neki a hiányzó információkat.
Ezt a web-GUI „Parancsok futtatása” funkciójának használatával valósítjuk meg.
Lépjen a web-GUI -> „adminisztráció” -> „parancsok” -> illessze be a következőbe a szövegmezőbe:
nvram set [email protected]
nvram set ssmtp_mailhub = smtp.gmail.com: 587
nvram set [email protected]
nvram set ssmtp_UseSTARTTLS = IGEN
nvram set ssmtp_AuthUser = a-gmail-felhasználónév (a @ gmail.com nélkül)
nvram set ssmtp_AuthPass = te-gmail-jelszó
nvram set ssmtp_FromLineOverride = IGEN
nvram elkötelezni
Cserélje le az egyenlőség (=) előjel után a szöveget a tényleges adatokra, majd nyomja meg a „Futtatás parancsokat”.
jegyzet
: ha normál, nem TLS-t használ, akkor az smtp szervert használja, a használandó port 587 helyett 25.
Most, hogy az SSMTP információ készen áll a használatra, meg kell hívnia az init szkriptet. Tehát újraindíthatja az útválasztót, vagy beillesztheti ezt a „parancsok” mezőbe:
/etc/init.d/S80ssmtp
Ezután nyomja meg újra a „Parancsok futtatása” gombot.
A parancs kimenetének a következőképpen kell kinéznie:
Tesztelje, hogy küldhet-e e-mailt
Illessze be újra ezt a „parancsok” mezőbe a következő parancsot az e-mail címével:
visszhang "tégely e-mail küldésének tesztelése 123 qwe" ssmtp -vvv [email protected]
Ezután nyomja meg újra a „Parancsok futtatása” gombot.
Mivel a -vvv opciót alkalmaztuk az extra bőbeszédűség érdekében, a parancs kimenetének a következőképpen kell kinéznie:
Ha minden jól sikerült, másodperceken belül meg kell kapnia a teszt e-mailt.
Reméljük, hogy ezeket az információkat felhasználhatja arra, hogy otthoni útválasztójának határait még tovább lépje, mint amennyire ezt elképzelte, és most valóban irányíthatja otthoni útválasztóját és a DD-WRT-t …
A Linux meghosszabbítja az életet, a Linux kitágítja a tudatosságot ... A Linux létfontosságú a csomagok utazásához