Выпустить еще больше мощности от вашего домашнего маршрутизатора с помощью DD-WRT Mod-Kit

Оглавление:

Выпустить еще больше мощности от вашего домашнего маршрутизатора с помощью DD-WRT Mod-Kit
Выпустить еще больше мощности от вашего домашнего маршрутизатора с помощью DD-WRT Mod-Kit

Видео: Выпустить еще больше мощности от вашего домашнего маршрутизатора с помощью DD-WRT Mod-Kit

Видео: Выпустить еще больше мощности от вашего домашнего маршрутизатора с помощью DD-WRT Mod-Kit
Видео: ОБЗОР СПЛИТ СИСТЕМ VICKERS VC 07HE/09HE/12HE - САМАЯ БЮДЖЕТНАЯ СПЛИТ-СИСТЕМА В 2022 ГОДУ? - 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 для пакетов IPKG Openwrt сместилась в сторону маршрутизаторов с жесткими дисками (через USB), что делает модульный комплект единственным постоянно работающим способом установки пакетов IPKG для случаев, когда HD недоступен. Кроме того, этот метод имеет дополнительное преимущество, избавляя вас от зависимости JFFS для установки пакетов, что для маршрутизаторов с только 4 МБ флэш-памяти является реальной проблемой.

Изображение пользователя publicenergy

цели

Хотя инструкции для этой процедуры подробно описаны в вики DD-WRT и на сайте разработчика, мы стремимся сделать это руководство процедурой копирования и вставки, которую любой может использовать для достижения следующих целей:

  • Установите пакет knockd и его зависимости.
  • Установите пакет ssmtp с созданной конфигурацией на основе NVRAM.

    Опционально поддерживается поддержка TLS smtp (поддержка a.k.a. Gmail).

    После того, как вы выполните эту процедуру, должно быть уместно просто адаптировать ее для других установок пакетов.

    Предупреждение: Протектор слегка … помните, что неправильное использование набора модификаций может оставить вас с маршрутизатором, который нуждается в де-кирпиче (как в свою очередь, в бесполезный кирпич). Однако, если вы истинный выродка, вы, вероятно, соглашаетесь с идеологией, что тот, кто может уничтожить вещь, контролирует вещь, и только настоящие вундеркинды делают это

    Image
    Image

    Предпосылки

    1. Использование этой процедуры может кирпич ваш маршрутизатор, как в вашем маршрутизаторе непригодным для использования, мы не несем ответственности за любые убытки, которые могут быть вызваны напрямую или иным образом из-за использования нижеприведенных процедур.
    2. Эта процедура была выполнена в системах на базе Debian (Lenny, Squeeze и Mint), а приведенные ниже инструкции предполагают, что вы используете их также.
    3. Эта процедура рекомендуется только тем людям, которые имеют опыт работы с миганием своего маршрутизатора с помощью DD-WRT, со всеми предпосылками, предостережениями и ограничениями, которые применяются для их аппаратной настройки. хорошим местом для начала будет наш Turn Your Home Router в супермощный маршрутизатор с руководством 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

    Загрузите mod-kit

    Создайте подпапку и получите комплект из официального 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/

    Установите «пакетный захват» (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 (около 60 КБ на WRT54GL).

    Поскольку все еще нет TLS, требующих SMTP-серверов (обычно у ваших интернет-провайдеров), я предлагаю подумать, действительно ли вам нужно использовать 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 при запуске.

    Для этого необходимы некоторые дополнительные шаги …

    Symlink - каталог конфигурации 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-отчетами.

    Создайте новый скрипт init (startup):

    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 -> «администрирование» -> «команды» -> вставьте в текстовое поле следующее:

    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

    Замените текст после знака равенства (=) с вашей фактической информацией, а затем нажмите «Команды запуска». Заметка: если вы используете обычный, не используемый TLS, smtp-сервер, то для порта используется 25 вместо 587.

    Теперь, когда информация SSMTP готова к использованию, вам нужно будет вызвать скрипт init. Таким образом, вы можете либо перезагрузить маршрутизатор, либо вставить его в текстовое поле «команды»:

    /etc/init.d/S80ssmtp

    Затем снова нажмите «Запустить команды». Результат этой команды должен выглядеть так:

    Проверьте, что вы можете отправлять электронную почту Снова вставьте в текстовое поле «команды» следующую команду с адресом электронной почты:
    Проверьте, что вы можете отправлять электронную почту Снова вставьте в текстовое поле «команды» следующую команду с адресом электронной почты:

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

    Затем снова нажмите «Запустить команды». Поскольку мы использовали опцию -vvv для дополнительной многословности, вывод этой команды должен выглядеть так:

    Если все пойдет хорошо, вы должны получить тестовую электронную почту в течение нескольких секунд.
    Если все пойдет хорошо, вы должны получить тестовую электронную почту в течение нескольких секунд.

    Мы надеемся, что вы сможете использовать эту информацию, чтобы продвигать ограничения своего домашнего маршрутизатора еще больше, чем считалось возможным, и теперь вы действительно контролируете свой домашний маршрутизатор и DD-WRT …

    Linux расширяет жизнь, Linux расширяет сознание … Linux очень важен для пакетного перемещения

Рекомендуемые: