Як за допомогою DD-WRT доповнити можливості бездротового маршрутизатора функціоналом Linux

  1. Підтримувані OEM-пристрої
  2. інсталяція
  3. Активація параметра Boot Wait для захисту від пошкодження пристрою
  4. Малюнок 1. Параметр Boot Wait повинен бути завжди в змозі Enable
  5. Відмінності між опціями Save, Apply Settings і Reboot Router
  6. Захищене спілкування з маршрутизатором
  7. Малюнок 2. Web-інтерфейс DD-WRT містить велику кількість інформації про конфігурацію та стан пристрою
  8. Малюнок 3. Відключення Telnet і активація SSH
  9. Малюнок 4. Копіювання відкритого SSH-ключа для аутентифікації на DD-WRT-пристрої
  10. команда nvram
  11. Створення другого розділу
  12. Поради по роботі з командним рядком
  13. Ресурси для скачування

Установка, захист і настройка прошивки DD-WRT для бездротових маршрутизаторів.

DD-WRT - це прошивка на основі Linux, яка здатна перетворити бездротового широкосмугового маршрутизатор споживчого класу (дешевше 70 доларів) в потужний центр мережі. DD-WRT реалізує для цих дешевих пристроїв всі можливості мережевого стека Linux: дротову і безпровідну маршрутизацію, міжмережеві екрани, QoS, DHCP-сервер і механізм перенаправлення пакетів, RADIUS-сервер, OpenVPN, VLAN, wake-on-LAN, режим повторювача WDS ( wireless distribution system), ігрову інфраструктуру KAI, шифрування WPA2, аутентифікацію і багато інших можливостей (див. розділ " ресурси "). DD-WRT також пропонує зручний призначений для користувача графічний інтерфейс для адміністрування і набір інструментів для командного рядка, можливості яких можна розширювати за допомогою сценаріїв.

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

Себастьян Готшаль (Sebastian Gottschall), також відомий як BrainSlayer, є основним автором прошивки DD-WRT, а також відповідає за її підтримку. Команда DD-WRT складається з основної групи розробників і співтовариства добровільних помічників (див. Розділ " ресурси "). DD-WRT є безкоштовною для некомерційного використання, в той час як комерційні користувачі повинні придбати ліцензію. Також команда DD-WRT пропонує опції професійних послуг, а на їхньому сайті можна придбати якісне апаратні компоненти, наприклад, від Ubiquiti і Senao. Додаткові пожертвування у вигляді фінансів або апаратного забезпечення, а також допомогу іншим користувачам на форумах також вітаються.

Підтримувані OEM-пристрої

Прошивка DD-WRT була спроектована для бездротових маршрутизаторів стандарту IEEE802.11a / b / g / h / n, заснованих на процесорах Atheros і Broadcom, наприклад, Linksys WRT54GL, який за заявою виробника підтримує DD-WRT. Важливою частиною проекту DD-WRT є списки пристроїв, підтримують дану технологію і несумісних з нею. Рекомендуємо використовувати ці списки щоб не витрачати даремно час на роботу з несумісним маршрутизатором (якщо тільки ви не хочете перевірити, чи підтримує дана модель DD-WRT, і потім поділиться цими відомостями з спільнотою).

Навіть мінімальна збірка DD-WRT для маршрутизаторів Broadcom, обладнаних всього 2 мегабайтами флеш-пам'яті, пропонує більше можливостей, ніж оригінальна прошивка від виробника. Для маршрутизаторів на основі Atheros потрібно як мінімум 4 МБ. Повну специфікацію пристрою можна знайти в базі даних, яка описує підтримувані пристрої.

Вам, можливо, і не доведеться встановлювати DD-WRT самостійно, так як все більше виробників починають постачати обладнання з вже встановленим DD-WRT. Компанії Buffalo, Netgear, ASUS, Linksys і Toplink вже пропонують маршрутизатори з уже инсталлированной прошивкою DD-WRT.

інсталяція

Процедура інсталяції залежить від конкретного маршрутизатора . Я використовувала маршрутизатор Cisco / Linksys WRT160NL. Це досить зручне невеликий пристрій з чотирма LAN-портами Ethernet, одним WAN-портом, 8 МБ флеш-пам'яті і 32 MB RAM, підтримкою технології MIMO і USB-портом для підключення зовнішніх пристроїв зберігання даних, так що його можна використовувати і в якості файлового або медіа-сервера.

