If-Koubou

Разгръщане на още повече мощност от вашия домашен маршрутизатор с DD-WRT Mod-Kit

Разгръщане на още повече мощност от вашия домашен маршрутизатор с DD-WRT Mod-Kit (Как да)


Вече ви показахме как да модифицирате домашния си маршрутизатор с алтернативния фърмуер на DD-WRT за значително подобрена производителност и днес ще ви покажем как да го вземете още повече с DD-WRT Mod-Kit.

Ако все още не сте, не забравяйте и проверете двата предходни статии в серията:

  • Превърнете домашния ви маршрутизатор в супер-захранван маршрутизатор с DD-WRT
  • Как да увеличите сигнала си за Wi-Fi мрежа и да увеличите обхвата си с DD-WRT

Ако приемете, че сте запознати с тези теми, продължавайте да четете. Имайте предвид, че това ръководство е малко по-технически и начинаещите трябва да внимават, когато модифицират маршрутизатора си.

Преглед

Това ръководство ще даде стъпка по стъпка информация как да създадете свой собствен фърмуер DD-WRT с модификации и допълнения, използвайки "комплекта за модифициране на фърмуера".

Комплектът за модифициране на фърмуера позволява да се правят промени във фърмуера, без да се компилира от източника. Извършването на промени по този начин, с помощта на предоставените скриптове, става просто въпрос на изтегляне, замяна и изтриване на някои файлове.

Най-преобладаващата причина за използването на този метод е, че напоследък подкрепата на DD-WRT за OpenWrt IPKG пакетите се е насочила към маршрутизатори, които имат твърди дискове (чрез USB), което прави модния комплект единственият последователно работещ начин за успешно инсталиране на IPKG пакетите за случаите, когато HD не е налице. Освен това, този метод има допълнителното предимство да ви освободи от зависимостта от JFFS за инсталиране на пакети, което за рутери с само 4MB светкавица е истински проблем.

Снимка от publicenergy

Цели

Докато инструкциите за тази процедура са подробно описани в уикита на DD-WRT и на сайта на програмиста, ние се стремим да направим това ръководство процедура за копиране и поставяне, която всеки може да използва, за да постигне следните цели:

  • Инсталирайте нокаутирания пакет и неговите зависимости.
  • Инсталирайте пакета ssmtp с генерирани от NVRAM конфигурации.
    • По желание с поддръжка на TLS smtp (също така поддръжка на Gmail).

След като сте следвали тази процедура, трябва да бъде относително лесно да я адаптирате за други инсталации на пакети.

Внимание: Прокарайте леко ... имайте предвид, че неправилното използване на комплекта за модифициране може да ви остави с рутер, който се нуждае от размазване (като на свой ред, в безполезна тухла). Но ако сте истински магьосник, вероятно се абонирате за идеологията, която, който може да унищожи нещо, контролира нещо и само истинските джуджета правят това

Предварителни

  1. Използването на тази процедура може тухла маршрутизатора, както и в маршрутизатора неизползваем, ние не поемаме никаква отговорност за щети, които могат да бъдат причинени пряко или по друг начин, поради използването на процедурите по-долу.
  2. Тази процедура бе извършена на базирани на Debian системи (Lenny, Squeeze и Mint), а инструкциите по-долу предполагат, че използвате една също.
  3. Тази процедура се препоръчва само за хора, които имат опит с мигането на маршрутизатора си с DD-WRT, с всички предпоставки, предупреждения и ограничения, които се прилагат при настройката на хардуера. добро място за начало ще бъде нашият маршрутизатор за вашия дом в супер-захранващ маршрутизатор с DD-WRT ръководство.
  4. Вашият маршрутизатор трябва да поддържа поне "мини" версията на DD-WRT.
  5. Тази процедура е създадена и тествана на маршрутизатори Linksys WRT54GS / L, ако използвате маршрутизатори от други доставчици, вашият километраж може много.

Настройвам

Инсталиране на необходимите пакети

Комплектът за модифициране на фърмуера има някои зависимости, за да може да се компилира и работи. За да ги инсталирате / актуализирате едновременно Издайте тази команда в терминал:

sudo aptitude инсталирате gcc g ++ binutils кръпка bzip2 гъвкава бизони make gettext unzip zlib1g-dev libc6 подмяна

Изтеглете модния комплект

Създайте под-папка и получете комплекта от официалния SVN:

mkdir firmware_mod_kit
cd firmware_mod_kit
svn checkout http://firmware-mod-kit.googlecode.com/svn/trunk/ firmware-mod-kit-само за четене
cd firmware-mod-kit-само за четене / багажника /

Изтеглете фърмуера, на който да работите

Първото нещо, което трябва да имате предвид, е коя версия искате да използвате?
Едно правило е: при съмнение използвайте "мини". Това е така, защото толкова дълго, колкото вашият маршрутизатор поддържа поне "мини" версията, използването му ви дава всички най-често използваните функции без никакъв шум. като по този начин оставя пространство за процедурите и дори някои 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

Забележка: Първият път, когато стартирате тази команда, тя изгражда модифицираните инструменти на вашата система. това се случва само веднъж и може да отнеме известно време ... така че бъдете търпеливи ...

Инсталиране на пакети

След като изтеглим фърмуера, можем да инсталираме пакетите.
По принцип процедурата е да изтеглите пакета и неговите зависимости под формата на 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

Инсталирайте "knockd" ipk във фърмуера:

./ipkg_install.sh knockd_0.5-1_mipsel.ipk ./working_dir_mini1/

