Домашня » як » Відкрийте ще більше потужності від вашого домашнього маршрутизатора за допомогою модуля 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 від встановлення пакунків, що для маршрутизаторів з лише 4 Мб спалаху - справжня проблема.

    Малюнок громадськоїенергії

    Цілі

    Хоча інструкції для цієї процедури деталізовані на вікі DD-WRT і на сайті розробника, ми прагнемо зробити це керівництво процедурою копіювання та вставки, яку кожен може використовувати для досягнення наступних цілей:

    • Встановіть пакет knockd та його залежності.
    • Встановіть пакет 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 flex бізон зробити gettext розпакувати zlib1g-dev libc6 subversion

    Завантажте модуль

    Створіть підпапку і отримайте комплект з офіційного SVN:

    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-тільки для читання / 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

    Встановіть ipk "ssmtp" у прошивку:

    ./ipkg_install.sh ssmtp_2.61-1_mipsel.ipk ./working_dir_mini1/

    Підтримка TLS (необов'язково)
    SSMTP не перелічує будь-які інші пакети як свої залежності, однак, якщо ви хочете мати можливість використовувати шлюз smtp, який вимагає аутентифікації TLS (тобто. Gmail), вам також слід встановити пакунок openSSL.
    Примітка: Є ВЕЛИЧЕЗНИЙ недолік зробити це у вигляді значно скороченого простору на маршрутизаторі для JFFS пізніше. Тобто пакет openSSL займає близько 500 КБ простору від вашого загального 4 МБ (для нормального, не "мега" підтримуючого маршрутизатора), що складається з того, що 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 прошивки), і сам дійшов висновку (незалежно, якщо я можу смиренно додати), що єдиним розумним способом зробити це було б:

    1. Зробіть розташування файлів конфігурації, на яких вказано пакунок ssmtp, на розташування, доступне лише для читання, вкажіть на каталог tmp, який можна записати під час виконання.
    2. Створіть скрипт, який буде динамічно генерувати конфігурації на основі змінних NVRAM при запуску.

    Для цього потрібно виконати додаткові кроки ...

    Символічне посилання на конфігурацію ssmtp
    Як пояснювалося вище, ми повинні зробити / etc / 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 та системою.

    Створіть новий початковий скрипт:

    vi ./working_dir_mini1/rootfs/etc/init.d/S80ssmtp

    Примітка: Ви можете використовувати інший редактор, я використовую vi, оскільки він відповідає тому, що доступно на маршрутизаторі…
    Зробіть це його змістом:

    #! / bin / sh
    #
    # title: ssmtp_nvram.sh
    # автор: Джеремі Коллаке та Авіад Равів
    # site: http://www.bitsum.com, http://howtogeek.com
    #
    # Сценарій для створення файлу конфігурації з nvram vars.
    # буде працювати для будь-якого конфігураційного файлу, який використовується
    # var = значення типу пар.
    #
    # використовує префікси для змінних nvram.
    #
    # i.
    # 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 /
    CONFIG_FILE = / etc / 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

    if [-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. Можливо, немає симік / etc / XXXX -> / tmp / etc / XXXX?"
    logger_func "ПОМИЛКА - не вдалося створити $ CONFIG_FILE. Можливо, немає симік / etc / XXXX -> / tmp / etc / XXXX?"
    fi
    logger_func "########### Завершив початковий запуск 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/

    Після завершення операції «збирання» буде декілька зображень прошивки, які очікують використання в каталозі «output».

    Тепер ви можете спалахнути файл, який називається "custom_image_00001-generic.bin", на ваш маршрутизатор, як це було б за допомогою програмного забезпечення DD-WRT..

    Примітка: Не забудьте відновити заводські налаштування до, під час і відразу після спалаху прошивки.

    Повідомлення про спалах

    Оскільки ми створили пакет SSMTP для пошуку змінних NVRAM, щоб генерувати файл конфігурації ssmtp, тепер нам потрібно надати йому відсутні дані.
    Ми зробимо це за допомогою функції web-GUI «Виконати команди».

    Перейдіть до веб-графічного інтерфейсу -> "адміністрування" -> "команди" -> вставте в текстове поле наступне:

    nvram встановлено [email protected]
    nvram встановлено ssmtp_mailhub = smtp.gmail.com: 587
    nvram встановлено [email protected]
    nvram встановлено ssmtp_UseSTARTTLS = YES
    nvram встановлено ssmtp_AuthUser = ваше-gmail-ім'я користувача (без @ gmail.com)
    nvram встановив ssmtp_AuthPass = ви-gmail-пароль
    nvram встановлено ssmtp_FromLineOverride = YES
    nvram фіксувати

    Замініть текст після знаку рівного (=), фактичною інформацією, а потім натисніть "Виконати команди".
    Примітка: якщо ви використовуєте звичайний, не використовуючи TLS, smtp сервер, який використовуватиме порт, замість 587.

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

    /etc/init.d/S80ssmtp

    Потім знову натисніть "Виконати команди".
    Вихід цієї команди має виглядати так:

    Тест, який ви можете надіслати електронною поштою
    Знову вставте це у поле "команди" наступну команду зі своєю адресою електронної пошти:

    echo "тестування тигельної електронної пошти 123 qwe" | ssmtp -vvv [email protected]

    Потім знову натисніть "Виконати команди".
    Оскільки ми використовували опцію -vvv для додаткової деталізації, вихід цієї команди повинен виглядати так:

    Якщо все пройшло добре, ви повинні отримати тестовий лист протягом декількох секунд.

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


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