Для всіх підтримуваних маршрутизаторів є докладні інструкції по установці. Необхідно точно дотримуватися цих інструкцій і уникати «імпровізацій», і тоді все повинно пройти добре. В процесі інсталяції періодично видаються попередження про те, що порушення цієї процедури може привести до повного виходу з ладу пристрою. Якщо ваш маршрутизатор все-таки «помре», то спробуйте відновити його способами, описаними в статті "Recover from a bad flash" в wiki DD-WRT (див. Посилання в розділі " ресурси "). Правда, можна настільки сильно зіпсувати програмне забезпечення, що його навіть не можна буде відновити з флеш-пам'яті.

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

Активація параметра Boot Wait для захисту від пошкодження пристрою

За замовчуванням для доступу до маршрутизатора використовується обліковий запис root / admin, а його IP-адреса встановлюється в 192.168.1.1, тому для запуску Web-інтерфейсу DD-WRT необхідно в Web-браузері на найближчому комп'ютері ввести URL-адресу http: //192.168 .1.1.

Перш ніж приступати до будь-яких дій, необхідно зайти на сторінку Administration (адміністрування)> Management (управління) і переконатися, що параметр Boot Wait включений, як показано на малюнку 1 .

Малюнок 1. Параметр Boot Wait повинен бути завжди в змозі Enable
Установка, захист і настройка прошивки DD-WRT для бездротових маршрутизаторів

Цей параметр за замовчуванням повинен бути включений, так як він забезпечує п'ятисекундних затримку при завантаженні пристрою. Тому якщо пристрій з якої-небудь причини не завантажується, то у вас буде п'ять секунд щоб заново завантажити прошивку з флеш-пам'яті. Ця дія забезпечує додатковий захист від виходу з ладу маршрутизатора.

Відмінності між опціями Save, Apply Settings і Reboot Router

На кожній сторінці з опціями для зміни конфігурації в Web-інтерфейсі внизу є кнопки Save (зберегти) і Apply Settings (застосувати настройки), а іноді ще й кнопка Reboot Router (перевантажити маршрутизатор). Кнопка Save зберігає ваші зміни, не застосовуючи їх, так що вони не будуть активовані до тих пір, поки маршрутизатор НЕ буде перезавантажений. Кнопка Apply Settings зберігає зміни і негайно застосовує їх, при необхідності перезапуску служби. Кнопка Reboot Router призначена для змін, що потребують перезавантаження, тому необхідно їх попередньо зберегти.

Захищене спілкування з маршрутизатором

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

Малюнок 2. Web-інтерфейс DD-WRT містить велику кількість інформації про конфігурацію та стан пристрою

За замовчуванням Web-інтерфейс використовує протокол HTTP, в якому інформація передається відкритим текстом, так що доступ до адміністративного інтерфейсу слід захистити, переключившись на протокол HTTPS на сторінці Administration (адміністрування)> Management (управління)> Web Access (Web-доступ). Натисніть на кнопку Apply Settings для негайного збереження і активації змін, а потім перезапустіть Web-браузер і відкрийте адресу https://192.168.1.1 (або інший IP-адреса, що використовується на вашому пристрої). У перший раз вам буде показано попередження про сертифікат Web-сайту, який був підтверджений NewMedia-NET GmbH. Підтвердіть справжність цього сертифіката, щоб Web-браузер зберіг його локально. У майбутньому ви зможете самі виступити в ролі органа, що сертифікує і згенерувати свій власний сертифікат, правда, це питання виходить за рамки даної статті.

Також адміністрування DD-WRT можна виконувати з командного рядка, що дає доступ до конфігураційним можливостям, які не підтримуються Web-інтерфейсом. Це також ще одна можливість для управління маршрутизатором, якщо Web-інтерфейс перестане працювати. За замовчуванням використовується протокол Telnet, а не SSH. Звернутися до маршрутизатора за протоколом Telnet можна наступним чином:

$ Telnet 192.168.1.1 DD-WRT login: root Password:

Як ім'я користувача завжди повинен використовувати root, в незалежності від того, яке ім'я користувача ви встановили раніше, а пароль повинен бути саме той, який був встановлений вами. Для виходу з telnet-сеансу необхідно ввести exit. Використання telnet допустимо на етапі знайомства з DD-WRT, але оскільки цей протокол не володіє ніякої захистом, необхідно відключити його і перейти на SSL, коли ви почнете використовувати маршрутизатор в робочому режимі. Для цього необхідно перейти на сторінку Services (служби)> Services в Web-інтерфейсі, як показано на малюнку 3 .

Малюнок 3. Відключення Telnet і активація SSH

Після натискання на кнопку Apply Settings ви зможете підключитися до DD-WRT вже через SSH. Як і раніше використовується ім'я користувача root і фактичний пароль.

$ Ssh [email protected] DD-WRT v24-sp2 std (c) 2010 NewMedia-NET GmbH Release: 08/07/10 (SVN revision: 14896) [email protected]'s password: ====== ================================================== == ____ ___ __ ______ _____ ____ _ _ | _ \ | _ \ \ \ / / _ \ _ _ | __ _ | ___ \ | || | || | || || ____ \ \ / \ / / | | _) || | \ \ / / __) | || | _ || _ | || _ || _____ \ VV / | _ <| | \ V / / __ / | __ _ | | ___ / | ___ / \ _ / \ _ / _ | \ _ \ | _ | \ _ / | _____ | | _ | DD-WRT v24-sp2 http://www.dd-wrt.com ================================= ========================= BusyBox v1.13.4 (2010-08-07 5:06:30 CEST) built-in shell (ash) Enter 'help' for a list of built-in commands.

Хочете домогтися ще більшої безпеки? Тоді налаштуйте вхід з використанням відкритого ключа та без використання пароля - це захистить від спроб злому перебором паролів і ніхто не зможе увійти в систему, не маючи копії закритого ключа. Спочатку потрібно створити зашифровану пару ключів, на Linux це можна зробити за допомогою команди ssh-keygen.

$ Ssh-keygen -t rsa -C router1 -f ~ / .ssh / linksys

У цьому прикладі створюється пара RSA-ключів з назвою linksys. Відкритий ключ називається linksys.pub, а закритий linksys і обидва зберігаються в каталозі ~ / .ssh, стандартному місці для зберігання SSH-ключів, хоча ви можете зберігати свої ключі і в іншому місці. Далі в файл / etc / ssh / ssh_config необхідно додати рядок для ідентифікації даних ключів.

IdentityFile ~ / .ssh / linksys

Параметр -C додає коментар всередину файлу з відкритим ключем, який насправді є звичайним текстовим файлом. Згодом з цього коментарю я при необхідності зможу ідентифікувати даний ключ. Тепер необхідно скопіювати створений відкритий ключ на DD-WRT пристрій, помістивши вміст файлу з ключем в текстове поле, яке знаходиться в розділі SSH на сторінці Services> Services і відключити вхід за допомогою пароля, як показано на малюнку 4 .

Малюнок 4. Копіювання відкритого SSH-ключа для аутентифікації на DD-WRT-пристрої

Залишається натиснути кнопку Save, а потім кнопку Reboot Router. Якщо у вас вже була відкрита SSH-сесія, то вона автоматично буде закрита, а при наступному вході в систему пароль вже перевірятися не буде. Якщо необхідно додати кілька ключів, то вони повинні бути розділені символом розриву рядків.

Ці ж дії можна виконати і з командного рядка, використовуючи команду nvram. Переконайтеся, що ваш відкритий ключ у вигляді єдиної рядки повністю знаходиться в одинарних лапках (в тілі ключа можуть зустрічатися прогалини, але не символи розриву рядків).

root @ linksys: ~ # nvram set sshd_authorized_keys = 'ssh-rsa AAAAB3NzaC ... 89Suj router1' root @ linksys: ~ # nvram commit root @ linksys: ~ # reboot

При використанні nvram також можна встановити кілька ключів, помістивши окремі ключі в лапки і розділивши їх пробілами.

root @ linksys: ~ # nvram set sshd_authorized_keys = 'key1' 'key2' 'key3' root @ linksys: ~ # nvram commit

Бажано спочатку ввести необхідний текст в текстовому редакторі, щоб переконатися, що в ньому немає помилок, а потім цілком скопіювати його і вставити в командний рядок.

