Освободете още по-голяма мощност от вашия домашен рутер с модул DD-WRT
Вече ви показахме как да модифицирате домашния си рутер с DD-WRT алтернативния фърмуер за значително подобрена производителност, а днес ще ви покажем как да го направите още повече с DD-WRT Mod-Kit..
Ако все още не сте го направили, проверете двата предишни члена от поредицата:
- Превърнете домашния си рутер в супер-задвижван рутер с DD-WRT
- Как да увеличите сигнала за Wi-Fi мрежа и да увеличите обхвата с DD-WRT
Ако приемем, че сте запознати с тези теми, продължете да четете. Имайте предвид, че това ръководство е малко по-технически и начинаещите трябва да внимават при модифицирането на рутера.
Преглед
Това ръководство ще ви даде стъпка по стъпка как да създадете свой собствен DD-WRT фърмуер с модификации и допълнения, използвайки “кит за модификация на фърмуера”.
Комплектът за модификация на фърмуера позволява да се правят модификации на фърмуера, без да се компилира от източника. Промените по този начин, с помощта на предоставените скриптове, се превръщат в обикновен въпрос за изтегляне, замяна и изтриване на някои файлове.
Най-преобладаващата причина за използването на този метод е, че напоследък подкрепата на DD-WRT за пакетите Openwrt IPKG се прехвърли към рутери, които имат твърди дискове (през USB), което прави модула единствено последователен начин за успешно инсталиране на пакетите IPKG. за случаи, в които няма достъп до HD. В допълнение, този метод има допълнителното предимство, че ви освобождава от зависимостта JFFS за инсталиране на пакети, което за рутерите с само 4 МБ флаш е истински проблем.
Снимка от обществената енергетика
Цели
Докато инструкциите за тази процедура са подробно описани на уикито на DD-WRT и на сайта на разработчика, ние се стремим да направим това ръководство за копиране и поставяне на процедура, която всеки може да използва, за да постигне следните цели:
- Инсталирайте пакета knockd и неговите зависимости.
- Инсталирайте пакета ssmtp с NVRAM генерирани конфигурации.
- По избор с поддръжка на TLS smtp (поддръжка на Gmail).
След като сте следвали тази процедура, трябва да е уместно да я адаптирате за други инсталации на опаковки.
Внимание: Намалете леко ... имайте предвид, че неправилното използване на комплекта за модификация, може да ви остави с рутер, който се нуждае от де-тухлинг (като се превръща в ненужна тухла). Въпреки това, ако сте истински маниак, най-вероятно се подчинявате на идеологията, че онзи, който може да унищожи нещо, контролира нещо, и само истинските гикове правят това
Предварителни
- Използването на тази процедура може тухла маршрутизатора, както в маршрутизатора неизползваем, ние не поемаме никаква отговорност за щети, които могат да бъдат причинени пряко или по друг начин поради използването на процедурите по-долу.
- Тази процедура е изпълнена на системи, базирани на Debian (Lenny, Squeeze и Mint), а инструкциите по-долу предполагат, че използвате и една такава..
- Тази процедура се препоръчва само за хора, които имат опит с мигането на маршрутизатора с DD-WRT, с всички предпоставки, предупреждения и ограничения, които важат за настройката на хардуера. Доброто начало би било да включите нашия рутер в супер-задвижващ рутер с DD-WRT ръководство.
- Вашият маршрутизатор трябва да поддържа поне мини-версията на DD-WRT.
- Тази процедура е създадена и тествана на маршрутизатори Linksys WRT54GS / L, ако използвате рутери от други доставчици, вашият пробег може да е много.
Настройвам
Инсталиране на необходимите пакети
Комплектът за модификация на фърмуера има някои зависимости, за да може да се компилира и работи. За да ги инсталирате / актуализирате наведнъж, издайте тази команда в терминал:
sudo aptitude инсталирате gcc g ++ binutils patch bzip2 flex bison направи gettext unzip zlib1g-dev libc6 subversion
Изтеглете mod-kit
Създайте подпапка и вземете комплекта от официалния SVN:
mkdir firmware_mod_kit
cd firmware_mod_kit
svn checkout http://firmware-mod-kit.googlecode.com/svn/trunk/ само за четене
cd firmware-mod-kit-само за четене / trunk /
Изтеглете фърмуера, за да работите
Първото нещо, което трябва да имате предвид е коя версия искате да използвате?
Основното правило е: когато се съмнявате, използвайте „мини“. Това е така, защото докато вашият рутер поддържа поне мини-версията, използването му ви дава всички най-често използвани функции, без никакви подутини. като по този начин в повечето случаи остава място за процедурите и дори някои JFFS пространства за други употреби.
След като сте решили за версия, се препоръчва да използвате най-новата версия на фърмуера, тъй като те обикновено имат много поправки в сравнение с техните „стабилни“ партньори..
Към момента на написването последното беше „03-17-11-r16454“ и тази редакция се използва в следващите команди.
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
За да улесните проследяването на версията, която използваме, преименувайте изтегления файл, за да представи номера му:
mv dd-wrt.v24_mini_generic.bin dd-wrt.v24_mini_generic-03-17-11-r16454.bin
Това, разбира се, е по избор, но командите по-долу предполагат, че сте преименували файла.
Извличане на фърмуера
За да можем да променяме файловете във фърмуера, трябва да извлечем съдържанието му във временна директория.
Синтаксисът на тази команда е:
./extract_firmware.sh FIRMWARE_IMAGE WORKING_DIRECTORY
В нашия случай това би означавало:
./extract_firmware.sh dd-wrt.v24_mini_generic-03-17-11-r16454.bin ./working_dir_mini1
Забележка: Първият път, когато стартирате тази команда, той изгражда инструментите за mod-kit във вашата система. това се случва само веднъж и може да отнеме малко време… така че бъдете търпеливи…
Инсталиране на пакети
Сега, когато фърмуерът е извлечен, можем да инсталираме пакетите към него.
Като цяло процедурата е да изтеглите пакета и неговите зависимости под формата на ipk файл от хранилището openWRT. Веднъж изтеглени, инсталирайте ги в извлечения фърмуер, като използвате предоставения скрипт.
Чукният пакет
Подробни инструкции за това как да конфигурирате и използвате Knockd ще бъдат подробно описани в бъдеща статия, така че може да изберете да пропуснете тази стъпка за сега или да го направите в подготовка за бъдещето, тъй като Knockd не заема много място.
Knockd е демон, който изслушва комуникационните събития при свързващия слой за последователности, след което действа върху тях.
Какво означава това, е, че можете да имате устройството, изпълняващо демона, дори да не "слуша" на портовете (сканирането на портове няма да ги види като отворени) и все пак да го направи нещо, от което се нуждаете, от една команда докрай на пълен скрипт. С помощта на тази техника можете да задействате сървъра да изпълнява каквато и да е операция, от която се нуждаете от разстояние (през интернет), без да излагате домашната си мрежа.
Knockd има само една изброена зависимост, така че изтеглете пакета и неговата зависимост, като издадете:
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
Инсталирайте "knock daemon" (knockd) ipk в фърмуера:
./ipkg_install.sh knockd_0.5-1_mipsel.ipk ./working_dir_mini1/
Инсталирайте "улавянето на пакети" (libpcap) ipk във фърмуера:
./ipkg_install.sh libpcap_0.9.4-1_mipsel.ipk ./working_dir_mini1/
Тъй като "knockd" може да бъде извикан с алтернативен конфигурационен файл (как ще бъде обяснено в бъдеща статия), няма нужда да се изпълнява друга операция и може да прескочите до секцията за фърмуера, ако всичко, което искате да инсталирате..
Пакетът SSMTP
Пакетът SSMTP позволява на вашия рутер да изпраща съобщения по електронната поща точно както показахме в нашия Как да настроите сигнали за електронна поща на Linux, използвайки Gmail или SMTP за сървъри. Обещахме ви тогава, че ще покажем как да конфигурирате това за DD-WRT и сега ще ви доставим.
Това е предимно полезно, ако искате да създадете скриптове на маршрутизатора, които бихте искали да получавате обратна връзка за тяхната работа по имейл.
Настройката на този пакет е малко по-сложна, отколкото на нормалните Linux системи поради ограничението, наложено от вградена система, така че поемете дълбоко дъх… готово?…. да тръгваме… :)
Изтеглете пакета:
wget http://downloads.openwrt.org/backports/rc5/ssmtp_2.61-1_mipsel.ipk
Инсталирайте "ssmtp" ipk в фърмуера:
./ipkg_install.sh ssmtp_2.61-1_mipsel.ipk ./working_dir_mini1/
TLS поддръжка (по избор)
SSMTP не изброява всички други пакети като свои зависимости, но ако искате да можете да използвате smtp шлюз, който изисква TLS удостоверяване (т.е.. Gmail), също трябва да инсталирате openSSL пакаж.
Забележка: Има ОГРОМЕН недостатък да направите това под формата на значително намалено пространство на рутера за JFFS по-късно. Това означава, че openSSL пакетът отнема около 500K пространство от вашето общо 4MB (за нормален, не "мега" поддържащ рутер), съединение към това, че JFFS режийни и ще откриете, че лявата ви с, но ценно малко, блокове от свободно пространство на JFFS (около 60 КБ за WRT54GL).
Тъй като там все още няма TLS, изискващи SMTP сървъри (обикновено вашият интернет доставчик), предлагам да отделите малко време да помислите дали наистина трябва да използвате TLS, изискващи шлюз.
Ако сте решили да разрешите поддръжката на TLS въпреки недостатъците си, изтеглете пакета openSSL:
wget http://downloads.openwrt.org/whiterussian/packages/libopenssl_0.9.8d-1_mipsel.ipk
Инсталирайте "openSSL" (libopenssl) ipk в фърмуера:
./ipkg_install.sh libopenssl_0.9.8d-1_mipsel.ipk ./working_dir_mini1/
Конфигурации
Съществува ограничение с пакета SSMTP, че не е възможно да се извика с алтернативен конфигурационен файл.
Тъй като фърмуерът е само за четене, когато е на рутера, това означава, че от кутията можем само да кодираме конфигурацията във фърмуера..
Ами ако не искаме да преминем през всички стъпки за модификация на фърмуера, само за да променим настройките за имейл? (например промяна на парола).
За тази цел и Джереми (създателят на фърмуера mod-kit) и аз стигнахме до заключението (независимо дали мога смирено да добавя), че единственият разумен начин да направите това е да:
- Направете местоположението на конфигурационните файлове, което пакетът ssmtp сочи към местоположението за достъп само за четене под и т.н., сочи към директорията tmp, която може да бъде записана по време на изпълнение.
- Създайте скрипт, който би генерирал динамично конфигурациите на базата на променливите NVRAM при стартиране.
За да се постигне това, са необходими някои допълнителни стъпки…
Символна връзка на конфигурационната директория ssmtp
Както е обяснено по-горе, трябва да направим / И т.н. / SSMTP на маршрутизатора, посочете към / TMP директорията като единственото място за писане, което имаме на маршрутизатора по време на изпълнение. За да направите това, изтрийте директорията ssmtp, създадена от инсталатора на ipk:
rm -rf ./working_dir_mini1/rootfs/etc/ssmtp/
Създайте нова символична връзка, която сочи / etc / ssmtp на основната файлова система на рутера, за да посочите / tmp / etc / ssmtp като абсолютен път:
ln -s / tmp / etc / ssmtp / ./working_dir_mini1/rootfs/etc/ssmtp
Забележка: Въпреки, че сега изглежда нелогично, защото насочваме конфигурационната директория на пакета към място извън работната директория на комплекта за модификация на фърмуера, уверявам ви, че това изглежда напълно добре от гледна точка на маршрутизаторите по време на работа.
Инициализиран скрипт
Макар че е напълно възможно да не се инжектира този скрипт във фърмуера и да се стартира като стартиращ скрипт по-късно, чувствам се подходящо да го поставя тук само като пример за бъдеща употреба.
Първоначално Джереми е създал скрипта, съобразен с искането на някого, по-късно, аз го коригирах и допълних, за да бъде по-съвместим с DD-WRT и syslog отчитането.
Създайте новия начален (стартиращ) скрипт:
vi ./working_dir_mini1/rootfs/etc/init.d/S80ssmtp
Забележка: Можете да използвате друг редактор, аз използвам vi, защото съответства на това, което е налично на маршрутизатора ...
Направете това негово съдържание:
#! / Хамбар / од
#
# title: ssmtp_nvram.sh
# автор: Jeremy Collake и Aviad Raviv
# сайт: http://www.bitsum.com, http://howtogeek.com
#
# скрипт за създаване на конфигурационен файл от nvram vars.
# ще работи за всеки конфигурационен файл, който използва
# var = двойки тип стойност.
#
# използва префикси за променливи nvram.
#
# т.е..
# ssmtp_hostname = нещо
# се превежда на ssmtp.conf
# hostname = нещо
#
logger_func ()
logger -s -p local0.notice -t SSMTP_init $ 1
logger_func "########### Стартира инициирането на SSMTP ###########"
logger_func "Създаване на директорията на etc в / tmp"
[! -d / etc / ssmtp /] && mkdir -p / tmp / etc / ssmtp /
Конфиг_файл = / и т.н. / SSMTP / ssmtp.conf
NVRAM_PREFIX = ssmtp_
PACKAGE_NAME = "echo $ NVRAM_PREFIX | sed" s / _ / / "
logger_func "Генериране на $ CONFIG_FILE за пакет $ PACKAGE_NAME"
#echo $ 0: генериране на $ CONFIG_FILE за пакет $ PACKAGE_NAME
echo "#! / bin / sh"> $ CONFIG_FILE
echo "#" >> $ CONFIG_FILE
echo "# автоматично генерирано на базата на nvram от $ 0" >> $ CONFIG_FILE
echo "#" >> $ CONFIG_FILE
ако [-z "'nvram show | grep ssmtp'"]
тогава
logger_func "Изглежда, че не сте задали NVRAM променливите, необходими за генериране на conf файла"
logger_func "** Помислете за ** използването на тези команди в стартовия скрипт:"
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 = ДА"
logger_func "nvram set ssmtp_AuthUser = потребителско име"
logger_func "nvram set ssmtp_AuthPass = парола"
logger_func "nvram set ssmtp_FromLineOverride = ДА"
logger_func "създава променливите NVRAM и отново стартира скрипта за първоначално зареждане или рестартира, за да се настроят настройките."
exit 0
Fi
################################################## #########
#
# основен цикъл
#
SED_COMMAND = "s / $ NVRAM_PREFIX / /"
CONFIG_VARS = "nvram show | grep $ NVRAM_PREFIX | sed" $ SED_COMMAND ""
за i в $ CONFIG_VARS; правя
echo $ i >> $ CONFIG_FILE
Свършен
################################################## #########
#
# проверка за здравност
#
ако [! -f "$ CONFIG_FILE"]; тогава
# echo "$ 0: ERROR - не може да създаде $ CONFIG_FILE. Може би няма symink / etc / XXXX -> / tmp / etc / XXXX?"
logger_func "ГРЕШКА - не може да създаде $ CONFIG_FILE. Може би няма symink / etc / XXXX -> / tmp / etc / XXXX?"
Fi
logger_func "########### Завърши init run SSMTP ###########"
Направи го изпълним:
chmod + x ./working_dir_mini1/rootfs/etc/init.d/S80ssmtp
Обърнете внимание на променливите чакащи NVRAM в скрипта, наша отговорност е да им дадем нещо, с което да работим, след като сме инсталирали модифицирания ни фърмуер на маршрутизатора.
Създайте модифицирания фърмуер
Сега, когато всичко е на мястото, е време да препакетираме модифицирания фърмуер в компресиран двоичен файл, който може да преминем към рутера.
Синтаксисът на скрипта "build.sh" е:
./build_firmware.sh OUTPUT_DIR WORKING_DIRECTORY
За да направите това, използваме предоставения скрипт, така че издайте:
./build_firmware.sh output_mini1 ./working_dir_mini1/
След като се извърши операцията "build", ще има няколко изображения на фърмуера, чакащи да бъдат използвани в директорията "output".
Вече може да преминете към файла, наречен "custom_image_00001-generic.bin", към вашия рутер, както обикновено сте с DD-WRT фърмуер..
Забележка: Не забравяйте да възстановите фабричните настройки по подразбиране преди, по време и веднага след флаш на фърмуера.
След стъпките на светкавицата
Тъй като направихме пакета SSMTP да търси променливи NVRAM, за да генерираме конфигурационния файл ssmtp, сега трябва да го предоставим с липсващата информация.
Ще постигнем това, като използваме функцията web-GUI “Run commands”.
Отидете в уеб-GUI -> “администрация” -> “команди” -> поставете в текстовото поле следното:
nvram задайте [email protected]
nvram задайте ssmtp_mailhub = smtp.gmail.com: 587
nvram задайте [email protected]
nvram set ssmtp_UseSTARTTLS = ДА
nvram задайте ssmtp_AuthUser = вашето-gmail-потребителско име (без @ gmail.com)
nvram зададе ssmtp_AuthPass = you-gmail-password
nvram зададен ssmtp_FromLineOverride = YES
nvram ангажимент
Заменете текста след знака равен (=) с действителната си информация, след което натиснете „Изпълни команди“.
Забележка: ако използвате редовен, не използващ TLS, smtp сървър, който да използвате, е 25 вместо 587.
Сега, когато SSMTP информацията е готова за употреба, ще трябва да извикате инициализиращия скрипт. Така че можете или да рестартирате рутера, или да го поставите в текстовото поле „Команди“:
/etc/init.d/S80ssmtp
След това натиснете отново “Run commands”.
Изходът от тази команда трябва да изглежда така:
Тест, който можете да изпратите по имейл
Поставете отново този текст в полето „Команди“ със следната команда с имейл адреса си:
echo "тестване на тигелен имейл 123 qwe" | ssmtp -vvv [email protected]
След това натиснете отново “Run commands”.
Тъй като използвахме опцията -vvv за допълнителна подробност, изходът на тази команда трябва да изглежда така:
Ако всичко вървеше добре, трябва да получавате тестовата електронна поща за секунди.
Надяваме се, че можете да използвате тази информация, за да накарате ограниченията на домашния рутер още по-далеч, отколкото сте смятали за възможно и сега наистина контролирате домашния си рутер и DD-WRT ...
Linux удължава живота, Linux разширява съзнанието… Linux е от жизненоважно значение за пакетното пътуване