Прошивка dd-wrt. Идеальные настройки роутера: устанавливаем альтернативную прошивку DD-WRT

Свободная альтернативная прошивка DD-WRT для роутеров поможет превратить даже бюджетный маршрутизатор в настоящего аса с богатыми функциональными возможностями, причем совершенно бесплатно. Она также позволит изменить настройки мощности сигнала Wi-Fi и использовать новые протоколы безопасности. Кроме того, в отличие от стандартных прошивок, роутеры под управлением DD-WRT могут выступать не только как VPN-клиенты, но и как серверы. Единственный минус: не всегда понятно, какие настройки нужно активировать, поэтому мы расскажем о самых основных параметрах.

Начальные настройки

Суперпрошивка устанавливается на маршрутизатор так же, как и обычное обновление прошивки. Установочный файл нужно скачать на сайте dd-wrt.com в разделе «Router Database», выбрав свою модель роутера. Если захотите когда-нибудь вернуться к оригинальной прошивке, вам понадобится файл прошивки от производителя устройства. Чтобы установить DD-WRT на свой роутер, обычно диалогом обновления, предоставляемым оригинальной прошивкой. После перезагрузки войдите в веб-интерфейс (192.168.1.1), введя логин «root» и пароль «admin».

Конфигурация сетевых подключений

Когда откроется интерфейс DD-WRT, вам будет предложено задать новый пароль и имя пользователя для доступа к маршрутизатору - все как в обычной прошивке, за исключением того, что некоторые модели роутеров не предполагают смену имени пользователя. Вместе с тем, изменение стандартного имени пользователя повышает уровень безопасности. Логин и пароль затем можно будет изменить в разделе «Administration | Management | Router Password».


Далее на вкладке «Administration | Management» вы можете переключить стандартный язык с английского на русский: прокрутите страницу до нижней трети, в «Language Selection» выберите «Russian» и сохраните настройки, нажав «Save» в самом низу страницы. Соединение WAN (Wide Area Network), обеспечивающее доступ к Интернету, маршрутизатор обычно устанавливает сам. Но на всякий случай до обновления прошивки зайдите в соответствующий раздел веб-интерфейса роутера и запишите старые настройки.

Проблема может возникнуть только в том случае, если для соединения WAN вы используете другой модемный маршрутизатор, то есть подключение к Интернету происходит не прямо с устройства с прошивкой DD-WRT. Заключается она в том, что в пределах диапазона IP-адресов локальной сети может возникнуть конфликт адресов, когда IP-адрес одного из пользователей сети повторяет уже существующий.

В таком случае в меню «Setup | Basic Setup | WAN Connection Type» нужно прописать для маршрутизатора DD-WRT статический IP-адрес. Для этого нужно изменить последнюю часть заданного IP-адреса, прибавив к числу единицу. Не забывайте сохранять каждое изменение нажатием «Save» и в заключение нажать кнопку «Apply».


Оптимальная настройка беспроводной сети

За установлением соединения WAN следует очередь WLAN. DD-WRT позволяет разворачивать не просто беспроводную домашнюю сеть. Можно, например, создавать отдельные сети для гостей, для мультимедийных устройств или для чего-нибудь другого. Преимущества такого подхода заключаются в том, что устройства, попадающие в сферу Интернета вещей и наиболее подверженные риску взлома, будут работать в своей сети, из которой доступа к остальным домашним сетям не будет. Потом можно будет задать приоритет отдельно взятых сетей по пропускной способности (см. далее раздел «Оптимизация производительности»).

В первую очередь нужно настроить параметры физических беспроводных сетей. Для маршрутизаторов с поддержкой современного стандарта 802.11ac их три: по одной для полос 2,4 ГГц и 5 ГГц и комбинированная сеть Dualband для 2,4 и 5 ГГц. Для этих сетей в меню «Wireless | Basic Settings | Wireless Network Name» нужно задать одно имя - таким образом обеспечивается оптимальное подключение всех домашних уст­ройств к маршрутизатору. Для сети IoT используйте полосу 2,4 ГГц. Для создания дополнительной сети щелкните в разделе «Virtual Interfaces» по кнопке «Add» и задайте индивидуальное имя сети.

Безопасность

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

Защита беспроводной сети

Сделайте свою домашнюю беспроводную сеть невидимой и защитите ее от взлома. Если злоумышленники даже не смогут обнаружить ее, она не сможет стать объектом атаки. Чтобы не высвечивать название сети, откройте на интерфейсе DD-WRT вкладку «Wireless | Basic Settings» на которой отображаются все сети маршрутизатора - как правило, это одна сеть 2,4 ГГц и одна 5 ГГц.

Для обеих переключите опцию «Wireless SSID Broadcast» в положение «Disable». Теперь ваша сеть невидима для других пользователей, кроме вас. Чтобы подключиться к сети через ОС Windows, откройте список беспроводных сетей, выберите сеть со скрытым именем (SSID) и введите имя сети и пароль.

Далее вам нужно указать, каким устройствам открыт доступ к сети, путем выбора MAC-адресов из списка сетевых устройств. Эти адреса вносятся в белый список маршрутизатора. Для активации белого списка в меню «Wireless | MAC Filter» для нужной сети требуется выбрать значение «Enable» и далее «Permit only clients listed to access the wireless network». Эта настройка отвечает за MAC-адреса WLAN, для которых открыт доступ к беспроводной сети.



Зашифрованный веб-серфинг

Для безопасного анонимного веб-серфинга требуется стабильное VPN-соединение. Для начала нужно получить доступ к сервису VPN. В качестве примера мы взяли NordVPN, с другими сервисами настройка происходит аналогичным образом. В меню «Setup | Basic Setup | Network Address Server Settings (DHCP)» для «Static DNS 1» введите адрес DNS-сервера - в нашем случае это 162.242.211.137. Затем для «Static DNS 2» введите «78.46.223.24». Нужные адреса серверов предоставит провайдер услуги VPN.

Затем установите флажки возле пунктов «Use DNSMasq for DHCP», «Use DNSMasq for DNS» и «DHCP-Authoritative». Сохраните параметры, перейдите в меню «Setup | IPV6» и нажмите здесь «Disable». Сохранив настройки, откройте меню «Services | VPN». Включите клиент OpenVPN, нажав «Start OpenVPN Client», и для параметра «Server IP/Name» задайте значение «nl1-ru1.nordvpn.com» для российского IP-адреса. Для опции «Encryption Cipher» используйте шифрование «AES-256-CBC», для алгоритма хеширования «Hash Algorithm» укажите значение «SHA1».

Далее включите функцию аутентификации пароля пользователя «nsCertType verification» и откройте «Advanced Options». В качестве имени пользователя и пароля введите логин NordVPN. Далее для параметра «Use LZO Compression» установите значение «Enable» и активируйте опцию «NAT». Для параметра «Additional Config» введите без кавычек следующие команды одну под другой: «persist-key», «persist-tun», «tlsclient» и «remote-cert-tls server».

В заключение вам нужно настроить сертификаты для VPN, которые должен предоставить провайдер - в нашем случае с NordVPN они доступны на странице https://nordvpn.com/profile, которая станет доступна после регистрации и авторизации. Извлеките сертификаты из архива ZIP и скопируйте содержимое файла CA.CRT в поле «CA Cert» в настройках маршрутизатора. Содержимое файла TLS.KEY перенесите в «TLS Auth Key» и сохраните изменения.



Защита от взлома DNS

Один из новых способов взлома с использованием подмены IP-адресов DNS-серверов, ведущей к незаметной для жертвы переадресации запросов с реального сайта на замаскированный под него фишинговый, заключается в преобразовании доменного имени в IP. Чтобы исключить возможность подобных манипуляций, следует разрешить только определенные DNS-сервера. На вкладке «Services | Services» в разделе «DNSMasq» активируйте опции «DNSMasq» и «Local DNS». Для «Additional DNSMasq Options» введите следующие четыре строки: «no-resolv», «strict-order», «server=208.67.222.222» и «server=208.67.222.220». Затем сохраните настройки, нажав «Save», и активируйте конфигурацию («Apply Settings»).

Оптимизация производительности

Правильные настройки производительности позволят найти самый лучший канал домашней сети, оптимизировать мощность радиомодуля, а значит, и повысить скорость передачи данных. Кроме того, можно распространить беспроводную сеть в такие уголки квартиры, которые до сих пор находились вне зоны ее действия.

Покрытие до последнего уголка

Для улучшения покрытия сети нужно точно выставить мощность передатчика роутера. В меню «Wireless | Basic Settings» для нужной сети выберите «Advanced Settings». Здесь для увеличения мощности сигнала в опции «TX Power» можно ввести нужное значение в децибелах относительно милливатта (дБм). В России «потолок» для устройств 802.11ac составляет 23 дБм, в США - 30 дБм. Значения по умолчанию в целях безопасности выставляются ниже максимально допустимых, что отражается на мощности передаваемого сигнала. Для обеспечения наилучшего покрытия сети установите максимальные значения.



Подключение старых WLAN-устройств к новой сети

В современных маршрутизаторах предусмотрен механизм защиты, позволяющий оптимально работать в сети даже старым устройствам с поддержкой стандарта 802.11b - например, в случаях, когда устройства 802.11b и 802.11g одновременно отправляют данные на роутер по одному и тому же каналу. Перед началом информационного обмена устройство 802.11b отправляет короткий сигнал запроса на передачу (RTS - Request to Send), а маршрутизатор отправляет сигнал разрешения на отправку (CTS - Clear to send). Этот механизм предотвращает конфликты обращения двух устройств к третьему, но снижает скорость.

Если вы не используете в домашней сети устройства 802.11b, можете полностью отключить в меню «Wireless | Basic Settings» DD-WRT функцию защиты. Для этого в дополнительных настройках установите для функции «Protection Mode» значение «None». Однако оптимизировать скорость можно даже в том случае, если вы используете устройства 802.11b. Установите для «Protection Mode» значение «RTS/CTS» и активируйте опцию «RTS Threshold», установив ее на уровне 2340.



Оптимальное распределение полосы пропускания

Вкладка «NAT/QoS» позволяет определить доступную пропускную способность для разных сетей и устройств. Например, можно урезать пропускную способность для сети IoT, а для смартфона задать приоритет. Запустите службу QoS, щелкнув по разделу «QoS» на вкладке «NAT/QoS», и для опции «Start QoS» установите значение «Enable». Для поля «Port» задайте значение «WAN», для «Packet Scheduler» - «HTB». Для параметра управления потоками «Queueing Discipline» установите значение «FQ_CODEL».

Далее введите для «Downlink» и «Uplink» значение, равное 95% максимальной пропускной способности интернет-соединения. Остальные пять процентов следует оставить на случай сбоев, если соединение окажется перегружено. Иначе в условиях полной загруженности соединения вы не сможете ни загружать что-либо, ни менять параметры настройки.

Входящую и исходящую скорость вы можете измерить с помощью соответствующих онлайн-сервисов, таких как, например, speedtest.net/ru. А чтобы установить для беспроводной сети пропускную способность, в разделе выбора приоритетов служб «Services Priority» выберите нужную сеть, нажмите «Add Service» и введите желаемые значения скорости.

Чтобы задать определенную пропускную способность для определенного устройства, используйте опцию «MAC Priority». Введите нужные MAC-адреса и задайте требуемые значения. MAC-адреса устройств находятся в меню «Status | Wireless | Wireless Nodes».

Дополнительные функции

Файловый сервер из маршрутизатора

Чтобы подключить внешние диски и USB-флешки к домашней сети при помощи роутера с DD-WRT, в меню «Services | USB» активируйте опции «Core USB Support», «USB Storage Support» и «Automatic Drive Mount». После сохранения и применения конфигурации вставьте внешние накопители в USB-порт маршрутизатора.

Затем откройте меню «Services | NAS» и активируйте опцию «Samba». Для строки сервера «Server String» задайте имя сети маршрутизатора на выбор, для «Workgroup», соответственно, имя рабочей группы. Для «File Sharing | Path to Files» выберите внешний накопитель и задайте объекту имя.

Файлы, находящиеся в общем доступе, можно найти в Проводнике Windows 10, зайдя в «Мой компьютер». Щелкнув левой кнопкой мыши по опции в верхнем меню «Подключить сетевой диск», можно присвоить букве диска папку с открытым доступом. К слову, объем дискового пространства можно увидеть со смартфона или умных часов: приложение DD-WRT доступно для скачивания в официальных магазинах приложений Apple и Google.

Доступ к хранящимся на внешних накопителях данным DD-WRT умеет предоставлять как DLNA-сервер - то есть сервер для вещания мультимедиа. Умные телевизоры таким образом получают контент прямо от накопителя.

Блокировка рекламы для всех устройств

Теперь для отключения агрессивной рекламы больше не понадобится сторонний блокировщик - это будет делать маршрутизатор. В меню «Services | Adblocking» активируйте опции «Privoxy» и «Transparenter Mode» и в белый список внесите сайты, рекламу на которых блокировать не нужно (например, ichip.ru), а затем сохраните конфигурацию и примените созданные изменения, нажав «Apply». Чтобы убедиться, что блокировка рекламы срабатывает должным образом, введите в браузер URL config.privoxy.org. Если открывается страница блокировщика - значит, все в порядке.

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

Назову 2 «правильных» модели, которые я выбрирал для себя.

  1. Linksys WRT-54GL , модель начального уровня, зато непревзойдённая по надёжности. Покупалась более 3 лет назад, до сих пор в строю, «ни единого разрыва»… Характеристики: WiFi (b/g) + 4 LAN 10/100, 4Mb flash, 16Mb RAM, no USB.
  2. Asus WL-520GU , современный и весьма дешёвый роутер, 3 месяца в строю, также нет нареканий по работе. Характеристики: WiFi(b/g) + 4 LAN 10/100, 4Mb flash, 16Mb RAM, 1 USB.
Основными критериями выбора моделей являются:
  • Совместимось данных моделей с прошивками DD-WRT. Возможности «родных» прошивок не рассматривались вообще: зачем выбирать цвет обоев в новой квартире, если впереди - всесокурушающий ремонт?
  • Объем памяти RAM. Почти все современные роутеры имеют 16Mb RAM. Этого как раз хватает для нормальной работы, но, как известно, каждая программа стремится захватить весь доступный объём памяти. Если есть желание выжать максимум из своего роутера или есть лишняя сумма денег, лучше найти модель с 32Mb памяти.
  • Наличие портов USB, ибо весь расширенный функционал удобнее всего ставить именно на внешнем носителе, т.к. flash-память роутера не сможет вместить всех новых программ. Мой первый роутер не имел USB, поэтому приходилось немного изгаляться и «работать напильником».
2) Прошивка роутера
Прошивка - это совсем не больно! Это на самом деле простая операция, ну такая как перректальное удаление гланд… Нет, правда ничего сложного.
При самой первой смене прошивки потребуется чуть больше усилий, зато каждая следующая пойдёт всё легче и легче.
Не следует опасаться, что смена прошивок будет происходить регулярно. Выбрав для себя набор программ, входящих в одну из готовых прошивок, можно на этом успокоиться и наслаждаться жизнью. Если понадобится дополнительный функционал - всегда можно установить новые программы отдельно, для этого существует специальный механизм. Но на первых этапах может случиться так, что выбор прошивки окажется неудачным, например в прошивке не окажется такой нужной возможности как поддержка SAMBA. Не беда, скачиваем другую прошивку, 2 движения мышкой - вуаля!

Некоторые модели роутеров (в частности Asus) перед прошивкой на DD-WRT требуют специальных действий (очистка памяти или что-то в этом роде). Внимательно следуйте инструкциям на конкретную модель роутера! Особенно внимательно нужно отнестить к требованиям «выждать 5 минут после окончания прошивки». Я был немного самоуверен и, перепрошивая своему коллеге роутер, слегка поторопился выключить питание после окончания прошивки. Результат - процедура восстановления и всё по-новой.
Если сказано «подождите 5 минут» - возьмите песочные часы на 5 минут и ждите! Это серьёзно.

Я не буду рассматривать сам процесс перепрошивки (tftp, смена адреса на 192.168.0.1, интерфейс и т.д.) - это всё изложено на форумах DD-WRT.

Но, наконец, вы закончили с прошивкой, и перед вами - чудесный новый WEB-интерфейс вашего роутера. Что дальше?

3) Подготовка к установке OPTWARE
Базовый функционал вы уже получили, выбрав версию прошивки. Осталось настроить параметры подключения к вашему провайдеру (DHCP, PPTP etc), и уже можно начинать бороздить просторы вселенной. Многим домашним пользователям этого уже будет достаточно.
Настройки параметров безопасности, управление маршрутеризацией и прочие стандартные для роутеров «фишки» я также описывать не буду. Без этого всё равно не обходится ни один «нормальный» роутер.
Но ведь можно же сделать ещё лучше! Продолжим процесс.

Все дополнительные программы объединены общим понятием Optware . (они ставятся в каталог /opt , который автоматически создаётся роутером и всегда доступен для записи). Однако сам каталог /opt пуст и фактически расположен в RAM - то есть, там очень мало места и всё, что туда попадает, будет потеряно при перезагрузке. Что же делать?

Выход следующий: нам нужно постоянное место на каком-нибудь «диске». И хотя описываемые хранилища не имеют формы диска в геометрическом смысле (скорее это кристаллы кремния в пластиковых корпусах с металлическими выводами), будем всё же называть их дисками.

JFFS
Если flash-память роутера достаточно большая, а размер прошивки меньше общего размера flash-памяти, то оставшееся место можно использовать для хренения данных. Если выбрать прошивку с поддержкой JFFS, то в зависимости от версии, можно получить от 0.5 до 3Mb «диск» прямо внутри роутера. Такой диск будет автоматически примонтирован как /jffs при старте.

Главной неприятностью при работе с flash-дисками является их быстрая деградация при записи. Если количество перезаписей сектора «диска» превысит некий порог (от 10 до 100 тысяч циклов), то диску придёт конец. Всё плохо… :(

Если с внутренним диском произойдёт такое, действительно будет плохо. Но если это внешний USB диск, то лёгким движением руки заменяем USB-флешку на новую - и снова в бой. Ведь USB-флешки давно уже расходный материал, не так ли? Тем более что достаточна флешка объемом 1 или 2Gb. Главное, как обычно, вовремя делать бекапы.

USB
Как вы уже поняли, основным местом установки Optware является внешний USB диск. Важно иметь в виду, что USB должен быть определённым образом отформатирован перед установкой в роутер. Как минимум, должен присутствовать первичный раздел, отформатированный как ext2 или ext3 .

Более «правильной» является следующая схема:

  1. раздел ext2, размер ~400Mb - основной раздел Optware, монтируется как /opt
  2. раздел swap, размер ~24Mb - для свопинга, позволяет работать таким «тяжеловесным» приложениям как RADIUS, MySQL, Apache...
  3. раздел ext2, размер ~400Mb - резервный раздел Optware (офлайновое зеркало)
  4. раздел ext2 или fat32, всё остальное место - для пользовательских данных
Форматирование USB лучше всего выполнять на Linux-машине любыми подручными утилитами, например GParted.
CIFS
Если роутер не имеет аппаратного USB, а установить Optware всё-таки хочется, то можно воспользоваться замечетельной возможностью Linux работать с диском через сеть. Для этого нам потребуются 2 вещи:
  • постоянно работающий где-то в сети сервер (или NAS, или просто десктоп-машина, даже ноутбук) с поддержкой SAMBA
  • прошивка с поддержкой CIFS/SAMBA
Если в доме уже есть компьютеры (а они есть, ведь роутер без компьютеров смотрится как-то нелепо), то один из домашних компьютеров будет выступать в роли «сетевого диска» для роутера.
Роутер при загрузке будет монтировать расшаренную папку как /opt , а дальше - никаких отличий в работе Optware, кроме скорости первоначальной загрузки через сеть. Конечно, для случая CIFS лучше использовать не WiFi, а Ethernet подключение.

Чтобы всё заработало, достаточно в настройках роутера в разделе CIFS указать сетевой адрес и логин/пароль для доступа к расшаренной папке, и при следующей перезагрузке роутер автоматически примонтирует сетевой диск в папку /tmp/smbshare .

SD/MMC
Предположим, что у нас нет ни свободного места в flash-памяти роутера, ни USB, ни сервера. А нам очень нужно установить Optware. Что же делать?

Как обычно, «у нас с собой было» (это мой любимый девиз). Если совсем ничего нет, то придётся немного поработать напильником.

Для некоторых моделей (среди которых WRT-54GL) доступен так называемый SD/MMC mod . Достаточно приклеить куда-либо SD или MMC карту и припаять 6 проводков, и можно получить место для установки Optware и хранения пользовательских данных.

Именно такой мод я в конце концов и сделал, чтобы из старого роутера получить автономную точку доступа под WiFi Hotspot Chilli . Это - тема отдельного поста, возможно скоро соберусь и даже сделаю мини-сайт. Если кого-то ещё эта тема интересует, напишите в приват.

4) Определение точки монтирования, startup, shutdown
В зависимости от выбранного «диска» точка монтирования будет разной. Для внутренней flash-памяти это будет /jffs , для USB это будет /mnt (если разрешить автоматическое монтирование), для CIFS это будет /tmp/smbshare , для SD/MMC это будет /mmc .

Если выбран вариант USB, то следует запретить автоматическое монтирование - мы сами будем это делать «правильным» образом.
Как я уже сказал, Optware устанавливается в строго определённое место - каталог /opt . Этот каталог уже есть, нужно только примонтировать к нему реальный «диск».

Монтирование можно (нужно) делать в процессе начальной загрузки роутера. Для автоматизации в роутере предназначены несколько предопределённых скриптов, которые выполняются при старте и завершении работы.

Нам понадобятся как минимум 2 скрипта:

  • .rc_startup
  • .rc_shutdown
Первый скрипт будет выполнять монтирование внешнего «диска» и запуск Optware, второй соответственно - останов Optware и размонтирование.

Для начала надо разрешить доступ к роутеру по telnet или по SSH протоколу.
Рекомендую настроить доступ по SSH, так как это безопаснее и просто удобнее (можно настроить авторизацию по ключевому файлу и даже не вводить каждый раз пароль при доступе). А доступ нам понадобится неоднократно, чтобы устанавливать программы и смотреть, WTF, почему они не хотят правильно работать.

Сервер SSH уже присутствует и работает во всех версиях прошивок роутера. Нужно только создать пару ключей, один из которых (публичный) загрузить в роутер, а другой (приватный) положить на ноутбуке рядом с программой Putty и WinSCP. Про ключи тоже писать не буду, везде это достаточно подробно расписывается.

Создадим скрипт .rc_startup , который пока будет делать только одно: монтировать внешний «диск» в папку /opt .
Варианты:

USB mount /dev/scsi/host0/bus0/target0/lun0/part1 /opt
JFFS mkdir -p /jffs/opt
CIFS mount.cifs $(nvram get samba_share) /jffs -o user=$(nvram get
samba_user),pass=$(nvram get samba_password)
mount -o bind /jffs/opt /opt

Сохраним его в роутере кнопкой Save startup , перезагрузим роутер (возможно, он перезагрузится сам) - после этого у роутера должен появиться каталог /opt , куда теперь можно записывать файлы. Проверим?

Telnet router
cd /opt
echo "OK" >opt.ok
cat opt.ok

Если получилось «OK» - значит всё ОК, если нет - значит что-то не так… Гуглим , ищем где ошибка, повторяем…

5) Установка Optware - первый шаг
Ну вот, всё позади, у нас в сети - роутер с возможностью установки Optware. Приступим.

Т.к. у меня на ноутбуках Windows, я использую Putty (telnet или SSH) для доступа к консоли роутера и WinSCP для копирования и редактирования файлов.

Подключаемся через WinSCP к роутеру и создаём в папке /tmp следующий скрипт:
opt-inst.sh

Подключаемся через Putty к роутеру и выполняем скрипт:

Cd /tmp
chmod 740 ./optw-inst.sh
./optw-inst.sh

В результате работы скрипта будет создана начальная конфигурация Optware и программа-установщик opt-inst. Теперь можно приступать к установке всех остальных пакетов программ.

6) Установка первых пакетов
Для начала установим какой-нибудь совсем простой пакет, например rsync. Он нам пригодится в дальнейшем для настройки резервного копирования.

Cd /opt
ipkg-opt update
ipkg-opt install rsync

Если всё прошло успешно и нет никакой ругани в консоли, то можно продолжить установку.

Среди пакетов «первой необходимости» я бы назвал следующие:

  • mc - Midnight Commander
  • tcpdump - сбор и анализ сетевого трафика
  • busybox - расширенные версии основных утилит Linux
Некоторые пакеты будут требовать установки других (через механизм зависимостей) - так и надо, пусть они ставятся сами. Обычно всё что требуется - нажимать «y» и соглашаться.
7) Окончательная настройка
Осталось настроить роутер так, чтобы запуск, работа и останов нужных сервисов происходил полностью автоматически. Для этого нужно исправить скрипты.rc_startup, .rc_shutdown, возможно, запустить процесс cron, и наслаждаться.

Тут следует сделать некоторые замечания. В разных версиях прошивок процедура запуска и останова почему-то отличается, причём в существенной части, а именно - запуск пользовательских скриптов из init.d.

В более новом роутере (версия прошивки 13972) пользовательские скрипты
/opt/etc/init.d/S* автоматически вызываются после завершения работы системного .rc_startup , и аналогично, /opt/etc/init.d/K* перед запуском .rc_shutdown . Поэтому для запуска и оснанова нужных сервисов достаточно, чтобы их соответствующие S* и K* скрипты находились в папке запуска /opt/etc/init.d

Однако и тут (по крайней мере в моём случае) не обошлось без «подводных граблей» (чьё-то меткое выражение). По законам жанра, запуск скрипта S* должен быть с параметром start , а запуск K* - с параметром stop . Но DD-WRT почему-то не передаёт start при старте, хотя и передаёт stop при останове. Пришлось делать некий work-around:

Системный скрипт .rc_statup (создаётся при запуске в /tmp и запускается силами процесса init) выглядит примерно так (некоторые подробности опущены, полный код доступен ):

# /tmp/.rc_startup:

# 1: Монтировать "диск" optware в папку /opt

if [ -n "$DST" ]; then
/bin/mount -t ext3 -o noatime,nodiratime $DST /opt
echo "mount USB part1 -> /opt"
fi

# 2: Разрешить swapfile с раздела swap

if [ -n "$DST" ]; then
/opt/bin/busybox swapon $DST
echo "mount USB part2 -> swap"
fi
# 3: Создать окружение для запуска S* скриптов Optware
echo "start">/tmp/.rc_stage

Каждый S* и K* скрипт содержит примерно такой код:

If [ -n "$1" ]; then
OP=$1
else
OP=$(cat /tmp/.rc_stage)
fi

Case "$OP" in
start) # bla-bla
;;
stop) # bla-bla
;;
esac

Системный скрипт .rc_shutdown (создаётся при перезагрузке в /tmp и запускается по команде reboot) выглядит примерно так (некоторые подробности опущены, полный код доступен ):

# /tmp/.rc_shutdown:

# 1: Скрипты /opt/etc/init.d/K* уже отработали

# 2: Запретить swapfile
DST=`ls /dev/scsi/host?/bus?/target?/lun?/part2`
if [ -n "$DST" ]; then
/opt/bin/busybox swapoff $DST
echo "swap disabled"
fi

# 3: Отмонтировать optware
DST=`ls /dev/scsi/host?/bus?/target?/lun?/part1`
if [ -n "$DST" ]; then
/bin/umount /opt
echo "/opt umounted"
fi

В более старом роутере (версия прошивки 13064) S* и K* скрипты вообще не вызываются автоматически, поэтому пришлось делать так:

Системный скрипт .rc_statup копирует и стартует (в фоновом режиме) скрипт запуска optware:

# /opt/.startup - скрипт запуска Optware
CFG=/mmc # или /mnt, или /jffs, или /tmp/smbshare
if [ -x $CFG/opt/.startup ]; then
cp $CFG/opt/.* /tmp
echo "startup: switch to optware" >>/tmp/log
/tmp/.startup start $CFG &
else
echo "startup: optware not found" >>/tmp/log
fi

А уже optware-скрипт /opt/.startup делает всё остальное, а именно - запускает S* скрипты.