команда nvram

Термін nvram має кілька значень. По-перше, це скорочення від non-volatile RAM, спеціального типу незалежній пам'яті, що зберігає дані при відключенні харчування. Флеш-пам'ять, яка використовується в маршрутизаторі, як раз відноситься до типу nvram. Команда nvram використовується для управління настройками апаратного забезпечення, які зберігаються в останньому блоці флеш-пам'яті. Цей сегмент пам'яті часто також називається nvram. Різні версії команди nvram враховують специфіку продуктів IBM, CISCO, Oracle і Apple. Версія команди nvram, використовуваної DD-WRT може тільки виводити і змінювати значення, присвоєні змінним, а також видаляти змінні. Якщо запустити її без вказівки опцій, то будуть виведені можливі опції і приклад синтаксису використання.

root @ linksys: ~ # nvram usage: nvram [get name] [set name = value] [unset name] [show]

Команда nvram з параметром show виводить всі доступні налаштування вашого маршрутизатора. Ви можете використовувати команду less, щоб розділити наявну інформацію і виводити її посторінково.

root @ linksys: ~ # nvram show | less

Або знайти певну змінну за допомогою утиліти grep, як показано нижче.

root @ linksys: ~ # nvram show | grep ssh

Порада: якщо ви випадково вимкніть Web-інтерфейс, але збережете можливість підключення через telnet або SSH, то Web-інтерфейс можна включити в такий спосіб.

root @ linksys: ~ # nvram set http_enable = 1 root @ linksys: ~ # nvram commit root @ linksys: ~ # reboot

Ця зміна буде застосовано після перезавантаження. Значення параметра boot_wait не можна змінити через GUI, але за допомогою nvram це можливо. Спочатку необхідно дізнатися поточне значення даного параметра.

root @ linksys: / etc # nvram show | grep wait boot_wait = on wait_time = 5

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

root @ linksys: / etc # nvram set wait_time = 10 root @ linksys: ~ # nvram commit

Стерти вже встановлене значення змінної також дуже просто.

root @ linksys: ~ # nvram set http_enable = "" root @ linksys: ~ # nvram commit

Якщо ви не хочете, щоб якась зміна можна було скасувати, перезагрузив маршрутизатор, то просто не користуйтеся командою nvram commit. Це хороший прийом, який дозволяє проводити експерименти, так як досить просто перевантажити маршрутизатор, щоб повернутися до попереднього стану.

Команда nvram unset [variable] повністю видаляє вказану змінну. На ресурсі OpenWrt Wiki можна знайти хороший опис команди nvram (див. Розділ " ресурси ").

Останнім шансом на виправлення зіпсованої конфігурації може стати скидання всіх налаштувань маршрутизатора в значення за замовчуванням, встановлені в прошивці. Для цього необхідно натиснути кнопку скидання (reset) на маршрутизаторі і утримувати її протягом 30 секунд, а потім перевантажити пристрій. Після цього будуть відновлені значення за замовчуванням DD-WRT, а не оригінальною прошивки пристрою, як помилково припускають деякі користувачі.

Створення другого розділу

Стандартний образ DD-WRT займає розділ розміром в 4 МБ, навіть якщо розмір флеш-пам'яті дорівнює 8 МБ або більше. Тому на даному невживаному просторі можна створити розділ і використовувати його для зберігання файлів. Цей розділ повинен використовуватися в основному для зчитування інформації, наприклад, активності бездротової точки доступу, сторінок з конфігурацією і Web-сторінок, додаткових конфігураційних файлів, а також для зберігання ipkg (Itsy Package Management System - система управління пакетами, призначена для вбудованих пристроїв). Не варто використовувати цю область для зберігання файлів, в які буде вестися інтенсивна запис інформації, наприклад, журнальних файлів, так як флеш-пам'ять підтримує тільки певну кількість циклів запису і тому може раптово відмовити. Хоча сучасна флеш-пам'ять досить надійна, але все ж кількість можливих циклів запису для неї обмежена. Інформацію про поточну файлової системи можна отримати за допомогою відомої команди df:

root @ linksys: / # df -h Filesystem Size Used Available Use% Mounted on / dev / root 4.0M 4.0M 0 100% /