Инсталирайте "capture packet" (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 pakage.
Забележка: Има огромен недостатък да направи това под формата на значително намалено пространство в рутера за JFFS по-късно. Това означава, че пакетът openSSL отнема около 500 К от общото ви количество от 4 мегабайта (за нормален "мега" поддържащ маршрутизатор), комбинирано с това, което е натоварено с JFFS и ще откриете, че вашият ляв, но скъпоценни, свободно пространство JFFS (около 60KB на WRT54GL).

Тъй като все още няма TLS, изискващи SMTP сървъри там (обикновено ISP's), предлагам да отделите минута, за да помислите дали наистина трябва да използвате 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 пакета, че не е възможно да се извика с алтернативен конфигурационен файл.
Тъй като фърмуерът е само за четене, когато е в рутера, това означава, че извън кутията можем само да дефинираме конфигурацията във фърмуера.
Но какво ще стане, ако не искаме да минем през всички стъпки за промяна на фърмуера, само за да променим настройките за имейл? (например промяна на паролата).

За тази цел и Джереми (създателят на модния комплект фърмуер) и аз постигнахме заключение (независимо дали мога да добавям скромно), че единственият разумен начин да направите това е:

  1. Направете местоположението на конфигурационните файлове, които пакетът ssmtp сочи към местоположението само за четене под и т.н., посочете директорията tmp, която може да се записва по време на изпълнение.
  2. Създайте скрипт, който динамично генерира конфигурации, базирани на променливи 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
# автор: Джеръми Колак и Авиад Равив
# сайт: http://www.bitsum.com, http://howtogeek.com
#
# скрипт за изграждане на конфиг файл от nvram vars.
# ще работи за всеки конфиг файл, който използва
# var = двойки тип стойност.
#
# използва префикси за nvram променливи.
#
т.е.
# ssmtp_hostname = нещо
# се превежда на ssmtp.conf
# hostname = нещо
#
logger_func ()

логер-s -p local0.notice -t SSMTP_init $ 1

logger_func "########### Стартира SSMTP init run ###########"
logger_func "Създаване на директорията и т.н в / 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 показват | grep ssmtp" "]
тогава
logger_func "Изглежда, че не сте задали променливите NVRAM, необходими за генериране на конфигурационния файл"
logger_func "** Обмислете ** използването на тези команди в стартовия скрипт:"
logger_func "nvram задайте [email protected]"
logger_func "nvram зададен ssmtp_mailhub = smtp.gmail.com: 587"
logger_func "nvram задайте [email protected]"
logger_func "nvram зададен ssmtp_UseSTARTTLS = YES"
logger_func "nvram set ssmtp_AuthUser = потребителско име"
logger_func "nvram set ssmtp_AuthPass = парола"
logger_func "nvram зададен ssmtp_FromLineOverride = YES"
logger_func "създава променливи на NVRAM и повторно стартиране на скрипта за начално въвеждане или рестартиране, за да се повлияят настройките."
изход 0
Fi

###########################################################
#
# main loop
#
SED_COMMAND = "s / $ NVRAM_PREFIX / /"
CONFIG_VARS = "nvram покажи | grep $ NVRAM_PREFIX | sed" $ SED_COMMAND ""
за i в $ CONFIG_VARS; правя
echo $ i >> $ CONFIG_FILE
Свършен

###########################################################
#
# проверка на здравословното състояние
#
ако [! -f "$ CONFIG_FILE"]; тогава
# echo "$ 0: ГРЕШКА - не може да се създаде $ CONFIG_FILE. Може би няма symink / etc / XXXX -> / tmp / etc / XXXX?"
logger_func "ГРЕШКА - не можа да се създаде $ CONFIG_FILE. Може би няма symink / etc / XXXX -> / tmp / etc / XXXX?"
Fi
logger_func "########### Завърши стартирането на SSMTP init ###########"

Направете го изпълним:

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, сега трябва да го предоставим с липсващата информация.
Ще постигнем това, като използваме функцията "Управление на команди" в уеб-GUI.

Отидете в уеб-GUI -> "администрация" -> "команди" -> поставете в текстовото поле следното:

nvram задайте [email protected]
Настройка на nvram ssmtp_mailhub = smtp.gmail.com: 587
nvram задайте [email protected]
Настройка на nvram ssmtp_UseSTARTTLS = YES
nvram set ssmtp_AuthUser = вашето име за потребител (без @ gmail.com)
nvram задайте ssmtp_AuthPass = ти-gmail-парола
Настройка на nvram ssmtp_FromLineOverride = YES
nvram commit

Заменете текста след равен (=) знак, с вашата актуална информация, и след това натиснете "Run commands".
Забележка: ако използвате редовно, без TLS използване, SMTP сървър, който да използвате, е 25 вместо 587.

Сега, когато информацията за SSMTP е готова за употреба, ще трябва да извикате скрипта за начало. Така че можете да рестартирате рутера или да го поставите в текстовото поле "команди":

/etc/init.d/S80ssmtp

След това натиснете "Run commands" отново.
Резултатът от тази команда трябва да изглежда така:

Тествайте, че можете да изпратите имейл
Заредете отново в текстовото поле "команди" следната команда с вашия имейл адрес:

ехо "за тестване на тигела с имейл 123 qwe" | ssmtp -vvv [email protected]

След това натиснете "Run commands" отново.
Тъй като ние използвахме опцията -vvv за допълнителна словесност, изходът от тази команда трябва да изглежда така:

Ако всичко върви добре, трябва да получите тестовия имейл в рамките на секунди.

Надяваме се, че можете да използвате тази информация, за да прокарате границите на вашия домашен рутер още повече, след като си мислите, че е възможно и сега наистина контролирате домашния си маршрутизатор и DD-WRT ...

Linux разширява живота, Linux разширява съзнанието ... Linux е жизненоважен за пакетно пътуване