Меню

Dd wrt настройка через командную строку



Небольшой Блог Системного Администратора

Некоторые примеры настроек dd-wrt. Содержание:

1# Подключение принтера и установка его по сети в Windows 7.

2# Доступ по FTP к подключенному диску.

3# Доступ к FTP из Интернета.

4# Домашние папки для пользователей FTP

5# Сброс настроек из командной строки

6# Примерная организация сетевой работы в нутри DD-WRT/OPEN-WRT

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

1# Подключение принтера и установка его по сети в Windows 7.

Для начала заходим в интерфейс и включаем поддержку принт-сервера:

Сохраняем «Apply Settings». Подключаем принтер к роутеру и продолжаем настраивать уже в системе. Подключенный принтер ни как не отобразится в настройках dd-wrt. В Windows 7 открываем «Меню пуск — Устройства и принтеры». Вверху открывшегося окна будет кнопка «Установить принтер», или же правой кнопкой на пустом месте и в открывшемся меню выбираем аналогичный пункт «Добавить принтер». В итоге запускается мастер установки принтера:

Выбираем пункт «Добавить сетевой, беспроводной или Bluetooth-принтер». После нажатия начинается процесс поиска принтера. Можно не ждать завершения процесса, а нажать «Нужный принтер в списке отсутствует».

Далее «Добавить принтер по его TCP/IP-адресу или имени узла»:

Указываем тип устройства «Устройство TCP/IP», адрес роутера и порт 9100. Настроили > Далее.

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

Выбираем тип устройства «Особое» и нажимаем «Параметры».

Проверяем введенные нами раннее сетевые настройки и тип Протокола выбираем «RAW». Жмем «ОК» > «Далее». Снова Windows пытается что то найти. По их окончанию нам открывается стандартное окно установки драйверов. В зависимости от вашего принтера выбираете из списка либо указываете папочку где лежат драйвера или установочный диск. Если указали правильно, в списке появится нужный вам принтер.

У меня принтер HP, на его примере и делаю =) И снова «Далее». Произойдет установка драйверов принтера, спросят еще парочку простых вопросов: имя принтера, давать доступ или нет к принтеру пользователям из локальной сети, использовать принтер по умолчанию. На этом Все! Принтер установлен и должен быть в списках доступных принтеров.

2# Доступ по FTP к подключенному диску.

Активируем пункт ProFTPD, в поле «User Password List» указываем имена пользователей и пароли которые будут иметь доступ к ftp. Если не указать пользователей, то доступ будет иметь только root пользователь с паролем от Web интерфейса роутера.

Пароль можно задавать в открытом виде, либо в виде шифра md5. Сохраняем/применяем и получаем доступ ко всем подключенным дискам по ftp.

3# Доступ к FTP из Интернета.

Настроив роутер как описано в предыдущем пункте, можно открыть доступ для подключения из интернета. Зная адрес роутера, Вы в любой момент при наличии интернета сможете получить доступ к нужным данным расположенным на подключенном диске. Удобно же! Не так ли?!

Во вкладке «Administration» — «Commands», в поле «Commands» вводим команду:

и нажимаем «Save Firewall». В итоге должно получиться следующее:

Данное правило сохранится при перезагрузке роутера и заново настраивать ни чего не надо.

4# Домашние папки для пользователей FTP

Задача: каждый пользователь ftp должен попадать только в ту папку, которую мы укажем.

Такое не сделать через web интерфейс, поэтому надо подключиться к роутеру с помощью telnet или ssh. Все конфигурационные файлы демона ProFTPD лежат в директории:

Открываем файл password:

Меняем нужному пользователю только домашнюю папку (/tmp/root) на ту, куда он должен попасть:

Сохраняем изменения в файле. Учтите что, нужные папки должны быть уже созданы на диске. Ну и конечно надо правильно указать путь куда смонтирован подключенный диск.

Для применения настроек надо перезапустить proftpd. Ищем номер процесса:

Номер процесса в моем случае 5222. Убиваем процесс и запускаем заново:

На этом все. Единственный нюанс: все сделанные изменения в файле password при перезагрузки роутера будут потеряны.

5# Сброс настроек из командной строки

6# Примерная организация сетевой работы в нутри DD-WRT/OPEN-WRT

Источник

Прошивка DD-WRT на домашнем роутере

Прошивка DD-WRT на домашнем роутере

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

Рано или поздно каждый пользователь интернета покупает себе домой роутер, поскольку количество устройств, требующих интернета, растёт. А у многих растут дети, которые тоже требуют подключения к интернету 🙂 Но мне больно и обидно видеть, что люди не всегда понимают, что можно и нужно делать для достижения максимального комфорта.

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

Речь пойдёт о прошивке роутера на основе известного дистрибутива DD-WRT. Это прошивка, превращающая роутер в «обычный» линукс-сервер с весьма жёсткими ограничениями памяти и быстродействия. Несмотря на это, функционал такого сервера может получиться весьма богатым.

Читайте также:  Dd wrt вход в настройки

Вот только некоторые из возможностей:

  • SSH
  • FTP server
  • HTTP server
  • OpenVPN
  • QoS management
  • Transmission
  • PHP
  • MySQL
  • RADIUS
  • Asterisk
  • etc etc

— Давайте же начнем! — сказал Морж, усаживаясь на прибрежном камне. — Пришло время потолковать о многих вещах. (c)

1) Выбор оборудования

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

Назову 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 — то есть, там очень мало места и всё, что туда попадает, будет потеряно при перезагрузке. Что же делать?

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

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

Читайте также:  Настройка vlan в slackware

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

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

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

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

    раздел ext2, размер

400Mb — основной раздел Optware, монтируется как /opt
раздел swap, размер

24Mb — для свопинга, позволяет работать таким «тяжеловесным» приложениям как RADIUS, MySQL, Apache.
раздел ext2, размер

400Mb — резервный раздел Optware (офлайновое зеркало)

  • раздел ext2 или fat32, всё остальное место — для пользовательских данных
  • Форматирование USB лучше всего выполнять на Linux-машине любыми подручными утилитами, например GParted.

    Если роутер не имеет аппаратного 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.
    Варианты:

    Сохраним его в роутере кнопкой 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) выглядит примерно так (некоторые подробности опущены, полный код доступен здесь):

    # 1: Монтировать «диск» optware в папку /opt
    DST=`ls /dev/scsi/host?/bus?/target?/lun?/part1`
    if [ -n «$DST» ]; then
    /bin/mount -t ext3 -o noatime,nodiratime $DST /opt
    echo «mount USB part1 -> /opt»
    fi

    # 2: Разрешить swapfile с раздела swap
    DST=`ls /dev/scsi/host?/bus?/target?/lun?/part2`
    if [ -n «$DST» ]; then
    /opt/bin/busybox swapon $DST
    echo «mount USB part2 -> swap»
    fi
    # 3: Создать окружение для запуска S* скриптов Optware
    echo «start»>/tmp/.rc_stage

    # 4: Закончить работу, далее запустятся скрипты /opt/etc/init.d/S*
    exit

    Каждый 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) выглядит примерно так (некоторые подробности опущены, полный код доступен здесь):

    # 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

    # 4: Закончить работу, далее будет перезагрузка роутера
    echo «*** Shutdown ***

    В более старом роутере (версия прошивки 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

    Источник

    Adblock
    detector