У моєму маршрутизаторі є 8МБ флеш-пам'яті, але, як ми бачимо, з них використовується тільки 4 МБ, хоча інші 4 МБ можна також використовувати. Для цього в Web-інтерфейсі необхідно відкрити Web-сторінку Administration (адміністрування)> Management (управління) і вибрати опції JFFS2> Enable (включити) і Clean JFFS2 (очистити JFFS2)> Enable. Після цього необхідно клацнути кнопки Apply Settings і Reboot Router. Після перезагрудкі маршрутизатора висновок команди df повинен виглядати, як показано нижче.

root @ linksys: ~ # df -h Filesystem Size Used Available Use% Mounted on / dev / root 4.0M 4.0M 0 100% / / dev / mtdblock / 3 2.3M 196.0K 2.1M 9% / jffs

JFFS2 - це журнальована файлова система для флеш-пам'яті (Journalling Flash File System version 2), спроектована для пристроїв зберігання даних на основі флеш-пам'яті. Необхідно зробити невеличкий відступ і розповісти, що таке флеш-пам'ять. Це спеціальний пристрій, зване MTD (Memory Technology Device). MTD - це не блоковий пристрій, на відміну від жорстких дисків або USB-накопичувачів, але і не символьне пристрій, як клавіатура або миша. Блокові пристрої побудовані на основі секторів фіксованого розміру, наприклад 512 або 1024 байта. У MTD-пристроях використовуються спеціальні "прані" блоки (eraseblock) розміром 128 КБ або більше. Блокові пристрої вміють робити дві речі: зчитувати і записувати сектора. MTD-пристрої мають більші можливості: вони можуть зчитувати, записувати і «прати» блоки.

Карти пам'яті Compact Flash і SD, USB-флешки на найнижчому рівні також є MTD-пристроями. Але для операційної системи вони виглядають як блокові пристрої, так як вони використовують технологію FTL (Flash Translation Layers - поуровневого перетворення флеш-пам'яті), яка емулює поведінку блочного пристрою поверх апаратної флеш-пам'яті. Технологія FTL може застосовуватися в комп'ютері або в самому пристрої, в прошивці його контролера. Якщо ви спробуєте розібрати USB-накопичувач, то, швидше за все, виявите в ньому кілька NAND-чипів, які і є флеш-пам'яттю, і мікроконтролер.

Для успішної роботи з DD-WRT бажано знати кілька особливо Функціонування флеш-пам'яті. По-перше, стіраються блоки NAND є «атомарний», тобто весь вміст блоку має бути стерто, перш ніж туди можна буде записати нові дані. По-друге, в Linux є підсистема MTD і команда mtd, що дозволяють виконувати основні завдання, наприклад, запис образу на пристрій або його очищення. Щоб отримати інформацію про синтаксис і опціях команди mtd, її можна запустити на DD-WRT-пристрої без вказівки параметрів. В DD-WRT WiKi також можна знайти інформацію та інструкції по роботі з mtd. По-третє, команда nvram розташовується в самому останньому блоці і її розмір програмно обмежений 32 КБ, в незалежності від того який реальний розмір блоку.

Поради по роботі з командним рядком

Ці поради допоможуть освоїти можливості DD-WRT:

  • DD-WRT побудована на основі BusyBox, широко відомого набору інструментів Linux для вбудованих пристроїв. У BusyBox містяться "урізані" версії основних утиліт Linux. Для економії простору в BusyBox відсутні сторінки довідника man, але дізнатися про командах BusyBox, також званих апплетами, можна c допомогою команди man busybox (див. Розділ " ресурси "). Можна запустити команду ls -l / bin (або / sbin або / usr / bin) для перегляду вмісту каталогів, що містять виконувані файли, щоб дізнатися які команди будуть доступні в BusyBox по відомим символьних посилань.
  • В DD-WRT використовується оболонка ash, що поставляється з BusyBox. Список команд, вбудованих в оболонку, можна вивести за допомогою команди builtin.
  • Також як і на великих Linux-системах, ви можете зчитувати інформацію з файлових систем / proc та / sys, щоб дізнатися більше про апаратне забезпечення, а конфігураційну інформацію можна знайти в файлової системі / etc.

Ресурси для скачування

Схожі тими

Підпішіть мене на ПОВІДОМЛЕННЯ до коментарів

Хочете домогтися ще більшої безпеки?