Аналогично устроен и системный скрипт .rc_shutdown : (только запускает /opt/.shutdown не в фоновом режиме, а непосредственно)

# /opt/.shutdown - скрипт останова Optware
CFG=/mmc
if [ -x $CFG/opt/.shutdown ]; then
cp $CFG/opt/.* /tmp
. /tmp/.shutdown stop $CFG
fi

На этом пока всё.

Теги: Добавить метки

Соответствующую вашей модели роутера и его аппаратной версии.

Загрузите прошивку DD-WRT в маршрутизатор. О том, как это сделать для роутеров TP-Link, написано . Инструкцию по замене прошивки для иных производителей маршрутизаторов можно найти на сайте разработчика DD-WRT или на их форуме .

После обновления прошивки введите в браузер адрес 192.168.1.1 . Вы увидите страницу с просьбой ввести новое имя пользователя и пароль. Введите их и обязательно запишите .

Перейдем к настройке роутера. В меню выберите Setup — Basic Setup . В разделе Network Setup в поле Local IP Address пропишите 192.168.99.1 , это будет новый адрес вашего маршрутизатора. Меняем его для того, чтобы в будущем исключить возможные сетевые конфликты с другими роутерами в вашей сети. Которые с большой вероятностью у вас есть.

В Local DNS прописываем ip адрес DNS сервера — 8.8.8.8

На той же странице в разделе Network Address Server Settings (DHCP) выключите 3 опции Use DNSMasq for DHCP, Use DNSMasq for DNS, DHCP-Authoritative

Внимание, после применения параметров адрес роутера сменится на 192.168.99.1

Чтобы не потерять контроль над роутером, настроим удаленный доступ из внешней сети через WAN порт. Перейдите на страницу Administration — Management . В разделе RemoteAccess включите в опции Web GUI Management отметку HTTP . После этого роутер будет доступен по его внешнему ip адресу и порту 8080.

Перейдем к настройке WiFi точки доступа. Откройте страницу Wireless — Basic settings . В поле Wireless Network Name (SSID) введите название своего WiFi хотспота, например, название вашего заведения.

В названии хотспота возможно использовать только английские буквы, цифры и символы. Буквы кириллицы использовать нельзя.

Перейдите на страницу Wireless — Wireless Security , убедитесь, что опция Security Mode находится в состоянии Disabled .

Теперь непосредственно перейдем к настройке самого хотспота.

    • Откройте страницу Services — Hotspot
    • в разделе Chillispot активируйте опцию Chillispot, установив отметку Enable
    • в поле Primary Radius Server IP/DNS введите radius.сайт
    • в поле Backup Radius Server IP/DNS введите radius2.сайт
    • в DNS Server IP введите 8.8.8.8
    • в Redirect URL введите https://auth.сайт/hotspotlogin
    • в Shared Key введите ключ wfs123
    • в Radius NAS ID введите Идентификатор вашего хостпота из личного кабинета
    • в поле UAM Secret введите пароль вашего хотспота из личного кабинета
    • в поле UAM Allowed введите

95.167.165.64/27,195.14.118.0/23,91.229.116.0/22,213.59.200.64/28,91.200.28.0/24,91.227.52.0/24,198.241.128.0/17,66.211.128.0/17,216.113.128.0/17,paypal.com,paypalobjects.com,paymaster..paymaster.ru,www.paypal.com,www.paypalobjects.com,www..сайт,support.сайт,lk.сайт,account.сайт,s1.сайт,s2.сайт,s3.сайт,s4.сайт,s5.сайт,s6.сайт,s7.сайт,s8.сайт,s9.сайт,s10.сайт,s11.сайт,s12.сайт,s13.сайт,s14.сайт,s15.сайт,s16.сайт,s17.сайт,s18.сайт,s19.сайт,s20.сайт

Для соцсетей дополнительно нужно указать адреса:
103.4.96.0/22,104.108.32.0/20,104.244.40.0/21,107.20.0.0/14,157.240.0.0/16,173.194.0.0/16,173.252.64.0/18,184.84.0.0/14,185.16.244.0/22,185.29.130.0/24,185.32.248.0/22,185.45.4.0/22,188.166.114.0/24,192.133.76.0/22,199.16.156.0/22,199.201.64.0/22,199.59.148.0/22,199.96.56.0/21,2.20.254.0/24,2.21.7.0/24,204.15.20.0/22,212.30.134.0/24,213.180.193.119,217.20.144.0/20,217.69.128.0/20,23.64.227.0/24,31.13.0.0/16,34.192.156.0/24,34.194.135.0/24,34.194.67.0/24,34.198.69.0/24,34.200.158.0/24,34.200.33.0/24,45.64.40.0/22,46.101.169.0/24,5.61.16.0/21,52.0.0.0/11,54.144.0.0/9,54.88.138.0/24,54.88.208.0/24,64.233.160.0/19,66.220.144.0/20,69.171.224.0/19,69.63.176.0/20,74.119.76.0/22,74.125.0.0/16,8.25.195.0/21,87.240.128.0/18,87.250.250.0/23,93.158.134.0/24,93.186.224.0/20,95.142.192.0/20,95.167.165.90/24,95.213.0.0/18


Возможные проблемы

Убедитесь, что вы нечаянно не ввели лишние пробелы в поле UAM Allowed, иначе что-то может не заработать. В случае, если вы используете beta прошивку DD-WRT, нужно будет в поля Primary Radius Server IP/DNS и Backup Radius Server IP/DNS вписать вместо имен radius1.сайт и radius2.сайт их IP адреса 195.14.118.42 и 95.167.165.93

В DIR-320 установлено 4 мегабайта флэш-памяти, поэтому прошивка должна быть не более указанного размера. Можно использовать версию standard, однако в этом случае в файловой системе jffs не остается места для пользовательских файлов. Предпочтительнее пользоваться прошивками от Eko - их можно найти в папке others/eko/V24_TNG/svnNNNNN (выбираем папку с самым большим номером). Для поддержки USB можно выбрать версию NEWD_mini_usb_ftp или NEWD_mini_usb.

Если вам требуется большая функциональность, чем предусмотренная в версиях mini или standard, воспользуйтесь методом, описанным на странице Установка DD-WRT mega на маршрутизаторы с объемом флэш-памяти 4 МБ .

[edit ] Подготовка к прошивке

Если на вашем маршрутизаторе уже прошита DD-WRT, то новую версию данной прошивки можно загрузить в него с помощью веб-интерфейса. Если же в маршрутизаторе фирменная прошивка D-Link, то из-за различия форматов файлов с прошивками DD-WRT можно загрузить только с помощью протокола TFTP. Процедура загрузки подробно описывается далее.

Создайте на вашем диске C: папку (например, C:\dd-wrt). Скачайте в эту папку файл прошивки и переименуйте его в firmware.bin.

Установите IP-адрес сетевого интерфейса вашего компьютера 192.168.0.10 и маску 255.255.255.0. Соедините сетевой разъем вашего компьютера с портом LAN1 DIR-320. Питание маршрутизатора пока не включайте.

[edit ] Прошивка вручную

Прежде, чем использовать TFTP, стоит попробовать залить DD-WRT через crash mode (времени потрачено будет меньше). Если возникнут проблемы, тогда переходим к прошивке через TFTP.

Прошивка DIR-320 выполняется по протоколу TFTP. После включения питания маршрутизатора на короткое время (около 2 секунд) запускается встроенный сервер TFTP, с помощью которого можно загрузить в устройство новую прошивку. Самое трудное - это поймать нужный момент времени, в течение которого нужно выдавать команду для закачки прошивки. С первого раза это получается редко, так что будьте готовы к тому, что придется совершить несколько попыток, и наберитесь терпения.

Важно: Вероятно DIR-320 со свежими прошивками D-Link не запускают TFTP сервер совсем и поймать нужный момент времени невозможно. В этом случае, чтобы загрузить свою прошивку с первого раза придется сделать полный сброс DIR-320: выключаем питание, нажимаем и держим кнопку Reset, включаем питание, ждем 15 сек., отпускаем кнопку Reset. После этой процедуры роутер должен откликаться на ping c TTL=100:

Reply from 192.168.0.1: bytes=32 time<1ms TTL=100

В таком состоянии роутер нефункционален, он ожидает загрузки прошивки через веб-интерфейс (только D-Link) или по TFTP. Причем TFTP работает не все время, а только несколько секунд (около 4 сек.) после включения питания. Это немного, но достаточно чтобы залить прошивку с первого раза. Выключаем DIR-320.

Запустите на вашем компьютере командную строку, перейдите в папку dd-wrt на диске C:\ и наберите приведенную ниже команду, но не нажимайте пока клавишу . На экране должно быть примерно следующее:

Microsoft Windows XP 
 Copyright 1985-2001 Microsoft Corp. C:\Documents and Settings\someuser> cd c:\dd-wrt C:\dd-wrt> tftp -i 192.168.0.1 put firmware.bin

(Набранные вами команды выделены жирным шрифтом.)

Непосредственно перед началом прошивки желательно осуществить сброс на заводские настройки (Кнопка Reset, рядом с гнездом питания).

Вы должны нажать клавишу для запуска показанной выше команды «tftp -i 192.168.0.1 put firmware.bin» примерно через две секунды после включения питания DIR-320 (т.е. когда загорится индикатор соединения по Ethernet). Если прошивка будет принята маршрутизатором, индикатор LED1 на нем будет быстро моргать и команда успешно завершится менее чем через полминуты. На экране появится сообщение об успешном завершении команды:

Успешная передача: 3092480 байт за 11 сs, 281134 байт/с

Если же вы поспешите или опоздаете нажать клавишу , команда через некоторое время выдаст сообщение о неуспешном завершении. В этом случае просто повторите описанный выше процесс: выключите питание маршрутизатора и буквально через секунду снова включите его, перед этим снова подготовив команду tftp для передачи в него прошивки.

Имейте в виду, что процесс прошивки продолжается несколько минут после завершения команды пересылки файла, поэтому не выключайте питание маршрутизатора и не нажимайте Reset немедленно после завершения этой команды. Дайте маршрутизатору 10 минут времени для завершения процесса прошивки. За это время выпейте чашечку кофе и получите удовольствие – и только после этого переходите к следующему пункту. Если в списке беспроводных сетей появился новый SSID «dd-wrt» - значит, процесс прошивки успешно завершился.

Чтобы не ловить момент, в который нужно выдать команду загрузки, вручную, воспользуйтесь способом, описанным в следующем разделе.

Внимание : В последних версиях роутера, если tftp выдается сообщение : Operation cancelled , то попробуйте прошить прошивку меньшего объема. Опытным путем установлено, что dd-wrt VPN прошивка не шьется напрямую из-за своего объема, надо использовать меньшую по объему (mini/micro), а затем из mini или micro прошивки прошить нужную через веб-интерфейс dd-wrt.

[edit ] Прошивка с использованием пакетного файла

Записываем файл flashing.cmd в папку C:\dd-wrt, куда мы ранее записали файл с прошивкой. Содержимое этого файла следующее:

@Echo Off:BEGIN ping -n 1 -w 10 192.168.0.1 If errorlevel 1 Goto BEGIN If errorlevel 0 Goto FLASH Goto END:FLASH Echo *** Start Flashing **** tftp -i 192.168.0.1 put firmware.bin:END

Более продвинутая версия пакетного файла с выдачей комментариев на консоль приведена в приложении (см. ниже).

Запускаем командную строку, переходим в папку c:\dd-wrt и запускаем командный файл flashing.cmd.

Включаем питание маршрутизатора.

Наблюдаем процесс прошивки:

C:\dd-wrt>flashing.cmd Обмен пакетами с 192.168.0.1 по 32 байт: Превышен интервал ожидания для запроса. Статистика Ping для 192.168.0.1: Пакетов: отправлено = 1, получено = 0, потеряно = 1 (100% потерь), <<< SKIP >>> <<< SKIP >>> <<< SKIP >>> <<< SKIP >>> Обмен пакетами с 192.168.0.1 по 32 байт: Ответ от 192.168.0.1: число байт=32 время=4мс TTL=100 Статистика Ping для 192.168.0.1: Пакетов: отправлено = 1, получено = 1, потеряно = 0 (0% потерь), Приблизительное время приема-передачи в мс: Минимальное = 4мсек, Максимальное = 4 мсек, Среднее = 4 мсек *** Start Flashing **** Успешная передача: 3092480 байт за 11 сs, 281134 байт/с C:\dd-wrt>

После того, как загорится индикатор статуса (~1-2 мин.), можно подключаться к маршрутизатору по адресу 192.168.1.1.

Другой вариант командного файла (первый в моем случае не помог) вызвать с момента включения маршрутизатора с интервалом например в 500мс подряд несколько процессов tftp. Соответственно какой-то из них попадет в момент, когда маршрутизатор "согласен" принять прошивку. Как организовать паузу http://wiki.oszone.net/index.php/Пауза_в_пакетном_файле , я использовал nircmdc.exe (http://www.nirsoft.net/utils/nircmd.zip)

For /l %%a in (1, 1, 10) do (nircmdc.exe wait 500 start cmd.exe /ktftp -i 192.168.0.1 put firmware.bin)

Запустить данный командный файл одновременно с включением маршрутизатора. Откроется 10 консольных окон, и в одном из них пройдет загрузка файла, все остальные отвалятся по таймауту. Если все равно не получается попасть в нужный интервал, то можно дополнительно отключить в windows сброс IP-адреса при отсутствии кабельного подключения (ускорит инициализацию интерфейса). Создать reg-файл следующего содержания:

REGEDIT4 "DisableDHCPMediaSense"=dword:00000001

Добавить информацию в реестр, перегрузить компьютер и попробовать снова прошить маршрутизатор.

[edit ] Подключение к веб-интерфейсу DD-WRT

После успешной прошивки настройте сетевой интерфейс вашего компьютера на получение IP-адреса от сервера DHCP и введите в адресной строке вашего браузера http://192.168.1.1 . По умолчанию имя пользователя и пароль для доступа к веб-интерфейсу – соответственно «root» и «admin» (без кавычек).

Если вы по-прежнему видите веб-интерфейс D-Link, повторите процедуру прошивки.

P.S. Еще один простой и удобный способ поймать момент включения режима прошивки - использовать команду arping (В *nix системах она уже есть), для Windows можно нагуглить или попробовать эту ссылку http://www.ipacct.com/f/arping_for_windows-1.0.zip , как только будет первый ответ - нужно посылать файл на роутер и все прошьется:)

[edit ] Восстановление фирменной прошивки

Восстановление фирменной прошивки после DD-WRT опять-таки делается с помощью TFTP.

[edit ] Приложения

[edit ] Приложение 1. Расширенная версия файла flashing.cmd

Расширенная версия пакетного файла flashing.cmd с выдачей комментариев на консоль:

@echo off echo ================================================================== echo This batch file will upload dd-wrt firmware in the current directory to echo 192.168.0.1 during the router"s bootup. echo. echo * Set your ethernet card"s settings to: echo IP: 192.168.0.2 echo Mask: 255.255.255.0 echo Gateway: 192.168.0.1 echo * Unplug the router"s power cable. echo. echo Press Ctrl+C to abort or any other key to continue... pause > nul echo. echo * Re-plug the router"s power cable. echo. echo ================================================================== echo Waiting for the router... Press Ctrl+C to abort. echo. set FIND=%WINDIR%\command\find.exe if exist %FIND% goto PING set FIND=%WINDIR%\system32\find.exe if exist %FIND% goto PING set FIND=find:PING ping -n 1 -w 50 192.168.0.1 | %FIND% "TTL=" if errorlevel 1 goto PING echo *** Start Flashing **** tftp -i 192.168.0.1 put firmware.bin if errorlevel 1 goto PING set FIND= echo. echo ================================================================== echo * WAIT for about 2 minutes while the firmware is being flashed. echo * Reset your ethernet card"s settings back to DHCP. echo * The default router address will be at 192.168.1.1 echo. pause

[edit ] Приложение 2. Bash-скрипт, аналогичный пакетному файлу flashing.cmd

Bash-скрипт, аналогичный расширенной версии пакетного файла flashing.cmd.

#!/bin/bash echo "==================================================================" echo "This script will upload dd-wrt firmware (firmware.bin)" echo "in the current directory to 192.168.0.1 " echo "during the router"s bootup. " echo "" echo "* Set your ethernet card"s settings to: " echo " IP: 192.168.0.10 " echo " Mask: 255.255.255.0 " echo " Gateway: 192.168.0.1 " echo "* Unplug the router"s power cable. " echo "" echo "Press Ctrl+C to abort or any other key to continue... " read echo "" echo "* Re-plug the router"s power cable. " echo "" echo "==================================================================" echo "Waiting for the router... Press Ctrl+C to abort. " echo "" try(){ ping -c 1 -w 1 192.168.0.1 } try while [ "$?" != "0" ] ; do try done echo "*** Start Flashing **** " atftp --no-source-port-checking -p -l firmware.bin 192.168.0.1 echo "Firmware successfully loaded!"

[edit ] Приложение 3. sh-скрипт для FreeBSD, аналогичный пакетному файлу flashing.cmd