Ставим OpenWRT на DIR320/NRU
Наконец, нашелся человек, который смог портировать прошивку OpenWRT на этот роутер (https://code.google.com/p/openwrt-on-dir-320-b1/). Без OpenWRT данный роутер лично для меня неинтересен и провалялся в шкафу долгое время в ожидании нормальной прошивки.
OpenWRT является сторонней, но универсальной и более продвинутой прошивкой, по сравнению со многими другими, поставляемыми производителем по умолчанию. Если сравнивать ее с прошивкой от D-Link, то возможностей у ней как минимум раза в два больше, а безопасность и стабильность зачастую выше. Если Вы еще не пробовали ее, то рекомендую попробовать. Стоит только перечислить функционал, который появится при переходе от прошивки D-Link к OpenWRT: SSH доступ, подключение флеш карт и жестких дисков большого объема с практически любыми файловыми системами, лучшая поддержка модемов EDGE\3G\4G, и конечно возможность устанавливать дополнительные пакеты прямо во внутреннюю флеш память, что позволяет расширить функционал настолько, насколько хватит ресурсов этого устройства. Роутер с OpenWRT успешно раздает интернет даже с подключенного по USB мобильного телефона.
К слову о ресурсах, их у роутера DIR320/NRU не так много (8MB Flash, 32MB RAM, 300MHZ MIPS CPU). Однако, для стандартного набора функций «торрент качок + wifi шаринг» этого достаточно. Так как ревизия B1 собрана совершенно на другом чипсете RT5350 (общим со старой моделью DIR320 можно найти только корпус), энергопотребление и нагрев этого роутера очень небольшие. Роутер работает стабильно лишь с одним устройством, подключенным через USB. Количество устройств, подключенных через USB хаб без внешнего питания сильно ограничено — например, 3G модем и жесткий диск могут работать нестабильно. Нагрузочную способность можно увеличить и обойтись без внешнего питания, проделав кое-какие доработки из следующего раздела.
Схемотехнические доработки
Было замечено, что при подключении сразу двух устройств по USB (жесткий диск + модем) напряжение питания на контактах USB разъема падает до 4,5В, что приводит к отключениям устройств, но на разъеме питания роутера напряжение остается нормальным — 5,1В. Это происходит из-за падения напряжения на двух SMD резисторах на плате роутера. Чтобы избавиться от проблемы, нужно зашунтировать эти два резистора перемычками либо впаять нормальные дроссели параллельно этим резисторам (красным цветом на плате отмечены будущие перемычки, а контактные площадки, обведенные разметкой на плате — это и есть место под установку дросселей). После этой доработки нагрузочная способность роутера зависит только от мощности блока питания. Максимальный ток потребления заводского блока питания составляет 2А (10 Ватт), чего должно хватить на три устройства с током потребления до 0,5А.
Проблема с помехами от USB 3G модема: при переключении модема из 3G режима в режим EDGE его мощность излучения становится больше. Это может влиять на оборудование, расположенное рядом с ним — и влияло на мой жесткий диск Seagate Expansion Drive, из-за чего он отключался со звуком поросячьего визга. Для устранения эффекта модем был подключен через метровый удлиннитель для USB и убран подальше от роутера.
Установка OpenWRT
Устанавливается прошивка из специального аварийного режима роутера (как войти и установить, есть на страницеhttp://wiki.openwrt.org/toh/d-link/dir-320_revb1). По-русски: выключаем роутер, зажимаем спичкой кнопку Reset и держим. Включаем питание, ждем 10-15 морганий индикатора питания роутера и отпускаем спичку. Роутер запустится в аварийном режиме, в котором отключены блокировки роутера на загрузку сторонних прошивок. Компьютеру присваиваем адрес 192.168.0.2, подключаем к роутеру кабелем в порт LAN. Заходим в браузере на 192.168.0.1, и загружаем прошивку. По указанной выше ссылке имеются прошивки AA и BB — это версии Attitude Adjustment (стабильная) и Barrier Breaker (тестовая), соответственно ставить лучше AA. Есть версии со встроенными mpcs, oscam, если этот софт не нужен, лучше ставить обычную прошивку std.
Начальная настройка и внутреннее устройство прошивки
OpenWRT имеет веб интерфейс для настроки роутера + SSH доступ с терминалом Linux для продвинутых пользователей. Поэтому, прошивка очень похожа на стандартную от производителя, но имеет гораздо больше настроек и возможностей. После перепрошивки роутера, нужно поменять адрес сетевой карты на 192.168.1.2 (к примеру), или установить DHCP клиент на этот интерфейс (получать сетевой адрес автоматически в Windows). Когда роутер загрузится (индикатор питания перестает мигать), можно зайти на страницу управления роутером (веб интерфейс) по адресу 192.168.1.1.
При первом посещении страницы, роутер попросит Вас установить пароль администратора, что нужно обязательно сделать. После установки пароля, Вы сможете заходить на роутер с этим паролем по SSH. Можно переключить язык на русский, если Вам так удобнее в меню «System->system->Language and style», правда в данной статье подразумевается работа с английским языком. Это и есть вся начальная настройка, далее настройки делаются в зависимости от того, что мы будем подключать к этому роутеру
OpenWRT разметка диска состоит из двух разделов — squashfs и jffs2. Squashfs представляет по сути сжатый архив, эта ФС работает только в режиме чтения. Если компилировать прошивку самому и заранее включить пакеты в этот раздел, то свободного места будет больше. Так как это дело трудозатратное, лучше скачать готовую прошивку, а софт ставить на второй раздел jffs2, который имеет размер всего лишь 1 с лишним мегабайт. Нужно заранее определиться, какие пакеты будете ставить, т.к. вычистить место удалением старых пакетов непросто — остаются зависимости и прочий мусор.
Имеется возможность сохранения конфигурации. Это понадобится для того, чтобы не переустанавливать все пакеты после апгрейда прошивки и не перенастраивать роутер. Правда, иногда не все настройки могут быть перенесены, желательно не менять прошивку AA на BB, так как они сильно различаются.
Подключение интернета
Роутер поддерживает массу вариантов подкючения интернета:
1) Через кабель в порту Internet (WAN). Используются различные интернет протоколы для доступа в интернет: статический адрес, DHCP клиент, PPTP, PPPoE, L2TP, и прочие, которые и мне не доводилось использовать. Этот вариант настройки зависит от параметров Вашего подключения к провайдеру и инструкция к подключению должна быть предоставлена провайдером в договоре о предоставлении услуг.
2) Беспроводной доступ по UMTS(3G)/GPRS/EDGE//4G. В этом случае нужно подключить модем или телефон через USB в роутер и создать интерфейс для подключения, указав точку доступа, логин и пароль.
В любом случае, нужно создавать новый интерфейс в меню Network->Interfaces. Пример настройки для 3G модема МТС ниже:
Важно! OpenWRT имеет довольно неплохой фаервол, позволяющий повысить безопасность и настроить правила. Не забудьте назначить новому интерфейсу его группу, интернет подключения должны находиться в группе WAN, а локальные интерфейсы (Ethernet и Wifi) в группе LAN, иначе работать не будет.
Подключение клиентских ПК и рекомендации по увеличению безопасности
Подключаются ПК через свитч LAN кабелем или же через WiFi. При подключении кабелем взломать Вас никто не сможет, а вот для WiFi нужно обязательно использовать шифрование. В настоящее время популярна тема про взлом WiFi сетей, так как большинство используемых протоколов шифрования взламываются перебором паролей или через найденные уязвимости. Единственным протоколом, который может защитить Вас от взлома является WPA2+AES, остальные протоколы типа WEP сейчас приравниваются к открытым сетям для тех, кто знаком со взломом. Сети с защитой WPA2+AES тоже ломаются с помощью перебора, но для того чтобы взломать сложный пароль из 6 символов (это минимальный размер пароля), требуется очень много времени, конечно если пароль не представляет собой словарную фразу типа Elizaveta или 111111. Пароль должен быть как можно длиннее и содержать символы малых, больших букв, цифр и знаков сразу. Такой пароль сломать будет неимоверно трудно обычными средствами.
Есть также протокол WPS, позволяющий подключать клиентские ПК к защищенным сетям автоматически. Этот протокол ломается за 1-2 дня с помощью перебора, если не предусмотрено мер по сдерживанию атак по перебору. Заметим, что WPS включен по-умолчанию на прошивках от производителей, поэтому такой роутер взломать не составит труда с помощью программы Reaver. Конечно, со временем производители стали вводить такие меры, как максимальное число попыток или задержку между подключениями. Лучше не использовать WPS вообще.
Еще одна интересная особенность SSH: его можно использовать как SOCKS 5 прокси. Для этого достаточно в клиентской программе ввести адрес сервера 192.168.1.1, порт 22, логин и пароль от SSH, при условии, если роутер висит на адресе 192.168.1.1, после чего можно пользоваться интернетом через этот прокси. Не пробовал проделывать это на своем роутере, но раньше именно так и делал, когда работал у местного интернет провайдера, где были машины с Linux Это еще раз дает повод подумать, нужно ли выводить админку в зону WAN и по поводу сложности пароля.
Шаринг файлов (сетевой диск)
Для подключения к роутеру наиболее стабильно работающей файловой системой является ext3. Если замечаете, что роутер зависает, либо перезагружается после определенного периода времени при интенсивной работе с жестким диском (торрент, копирование файлов), рекомендуется переформатировать жесткий диск для файлового хранилища в ext3. Прочими ФС, способными вызвать данную проблему являются ReiserFS и NTFS, которые показали себя не с лучшей стороны: при интенсивном выполнении файловых операций через сетевой диск быстро заканчивается память роутера, что приводит к его зависанию и перезагрузке. В качестве стресс теста для проверки ФС можно попробовать выполнить команду «find /» через SSH роутера или «chmod -R». Роутер должен обойти все файлы и при этом не зависнуть. Не рекомендуется использовать ФС не поддерживающие права доступа — это будет мешать клиентам с ОС Linux.
Для подключения к роутеру наиболее стабильно работающей файловой системой является ext3. Если замечаете, что роутер зависает, либо перезагружается после определенного периода времени при интенсивной работе с жестким диском (торрент, копирование файлов), рекомендуется переформатировать жесткий диск для файлового хранилища в ext3. Прочими ФС, способными вызвать данную проблему являются ReiserFS и NTFS, которые показали себя не с лучшей стороны: при интенсивном выполнении файловых операций через сетевой диск быстро заканчивается память роутера, что приводит к его зависанию и перезагрузке. В качестве стресс теста для проверки ФС можно попробовать выполнить команду «find /» через SSH роутера или «chmod -R». Роутер должен обойти все файлы и при этом не зависнуть. Не рекомендуется использовать ФС не поддерживающие права доступа — это будет мешать клиентам с ОС Linux.
В качестве протокола для передачи файлов можно выбрать Samba или NFS. Первый работает достаточно стабильно и быстро, шара может быть доступна и компьютерам с Windows. NFS лучше подходит для сетей Linux, имеет лучшую поддержку прав доступа, но пакет nfs-kernel-server мне установить не удалось, пакет unfs3 работает хуже. Возможно, вам и вовсе хватит FTP сервера, в качестве которого отлично работает proftpd. Итог: лучшим выбором для этого роутера будет samba, которая хорошо работает как с Linux так и с Windows машинами, легко настраивается. Операции chmod также поддерживаются.
Необходимые пакеты: samba36-server, luci-app-samba.
Как настроить:
1.) Сервер: после установки пакетов и перезагрузки заходим в Web интерфейсе на страницу System/Mount Points. Там находим точку монтирования жесткого диска для шары, обычно она будет по пути /mnt/sdb1. Проверить содержимое диска можно, выполнив команду ls -l /mnt/sdb1 через SSH. На странице Services/Network Shares добавляем эту точку монтирования:
В качестве владельца и группы файлов удобно использовать nobody/nogroup, т.к. информация о владельце всеравно будет утеряна на клиентских машинах под гостевым доступом.
1.) Сервер: после установки пакетов и перезагрузки заходим в Web интерфейсе на страницу System/Mount Points. Там находим точку монтирования жесткого диска для шары, обычно она будет по пути /mnt/sdb1. Проверить содержимое диска можно, выполнив команду ls -l /mnt/sdb1 через SSH. На странице Services/Network Shares добавляем эту точку монтирования:
В качестве владельца и группы файлов удобно использовать nobody/nogroup, т.к. информация о владельце всеравно будет утеряна на клиентских машинах под гостевым доступом.
2.) Клиенты.
Пример записи в fstab на клиентских машинах Linux:
Вместо user ставим своего пользователя, выполняем mount -a. Чтобы удаленная ФС стала доступна сразу нескольким локальным пользователям, другого пользователя можно добавить в группу (adduser user group).
В Windows шара появится в сетевом окружении автоматически.
Пример записи в fstab на клиентских машинах Linux:
192.168.1.1:/remote /mnt/remote cifs guest,rw,uid=user,gid=group,cache=none 0 0
Вместо user ставим своего пользователя, выполняем mount -a. Чтобы удаленная ФС стала доступна сразу нескольким локальным пользователям, другого пользователя можно добавить в группу (adduser user group).
В Windows шара появится в сетевом окружении автоматически.
Торрент качалка
Нужно использовать клиент Transmission, т.к. пока ему нет альтернатив.
Нужно использовать клиент Transmission, т.к. пока ему нет альтернатив.
Необходимые пакеты: transmission-daemon, transmission-remote, luci-app-transmission.
Как настроить: после установки и перезагрузки заходим на страницу Services/Transmission и настраиваем торрент сервер. Для разрешения удаленного доступа, нужно настроить доступ по RPC:
На клиентской машине с Linux (Debian) следует установить пакет «transgui»:
Что еще не забыть сделать
Создайте на внешнем диске swap файл, и добавьте в автозагрузку роутера:
Первая строчка активирует своп файл, вторая поднимает Wifi, если он автоматически не включается после перезагрузки. Когда настраиваете новые сервисы, не забудьте разрешить их на странице System/Startup.
Создайте на внешнем диске swap файл, и добавьте в автозагрузку роутера:
swapon /mnt/sdb1/swapfile
wifi
Первая строчка активирует своп файл, вторая поднимает Wifi, если он автоматически не включается после перезагрузки. Когда настраиваете новые сервисы, не забудьте разрешить их на странице System/Startup.
Приватизировал здесь: http://v1ron.ru/2013/06/stavim-openwrt-na-dir320nru/