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

Съдържание:

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

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

Видео: Разгръщане на още повече мощност от вашия домашен маршрутизатор с DD-WRT Mod-Kit
Видео: Peter Watts: Conscious Ants and Human Hives - YouTube 2024, Може
Anonim
 Вече ви показахме как да модифицирате домашния си маршрутизатор с алтернативния фърмуер на DD-WRT за значително подобрена производителност и днес ще ви покажем как да го вземете още повече с 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).

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

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

    Image
    Image

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

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

    Настройвам

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

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

    sudo aptitude install gcc g++ binutils patch bzip2 flex bison make gettext unzip zlib1g-dev libc6 subversion

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

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

    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/

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

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

    След като сте решили дадена версия, препоръчително е да използвате най-новата версия на наличния фърмуер, тъй като има тенденция да има много корекции на грешки в сравнение със своите "стабилни" партньори. По времето на това писане последното беше "03-17-11-r16454" и тази редакция се използва в следващите команди.

    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

    За да улесним проследяването на версията, която използваме, преименувайте изтегления файл, за да представите номера на версията му:

    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 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

    Инсталирайте "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 https://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 https://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, защото е в съответствие с това, което е на разположение на рутера … Направете това съдържание:

    #!/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###########'

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

    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 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

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

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

    /etc/init.d/S80ssmtp

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

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

    echo 'testing crucible emailing 123 qwe' | ssmtp -vvv [email protected]

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

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

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

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

Препоръчано: