Dd wrt команды: DD-WRT. Команды busybox.

Содержание

DD-WRT. Команды busybox.

Команды BusyBox.

Файловые команды
lsсписок файлов и каталогов>
ls -alформатированный список со скрытыми каталогами и файлами
cd dirсменить директорию на dir
cdсменить на домашний каталог
pwdпоказать текущий каталог
mkdir dirсоздать каталог dir
rm fileудалить file
rm -r dirудалить каталог dir
rm -f fileудалить форсированно file
rm -rf dirудалить форсированно каталог dir
cp file1 file2скопировать file1 в file2
cp -r dir1 dir2скопировать dir1 в dir2; создаст каталог dir2, если он не существует
mv file1 file2переименовать или переместить file1 в file2. Если file2 существующий каталог — переместить file1 в каталог file2
ln -s file linkсоздать символическую ссылку link к файлу file
touch fileсоздать file
cat > fileнаправить стандартный ввод в file
more fileвывести содержимое file
head fileвывести первые 10 строк file
tail fileвывести последние 10 строк file
tail -f fileвывести содержимое file по мере роста, начинает с последних 10 строк
Управление процессами
psвывести ваши текущие активные процессы
topпоказать все запущенные процессы
kill pidубить процесс с id pid
killall procубить все процессы с именем proc
bgсписок остановленных и фоновых задач; продолжить выполнение остановленной задачи в фоне
fgвыносит на передний план последние задачи
fg nвынести задачу n на передний план
Права доступа на файлы
chmod octal fileсменить права file на octal, раздельно для пользователя, группы и для всех добавлением:
4чтение (r)
2запись (w)
1исполнение (x)
Примеры:
chmod 777чтение, запись, исполнение для всех
chmod 755rwx для владельца, rx для группы и остальных.
SSH
ssh user@hostподключится к host как user
ssh -p port user@hostподключится к host на порт port как user
ssh-copy-id user@hostдобавить ваш ключ на host для user чтобы включить логин без пароля и по ключам
Поиск
grep pattern filesискать pattern в files
grep -r pattern dirискать рекурсивно pattern в dir
command grep pattern|искать pattern в выводе command
locate fileнайти все файлы с именем file
Системная информация
dateвывести текущую дату и время
calвывести календарь на текущий месяц
uptimeпоказать текущий аптайм
wпоказать пользователей онлайн
whoamiимя, под которым вы залогинены
finger userпоказать информацию о user
uname -a
показать информацию о ядре
cat /proc/cpuinfoинформация ЦПУ
cat /proc/meminfoинформация о памяти
man commandпоказать мануал для command
dfпоказать инф. о использовании дисков
duвывести «вес» текущего каталога
freeиспользование памяти и swap
whereis appвозможное расположение программы app
which appкакая app будет запущена по умолчанию
Архивация(при условии что у Вас установлены tar и gzip)
tar cf file.tar filesсоздать tar-архив с именем file.tar содержащий files
tar xf file.tarраспаковать file.tar
tar czf file.tar.gz filesсоздать архив tar с сжатием Gzip
tar xzf file.tar.gzраспаковать tar с Gzip
tar cjf file.tar.bz2создать архив tar с сжатием Bzip2
tar xjf file.tar.bz2распаковать tar с Bzip2
gzip fileсжать file и переименовать в file. gz
gzip -d file.gzразжать file.gz в file
Сеть
ping hostпропинговать host и вывести результат
whois domainполучить информацию whois для domain
dig domainполучить DNS информацию domain
dig -x hostреверсивно искать host
wget fileскачать file
wget -c fileпродолжить остановленную закачку
Установка\удаление пакетов
ipkg-opt remove название проги (удаление)
ipkg-opt install название проги (установка)
Установка из исходников:
./configure
make
make install
dpkg -i pkg. deb
установить пакет (Debian)
rpm -Uvh pkg.rpmустановить пакет (RPM)
Клавиатурные сочетания
Ctrl+Cзавершить текущую команду
Ctrl+Zостановить текущую команду, продолжть с fg
на переднем плане или bg в фоне
Ctrl+Dразлогиниться, тоже самое, что и exit
Ctrl+Wудалить одно слово в текущей строке
Ctrl+Uудалить строку
Стрелка Upповторить последнюю команду
exitразлогиниться

[DD-WRT роутер] Узнаём кто дома [Philip Wiki]

Недавно наткнулся на видео-презентацию, в которой некий парень показывал возможности Tasker… При вводе голосовых команд он узнавал, кто в данный момент находиться в пределах его точки доступа Wi-Fi. Но он не стал сообщать, как он это сделал, мол пока это всё как проба пера. Мне захотелось сделать что-то похожее, только более глобально. Всё, что нам нужно – роутер и Linux-машинка (в принципе, всё это можно при желании сделать и на Windows… но с придумыванием велосипедов)

Собственно, как оказалось, реализовать это достаточно просто, особенно если на роутере используется прошивка DD-WRT. Например, чтобы узнать, кто в данный момент «сидит» на роутере посредством wi-fi, достаточно через консоль (ssh, telnet) ввести следующую команду:

wl assoclist

В ответ мы получим что-то вроде этого:

assoclist 70:15:56:3A:91:8E
assoclist D9:D5:BE:8A:68:41
assoclist 02:65:11:BD:58:17
assoclist 73:40:0A:88:43:46

Это список всех MAC-адресов устройств, которые в данный момент подключены к роутеру. Теперь дело за малым, убрать лишнее и научиться определять нужные «маки». Легко!

Первым делом перенаправим вывод команды в утилиту awk, чтобы оставить только второй столбец, в котором содержится перечень аппаратных адресов.

Ну и всё что у нас получится запишем в текстовый файл:

wl assoclist | awk '{print $2}' > who_online.txt

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

grep -q '70:15:56:3A:91:8E' who_online.txt && echo "Устройство с этим адресов в сети!"

Вот в общем-то и всё. Ниже я приведу листинг своего готового скрипта, который выполняет сразу несколько условий1):

  1. Подключаемся к роутеру по ssh 2) и получаем список подключенных устройств. Сразу «чистим» его и пишем в файл;
  2. Теперь выполняются два условия, при успешном выполнении любого из них, создаётся временный файл, который существует до тех пор, пока не станет успешным альтернативное условие:

    1. В первом ищем мак моего телефона, если его нет, отправляем пуш-сообщение, что меня нет дома;

    2. Во втором снова ищем мак моего телефона, только теперь условием должно стать успешное его нахождение. И снова отправляем пуш-сообщение, только теперь с другим текстом.

Вот собственно как-то так. Скрипт помещаем в cron и выполняем с необходимым интервалом. Как я уже написал выше, как только одно из условий выполняется, создаётся временный файл и данное условие в дальнейшем будет игнорироваться, до тех пор, пока альтернативное условие не станет «true» и не удалит временный файл своего «противника». Пример скрипта pushbullet прикладываю, он отправляет пуши посредством одноименного сервиса (подробно, извиняйте, описывать не буду, он тут скорее как пример…).

example.sh
#!/bin/sh
 
# variables
FILE0=/tmp/who_online.txt
FILE1=/tmp/philip_left.tmp
FILE2=/tmp/philip_home.tmp
ACT1=/home/user/pushbullet
ACT2=/home/user/pushbullet
MACADR='70:15:56:3A:91:8E'
# connect to router
ssh [email protected] -i /home/user/.ssh/cert wl assoclist | awk '{print $2}' > $FILE0
# left home
if [ ! -e $FILE1 ]
then
grep -q $MACADR $FILE0 || ($ACT1 "Philip left home" "Trigger one";echo "Philip left home">$FILE1;rm $FILE2)
fi
# came home
if [ ! -e $FILE2 ]
then
grep -q $MACADR $FILE0 && ($ACT2 "Philip came home" "Trigger two";echo "Philip came home">$FILE2;rm $FILE1)
fi
# end file
pushbullet. sh
#!/bin/bash
apikey=ваш_API_ключ
iden=ID_устройства_на_которое_нужно_отправить_сообщение
 
curl https://api.pushbullet.com/v2/pushes \
      -u $apikey \
      -d device_iden=$iden \
      -d type=note \
      -d title="$1" \
      -d body="$2" \
      -X POST

P.S. Не претендую на оригинальность, может кто-то уже придумал такой или более красивый вариант… Но мне пофиг!

👆Создание microNAS из роутера на основ DD-WRT, установка торрент клиента Transmission. На примере Tp-Link TL-WDR4300ND TL-WR1043ND | Сетевые хранилища NAS | Блог

Если у Вас есть чудо поделка Китайской мысли как роутеры компании TP-Link c USB интерфейсом, и Вам жалко простоя такого железа, неиспользуемость многих возможностей в заводской версии микрокода, есть возможность преобразить устройство, раскрыть недокументированные возможности — устроить микроNAS, с установленным торрент клиентом, при этом значительно тише работающий и на порядок меньше потребляющий энергии чем специально выделенные для этих целей компьюетеры.

Постараюсь в краткости написать процесс установки альтернативной прошивки DD-WRT, установка внешнего hdd, установка на него программного обеспечения, установка торрент клиента transmission, организация общего доступа к файлам на внешнем жестком диске (samba или ftp). Так же вопросы восстановления работоспособности устройств через serial интерфейс и т.д.

Частично материалы были взяты, переработаны, объединены с данных информационных ресурсов и веток форумов:

http://wiki.openwrt.org/toh/tp-link/start

http://forum.ixbt.com/topic.cgi?id=14:55659

http://forum.ixbt.com/topic.cgi?id=14:56970

http://forum.ixbt.com/topic.cgi?id=14:53930

http://www.dd-wrt.com/phpBB2/viewtopic.php?t=83286&postdays=0&postorder=asc&start=0

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

Данная «статья» находится в стадии написания, как будет время будут дописываться части, дополняться

небольшое предупреждение: при любой смене микрокода устройства есть шанс получить из устройства мигающий кирпич (хотя его можно будет не так сложно восстановить через serial интерфейс).

А если Вам хочется превратить простой роутер в подобие microNAS, что бы эта коробка не только раздавали интернет, но и сама скачивала для вас в круглосуточном режиме торрент файлы, при этом на порядок (в десятки раз) меньше потребляя электроэнергии и работая почти бесшумно (будет гудеть только шпиндель hdd, но его тоже можно взять 5400-5900 rpm), возможность настроить удаленный доступ к внешнему носителю информации не только из внутренней сети но и из сети internet (через ftp) — смело читайте дальше! Постараюсь кратко и четко описать последовательность действий.

1.1. Получение необходимой версии микрокода.

Опишу на основе альтернативной версии микрокода (прошивки) DD-WRT. Список поддерживаемых устройств этой альтернативной прошивкой можно получить тут: Список совместимых устройств

Скачиваем последнюю версию прошивки для Вашего роутера качаем отсюда ftp://dd-wrt.com/others/eko/BrainSlayer-V24-preSP2/ , выбираем текущий год, и самую последнюю версию релиза, далее находим раздел с файлами прошивки Вашей модели роутера. На момент написания пользовался r20119_12-10-12

При перепрошивке роутера из заводской прошивки необходимо использовать файл factory-to-ddwrt.bin. Если Вы обновляете уже стоящую альтернативную прошивку DD-WRT, то необходимо использовать файл микрокода tl-wr1043nd-webflash.bin.

1.2. Процесс смены микрокода (перепрошивка).

Итак, заходим в web-интерфейс роутера через браузер, желательно IE (Internet Explorer) в данном случае это оправданно, если стандартные настройки то в адресной строке вводим 192.168.1.1, после чего запрос логина/пароля (admin/admin). Сразу переходим на пункт System Tools-> Frimware Upgrade (рис. 1.1).

Рис.1.1а –меню обновления микрокода в заводской версии

Рис.1.1б –меню обновления микрокода в китайской версии роутера

Выбираем необходимую альтернативную прошивку, несколько раз проверте правильность прошивки, должна быть factory-to-ddwrt.bin. Нажимаем на кнопку Upgrade и ждем минут пять (при использовании Opera ни чего не выйдет) после обновления будет перезагрузка устройства. По окончании перезагрузки устройства снова заходим через браузер (теперь можно использовать Ваш предпочтительный) 192.168.1.1, тут главное не испугаться, появляется окно рис 1.2.

Рис. 1.2 – Первоначальное окно после перепрошивки в dd-wrt

Вам предложено ввести пользователя и пароль для администрирования через WEBинтерфейс, при чем данный административный пароль будет и у пользователя root в работе через консоль, поэтому что бы не создавать излишнюю путаницу, лично я завожу

Router Username: root, а пароль какой в голову взбредет, главное не забыть его потом. После сохранения пароля, тут же попросит при входе в web интерфейс ввести его. Если после перепрошивки роутер не горит всеми светодиодными индикаторами, или периодически не мигает ими, то процесс смены микрокода по сути закончен. Если же во время смены микрокода произошли непредвиденные события, или вы перепутали из-за спешки или невнимательности версию (прошили версией для другой модели) и устройство превратилось в мигающий кирпич, то

а) Успокоится, попить сладкого чаю и т.д.

б) Есть возможность восстановить работоспособность прибора процедурой восстановления через serial интерфейс , но это потребует вскрытия корпуса, возможно использования паяльника (хотя можно обойтись и без него), специальный кабель, компьютер с ОС Windows XP и чуть больше времени.

1.3 Основные настройки DD-WRT.

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

1.3.1. Первоначальное оформление web интерфейса мне лично не нравится, поэтому сразу меняю его на более приличное (тем более оно на телефоне корректно отображается, смена оформления в пункте меню Administration-> Management -> выбор из списка в разделе Router Gui Style-> Style – мне больше по душе xirian, процедура на рисунке 1.3, где так же возможно сменить язык, и другие настройки, Save + Apply Settings

Рис.1.3 – Смена оформления, и другие настройки

Получаем такой вид web интерфейса (рис.1.4), не нравится — выбирайте по своему усмотрению.

Рис.1.4 -Xirian оформление WEB-интерейса DD-WRT

Альтернативная версия микрокода DD-WRT имеет достаточно хороший русский интерфейс, может кому-то он больше нравится (рис. 1.5)

Рис.1.5 — Русский вариант интерфейса DD-WRT

Сразу необходимо настроить доступ в Internet и проверить работу, т.к. в некоторых «железных» версиях роутера после перепрошивки куда-то пропадает WAN интерфейс, при возвращении на родную прошивку возвращается . .., хотя это лечится дополнительной перепрошивкой в какой то релиз прошивки, после чего можно на более новую переходить.

Задача: организовать хранение информации на внешнем носителе информации через usb интерфейс (внешний hdd, для любителей тишины — ssd). Лично использовал накопители на жестких магнитных дисках с частотой оборотов шпинделя 5400-5900 rpm, т.к. добивался максимально комфортных условий работы в ночное время. HDD помещались во внешние боксы (первоначально был 3.5’ с отдельным внешним блоком питания, затем 2.5’, которому хватает питания от одного USB порта роутера, да и места занимает значительно меньше, есть возможность красиво прикрутить устройство прямо к роутеру.

Мои варианты использования внешних боксов:

Рис.2.1 –Начальный вариант 1043+1TB 3.5’ hdd

Рис.2.1а – Модернизированный вариант роутера – 2.5’ внешний бокс приделан силиконовыми гвоздями к верхней крышке роутера – вариант МОНОЛИТ_1043.

Рис. 2.2 – TL-WDR4300ND + 500 GB hdd — Монолит-2 бокс прикреплен силиконовыми гвоздями.

2.1. Создание необходимых разделов на hdd.

Для корректной работы нам понадобится минимум два раздела, но лучше 3. Создаем следующие разделы на hdd (возможно использовать ПО Acronis)

— 100 МБ – файловая система ext2 – системный диск, куда будем устанавливать пакеты программ, желательно, что бы он был как раз первым. Установка программного обеспечения на внешний hdd обусловлена малым объемом flash памяти устройства (всего 8 МБ доступной памяти)

— Основной раздел –файловая система EXT3 — файловое хранилище. Конечно возможно использование и привычной NTFS, но ради простоты, и скорости работы с внешним носителем информации лучше использовать данную файловую систему. В связи с тем, что процессор был сделан для задач маршрутизации, характеристики ограниченные, при копировании информации с внешнего носителя информации процессор будет загружаться на 100%, при этом скорость записи чтения с файловой системой NTFS будет в районе 3-5 MBps (до 20Мбит/с), c FAT32 5-7 MBps (до 50 Мбит/с) а при использовании EXT3 скорость передачи данных будет 10-13 MBps ( до 80-100 Мбит/с) (Данные на моделях роутеров TP-Link TL-WR1043-ND и TL-WDR4300-ND)

— крайний (не особо обязательный) 100 МБ – swap – раздел файла подкачки, необходим при нехватке оперативной памяти роутера.

2.2. Подключение внешнего носителя информации через usb интерфейс роутера

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

2.2.1 Включение функции работы с внешним устройством хранения информации.

Через web- интерфейс роутера (у Вас должна быть уже установлена альтернативная версия микрокода) переходим к разделу Services->USB, выставляем в Enable все, кроме использования принтера, точкой монтирования выбираем /opt, т.к. первый раздел у нас для программного обеспечения, и нажимаем применить (Applay), должно получиться подобно данному рисунку 2.4

Рис.2.4 — Подключение внешнего накопителя информации

Тут же запоминаем номер устройства всех дисков, в данном примере:

Основной раздел будет /dev/sda5, Swap раздел /dev/sda/6 – эти данные пригодятся в дальнейшем.

2.2.2 Подключение основного раздела.

Необходимо подключить основной раздел диска – файлового хранилища. Точка монтирования основного раздела будет /mnt .

Предпочтительный вариант это работа в консоли, либо стандартным способом через telnet клиент, либо используя программу наподобии putty, разницы нет. Telnet подключение (Пуск-выполнить telnet 192.168.1.1 если у Вас Win7, то сперва необходимо включить telnet клиент ). Будет запрос на введение пользователя и пароля, ВАЖНО пользователь root , даже если в web интерфейсе совершенно другой, а пароль на доступ – административный пароль для длступа к web интерфейсу ( поэтому я советовал вводить имя пользователя root, дабы не создать путаницы).

Рис.2.5- telnet соединение с роутером, ввод логина/пароля

Монтируем основной диск командой:

mount /dev/sda5 /mnt

Командой df -h посмотрим примонтированные диски, должны увидеть, что наш 100МБ диск смонтирован в /opt (/dev/sda4), основной диск смонтирован в /mnt (/dev/sda5)

Рис. 2.6 – проверка монтирования дисков

Для автоматического подключения основного раздела необходимо в разделе Administration->Commands скопировать команду mount /dev/sda5 /mnt и сохранить ее Save Startup.

2.2.3. Создание общедоступного ресурса.

Основной раздел диска успешно подключен, переходим к следующему этпау. Переходим в web интерфейсе на раздел Services->NAS

Самый удобный вариант это ftp сервер – простой доступ к файлам как из домашней сети, так и из сети интернет, если это понадобиться

Пользователи и пароли пишутся через пробел, каждая пара пользователь/пароль пишется с новой строчки.

Рис.2.7 – настройка ftp сервера из WEBинтерфейса

Второй вариант для пользователей Windows он более удобен – это Samba – в сетевом окружении будет виден расшаренный ресурс, минус данного решения – он значительно больше загружает процессор, как следствие меньшая скорость чтения/записи информации. Настройка из web интерфейса показана на рис. 2.8

Рис. 2.8 – настройка samba

Уточнения:

Server String — отображаемое имя станции («компьютера») в сетевом окружении

Workgroup — рабочая группа — поумолчанию она так же и называется 😉 — меняите на свою

Shares — табличка для создания различных сетевых ресурсов, вплоть до каталога, создается необходимое количество с разными правами.

Users — табличка пользователей с паролями, и доступ к ресурсам

Проверяем доступность из сети любым способом. тот же Total Commander (рис. 2.9)

Рис. 2.9 — проверка ftp через Total Commander

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

ВНИМАНИЕ: НЕОБХОДИМО ИНТЕРНЕТ СОЕДИНЕНИЕ. для дальнейших действий крайне необходим доступ роутера к сети Internet

3.1. Переносим файлы на внешний носитель информации,

монтируем системные папки с внешнего носителя информации, устанавливаем последнюю версию ipkg, Делаем небольшую хитрость для монтирования всех разделов после перезагрузки для проверки подленности системного раздела жесткого диска — создаем файлик в корне /opt (файд будет usb. hdd) при наличии которого будут монтироваться все остальные разделы и папки.

команды в telnet:

cp -a /etc/ /opt/ cp -a /bin/ /opt/ cp -a /lib/ /opt/ cp -a /usr/ /opt/ cp -a /tmp/ /opt/ cp -a /jffs/ /opt/ sleep 1 mount /opt/etc /etc mount /opt/bin /bin mount /opt/lib/ /lib mount /opt/usr/ /usr mount /opt/tmp/ /tmp mount /opt/jffs/ /jffs

Подключаем репозиторий с пакетами. (данный репозиторий довольно часто обновляется(лся) так что свежие версии пакетов/библиотек/программ возможно найти там)

mv /etc/ipkg.conf /etc/ipkg.conf.orig echo -e «src backfire http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/ndest root /ndest ram /tmp» > /etc/ipkg.conf cp /bin/ipkg /bin/ipkg.orig cat /bin/ipkg.orig |sed -e «s/—passive-ftp //» > /bin/ipkg ipkg update ipkg install coreutils-sort

ВНИМАНИЕ!!!

возможно не хватает обратных слешей! смотрите внимательно Рис.3.0, должно быть подобное!!!

Рис. 3.0 — Пример команды в консоли, и что должно быть после команды update

Делаем фокус метку файлик, который будет помогать роутеру «понять», что к нему подключен внешний носитель с программами.

cd /opt touch usb.hdd

3.2. устанавливаем торрент клиент transmission, простая нсатройка:

Через удаленный доступ к разделу /mnt создаем нужную нам структуру каталогов, мой вариант

/mnt/!torrent_files/downloads – папка по умолчанию для скачиваемых файлов /mnt/!torrent_files/films /mnt/!torrent_files/programs

И т.д.

Команды для установки в консоли:

ipkg update sleep 1 ipkg install transmission-daemon ipkg install transmission-web ipkg install transmission-remote ipkg install transmission-cli

Пробный запуск transmission команда:

/opt/usr/bin/transmission-daemon -g /opt/etc/trasmission -a *.*.*.* -w /mnt/!torrent_files/downloads -p 666 -t -u root -v password

Где 666— порт подключения (выбрать свой)

password – пароль на подключение – придумать свой

*. *.*.* это сеть из которой будет доступно удаленное управление transmission – при таком виде доступ будет с любого ip адреса, т.е. беспроблемное управление через интернет с других компьютеров.

Хотя есть web интерфейс данного торрент клиента, но он неудобен и малоинформативен, поэтому рекомендую использовать TransmissionRemoteGUI – бесплатная программка удаленного управления с интерфейсом подобным utorrent до 3 версии (Рис.3.1). Последнюю версию которой возможно скачать на официальном сайте тут

Рис.3.1. — Интерфейс TransmissionRemoteGUI

Качаем официально бесплатно без проблем. После установки , запускаем меню создания соединения – вводите IP адрес роутера (если в домашней сети по умолчанию то 192.168.1.1) порт, тот что ввели командой, у меня это 666, пароль и пользователь соответственно, наглядно — рис.3.2.

Рис. 3.2 – Новое соединение TransmissionRemoteGUI

Переходим к настройкам transmission. Конечно можно настроить все через консоль (telnet), только проще и понятнее через TransmissionRemoteGUI. Нажимаем на значок гаечного ключа и попадаем в настройки. Основное это убрать галочку с пункта Разрешить DHT (рис. 3.3) кроме постоянной 100% загрузки процессора со снижением скоростей скачивания/отдачи не дает. Количество пиров опытным путем полученное 30-40, большее количество приведет к постоянной 100% загрузке процессора.

Рис. 3.3 – настройки transmission через TransmissionRemoteGUI.

Закладка настроек Скорость дает дополнительные возможности регулирвоки скоростей скачивания/раздачи (с учетом ночных ускорений) так, что бы наименьшим образом влиять на доступ к сети Internet с других устройств (без дополнительного использования QOS) рис. 3.4

Рис.3.4 — Настройка скоростей скачивания/раздачи

После всех проделанных операций выключаем transmission

Команда

killall transmission-daemon

3.3. ставим консольный менеджер файлов mc

ipkg install mc

запуск в консоли mc либо /opt/usr/bin/mc

3.4. Запуск при перезагрузке выключении

Для возможности корректной работы полученной системы после перезагрузки, отключения электроэнергии. Переходим в раздел Administration->Commands , куда копируем

sleep 20 if [ -f /opt/usb.hdd ]; then mount /opt/etc /etc mount /opt/bin /bin mount /opt/lib/ /lib mount /opt/usr/ /usr mount /opt/tmp/ /tmp mount /opt/jffs/ /jffs sleep 10 mount /dev/sda5 /mnt sleep 10 /opt/usr/bin/transmission-daemon -g /opt/etc/trasmission -a *.*.*.* -w /mnt/!t_files/downloads -p 666 -t -u root -v password else exit fi

сохраняем, нажав на Save Startup

Рис.3.6 – Сохранение команд для автоматического запуска при включении устройства

Можно перезагружать устройство, команда

reboot

или через web интерфейс в разделе Administration-> Management внизу кнопка Reboot Router.

Если после перезагрузки все заработало, пользуемся и радуемся 😉

У Вас работает роутер, настроенный по приведенной выше инструкции, и через некоторое время выходит новая стабильная версия микрокода DD-WRT (прошивка), почитав отзывы, новые возможности Вы решили обновить на эту версию, напрямую сразу обновить не выйдет, последовательность действий будет такая:

1) Получаем новую версию микрокода для Вашего роутера качаем отсюда ftp://dd-wrt.com/others/eko/BrainSlayer-V24-preSP2/ , файл микрокода tl-wr1043nd-webflash.bin

2) Удаляем файл usb.hdd (что бы отключить монтирование разделов с внешнего носителя информации и запуск программ, установленных там же) и перезагружаем роутер, через telnet соединение в консоли:

cd /opt rm -f usb.hdd reboot

3) После перезагрузки удаляем все каталоги с 1 раздела (/opt) внешнего носителя информации команды в консоль (telnet)

cd /opt ls rm -rf /opt/bin rm -rf /opt/etc rm -rf /opt/jffs rm -rf /opt/lib rm -rf /opt/tmp rm -rf /opt/usr ls

контроль удаления через консоль (должно быть пусто):

4) Через браузер (желательно Internet Explorer) переходим в раздел Administration -> Firmware Upgrade , где выбираете файл микрокода (tl-wr1043nd-webflash.bin), обновляите, роутер должен будет перезагрузиться.

Рис.X -WEB вариант обновления прошивки

5)после перезагрузки роутера, проверяите работоспособность, далее (если ни чего не менялось) переходите в консоль и копируите код (без разъяснений):

cp -a /etc/ /opt/ cp -a /bin/ /opt/ cp -a /lib/ /opt/ cp -a /usr/ /opt/ cp -a /tmp/ /opt/ cp -a /jffs/ /opt/ sleep 1 mount /opt/etc /etc mount /opt/bin /bin mount /opt/lib/ /lib mount /opt/usr/ /usr mount /opt/tmp/ /tmp mount /opt/jffs/ /jffs sleep 1 mv /etc/ipkg.conf /etc/ipkg.conf.orig echo -e «src backfire http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/ndest root /ndest ram /tmp» > /etc/ipkg.conf cp /bin/ipkg /bin/ipkg.orig cat /bin/ipkg.orig |sed -e «s/—passive-ftp //» > /bin/ipkg ipkg update sleep 4 ipkg install coreutils-sort sleep 1 cd /opt touch usb.hdd ipkg install transmission-daemon ipkg install transmission-web ipkg install transmission-remote ipkg install transmission-cli sleep 2 mount /dev/sda5 /mnt sleep 1 /opt/usr/bin/transmission-daemon -g /opt/etc/trasmission -a *.*.*.* -w /mnt/!t_files/downloads -p 666 -t -u root -v password df -h

6) Настраиваем transmission-daemon либо через консоль, либо через TransmissionRemotegGUI

7) Перезагружаем роутер

в консоли команда reboot

8) После успешной загрузки, окончательно проверяем работоспособность устройства на новой версии микрокода (прошивки).

p.p.s. Надеюсь кому-нибудь понадобится данная инструкция

Невозможно увидеть клиента при использовании проводного Ethernet

Обратите внимание, что в соответствии с ошибкой в ​​прошивке DD-WRT, которую связал @Simon The Cat, вам может потребоваться выполнить некоторые дополнительные команды, как я делал на моем TL-WR841Nv9, когда я обновился до DD-WRT build 38240.

Вы можете / должны проверить, какой интерфейс использовать, запустив «список swconfig» в сеансе SSH.

root@TL-WR841Nv9:~# swconfig list
Found: switch0 - eth0
root@TL-WR841Nv9:~#

Вы также можете подтвердить, что на всех портах вам нужно включить vlan 0 с помощью «swconfig dev eth0 show» … В приведенном ниже случае у меня есть порты 0,1,2,3 и 4:

root@TL-WR841Nv9:~# swconfig dev eth0 show
Global attributes:
        enable_vlan: 0
        mirror_monitor_port: 15
Port 0:
        enable_mirror_rx: 0
        enable_mirror_tx: 0
        pvid: 0
        link: port:0 link:up speed:1000baseT full-duplex txflow rxflow
Port 1:
        enable_mirror_rx: 0
        enable_mirror_tx: 0
        pvid: 0
        link: port:1 link:down
Port 2:
        enable_mirror_rx: 0
        enable_mirror_tx: 0
        pvid: 0
        link: port:2 link:down
Port 3:
        enable_mirror_rx: 0
        enable_mirror_tx: 0
        pvid: 0
        link: port:3 link:up speed:100baseT full-duplex auto
Port 4:
        enable_mirror_rx: 0
        enable_mirror_tx: 0
        pvid: 0
        link: port:4 link:up speed:100baseT full-duplex auto
VLAN 0:
        vid: 0
        ports: 0 1 2 3 4
root@TL-WR841Nv9:~#

Последние команды, которые я ввел в Администрирование -> Команды -> Командная консоль [блок] -> «Сохранить запуск», были следующими. Замените ваше имя интерфейса ниже, которое для TP-Link TL-WR841Nv9:

swconfig dev eth0 set reset 1;
swconfig dev eth0 set enable_vlan 1
swconfig dev eth0 vlan 0 set ports '0 1 2 3 4'
swconfig dev eth0 set apply 1

Впоследствии — не знаю почему, приведенный ниже вывод из «swconfig dev eth0 show» выглядит идентично выводу той же команды после того, как я запустил только эти две команды при запуске «swconfig dev eth0 set enable_vlan 1; swconfig dev eth0 set apply 1;» но по какой-то причине моему маршрутизатору потребовались две другие линии, чтобы заставить порты коммутатора правильно взаимодействовать между устройствами, как описано в отчете об ошибках :

root@TL-WR841Nv9:~# swconfig dev eth0 show
Global attributes:
        enable_vlan: 1
        mirror_monitor_port: 15
Port 0:
        enable_mirror_rx: 0
        enable_mirror_tx: 0
        pvid: 0
        link: port:0 link:up speed:1000baseT full-duplex txflow rxflow
Port 1:
        enable_mirror_rx: 0
        enable_mirror_tx: 0
        pvid: 0
        link: port:1 link:down
Port 2:
        enable_mirror_rx: 0
        enable_mirror_tx: 0
        pvid: 0
        link: port:2 link:down
Port 3:
        enable_mirror_rx: 0
        enable_mirror_tx: 0
        pvid: 0
        link: port:3 link:up speed:100baseT full-duplex auto
Port 4:
        enable_mirror_rx: 0
        enable_mirror_tx: 0
        pvid: 0
        link: port:4 link:up speed:100baseT full-duplex auto
VLAN 0:
        vid: 0
        ports: 0 1 2 3 4
root@TL-WR841Nv9:~#

Есть ли в роутере постоянное хранилище с dd-wrt

Star Citizen — новые игроки приходят пообщаться и задать вопросы

Я новичок в этом. У меня есть dd-wrt, установленный и настроенный в моем роутере.

версия dd-wrt: DD-WRT v24-sp2 (07.08.10) версия маршрутизатора: D-Link DIR 600

Я пытаюсь настроить в нем скрипт мониторинга использования полосы пропускания.

Есть ли способ сохранить данные в роутере, не удаляясь при перезагрузке?

Я имею в виду, есть ли какое-то постоянное хранилище, которое я могу получить?

благодаря J

  • Насколько я помню, DD-WRT разделяет флеш-память на часть для раздела только для чтения с системой, которая загружается в ОЗУ и распаковывается, а затем используется, и небольшая часть, используемая для хранения настроек, в которую можно записывать. Вы можете попробовать использовать это как место для хранения. Проблема возникает, если вам нужно установить на маршрутизатор дополнительную программу для мониторинга, потому что останется мало места. Когда у меня возникла такая проблема, в конце концов мне пришлось перейти на OpenWRT, который не использует файловую систему только для чтения.

Там должен быть nvram (т.е. энергонезависимый баран).

nvram show # list all variables nvram get name # get variable nvram set name=value # set variable nvram unset name # delete variable nvram commit # save changes to flash 

Как сказал Мика: nvram — это имя постоянного хранилища. К сожалению, это не файловая система. Файловая система DD-WRT (по крайней мере, маленькие) представляет собой комбинацию squashfs и ramfs и заполняется во время загрузки из значений, хранящихся в nvram.

Когда вы идете в Администрирование-> Команды, вы можете ввести сценарий и сохранить его как Пользовательский сценарий (внизу страницы). Вы можете использовать эту функцию для реализации нескольких вариантов использования, при условии, что все они находятся в одном скрипте. Я сделал что-то вроде этого:

case '$1' in wificontrol) #here is code which turns off wlan after 30 mins of inactivity ;; wifion|wifi) wlanIF=ra0 ifconfig $wlanIF up touch /tmp/wlan-online0 ;; *) echo '$0 wifi[on]' esac 

Затем я запускаю сценарий в командной строке:

/tmp/custom.sh wifion 

И как задание cron (Администрирование-> Управление):

*/4 * * * * root /tmp/custom.sh wificontrol 

Я знаю, это не очень хорошее решение, но оно работает. Проверено на моем v24-sp2 (rev 14896)

Есть небольшое пространство, которое можно использовать. Я не знаю точно, потому что я не смотрел спецификации вашего роутера. Когда вы устанавливаете задание cron, вы пишете в файловую систему, не так ли? Я бы зашел по SSH и заглянул в каталог / var. Если у вас есть порт USB, вы можете разместить там свои файлы журнала. Просто убедитесь, что ваш скрипт удаляет журналы, когда они достигают определенного размера, иначе ваш маршрутизатор умрет.

Это может вас заинтересовать http://www.dd-wrt.com/wiki/index.php/Useful_Scripts или эта ветка форума. http://www.dd-wrt.com/phpBB2/viewtopic.php?t=81432

Обычно есть место, которое можно использовать. Например, прочтите этот ответ: https://stackoverflow.com/questions/451638/list-free-flash-space-on-wrt54gl-with-dd-wrt-v24sp1-firmare. В моем WAG200G я для своих целей форматировал mtd2 или mtd3. Но вы должны быть уверены, какой флэш-блок вы можете использовать, иначе вы можете превратить свое устройство в кирпич.

Включите JFFS.

По ссылке есть две инструкции:

  • с использованием интерфейса Web-GUI
  • с использованием интерфейса командной строки

В моем случае работал только интерфейс командной строки. Интерфейс Web-GUI не работал.

мои модифицированные инструкции интерфейса командной строки

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

Сначала проверьте, установлен ли уже jffs:

mount 

Смонтированный раздел jffs выглядит так:

$ mount ... /dev/mtdblock/4 on /jffs type jffs2 (rw) $ df -h Filesystem Size Used Available Use% Mounted on ... /dev/mtdblock/4 4.3M 260.0K 4.0M 6% /jffs 

Если он недоступен, дайте команду DD-WRT отформатировать и создать его:

ВЫ ДОЛЖНЫ ВЕРОЯТНО СОЗДАТЬ РЕЗЕРВНУЮ КОНФИГУРАЦИЮ DD-WRT ПЕРЕД ЗАПУСКОМ ЭТОГО

nvram set jffs_mounted=1 nvram set enable_jffs2=1 nvram set sys_enable_jffs2=1 nvram set clean_jffs2=1 nvram set sys_clean_jffs2=1 nvram commit reboot 

После перезагрузки отключите переформатирование при загрузке, чтобы файлы не терялись

nvram set clean_jffs2=0 nvram set sys_clean_jffs2=0 nvram commit 

Тест с

date | tee /jffs/test cat /jffs/test 

Записки старого админа » Основные команды для работы с BusyBox

Клацая в dir-320 с прошивкой dd-wrt, пришлось выучить пару десятков команд которые мне пригодились и в других устройствах основанных на linux BusyBox.

Итак, что такое этот BusyBox?

BusyBox — набор UNIXовых утилит командной строки, которые используется в качестве основного интерфейса во встраиваемых операционных системах. Для тонкой настройки таких систем, часто используется командная строка. Для этого с помощью TELNET или SSH мы соединяемся с командной оболочкой с одним из таких устройств, например: DIR-320 в основе которой лежит BusyBox и используем ряд следующих команд.

Команды для работы с файлами:

pwd – показать текущий каталог ( каталог в котором находится пользователь)
ls – вывести список файлов и каталогов
ls -al – форматированный список со скрытыми каталогами и файлами
cd /etc – сменить директорию на /etc
cd – сменить на домашний каталог
mkdir mydir – создать каталог mydir
rm file.txt – удалить file.txt
rm -r mydir – удалить рекурсивно каталог mydir
rm -f file.txt – удалить форсированно file.txt
rm -rf mydir – удалить форсированно каталог с подкаталогами mydir
cp file1 file2.txt – скопировать file1 в file2.txt
cp -r dir mydir – скопировать dir в mydir; создаст каталог mydir, если он не существует
mv file2.txt file2 – переименовать или переместить file2.txt в file2. 
Если file2 существующий каталог - перемещает file2.txt в каталог file2
ln -s file filelink – создать символическую ссылку filelink к файлу file
touch myfile – создать файл myfile
cat > file.txt – направить стандартный ввод в файл file.txt
cat file.txt - вывести содержимое файла file.txt
more file.txt – вывести содержимое файла file.txt
head file.txt – вывести первые 10 строк файла file.txt на консоль
tail file.txt – вывести последние 10 строк файла file.txt на консоль
tail -f file.txt – вывести содержимое файла file.txt по мере его роста, начинает с последних 10 строк
> - Перенаправление с одного места в другое, например:
Выведем последние 10строк с файла test и вставим их в файл oktest, для этого выполним такую команду:
 tail test > oktest.
Если файл oktest не существовал, то он создастся.

pwd – показать текущий каталог ( каталог в котором находится пользователь) ls – вывести список файлов и каталогов ls -al – форматированный список со скрытыми каталогами и файлами cd /etc – сменить директорию на /etc cd – сменить на домашний каталог mkdir mydir – создать каталог mydir rm file.txt – удалить file.txt rm -r mydir – удалить рекурсивно каталог mydir rm -f file.txt – удалить форсированно file.txt rm -rf mydir – удалить форсированно каталог с подкаталогами mydir cp file1 file2.txt – скопировать file1 в file2.txt cp -r dir mydir – скопировать dir в mydir; создаст каталог mydir, если он не существует mv file2.txt file2 – переименовать или переместить file2.txt в file2. Если file2 существующий каталог — перемещает file2.txt в каталог file2 ln -s file filelink – создать символическую ссылку filelink к файлу file touch myfile – создать файл myfile cat > file.txt – направить стандартный ввод в файл file.txt cat file.txt — вывести содержимое файла file.txt more file.txt – вывести содержимое файла file.txt head file.txt – вывести первые 10 строк файла file.txt на консоль tail file.txt – вывести последние 10 строк файла file.txt на консоль tail -f file.txt – вывести содержимое файла file.txt по мере его роста, начинает с последних 10 строк > — Перенаправление с одного места в другое, например: Выведем последние 10строк с файла test и вставим их в файл oktest, для этого выполним такую команду: tail test > oktest. Если файл oktest не существовал, то он создастся.

Управление процессами в BusyBox:

ps – вывести текущие пользовательские активные процессы
top – показать все запущенные процессы и краткую информацию о ресурсах системы
kill pid – убить процесс id которого pid
killall proces – убить все процессы с именем proces
bg – список остановленных и фоновых задач; продолжить выполнение остановленной задачи в фоне
fg – выносит на передний план последние задачи
fg n – вынести задачу n на передний план

ps – вывести текущие пользовательские активные процессы top – показать все запущенные процессы и краткую информацию о ресурсах системы kill pid – убить процесс id которого pid killall proces – убить все процессы с именем proces bg – список остановленных и фоновых задач; продолжить выполнение остановленной задачи в фоне fg – выносит на передний план последние задачи fg n – вынести задачу n на передний план

Права доступа на файлы в BusyBox:

chmod 640 file – замена прав доступа файла file на 640. Права назначаются раздельно для пользователя,
группы и для всех остальных сложением:
4 – чтение (r)
2 – запись (w)
1 – исполнение (x)
 
Примеры chmod:
chmod 777 – чтение, запись, исполнение для всех пользователей
chmod 751 – чтение, запись, исполнение для владельца; чтение, исполнение для группы; 
и только исполнение для остальных пользователей.
 
Дополнительные опции можно посмотреть набрав команду:
man chmod.

chmod 640 file – замена прав доступа файла file на 640. Права назначаются раздельно для пользователя, группы и для всех остальных сложением: 4 – чтение (r) 2 – запись (w) 1 – исполнение (x) Примеры chmod: chmod 777 – чтение, запись, исполнение для всех пользователей chmod 751 – чтение, запись, исполнение для владельца; чтение, исполнение для группы; и только исполнение для остальных пользователей. Дополнительные опции можно посмотреть набрав команду: man chmod.

Использование SSH в BusyBox:

ssh user@host – подключится к host как пользователь user
ssh -p port user@host – подключится к узлу host на порт port как пользователь user
ssh-copy-id user@host – добавить ваш ключ на узел host для пользователя user чтобы включить вход 
логина без пароля и по ключам

ssh user@host – подключится к host как пользователь user ssh -p port user@host – подключится к узлу host на порт port как пользователь user ssh-copy-id user@host – добавить ваш ключ на узел host для пользователя user чтобы включить вход логина без пароля и по ключам

Как осуществляется поиск в BusyBox:

grep pattern files – искать pattern в файле files
grep -r pattern dir – искать рекурсивно pattern в директории dir
command | grep pattern – искать pattern в выводе command
locate file – найти все файлы с именем file

grep pattern files – искать pattern в файле files grep -r pattern dir – искать рекурсивно pattern в директории dir command | grep pattern – искать pattern в выводе command locate file – найти все файлы с именем file

Системная информация в BusyBox:

date – вывести текущую дату и время роутера
cal – вывести календарь на текущий месяц
uptime – показать текущий аптайм (время работы системы с момента её загрузки)
w – показать пользователей онлайн
whoami – имя, под которым вы залогинены
finger user – показать информацию о пользователе user
uname -a – показать информацию о ядре
cat /proc/cpuinfo – информация о процессоре
cat /proc/meminfo – информация о памяти
man command – показать мануал для команды command
df – показать информацию о использовании дисков
du dir– вывести “вес” каталога dir
free – использование памяти и swap
whereis app – возможное расположение программы app
which app – какая app будет запущена по умолчанию

date – вывести текущую дату и время роутера cal – вывести календарь на текущий месяц uptime – показать текущий аптайм (время работы системы с момента её загрузки) w – показать пользователей онлайн whoami – имя, под которым вы залогинены finger user – показать информацию о пользователе user uname -a – показать информацию о ядре cat /proc/cpuinfo – информация о процессоре cat /proc/meminfo – информация о памяти man command – показать мануал для команды command df – показать информацию о использовании дисков du dir– вывести “вес” каталога dir free – использование памяти и swap whereis app – возможное расположение программы app which app – какая app будет запущена по умолчанию

Процессы архивации при наличии установленных tar и gzip пакетах в BusyBox:

tar cf file1.tar files1 – создать tar-архив с именем file1.tar содержащий файл files1
tar xf file1.tar – распаковать архив file1.tar
tar czf file1.tar.gz files1 – создать архив file1.tar.gz со сжатием Gzip
tar xzf file1.tar.gz – распаковать архив tar с Gzip сжатием
tar cjf file1.tar.bz2 – создать архив file1.tar.bz2 со сжатием Bzip2
tar xjf file1.tar.bz2 – распаковать архив tar с Bzip2 сжатием 
gzip file1 – сжать file1 и переименовать в file1.gz
gzip -d file1.gz – разжать file1.gz в file1

tar cf file1.tar files1 – создать tar-архив с именем file1.tar содержащий файл files1 tar xf file1.tar – распаковать архив file1.tar tar czf file1.tar.gz files1 – создать архив file1.tar.gz со сжатием Gzip tar xzf file1.tar.gz – распаковать архив tar с Gzip сжатием tar cjf file1.tar.bz2 – создать архив file1.tar.bz2 со сжатием Bzip2 tar xjf file1.tar.bz2 – распаковать архив tar с Bzip2 сжатием gzip file1 – сжать file1 и переименовать в file1.gz gzip -d file1.gz – разжать file1.gz в file1

Настройка сети в BusyBox:

ifconfig – показать настройки найденных сетевых интерфейсов
ping host – пропинговать узел host и вывести результат
whois domain – получить информацию whois для домена domain
dig domain – получить DNS информацию для домена domain
dig -x host – реверсивно искать информацию DNS об узле host
wget file – скачать файл file
wget -c file – продолжить остановленную или оборванную закачку файла file

ifconfig – показать настройки найденных сетевых интерфейсов ping host – пропинговать узел host и вывести результат whois domain – получить информацию whois для домена domain dig domain – получить DNS информацию для домена domain dig -x host – реверсивно искать информацию DNS об узле host wget file – скачать файл file wget -c file – продолжить остановленную или оборванную закачку файла file

Установка\удаление программ из пакетов в BusyBox:

/opt/bin/ipkg-opt install название программы/пакета (установка)
/opt/bin/ipkg-opt remove название программы/пакета (удаление)
dpkg -i pkg.deb – установка пакета (Debian)
rpm -Uvh pkg.rpm – установка пакета (RPM)

/opt/bin/ipkg-opt install название программы/пакета (установка) /opt/bin/ipkg-opt remove название программы/пакета (удаление) dpkg -i pkg.deb – установка пакета (Debian) rpm -Uvh pkg.rpm – установка пакета (RPM)

Установка из исходников:

cd application-1.0.2
./configure
make
make install

cd application-1.0.2 ./configure make make install

Быстрые клавиатурные команды:

Ctrl+C – завершить текущую команду
Ctrl+Z – остановить текущую команду, продолжть с fg на переднем плане или bg в фоне
Ctrl+D – разлогиниться, тоже самое, что и exit
Ctrl+W – удалить одно слово в текущей строке
Ctrl+U – удалить строку
!! - повторить последнюю команду
exit – разлогиниться

Ctrl+C – завершить текущую команду Ctrl+Z – остановить текущую команду, продолжть с fg на переднем плане или bg в фоне Ctrl+D – разлогиниться, тоже самое, что и exit Ctrl+W – удалить одно слово в текущей строке Ctrl+U – удалить строку !! — повторить последнюю команду exit – разлогиниться

Может конечно что то ещё упустил, но в принципе для начала и освоения работы со сборкой BusyBox — этого вполне должно хватить.

Надеюсь что этот материал окажется кому-то полезным.

Получите еще больше мощности от вашего домашнего маршрутизатора с DD-WRT Mod-Kit

НЕКЕШЕРОВАННЫЙ КОНТЕНТ


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

Если вы еще этого не сделали, обязательно ознакомьтесь с двумя предыдущими статьями этой серии:

Если вы знакомы с этими темами, продолжайте читать. Имейте в виду, что это руководство является немного более техническим, и новичкам следует быть осторожными при модификации своего маршрутизатора.

Обзор

Это руководство даст пошаговое изложение того, как создать собственную прошивку DD-WRT с модификациями и дополнениями, используя « комплект модификации прошивки “.

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

Наиболее распространенной причиной использования этого метода является то, что в последнее время DD-WRT поддерживает Openwrt Пакеты IPKG переместились в сторону маршрутизаторов с жесткими дисками (через USB), что делает мод-комплект единственным постоянно работающим способом успешной установки пакетов IPKG в случаях, когда недоступен жесткий диск. Кроме того, этот метод имеет дополнительное преимущество, так как освобождает вас от зависимости JFFS для установки пакетов, что для маршрутизаторов с 4 МБ флэш-памяти является реальной проблемой.

Фотография publicenergy

Цели

Хотя инструкции по этой процедуре подробно описаны на DD-WRT вики и на сайт разработчика , мы стремимся сделать это руководство процедурой копирования и вставки, которую каждый может использовать для достижения следующих целей:

  • Установите пакет knockd и его зависимости.
  • Установите пакет ssmtp со сгенерированными конфигурациями на основе NVRAM.
    • Опционально с поддержкой TLS smtp (также известной как поддержка Gmail).

После того, как вы выполнили эту процедуру, ее должно быть достаточно просто адаптировать для установки других пакетов.

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

Предпосылки

  1. С помощью этой процедуры можно кирпич ваш маршрутизатор, как и ваш маршрутизатор непригодный для использования, мы не несем ответственности за любой ущерб, который может быть причинен прямо или иным образом в результате использования описанных ниже процедур.
  2. Эта процедура была выполнена в системах на основе Debian (Lenny, Squeeze и Mint), и в приведенных ниже инструкциях предполагается, что вы тоже используете одну из них.
  3. Эта процедура рекомендуется только для людей, которые имеют опыт перепрограммирования своего маршрутизатора с помощью DD-WRT, со всеми предварительными условиями, предостережениями и ограничениями, которые применяются при настройке их оборудования. хорошее место для начала было бы наше Превратите домашний маршрутизатор в сверхмощный маршрутизатор с DD-WRT руководство.
  4. Ваш маршрутизатор должен поддерживать как минимум «мини» версию DD-WRT.
  5. Эта процедура была создана и протестирована на маршрутизаторах Linksys WRT54GS / L. Если вы используете маршрутизаторы других производителей, ваш пробег может быть очень большим.

Настроить

Установка необходимых пакетов

Комплект для модификации прошивки имеет некоторые зависимости для компиляции и работы. Чтобы установить / обновить их все сразу, выполните следующую команду в терминале:

sudo aptitude install gcc g ++ binutils patch bzip2 flex bison make gettext unzip zlib1g-dev libc6 subversion

Скачать мод-комплект

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

mkdir firmware_mod_kit
cd firmware_mod_kit
svn checkout http://firmware-mod-kit.googlecode.com/svn/trunk/ firmware-mod-kit-read-only
cd firmware-mod-kit-только для чтения / багажник /

Загрузите прошивку для работы

В первую очередь следует подумать, какую версию вы хотите использовать?
Практическое правило: в случае сомнений используйте «мини». Это связано с тем, что, пока ваш маршрутизатор поддерживает хотя бы «мини-версию», его использование дает вам все наиболее часто используемые функции без лишних программ. таким образом, оставляя место для процедур и даже некоторое пространство JFFS для другое использование в большинстве случаев.

После того, как вы определились с версией, рекомендуется использовать последнюю доступную версию встроенного ПО, поскольку в них, как правило, содержится много исправлений ошибок по сравнению с их «стабильными» аналогами.
На момент написания последней была «03-17-11-r16454», и эта версия используется в следующих командах.

wget http://www.dd-wrt.com/dd-wrtv2/downloads/others/eko/BrainSlayer-V24-preSP2/2011/03-17-11-r16454/broadcom/dd-wrt.v24_mini_generic.bin

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

mv dd-wrt.v24_mini_generic.bin dd-wrt.v24_mini_generic-03-17-11-r16454.bin

Это, конечно, необязательно, но команды ниже предполагают, что вы переименовали файл.

Распаковка прошивки

Чтобы иметь возможность изменять файлы в прошивке, нам необходимо извлечь ее содержимое во временный каталог.
Синтаксис этой команды:
./extract_firmware.sh FIRMWARE_IMAGE WORKING_DIRECTORY
В нашем случае это означает:

./extract_firmware.sh dd-wrt.v24_mini_generic-03-17-11-r16454.bin ./working_dir_mini1

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

Установка пакетов

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

Пакет knockd

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

Knockd — это демон, который прослушивает коммуникационные события на канальном уровне для последовательностей, а затем воздействует на них.
Это означает, что вы можете заставить устройство, на котором запущен демон, даже не «прослушивать» порты (сканирование портов не увидит их как открытые), и при этом заставить его делать то, что вам нужно, с помощью одной команды, все путь вверх к полному сценарию. Используя эту технику вы можете запустить сервер для выполнения любой нужной вам операции удаленно (через Интернет), не подвергая вашу домашнюю сеть.

Knockd имеет только одну указанную зависимость, поэтому загрузите пакет и его зависимость, выполнив:

wget http://downloads.openwrt.org/backports/rc5/knockd_0.5-1_mipsel.ipk
wget http://downloads.openwrt.org/whiterussian/packages/libpcap_0.9.4-1_mipsel.ipk

Установите в прошивку ipk «knock daemon» (knockd):

./ipkg_install.sh knockd_0.5-1_mipsel.ipk ./working_dir_mini1/

Установите ipk «перехвата пакетов» (libpcap) в прошивку:

./ipkg_install.sh libpcap_0.9.4-1_mipsel.ipk ./working_dir_mini1/

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

Пакет SSMTP

Пакет SSMTP позволяет вашему маршрутизатору отправлять сообщения электронной почты, как мы показали в нашем Как настроить оповещения по электронной почте в Linux с помощью Gmail или SMTP для серверов. Мы обещали вам тогда, что покажем, как настроить это для DD-WRT, и сейчас доставим.
Это в основном полезно, если вы собираетесь создавать сценарии на маршрутизаторе, о работе которых вы хотели бы получать отзывы по электронной почте.

Настройка этого пакета немного сложнее, чем в обычных системах Linux, из-за ограничений, накладываемых встроенной системой, так что сделайте глубокий вдох… готовы?…. Пошли… 🙂

Загрузите пакет:

wget http://downloads.openwrt.org/backports/rc5/ssmtp_2.61-1_mipsel.ipk

Установите ipk «ssmtp» в прошивку:

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

Поддержка TLS (необязательно)
SSMTP не указывает какие-либо другие пакеты в качестве зависимостей, однако, если вы хотите использовать шлюз smtp, требующий аутентификации TLS (т. Е. Gmail ), вам также необходимо установить пакет openSSL.
Запись : Есть ОГРОМНЫЙ недостаток чтобы сделать это в виде значительного сокращения пространства на маршрутизаторе для JFFS в дальнейшем. То есть пакет openSSL занимает около 500 Кбайт из ваших 4 Мбайт (для обычного маршрутизатора, не поддерживающего «мега»), прибавьте к этому накладные расходы JFFS, и вы обнаружите, что у вас остались лишь несколько драгоценных блоков свободное место JFFS (около 60 КБ на WRT54GL).

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

Если вы решили включить поддержку TLS, несмотря на ее недостатки, скачайте пакет openSSL:

wget http://downloads.openwrt.org/whiterussian/packages/libopenssl_0.9.8d-1_mipsel.ipk

Установите ipk «openSSL» (libopenssl) в прошивку:

./ipkg_install.sh libopenssl_0.9.8d-1_mipsel.ipk ./working_dir_mini1/

Конфигурации
Для пакета SSMTP существует ограничение, заключающееся в том, что его невозможно вызвать с помощью альтернативного файла конфигурации.
Поскольку микропрограмма доступна только для чтения, когда она находится на маршрутизаторе, это означает, что из коробки мы можем только жестко закодировать конфигурацию в микропрограмму.
Однако что, если мы не хотим проходить все этапы модификации прошивки, просто чтобы изменить настройки электронной почты? (например, изменение пароля).

С этой целью и Джереми (создатель модификаций прошивки), и я пришли к выводу (независимо, если я могу скромно добавить), что единственный разумный способ сделать это — это:

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

Для этого требуются некоторые дополнительные шаги …

Ссылка на каталог конфигурации ssmtp
Как объяснялось выше, нам нужно сделать / и т. д. / ssmtp расположение на маршрутизаторе, укажите на / tmp каталог как единственное доступное для записи место на маршрутизаторе во время выполнения. Для этого удалите каталог ssmtp, созданный установщиком ipk:

rm -rf ./working_dir_mini1/rootfs/etc/ssmtp/

Создайте новую символическую ссылку, которая указывает / etc / ssmtp в корневой файловой системе маршрутизатора, чтобы указать / tmp / etc / ssmtp как абсолютный путь:

ln -s / tmp / etc / ssmtp / ./working_dir_mini1/rootfs/etc/ssmtp

Запись : Несмотря на то, что сейчас это выглядит нелогично, поскольку мы указываем каталог конфигурации пакета на место за пределами рабочего каталога комплекта модификации прошивки, уверяю вас, что это выглядит совершенно нормально с точки зрения маршрутизатора во время выполнения.

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

Создайте новый сценарий инициализации (запуска):

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

Примечание. Вы можете использовать другой редактор, я использую vi, потому что он соответствует тому, что доступно на маршрутизаторе …
Сделайте это своим содержанием:

#! / bin / sh
#
# title: ssmtp_nvram.sh
# автор: Джереми Коллейк и Авиад Равив
# сайт: http://www.bitsum.com, http://howtogeek.com
#
# скрипт для сборки конфигурационного файла из nvram vars.
# будет работать для любого файла конфигурации, который использует
# var = пары типов значений.
#
# использует префиксы для переменных nvram.
#
# и.е.
# ssmtp hostname = something
# переводится в ssmtp.conf
# hostname = something
#
logger_func ()
{
logger -s -p local0.notice -t SSMTP_init $ 1
}

logger_func "########### Начат запуск инициализации SSMTP ###########"
logger_func "Создание каталога etc в / tmp"
[ ! -d /etc/ssmtp/ ] && mkdir -p / tmp / etc / ssmtp /
CONFIG_FILE = / etc / ssmtp / ssmtp.conf
NVRAM_PREFIX = ssmtp_
PACKAGE_NAME = ʻecho $ NVRAM_PREFIX | sed 's / _ / /' '

logger_func "Создание $ CONFIG_FILE для пакета $ PACKAGE_NAME"
#echo $ 0: создание $ CONFIG_FILE для пакета $ PACKAGE_NAME
echo "#! / bin / sh"> $ CONFIG_FILE
echo "#" >> $ CONFIG_FILE
echo "# автоматически генерируется на основе nvram от $ 0" >> $ CONFIG_FILE
echo "#" >> $ CONFIG_FILE

если [ -z "`nvram show | grep ssmtp`" ]
тогда
logger_func "Похоже, вы не установили переменные NVRAM, необходимые для создания файла conf"
logger_func "** Рассмотрите возможность ** использования этих команд в сценарии запуска:"
logger_func "nvram set [email protected]"
logger_func "nvram set ssmtp_mailhub = smtp.gmail.com: 587"
logger_func "nvram set [email protected]"
logger_func "nvram set ssmtp_UseSTARTTLS = YES"
logger_func "nvram set ssmtp_AuthUser = имя пользователя"
logger_func "nvram set ssmtp_AuthPass = пароль"
logger_func "nvram set ssmtp_FromLineOverride = YES"
logger_func «создайте переменные NVRAM и повторно запустите сценарий инициализации или перезагрузите компьютер, чтобы настройки вступили в силу».
выход 0
быть

###########################################################
#
# основной цикл
#
SED_COMMAND = "s / $ NVRAM_PREFIX / /"
CONFIG_VARS = `nvram show | grep $ NVRAM_PREFIX | sed "$ SED_COMMAND" `
для i в $ CONFIG_VARS; делать
эхо $ i >> $ CONFIG_FILE
сделанный

###########################################################
#
# санитарная проверка
#
если [ ! -f "$CONFIG_FILE" ]; тогда
# echo "$ 0: ERROR - не удалось создать $ CONFIG_FILE. Возможно, нет символической ссылки / etc / XXXX -> / tmp / etc / XXXX?"
logger_func "ОШИБКА - не удалось создать $ CONFIG_FILE. Возможно, отсутствует символическая ссылка / etc / XXXX -> / tmp / etc / XXXX?"
быть
logger_func "########### Завершил запуск инициализации SSMTP ###########"

Сделайте его исполняемым:

chmod + x ./working_dir_mini1/rootfs/etc/init.d/S80ssmtp

Обратите внимание на переменные ожидания NVRAM в сценарии, мы обязаны предоставить им что-то для работы после того, как мы установили нашу модифицированную прошивку на маршрутизатор.

Соберите модифицированную прошивку

Теперь, когда все на месте, пришло время повторно упаковать модифицированную прошивку в сжатый двоичный файл, который мы можем передать на маршрутизатор.
Синтаксис скрипта build.sh:
./build_firmware.sh OUTPUT_DIR WORKING_DIRECTORY

Для этого мы используем поставляемый скрипт, поэтому выполните:

./build_firmware.sh output_mini1 ./working_dir_mini1/

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

Теперь вы можете прошить файл под названием «custom_image_00001-generic.bin» на свой маршрутизатор как обычно прошивка DD-WRT .

Запись : Не забудьте восстановить «заводские настройки по умолчанию» до, во время и сразу после прошивки.

Опубликовать флэш-шаги

Поскольку мы заставили пакет SSMTP искать переменные NVRAM для генерации файла конфигурации ssmtp, теперь нам нужно предоставить ему недостающую информацию.
Мы сделаем это с помощью функции «Выполнить команды» в веб-интерфейсе.

Перейдите в веб-интерфейс -> «администрирование» -> «команды» -> вставьте в текстовое поле следующее:

nvram установить [email protected]
nvram set ssmtp_mailhub = smtp.gmail.com: 587
nvram установить [email protected]
nvram установить ssmtp_UseSTARTTLS = YES
nvram устанавливает ssmtp_AuthUser = your-gmail-user-name (без @ gmail.com)
nvram set ssmtp_AuthPass = you-gmail-password
nvram set ssmtp_FromLineOverride = ДА
nvram совершить

Замените текст после знака равенства (=) своей фактической информацией, а затем нажмите «Выполнить команды».
Запись : если вы используете обычный SMTP-сервер, не использующий TLS, то используйте порт 25 вместо 587.

Теперь, когда информация SSMTP готова к использованию, вам нужно будет вызвать сценарий инициализации. Таким образом, вы можете либо перезагрузить маршрутизатор, либо вставить это в текстовое поле «команды»:

/етс/инит.д/С80ссмтп

Затем снова нажмите «Выполнить команды».
Результат этой команды должен выглядеть так:

Проверьте, можете ли вы отправлять электронную почту
Снова вставьте это в текстовое поле «команды» следующую команду со своим адресом электронной почты:

echo "рассылка по электронной почте в тигле 123 qwe" | ssmtp -vvv [email protected]

Затем снова нажмите «Выполнить команды».
Поскольку мы использовали параметр -vvv для дополнительной детализации, вывод этой команды должен выглядеть так:

Если все прошло хорошо, вы получите тестовое письмо в течение нескольких секунд.

Мы надеемся, что вы сможете использовать эту информацию, чтобы расширить границы домашнего маршрутизатора даже дальше, чем вы думали, и теперь вы по-настоящему управляйте своим домашним роутером, а DD-WRT …


Linux продлевает жизнь, Linux расширяет сознание … Linux жизненно важен для пакетных путешествий

SSH все: SSH и DD-WRT

DD-WRT — потрясающее бесплатное обновление прошивки для вашего роутера. Если вы можете загрузить прошивку DD-WRT на свой маршрутизатор, это позволит вам сделать две вещи легко:
1. Вы можете легко обрабатывать динамические IP-адреса.
2. Если у вашего роутера есть версия STD, вы также можете использовать его в качестве прокси. для просмотра веб-страниц и т. д., что означает, что вам не нужно устанавливать Squid на домашний сервер Linux.

Очень краткое руководство по установке DD-WRT

  1. Перейти к DD-WRT база данных маршрутизатора и введите имя вашего маршрутизатора. Убедитесь, что это поддерживается. например Если вы наберете «Linksys WRT54G», вы увидите, что поддерживаются все версии кроме версии 7.0
  2. Затем щелкните имя и номер версии маршрутизатора, чтобы открыть следующий страница. Это важно, потому что он сообщит вам RAM и FLASH, а так же дать вам прошивку для скачивания.Если у вашего роутера 8 МБ RAM, то вы можете загрузить только версию MICRO. Если у него 16 МБ ОЗУ, тогда вы можете загрузить СТАНДАРТНУЮ версию. Чтобы увидеть разные версии, прочтите это страница. Если вам нужен SSH-сервер, вам понадобится версия STD.
  3. Читать WIKI страницу по установке прошивки и следуйте ее указаниям.

Обработка динамического IP

Все версии DD-WRT могут обрабатывать динамические IP-адреса.DD-WRT подключит на такие сайты, как no-ip.com . (Я считаю, что no-ip.com работает намного лучше, чем DynDNS.org) Основная проблема с использованием этих сайтов — что у вас нет такого контроля над вещами, как если бы вы могли запускать сценарии CGI на собственном веб-сайте. См. Часть 4 для этого.

  1. Сначала создайте аккаунт на no-ip.com
  2. На
  3. No-IP.com есть страница, на которой объясняется, как настроить DD-WRT. (Просто прочтите первую часть — не переадресацию портов и т. Д.)
    Вы просто настраиваете все, как показано на схеме ниже.
  4. Теперь на no-ip.com будет указан ваш последний IP-адрес. (У тебя есть чтобы войти в систему, чтобы проверить это, я не знаю, есть ли способ проверить это с помощью какой-то автоматизированный скрипт.)


Использование DD-WRT в качестве прокси

Для этого вам понадобится стандартная версия DD-WRT, потому что она поставляется с встроенный SSH-сервер.

Шагов:

  1. Настройте DD-WRT на маршрутизаторе следующим образом
    1. Разрешить соединения SSH, но изменить порт на другой, кроме 22
    2. Включите удаленное управление, но убедитесь, что Telnet отключен.Ты должен используйте тот же порт, что и выше.
  2. Теперь подключитесь к маршрутизатору удаленно … SSH и WebGUI
  3. Setup Putty для подключения к домашнему IP-адресу:
    putty [email protected] -L 8080: localhost: 80 -D 3000

    Пояснение:

    1. DD-WRT должен войти в систему как root (других имен пользователей нет). Если вас беспокоит безопасность, используйте закрытый ключ аутентификация.Для настройки потребуется немного больше работы.
    2. Это подключит порт 8080 на вашем локальном компьютере к порту 80 на вашем роутер.
    3. Теперь вы можете ввести в браузере http: // localhost: 8080, и он будет подключите вас к графическому интерфейсу DD-WRT.
    4. Обратите внимание, WebGUI отключен, вы можете получить к нему доступ только из Интернета, если вы можете использовать SSH получить root-доступ и настроить туннель.
  4. DD-WRT как веб-прокси
    1. Мы настроили динамический порт на основе socks на порт 3000.Я не знаю что SOCKS — это не то, как работает динамический порт, но эта настройка работает просто отлично.
    2. Настройте свой браузер для использования прокси-сервера SOCKS5 на порту 3000. Это приведет к отправляйте все свои веб-запросы через маршрутизатор DD-WRT дома а затем в Интернет. Все зашифровано, кроме вашего DNS-запросы.
    3. Для шифрования ваших DNS-запросов (с помощью Firefox — не знаю, как это работает в других браузерах)
      а) установить FoxyProxy: у него есть возможность отправлять DNS-запросы через зашифрованный канал SOCKS.
      б) или сделайте следующее: введите about: config , затем установите network.proxy.socks_remote_dns на true

Эта ссылка «Защищена» Просмотр веб-страниц «содержит аналогичную информацию, хотя я бы не стал включать webGUI, как они. Маршрутизация через туннель SSH намного безопаснее.

DD-WRT — tweakradje

DD-WRT — это прошивка с открытым исходным кодом для (беспроводных) маршрутизаторов. Эта прошивка расширяет возможности, а иногда и стабильность фирменной прошивки производителя.Мой маршрутизатор — Linksys wrt54G v5 (только 2 МБ флэш-памяти и 8 МБ ОЗУ), и я прошил DD-WRT v24-sp2 (08/07/10) micro (версия SVN 14896 ). Спецификации здесь и инструкции по прошивке здесь. Примечание : 5 мая 2016 г. — Последняя бета-версия здесь. Запускаем dd-wrt 3 micro generic, который работает очень хорошо.

Почти не осталось памяти для настройки. Однако …

Графический интерфейс

Графический интерфейс очень прост. Вы можете пойти сюда или сюда, чтобы хорошо почитать. Для более старых 2.4 версия есть симулятор.

Командная строка

Busybox очень маленький. Не так много команд из-за ограничений флэш-памяти (всего 2 МБ)

Даже команда ls не включена. Теперь это микро.

Все настройки хранятся во флэш-блоке NVRAM mtd. Графический интерфейс делает это за вас, но вы также можете сделать это из командной строки.

Используя telnet, это команды в командной строке:

использование: nvram [получить имя] [установить имя = значение] [unset name] [показать]

nvram show (показывает все настройки и сколько байтов у вас свободно для сохранения настроек)

ses_script =

filter_dport_grp3 =

wl_mac_deny =

wl0.1_radius_port = 1812

wl1_wds4_hwaddr =

wl0_wds2_if =

ОПО = 0

...

pptpd_client_mru = 1450

oet1_fragment = 0

oet5_rem = 192,168 .90.1

размер: 21983 байта (10785 слева)

Установка блокировщика рекламы

Используя функцию DNSMasq , вы можете создать свой собственный блокировщик доменов (рекламы).Он использует файл hosts и из Интернета, в котором есть домены

, указывающие на 127.0.0.1. Он работает только с файлами hosts, у которых только перевод строки (например, unix) в сборке dd-wrt, которую я использую. Если это так, проверьте это с помощью

notepad ++.

Блокировка доменов с помощью dsnmasq

Dnsmasq читает файл /tmp/dnsmas.conf. Он создаст его с опциями dhcp при запуске службы. Это не позволит вам добавлять опции. А вот переменную nvram dnsmasq_options вы можете добавить свою через графический интерфейс.Используя графический интерфейс, перейдите на вкладку Services> Services и включите в разделе DNSMasq как DNSMasq , так и Local DNS .

В поле Additional DNSMasq Options введите две строки:

# addn-hosts = / tmp / adhosts

cache-size = 250

domain-required

bogus-priv

no -negcache

адрес = / 2mdn.net / 0.0.0.0

<добавить сюда больше доменов>

адрес = / 2o7.net / 0.0.0.0

Нажмите кнопку Применить настройки .

Примечание: не работает с микростроением через графический интерфейс, вы должны делать это через Telnet

Способ установки параметров dnsmasq в сборке mricro — через telnet:

telnet

login

$ nvram show # это дает вам настройки nvram и сколько байтов осталось в хранилище

$ stopservice dnsmasq

$ nvram set dnsmasq_options = "cache-size = 250

$ domain-required

$ Bogus-priv

$ no-negcache

$ адрес = / 2mdn.net / 0.0.0.0

$ ... добавьте свой ...

$ address = / 2o7.net / 0.0.0.0 "

$ nvram get dnsmasq_options # визуальная проверка перед фиксацией в nvram !!

$ nvram commit

$ startservice dnsmasq

$ exit

Блокировка хостов с локальным dnsmasq

Теперь перейдите на вкладку Администрирование> Команды и вставьте этот текст в поле:

# Tweakradje

dec 2015 # 9000 dd-wrt micro startup script

#increase randomizer

echo 4096> / proc / sys / kernel / random /poolize # 512

echo 128> / proc / sys / kernel / random / read_wakeup_threshold # 8

echo 256> / proc / sys / kernel / random / write_wakeup_threshold # 128

echo 1> / proc / sys / net / ipv4 / tcp_moderate_rcvbuf # 0

# AD БЛОК с dnsmasq

# stopservice dnsmasq

# nvram_settings

# opt2 «

# nvram commit 900 05

# startservice dnsmasq

sleep 20

# получить файл hosts с помощью unix EOL

#wget -qO / tmp / adhosts http: // adaway.0.0.0.0 «>> / tmp / hosts

echo 127.0.0.1 ad.360yield.com >> / tmp / hosts

# перечитать файл hosts

killall -HUP dnsmasq

Нажмите Сохранить запуск Кнопка. Перезагрузите маршрутизатор. Файл Hosts должен быть UNIX EOL !!!

При загрузке маршрутизатора он будет использовать wget для получения файла hosts с URL http://adaway.org/hosts.txt и добавления его в / tmp / hosts

Затем он отправит SIGHUP в службу dnsmasq, это перечитает файл hosts.

Для тестирования вы также можете вручную добавить хосты в файл / tmp / hosts. Для эффекта перечитайте файл hosts (killall -HUP dnsmasq).

Или через telnet:

nvram set dnsmasq_enable = 1

nvram set dhcp_dnsmasq = 1

nvram set dns_dnsmasq = 1

nvram set sv_localdns2 9000 set 9000 ipram 9000 nvram set sv_localdns2 = <9000 set 9000 ipram> 9000 nvram set sv_localdns5 = <9000 set 9000 ipram> 9000 nvram commit 9000 nvram 9000 set 9000 ipram2> 9000 9000 set 9000 ipram> 9000 Фильтр MAC-адресов по расписанию

Я использую фильтр MAC-адресов, чтобы заблокировать доступ для некоторых устройств в моей локальной сети.Но было бы проще сделать это по расписанию.

Можно ли для этого использовать crontab? Да, это.

Сначала используйте графический интерфейс, чтобы добавить MAC-адреса, которые вы хотите заблокировать. Теперь они хранятся в NVRAM.

Чтобы включить его для WLAN

# WL MAC filter on (deny mac list)

wl mac none

wl mac $ (nvram get wl0_maclist)

wl macmode wl down

wl up

# Часть графического интерфейса пользователя

nvram set wl0_macmode1 = other

nvram set wl0_macmode4000

nvram set wl0_macmode4000 =23 nvram set wl1_macmode = deny

nvram commit

Чтобы выключить его

# WL MAC filter off (разрешить все)

wl macmode 0

0003 wl down

# Часть графического интерфейса пользователя

nvram set wl0_macmode1 = disabled

nvram set wl0_macmode = disabled

9 0123 nvram set wl1_macmode1 = disabled

nvram set wl1_macmode = disabled

nvram commit

Может мне также стоит добавить $ (nvram get wl1_maclist) в список «wl mac»?

Итак, чтобы crontab блокировал определенные MAC-адреса в доме, сначала добавьте их в список с помощью графического интерфейса.

Затем добавьте эти строки в свой contab через графический интерфейс.

* 22 * ​​* * root wl mac none && wl mac $ (nvram get wl0_maclist) && wl macmode 1 && wl down && wl up && nvram set wl0_macmode1 = other && nvram set wl0_macmode & deny&mol = other_mac set nvram set wl1_macmode = deny && nvram commit

* 7 * * * root wl macmode 0 && wl down && wl up && nvram set wl0_macmode1 = disabled && nvram set wl0_macmode = disabled && nvram set wl0_macmode = disabled && nvram set & amp; отключено && nvram commit

Startup Script Netgear R6400 router

# Tweakradje dec 2016

# dd-wrt micro startup script

# ADOCK with dnsmasq
stop

# nvram set dnsmasq_options = "opt1

# opt2"

# nvram commit

# startservice dnsmasq

# Ожидание подключения inet

пинг -c 1 8.0.0.0.0 «>> / tmp / hosts

echo 127.0.0.1 ad.360yield.com >> / tmp / hosts

# перечитать файл hosts

killall -HUP dnsmasq

sysctl -w vm.swappiness = 10 # 60

sysctl -w vm.vfs_cache_pressure = 50 # 100

sysctl -w vm.highmem_is_dirtyable = 1 # более быстрый ввод / вывод
9000ctl
9000ctl
v / O
.min_free_kbytes = 2108 # 1403

sysctl -w vm.dirty_ratio = 40 # много ОЗУ для кеш-памяти

sysctl -w kernel.random.read_wakeup_threshold = 128 # 64

sysctl -w kernel.random.write_wakeup_threshold = 256 # 128

sysctl sysctl net ipv4.tcp_low_latency = 1 # более быстрый ACK / Disable Nagle

sysctl -w net.ipv4.tcp_adv_win_scale = 2 # 2 = 1/4 пробела - это приложение. буфер

#LED Off (проблема в LAN PORT NAS)

#gpio enable 1

#gpio enable 2

#gpio enable 6

#gpio enable 8

#gpio enable 9

#gpio disable 10

#gpio disable 11

#gpio enable 12

#gpio включить

#gpio et robowr 0x0 0x18 0x0

Гостевая сеть Wi-Fi

Добавьте вторую сеть Wi-Fi для гостей, которые не подключены к вашей локальной сети, только Интернет.Или, если у вас есть только клиенты 802.11b, поддерживающие WEP, используйте эту гостевую функцию только для подключения к Интернету без ущерба для безопасности локальной сети.

Для этого нужно выполнить несколько простых шагов. Здесь вы можете прочитать больше.
  • Перейти к настройкам беспроводной сети
  • Нажмите Добавить в разделе виртуальных интерфейсов
  • Затем настройте, как показано на рисунке ниже (выберите свой собственный SSID и пароль для гостевой сети)
  • Установите IP-адрес, который вы не используете в текущей локальной сети
  • Нажмите «Сохранить»
  • Перейти к безопасности беспроводной сети и введите информацию о безопасности.
  • Нажмите «Сохранить»

  • Перейти к настройке сети
  • Внизу вы найдете DHCPD, нажмите «Добавить» и выберите wl0.1 с On, Start 100, Max 50, Leasetime 3600
  • Нажмите Apply

Вот и все.

Ограничение пропускной способности для определенных клиентов LAN

Вы можете использовать функцию QOS, чтобы ограничить пропускную способность WAN для определенных клиентов LAN.

Перейдите на вкладку NAT / QOS и включите QOS . Выберите FQ_CODEL в качестве модели очереди. Примерно введите скорость соединения вниз / вверх вашего интернет-провайдера.

Затем перейдите в раздел MAC Priority и добавьте MAC-адреса от клиентов, которых вы хотите ограничить / ограничить.

Вот и все.


Советы и приемы

Резервное копирование NVRAM

Все настройки хранятся в NVRAM. Чтобы быстро получить копию, введите в браузере:

— http: // /nvrambak.bin

— Сохраните файл как nvrambak.bin

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

Резервная копия загрузчика CFE

Резервная копия загрузчика называется резервной копией CFE. Вы можете получить его через http. (Подробнее)

— http: // / backup / cfe.bin

— Сохраните файл как cfe.bin

Когда-нибудь он вам может понадобиться, если ваш роутер замурован мягким кирпичом.

Скопируйте файл с маршрутизатора

Давайте скопируем очень минимальный двоичный файл busybox с маршрутизаторов с прошивкой

— telnet

— логин с пользователем root и паролем

— cp / bin / busybox / tmp / www / bb.jpg

— http://10.0.0.1/user/bb.jpg

— Сохранить как … исходное имя

Получите современный busybox

— telnet

— логин с пользователем root и паролем

— wget -O / tmp / busybox http: // www.busybox.net/downloads/binaries/latest/busybox-mips

— chmod 755 / tmp / busybox

— / tmp / busybox ls -l / tmp

ps: при перезагрузке раздел / tmp будет снова очищен!

Получение разделов флэш-памяти mtd

— telnet

— логин с пользователем root и паролем

— cat / proc / mtd

dev: size стирает имя

mtd0: 00040000 00010000 «cfe»

mtd1: 001b0000 00010000 «linux»

mtd2: 0010c400 00010000 «rootfs»

mtd3: 00010000 00008000 «nvram»

Остановка и запуск веб-интерфейса

При остановке создается 2 МБ свободной оперативной памяти.

— killall httpd

Запустить его снова

— запустить httpd -p 80

Уловки оболочки unix

Заполнить файл копией и вставить

cat> afile

вставить любое содержимое

нажмите CTRL + D

Код выхода команды можно найти с помощью echo $?

Просмотр активных подключений: cat / proc / net / ip_conntrack

Установка и настройка DD-WRT — Поиск программиста

 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 год
22
23
24
25
26 год
27
28 год
29
30
31 год
32
33
34
35 год
36
37
38
39
40
41 год
42
43 год
44 год
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81 год
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
 
 # Не загружать локальный файл / etc / hosts
# без хозяев
 # Добавить для чтения дополнительного пути к файлу hosts, который можно указывать несколько раз.Если указан как каталог, все файлы в каталоге читаются.
# addn-hosts = / etc / dnsmasq.hosts.d
 # Прочитать все файлы в каталоге, обновления файлов будут прочитаны автоматически
# hostsdir = / etc / dnsmasq.hosts.d
 # Например, os01 в / etc / hosts будет расширяться до os01.example.com
# expand-hosts

 # Настройка времени кеширования, как правило, устанавливать не нужно
 # Время кеширования локального файла hosts обычно не требуется кэшировать локально, поэтому изменения в файле hosts вступают в силу немедленно
# local-ttl = 3600
 # То же, что и local-ttl, влияет только на аренду DHCP
# dhcp-ttl = <время>
 # Для значения, возвращаемого восходящим потоком без ttl, dnsmasq дает значение ttl по умолчанию, обычно не нужно устанавливать
# neg-ttl = <время>
 # Укажите время ttl, возвращаемое клиенту, обычно не нужно устанавливать
# max-ttl = <время>
 # Устанавливаем максимальный TTL записей в кеше
# max-cache-ttl = <время>
 # Нет необходимости устанавливать, если вы не знаете, что делаете
# min-cache-ttl = <время>
 # Обычно не нужно устанавливать
# auth-ttl = <время>

 # Записывать журнал запросов DNS, если вы укажете log-query = extra, то в начале каждой строки будет дополнительная информация журнала
# лог-запросов
 # Установите логгер, '-' - это stderr, это также может быть путь к файлу.По умолчанию: DAEMON, используйте LOCAL0 при отладке.
# журнал-объект = <объект>
# средство журнала = / var / log / dnsmasq / dnsmasq.log
 # Асинхронный журнал, устранение блокировки и повышение производительности. По умолчанию - 5, максимум - 100.
# log-async [= ]
# log-async = 50

 # Укажите пользователей и группы
# пользователь = никто
# группа = никто

 # Укажите порт DNS, по умолчанию 53, установка port = 0 полностью отключит функцию DNS и будет использовать только DHCP / TFTP
# порт = 53
 # Укажите максимальный размер UDP-пакетов EDNS.0, по умолчанию - случайный порт, снизьте безопасность, ускорьте и уменьшите потребление ресурсов после указания
 # Установите "0", чтобы назначить его операционной системой.# query-port = 53535
 # Укажите диапазон портов UDP в восходящем направлении, чтобы упростить настройку брандмауэра.
# min-port = <порт>
# max-port = <порт>
 # Укажите интерфейс, после указания интерфейса lo вы можете использовать подстановочный знак "*"
 # Невозможно использовать псевдоним интерфейса (пример: "eth2: 0"), используйте вместо него опцию listen-address
# interface = wlp2s0
 # Укажите исключенный интерфейс, исключенный приоритет высокий, вы можете использовать подстановочный знак "*"
# except-interface =
 # Принимать DNS-запросы только из той же подсети.
 # Допустимо, только если не указаны interface, excet-interface, listen-address или auth-server
# местная служба
 # Укажите интерфейс, который не предоставляет службы DHCP или TFTP, а предоставляет только службы DNS.# no-dhcp-interface = enp3s0
 # Укажите IP-адрес, можно указать несколько раз
 # параметр интерфейса и параметр адреса-прослушивания могут использоваться одновременно.
 # Следующие две строки похожи на опцию интерфейса.
адрес прослушивания = 192.168.10.17
# адрес-прослушивания = 127.0.0.1
 # Обычно, даже если установлена ​​опция интерфейса (например: interface = wlp2s0)
 # Будет по-прежнему связываться с адресом подстановочного знака (например: *: 53)
 # Включите этот элемент, чтобы отслеживать только указанный интерфейс
 # Подходит для запуска нескольких DNS-серверов на разных интерфейсах или IP-адресах одного и того же хоста
bind-интерфейсы
 # Не привязывайте только что добавленный интерфейс.Поддерживается только системой Linux, другие системы эквивалентны опции bind-interfaces
# bind-dynamic

########################################################################## ###########################
 # Если хост в hosts имеет несколько IP-адресов, возвращается только IP-адрес соответствующей подсети.
локализовать запросы
 # Если обратный поиск - это частный адрес, такой как 192.168.X.X, искать только из файла hosts и больше не пересылать его на вышестоящий сервер
# bogus-priv
 # Для любого доменного имени, разрешенного для этого IP, оно ответит на NXDOMAIN, чтобы аннулировать его разрешение, которое может быть указано несколько раз
 # Обычно используется для доступа к несуществующим доменным именам, запрещая им переходить на рекламный сайт оператора.# фиктивный-nxdomain = 64.94.110.11
 # Игнорировать ответ на запрос A-записи, содержащий указанный адрес.
 # Например, есть восходящий DNS-сервер для подделки www.baidu.com с IP 1.1.1.1 и очень быстрой скоростью ответа.
 # Укажите ignore-address = 1.1.1.1, чтобы игнорировать его ответную информацию,
 # Таким образом, ожидаем правильного результата запроса от www.baidu.com.
# игнорировать-адрес = 
filterwin2k

########################################################################## ###########################
 # Указать путь к файлу resolv, по умолчанию / etc / resolv.конф
# resolv-file = / etc / resolv.conf
 # Не читать resolv-файл для определения вышестоящего сервера
# no-resolv
 # Во время компиляции должна быть включена поддержка DBus.
# enable-dbus [= <имя-службы>]
 # Строго следуйте порядку в resolv.conf
# strict-order
 # Отправлять запросы всем вышестоящим серверам вместо одного.
все-серверы
 # Включить обнаружение петли пересылки
# dns-loop-detect

########################################################################## ###########################
 # Эта настройка безопасности предназначена для отказа в разрешении доменных имен, содержащих частные IP-адреса.# Эти IP-адреса включают следующие диапазоны частных адресов: 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16.
 # Первоначальное намерение состоит в том, чтобы предотвратить атаки на безопасность, такие как восходящие DNS-серверы, намеренно преобразовывающие определенные доменные имена в определенные частные IP-адреса интрасети и захват пользователей.
 # Напрямую отмените элемент конфигурации stop-dns-rebind в файле конфигурации, чтобы отключить эту функцию.
 # Этот метод может решить проблему разрешения IP-адреса интрасети раз и навсегда,
 # Но мы также потеряли эту функцию безопасности, поэтому я не рекомендую этот метод здесь.# Используйте rebind-domain-ok для конкретной конфигурации, как следует из названия, этот элемент конфигурации может выборочно игнорировать повторное связывание доменного имени
stop-dns-rebind
повторно привязать-localhost-ОК
# rebind-domain-ok = [<домен>] | [[/ <домен> / [<домен> /]
ребинд-домен-ок = /. test.com/
########################################################################## ###########################

 # Также не обнаруживаем изменений в /etc/resolv.conf
# no-poll
 # Очистить кеш после перезагрузки
очистить при перезагрузке
 # Полное доменное имя ищется только с вышестоящего сервера, если только имя хоста является только файлом hosts
требуется домен

########################################################################## ###########################

 # Трансляция IP-адресов
# alias = [] | [ - ],  [, ]

########################################################################## ###########################

#local = [/ [] / [domain /]] [ [# ] [@  |  [# ]]
#server = [/ [] / [domain /]] [ [# ] [@  |  [# ]]
сервер = / test.com / 192.168.10.117
сервер = / 10.168.192.in-addr.arpa / 192.168.10.117
# rev-server =  / ,  [# ] [@  |  [# ]]
 # Разрешить любое доменное имя, принадлежащее , по указанному адресу .
 # То есть разрешить  и все его поддомены в указанные  адреса IPv4 или IPv6, которые обычно используются для блокировки определенных доменных имен.
 # Одновременно можно указать только один адрес IPv4 или IPv6.Чтобы вернуть оба адреса IPv4 и IPv6, укажите опцию address = несколько раз.
 # Примечание: / etc / hosts и аренда DHCP переопределят этот параметр.
# адрес = / <домен> / [домен /] []
# ipset = / <домен> / [домен /]  [, ]
# mx-host = <имя mx> [[, <имя хоста>], <предпочтение>]
# mx-target = <имя хоста>
 # SRV запись
# srv-host = <_service>. <_prot>. [], [ [,  [,  [, ]]]]
 # A, AAAA и PTR записи
# host-record = <имя> [, <имя>....], [], [] [, ]
 # TXT запись
# txt-record = <имя> [[, <текст>], <текст>]
 # PTR запись
# ptr-record = <имя> [, <цель>]
# naptr-record = <имя>, <порядок>, <предпочтение>, <флаги>, <услуга>, <регулярное выражение> [, <замена>]
 # Запись псевдонима CNAME
# cname = ,  [, ]
# dns-rr = <имя>, <номер-RR>, [<шестнадцатеричные данные>]
# interface-name = <имя>, <интерфейс> [/ 4 | / 6]
# synth-domain = <домен>, <диапазон адресов> [, <префикс>]
# add-mac [= base64 | текст]
# add-cpe-id = <строка>
# add-subnet [[= [ /] <длина префикса IPv4>] [, [ /] <длина префикса IPv6>]]
########################################################################## ###########################

 # Количество кешей, по умолчанию 150, cache-size = 0 отключает кеш.размер кеша = 1000
 # Не кэшировать кеш неизвестных доменных имен. По умолчанию dnsmasq кэширует неизвестное доменное имя и возвращается напрямую клиенту.
no-negcache
 # Укажите количество переадресации DNS-запросов
dns-forward-max = 1000

########################################################################## ###########################

#dnssec
# trust-anchor = [<класс>], <домен>, <тег-ключа>, <алгоритм>, <тип-дайджеста>, <дайджест>
# dnssec-check-unsigned
# dnssec-no-timecheck
# dnssec-timestamp = <путь>
# прокси-dnssec
# dnssec-debug

########################################################################## ###########################

# auth-server = <домен>, <интерфейс> | 
# auth-zone = <домен> [, <подсеть> [/ <длина префикса>] [, <подсеть> [/ <длина префикса>].....]]
# auth-zone = <домен> [, <имя интерфейса> [/ 6 | / 4] [, <имя интерфейса> [/ 6 | / 4] .....]]
# auth-soa =  [,  [,  [,  [, ]]]]
# auth-sec-servers = <домен> [, <домен> [, <домен> ...]]
# auth-peer =  [,  [,  ...]]
 # Включить отслеживание соединения, прочитать флаг отслеживания соединения в запросе стека Linux DNS,
 # И установить тот же флаг для информации ответа, возвращаемой восходящим потоком.# Используется для управления полосой пропускания и развертывания брандмауэра.
 # Эта опция должна включать поддержку conntrack во время компиляции, а ядро ​​правильно сконфигурировано и загружено с conntrack.
 # Эта опция не может использоваться вместе с query-port.
#conntrack

########################################################################## ###########################
#
 # Параметры DHCP
#
########################################################################## ###########################

 # Установите пул адресов DHCP и одновременно включите функцию DHCP.# IPv4 <режим> может быть указан как статический | прокси, когда <режим> указан как статический,
 # Используйте dhcp-host, чтобы вручную назначить IP-адреса в пуле адресов.
 # Если в качестве прокси указан <режим>, укажите прокси-сервер DHCP для указанного пула адресов.
# dhcp-range = [tag:  [, tag: ],] [set: ,]  [, ] [, ] [, <маска сети> [, <трансляция>]] [, <время аренды>]
# dhcp-range = 172.16.0.2,172.16.0.250,255.255.255.0,1h
# dhcp-диапазон = 192.168.10.150,192.168.10.180, статический, 255.255.255.0,1h
 # В соответствии с MAC-адресом или идентификатором, IP-адрес клиента, имя хоста и аренда фиксируются.
 # Указание id: * в IPv4 игнорирует идентификатор DHCP-клиента и назначает IP-адреса только на основе MAC.
 # При чтении / etc / hosts соответствующий IP-адрес также может быть назначен в соответствии с именем хоста в / etc / hosts.
 # Укажите ignore, чтобы игнорировать запросы DHCP от указанного клиента.
# dhcp-host = [] [, id:  | *] [, set: ] [, ] [, ] [, ] [, игнорировать]
# dhcp-hostsfile = <путь>
# dhcp-hostsdir = <путь>
 # Чтение файла / etc / ethers имеет тот же эффект, что и использование dhcp-host.IPv6 недействителен.
# читать-эфиры
 # Информация о параметрах, присвоенная DHCP-клиенту,
 # По умолчанию dnsmasq отправляет: маску подсети, широковещательный адрес, адрес DNS-сервера, адрес шлюза, домен и другую информацию.
 # Указание этой опции также может переопределить эти значения по умолчанию и установить другие значения опции.
 # Важно: для указания вы можете использовать option:  или номер опции.
 # Соответствующее отношение между  и номером опции может использовать команду:
 # dnsmasq --help dhcp и dnsmasq --help dhcp6 view, это очень важно.# Например, чтобы установить параметры шлюза, используйте dhcp-option = 3, 192.168.4.4 или dhcp-option = option: router, 192.168.4.4.
 # 0.0.0.0 означает адрес хоста, на котором в данный момент работает dnsmasq.
 # Если указано несколько тегов:  должен совпадать одновременно.
 # [encap: ,] [vi-encap: ,] [vendor: [],] Продолжение следует.
# dhcp-option = [tag: , [tag: ,]] [encap: ,] [vi-encap: ,] [vendor: [], ] [ | option:  | option6:  | option6: ], [ [, ]]
# dhcp-option-force = [tag: , [tag: ,]] [encap: ,] [vi-encap: ,] [vendor: [ ],] , [ [, ]]
# dhcp-optsfile = <путь>
# dhcp-optsdir = <путь>
# dhcp-option = 3,1.2.3.4
# dhcp-option = option: router, 1.2.3.4
# dhcp-option = option: router, 192.168.10.254
# dhcp-option = option: dns-server, 192.168.10.254, 221.12.1.227, 221.12.33.227

########################################################################## ###########################

 # (Только IPv4) Отключить повторное использование имени сервера и полей файла в качестве дополнительной опции dhcp-option.
 # Обычно dnsmasq удаляет информацию о загрузочном сервере и файле из dhcp-boot в опцию dhcp-option.
 # Это делает доступным дополнительное пространство для опций в пакете опций dhcp-option, но запутает более старых клиентов.# Эта опция предложит простой и безопасный способ избежать таких ситуаций. Это можно считать вариантом совместимости.
# dhcp-no-override
########################################################################## ###########################

 # Настроить DHCP-ретранслятор.
 # <локальный адрес> - это IP-адрес интерфейса, на котором запущен dnsmasq.
 # Все запросы DHCP, полученные на интерфейсе <локальный адрес>, будут ретранслироваться на удаленный сервер DHCP, указанный в <адрес сервера>.
# Вы можете настроить эту опцию несколько раз и использовать один и тот же <локальный адрес> для пересылки на несколько удаленных DHCP-серверов, указанных разными <адресом сервера>.# <адрес сервера> Разрешены только IP-адреса, другие форматы, такие как доменные имена, использовать нельзя.
 # Если это DHCPv6, <адрес сервера> может быть адресом многоадресной рассылки ALL_SERVERS ff05 :: 1: 3.
 # В этом случае должен быть указан интерфейс , а подстановочные знаки не могут использоваться для прямой многоадресной рассылки на интерфейс, где расположен соответствующий DHCP-сервер.
 #  указывает, что разрешено получение только соответствующей информации от DHCP-сервера на интерфейсе .# dhcp-relay = <локальный адрес>, <адрес сервера> [, <интерфейс>]
########################################################################## ###########################

 # Установить метку
# dhcp-vendorclass = set: <тег>, [предприятие: <номер IANA-предприятия>,] <класс-поставщика>
# dhcp-userclass = set: <тег>, <класс-пользователя>
# dhcp-mac = set: <тег>, 
# dhcp-circuitid = set: <тег>, <идентификатор-схемы>
# dhcp-remoteid = set: <тег>, 
# dhcp-subscrid = set: <тег>, <идентификатор-подписчика>
# dhcp-match = set: <тег>, <номер опции> | option: <имя опции> | vi-encap: <предприятие> [, <значение>]
# tag-if = set:  [, set:  [, tag:  [, tag: ]]]
# dhcp-proxy [= ]......

 ########################################################################## ###########################
 # Не назначайте запросы DHCP, соответствующие этим тегам: .
# dhcp-ignore = тег: <тег> [, тег: <тег>]
# dhcp-ignore-names [= tag:  [, tag: ]]
# dhcp-generate-names = tag:  [, tag: ]
 # Только IPv4 Используйте широковещательную рассылку для связи с клиентами, соответствующими тегу: . Обычно используется для совместимости со старыми клиентами BOOT.
# dhcp-broadcast [= tag:  [, tag: ]]

########################################################################## ###########################
 # Только IPv4 Установите параметр BOOTP, возвращаемый DHCP-сервером,
 #   необязательно,
 # Если имя сервера не задано, оно будет пустым, а адрес сервера будет установлен как IP-адрес dnsmasq.# Если указано несколько тегов:  должен совпадать одновременно.
 # Если указано , балансировка нагрузки опроса будет выполняться в соответствии с соответствующим IP-адресом в / etc / hosts.
# dhcp-boot = [tag: ,] , [ [,  | ]]
 # Используйте разные параметры для разных типов.
 # Пример использования:
# dhcp-match = set: EFI_x86-64, опция: client-arch, 9
# dhcp-boot = tag: EFI_x86-64, uefi / grubx64.эфи
# # dhcp-match = set: EFI_Xscale, опция: client-arch, 8
# # dhcp-boot = tag: EFI_Xscale, uefi / grubx64.efi
# # dhcp-match = set: EFI_BC, option: client-arch, 7
# # dhcp-boot = tag: EFI_BC, uefi / grubx64.efi
# # dhcp-match = set: EFI_IA32, опция: client-arch, 6
# # dhcp-boot = tag: EFI_IA32, uefi / grubx64.efi
# # dhcp-match = set: Intel_Lean_Client, опция: client-arch, 5
# # dhcp-boot = tag: Intel_Lean_Client, uefi / grubx64.efi
# # dhcp-match = set: Arc_x86, опция: client-arch, 4
# # dhcp-boot = tag: Arc_x86, uefi / grubx64.эфи
# # dhcp-match = set: DEC_Alpha, опция: client-arch, 3
# # dhcp-boot = tag: DEC_Alpha, uefi / grubx64.efi
# # dhcp-match = set: EFI_Itanium, опция: client-arch, 2
# # dhcp-boot = tag: EFI_Itanium, uefi / grubx64.efi
# # dhcp-match = set: NEC / PC98, опция: client-arch, 1
# # dhcp-boot = tag: NEC / PC98, uefi / grubx64.efi
# dhcp-match = set: Intel_x86PC, опция: client-arch, 0
# dhcp-boot = tag: Intel_x86PC, pxelinux.0
########################################################################## ###########################

 # DHCP использует хэш MAC-адреса клиента для назначения IP-адреса клиенту,
 # Обычно, даже если у клиента истекает срок аренды, IP-адрес клиента остается стабильным в течение долгого времени.# В режиме по умолчанию IP-адрес назначается случайным образом.
 # Включение опции dhcp-sequence-ip будет назначать IP-адреса последовательно.
 # В режиме последовательного выделения клиент делает истечение срока аренды более похожим на просто перемещение IP-адреса.
 # В нормальных условиях этот метод не рекомендуется.
# dhcp-sequence-ip

########################################################################## ###########################
 # В большинстве случаев мы используем PXE, просто позволяя клиентам PXE получать IP-адреса,
 # Затем клиент PXE загружает файл, указанный параметром dhcp-boot, и выполняет его, то есть методом BOOTP.# Однако при поддержке правильно настроенного DHCP-сервера система PXE может реализовывать более сложные функции.
 Параметр # pxe-service может указывать меню запуска среды PXE.
 # Установите разные меню загрузки для разных типов систем и переопределите параметр dhcp-boot.
 #  - тип клиентской системы: x86PC, PC98, IA64_EFI, Alpha, Arc_x86, Intel_Lean_Client,
 # IA32_EFI, X86-64_EFI, Xscale_EFI, BC_EFI, ARM32_EFI и ARM64_EFI, другие типы могут быть целыми числами.
 #  Укажите клиенту PXE использовать tftp для загрузки файлов с <адрес сервера> или <имя_сервера>.# Примечание. Суффикс «уровня» (обычно «.0») предоставляется PXE, что означает, что клиент PXE по умолчанию добавляет суффикс .0 к имени файла.
 # Пример: pxe-service = x86PC, «Установить Linux», pxelinux (прочитать и запустить файл pxelinux.0)
 # pxe-service = x86PC, «Установить Linux», pxelinux, 1.2.3.4 (не применимо к старому PXE)
 #  Целое число, клиент PXE будет транслировать или передавать <адрес сервера>
 # Или  поиск соответствующей службы запуска соответствующего типа..
 # Пример: pxe-service = x86PC, «Установить окна с сервера RIS», 1
# pxe-service = x86PC, «Установить Windows с сервера RIS», 1, 1.2.3.4
 # Если не указано, что ,  или  равно "0", он будет загружаться с локального компьютера.
 # Пример: pxe-service = x86PC, «Загрузка с локального диска»
# pxe-service = x86PC, «Загрузка с локального диска», 0
 # Если указано , балансировка нагрузки будет выполняться в соответствии с соответствующим IP-адресом в / etc / hosts.# pxe-service = [tag: ,] , <текст меню> [,  | ] [, <адрес сервера> | ]
 # Приглашение появляется после запуска PXE,  - это содержимое приглашения,  - время ожидания, если оно равно 0, оно будет выполнено немедленно.
# Если этот параметр не указан, он будет ждать, пока пользователь выберет, если есть несколько вариантов запуска, и не будет тайм-аут.
# pxe-prompt = [tag: ,]  [, ]
 # Используйте разные меню в соответствии с разными типами, используйте примеры:
# # pxe-prompt = "Какую систему мне загружать по сети?", 120
# # или с таймаутом до того, как будет выполнено первое доступное действие:
# pxe-prompt = "Нажмите F8 или Enter для перехода в меню.", 60
# pxe-service = x86PC, "Теперь в x86PC (режим BIOS), загрузка с локального компьютера", 0
# pxe-service = x86PC, «Теперь в x86PC (режим BIOS)», pxelinux
# pxe-service = PC98, «Теперь в режиме PC98», PC98
# pxe-service = IA64_EFI, «Сейчас в режиме IA64_EFI», IA64_EFI
# pxe-service = Alpha, «Сейчас в альфа-режиме», Alpha
# pxe-service = Arc_x86, «Теперь в режиме Arc_x86», Arc_x86
# pxe-service = Intel_Lean_Client, «Теперь в режиме Intel_Lean_Client», Intel_Lean_Client
# pxe-service = IA32_EFI, «Сейчас в режиме IA32_EFI», IA32_EFI
# pxe-service = X86-64_EFI, "Теперь в X86-64_EFI (режим UEFI) загрузка с локального компьютера", 0
# pxe-service = X86-64_EFI, «Теперь в X86-64_EFI (режим UEFI)», grub / grub-x86_64.эфи
# pxe-service = Xscale_EFI, «Теперь в режиме Xscale_EFI», Xscale_EFI
# pxe-service = BC_EFI, «Теперь в режиме BC_EFI», BC_EFI
 # # Система CentOS7 не поддерживает следующие два варианта
# # pxe-service = ARM32_EFI, «Сейчас в режиме ARM32_EFI», ARM32_EFI
# # pxe-service = ARM64_EFI, «Сейчас в режиме ARM64_EFI», ARM64_EFI

########################################################################## ###########################
 # По умолчанию 150, то есть выделяется максимум 150 IP-адресов и максимум 1000 IP-адресов.
# dhcp-lease-max = 150
 # (Только IPv4) Укажите порт DHCP, по умолчанию 67 и 68.Если не указано, это 1067 и 1068. Укажите одно и добавьте 1 ко второму.
# dhcp-alternate-port [= <порт сервера> [, <порт клиента>]]
 # Используйте эту опцию с осторожностью, чтобы не тратить впустую IP-адреса. (Только IPv4) Разрешает динамическое назначение IP-адресов клиентам BOOTP.
 # Примечание. IP-адрес, полученный клиентом BOOTP, является постоянным и не может быть повторно назначен другим клиентам.
# bootp-dynamic [= <идентификатор-сети> [, <идентификатор-сети>]]
 # Используйте эту опцию с осторожностью.
 # По умолчанию DHCP-сервер использует метод ping, чтобы гарантировать выделение IP-адреса, когда IP-адрес не используется.# Включение этой опции не будет использовать ping для подтверждения.
# no-ping

########################################################################## ###########################
 # Записывать дополнительные журналы DHCP, записывать все параметры и информацию тегов, отправленную DHCP-клиенту
# log-dhcp
 # Запрещено вести дневник работы, журнал ошибок все равно записывается. Включение log-dhcp переопределит следующие параметры.
# quiet-dhcp
# quiet-dhcp6
# quiet-ra
 # Измените путь к файлу аренды DHCP по умолчанию, по умолчанию изменять не нужно
# dhcp-leasefile = / var / lib / dnsmasq / dnsmasq.аренда
# (Только IPv6)
# dhcp-duid = <идентификатор-предприятия>, <идентификатор>

########################################################################## ###########################
# dhcp-script = <путь>
# dhcp-luascript = <путь>
# dhcp-scriptuser = корень
# script-arp
# leasefile-ro
# мост-интерфейс = <интерфейс>, <псевдоним> [, <псевдоним>]

########################################################################## ###########################
 # Укажите информацию об имени домена для DHCP-сервера, а также укажите имя домена для соответствующего пула IP-адресов.# Напрямую указать доменное имя
 # Пример: domain = thekelleys.org.uk
 # Соответствующее доменное имя подсети
 # Пример: domain = wireless.thekelleys.org.uk, 192.168.2.0/24
 # Имя домена, соответствующее диапазону ip
 # Пример: domain = reserved.thekelleys.org.uk, 192.68.3.100,192.168.3.200
# domain = <домен> [, <диапазон адресов> [, local]]
 # По умолчанию dnsmasq вставляет общее имя клиентского хоста в DNS.
 # В этом случае имя хоста должно быть уникальным, даже если два клиента имеют разные суффиксы доменных имен.# Если второй клиент использует то же имя хоста, запрос DNS будет автоматически обновлен до IP-адреса второго клиента.
 # Если установлена ​​опция dhcp-fqdn, обычные имена хостов больше не будут вставляться в DNS,
 # Разрешить вставлять в DNS-сервер только квалифицированные имена хостов с суффиксами доменных имен.
 # Чтобы указать эту опцию, укажите опцию домена без диапазона адресов <диапазон адресов>.
# dhcp-fqdn
 # Обычно после назначения аренды DHCP dnsmasq устанавливает опцию FQDN, чтобы сообщить клиенту не пытаться DDNS обновить имя хоста и IP-адрес.# Это потому, что name-IP был автоматически добавлен в представление DNS dnsmasq.
 # Установка этой опции позволит клиенту обновлять DDNS,
 # Очень полезно разрешить клиентам обновлять сервер Windows AD под Windows.
 # См. RFC 4702.
# dhcp-client-update
# enable-ra
# ra-param = <интерфейс>, [высокий | низкий], [[<интервал>], <время жизни маршрутизатора>]

########################################################################## ###########################
#
 # Параметры TFTP
#
########################################################################## ###########################

 # Для большинства конфигураций вам нужно указать только параметры enable-tftp и tftp-root.# Включать ли встроенный tftp-сервер, вы можете указать несколько сетевых интерфейсов, разделенных запятыми
# enable-tftp [= <интерфейс> [, <интерфейс>]]
# enable-tftp
# enable-tftp = enp3s0, lo
 # Укажите корневой каталог tftp, который является относительным путем для использования при поиске передачи файлов, вы можете добавить интерфейс,
# tftp-root = <каталог> [, <интерфейс>]
# tftp-root = / var / lib / tftpboot /
 # Если вы раскомментируете, то даже если указанный tftp-root недоступен, служба tftp все равно будет запущена.# tftp-no-fail
 # Добавить IP-адрес клиента в качестве пути к файлу. Эта опция доступна, только если tftp-root установлен правильно,
 # Пример: если tftp-root = / tftp и клиент запрашивает файл myfile.txt для 192.168.1.15,
 # Сначала запросите файл /tftp/192.168.1.15/myfile.txt, а затем файл /tftp/myfile.txt.
 # Чувство бесполезности.
# tftp-unique-root
 # Включить режим безопасности, включить эту опцию, разрешить процессу tftp доступ только к файлам, принадлежащим владельцу.
 # Не включайте эту опцию, чтобы разрешить доступ ко всем файлам, доступным для чтения владельцем процесса tftp.# Если dnsmasq запущен от имени пользователя root, опция tftp-secure разрешит доступ к глобально читаемым файлам.
 # В обычных условиях не рекомендуется запускать dnsmasq от имени пользователя root.
 # Не важно, если указан tftp-root.
# tftp-secure
 # Преобразование всех файловых запросов в нижний регистр. Очень полезно для клиентов Windows, рекомендуется включить этот пункт.
 # Примечание: TFTP-сервер dnsmasq всегда преобразует "\" в пути к файлу в "/".
# tftp-нижний регистр
 # Разрешить максимальное количество подключений, по умолчанию - 50.# Если вы устанавливаете большое количество подключений, вам нужно обратить внимание на максимальное ограничение файлового дескриптора для каждого процесса, подробности см. В руководстве по документации.
# tftp-max = <соединения>
# tftp-max = 50
# Установите значение MTU во время передачи, не рекомендуется устанавливать или устанавливать как требуется.
 # Если установленное значение больше, чем значение MTU сетевого интерфейса, оно будет автоматически фрагментировано в соответствии со значением MTU сетевого интерфейса (не рекомендуется).
# tftp-mtu = <размер mtu>
 # Остановить tftp-сервер от согласования опции "размер блока" с клиентом.Когда он включен, он предотвращает некоторые странные проблемы с клиентом.
# tftp-no-blockize
 # Укажите диапазон портов подключения tftp для облегчения развертывания брандмауэра.
 # tftp прослушивает 69 / udp, порт подключения автоматически назначается системой по умолчанию,
 # Номер порта подключения, указанный при работе пользователя без полномочий root, должен быть больше 1025 и не более 65535.
# tftp-port-range = <начало>, <конец>

#################################################################################################### ############################

# conf-dir = <каталог> [, <расширение-файла>......]
# conf-файл = / etc / dnsmasq.more.conf
conf-dir = / etc / dnsmasq.d
# server-file = <файл>
 

Telnet_SSH и командная строка — DD-WRT Wiki | Безопасная оболочка

2/15/13 Telnet / SSH и командная строка — DD-WRT Wikiwww.dd-wrt.com/wiki/index.php/Telnet/SSH_and_the_Command_Line#Using_Telnet)3/12

Вы также можете вручную отредактировать /tmp/root/.ssh/authorized_keys и добавить ключи (хотя они исчезнут при перезагрузке, если сценарий запуска не изменяет их).Стоит отметить, что ssh-ключи представляют собой довольно длинные строки символов, поэтому, если вы вставляете их, вы должны быть осторожны, чтобы не получить разрывов строк (т.е. это одна длинная непрерывная строка). или они не будут работать.

Настройка

Метод открытого ключа

Аутентификация с открытым ключом — один из самых безопасных методов входа в SSH. Он работает аналогично HTTPS, поскольку все передачи шифруются ключом, который будет иметь только клиент и сервер. Еще один плюс …Если вы используете этот метод вместо аутентификации по паролю, никто не сможет взломать ваш маршрутизатор, пытаясь угадать пароль! Чтобы включить его, сначала вы должны сгенерировать пару открытого / закрытого ключей на своем настольном компьютере. Это можно сделать с помощью утилиты «Puttygen», если вы используете в качестве клиентов либо Putty (http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html), либо WinSCP. Скопируйте

открытый ключ

в буфер обмена и сохраните закрытый ключ где-нибудь на вашем компьютере.Публичный ключ сохранять не нужно. Если вы его забыли, вы можете дать команду Puttygen (http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html) открыть файл вашего закрытого ключа вместо создания новой пары ключей, и он сообщит вам ваш открытый ключ. Пользователи сред, отличных от Windows, могут использовать утилиту ssh-keygen (1):

user @ machine: ~> ssh-keygen Создание пары ключей rsa типа открытый / закрытый. Введите файл, в котором будет сохранен ключ (/home/user/.ssh/id_rsa): Введите кодовую фразу (пусто, если кодовая фраза отсутствует): Введите ту же кодовую фразу еще раз: Ваша идентификация сохранена в / home / user /.ssh / id_rsa. Ваш открытый ключ был сохранен в /home/user/.ssh/id_rsa.pub. Отпечаток ключа: 68: 1c: 50: 0e: 76: c1: d0: c7: 9e: 5e: 5a: 65: 78: 20: 5c: fb [email protected]

Рекомендуется не защищать свою пару ключей паролем, так как это упростит вам задачу, хотя и будет несколько менее безопасно. Используя веб-интерфейс, перейдите к

Администрация

таб. (в версии 24 используйте

Услуги

tab) 2. На дополнительной вкладке «Службы» включите

.

SSHd

в разделе Secure Shell.Если новые параметры не появляются, SaveSettings3. Вставьте свой

открытый ключ

в

авторизованный ключ

из

SSHD

раздел, который сейчас расширился. Вам нужно будет сгенерировать это на своем рабочем столе, если у вас его еще нет. Сохранение и применение настроек ПРИМЕЧАНИЕ. Формат открытого ключа при вставке должен быть «ssh-rsa», пробел, ключ, пробел, комментарий. Вот пример: (обратите внимание, что в конце не должно быть перевода строки)

ssh-rsa AAAAB4NfaC3yc5… jZfYmBTi7Q == rsa-key-20101024

Альтернативный метод:

Показать все сетевые подключения на маршрутизаторе DD-WRT — Тайлер Лонгрен

Найдите ограничителя пропускной способности, просмотрев все сетевые подключения, проходящие через маршрутизатор DD-WRT

Что-то использовало всю мою восходящую полосу пропускания, я не знал, что это за устройство и кто это (были друзья). Чтобы быстро разобраться в этом, можно запустить простую команду из веб-интерфейса DD-WRT, который покажет все сетевые подключения на вашем маршрутизаторе DD-WRT.

Просто выполните следующие 5 простых шагов:

1. Войдите в веб-интерфейс вашего маршрутизатора.
2. Щелкните вкладку
«Администрирование» , а затем щелкните вкладку «Команды» .
3. В текстовой области для ввода команд введите:
 cat / proc / net / ip_conntrack 
4. Нажмите кнопку
«Выполнить команды» ниже того места, где вы ввели команду выше.

После того, как вы нажали кнопку «Выполнить команды» , подождите несколько секунд, и в конечном итоге вы увидите результат, аналогичный тому, что вы видите на изображении выше, ниже — необработанный текст с изображения:

Теперь ключом к отслеживанию пользователя / устройства-нарушителя является поиск IP-адреса источника (почти всегда немаршрутизируемый IP-адрес, например 192.168.1.x, 10.10.10.x или что-то в этом роде), который обнаруживается намного чаще, чем другие немаршрутизируемые IP-адреса.

После того, как вы нашли этот IP-адрес, перейдите на вкладку «Статус» в веб-интерфейсе DD-WRT, нажмите «LAN» , найдите IP-адрес, который, как вы подозреваете, был виновником сверху, и запишите MAC-адрес, связанный с этим IP-адресом.

Ну что теперь?

Работай со мной

Я доступен для найма и всегда беру новых клиентов, больших и малых.У вас есть проект или идея, которые вы хотите обсудить? План запуска, но нет разработчика, чтобы это произошло? Просто свяжитесь с нами, я хотел бы узнать, смогу ли я вам помочь!

Оставить отзыв

У вас есть вопрос или обновленная информация, относящаяся к этому сообщению? Пожалуйста, оставьте комментарий! Комментарии — отличный способ получить помощь, я их все читаю и отвечаю почти на каждый комментарий. Давайте поговорим. 😀

Нравится:

Нравится Загрузка …

Связанные

Опубликовано Тайлер Лонгрен

Привет! Я Тайлер Лонгрен, внештатный веб-разработчик.Я отец двух прекрасных дочерей и любитель автомобильной стереосистемы. Мне нравятся PHP, JavaScript, WordPress, Git, HTML5 и CSS3 и другие полезные вещи. Мне тоже очень нравится сообщество разработчиков ПО с открытым исходным кодом. Вы можете найти меня в Twitter, Google+ и Github. Это мой личный блог и все тут! Просмотреть все сообщения Тайлера Лонгрена

Опубликовано

DD-WRT и SSH-туннелирование | Блог Acidx

Включение демона SSH на домашнем маршрутизаторе DD-WRT может быть очень полезным, поскольку позволяет использовать туннелирование SSH.Используя туннель SSH, вы можете отправлять любой желаемый трафик через этот туннель в свою домашнюю сеть. Это здорово по двум причинам:

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

В этом руководстве я покажу вам, как включить SSH на DD-WRT и как установить туннельное соединение.

Если у вас нет маршрутизатора DD-WRT, вы можете просто подключить любой Linux-компьютер к вашей домашней сети и установить на нем SSH-сервер (обычно он уже установлен).

1. Включение SSH на DD-WRT

Это довольно просто. Просто перейдите на вкладку Services и установите соответствующие параметры:

При включении SSHd будет активирован встроенный SSH-сервер (dropbear). SSH TCP Forwarding не требуется, потому что туннелирование будет работать и без него.Пароль Логин может использоваться для разрешения SSH-соединений с аутентификацией по паролю. Для повышения безопасности вы можете отключить это и использовать аутентификацию только по ключевым файлам. В этом случае вам нужно будет ввести хотя бы один авторизованный открытый ключ. Порт может быть установлен на любой свободный порт, по умолчанию — 22.

Примечания: Имя пользователя для SSH-подключений к DD-WRT всегда root. Пароль — это тот пароль, который вы используете для входа в свой веб-интерфейс. В DD-WRT v24 preSP2 Build 21061 SSH может не работать; по крайней мере, на моем TP-LINK WR1043ND соединение мгновенно разрывается.В этом случае используйте более раннюю версию или новую версию для разработчиков.

2. Примеры

Для следующих примеров я использую компьютер Mac OS X в качестве клиента. Команды терминала также должны работать на большинстве машин Linux. Если вы используете Windows, вы можете использовать Putty; необходимые параметры находятся в разделе «Подключение» -> «SSH» -> «Туннели». Отметьте Local, если вам нужен переключатель -L или Dynamic для переключателя -D.

2.1 Просмотр Интернета

Если вы находитесь в небезопасной сети (т.е.е. открытый WLAN) или не позволяет открывать определенные веб-сайты, вы можете использовать свой SSH-туннель в качестве прокси. Таким образом, все HTTP-запросы будут отправляться через туннель в ваш DD-WRT ящик, который затем получит желаемые веб-сайты и отправит их обратно вашему клиенту через туннель.

Сначала установите SSH-соединение следующим образом:

ssh -D 1337 [email protected]

Это создаст локальный сокет, который прослушивает указанный порт (1337). Любое соединение с этим портом будет динамически перенаправляться через туннель на ваш DD-WRT.Пересылка называется динамической, потому что в случае SOCKS-соединения правильный пункт назначения для перенаправленных запросов определяется автоматически и не должен указываться при установлении туннеля (разницу см. В примере 2.2). Теперь все, что вам нужно сделать, это настроить ваш браузер (в моем случае Opera) для использования локального сокета в качестве прокси-сервера SOCKS:

Теперь весь HTTP-трафик будет отправляться через туннель.Обратите внимание, что скорость просмотра и загрузки ограничена пропускной способностью вашего домашнего подключения.

2.2 Обмен мгновенными сообщениями

Если ваш мессенджер (ICQ, MSN, Jabber,…) не работает, скорее всего, это связано с тем, что брандмауэр блокирует нужный порт. Это ограничение можно обойти, отправив соединение мессенджера через туннель.

Это можно сделать двумя способами.

2.2.1 -D Переключатель

Как и в предыдущем примере, вы можете установить SSH-соединение с помощью переключателя -D:

ssh -D 1337 root @ your.ddwrt.box

Теперь вам просто нужно настроить SOCKS Proxy в вашем мессенджере (в моем случае Adium):

Adium установит соединение через туннель.

2.2.2 -L Переключатель

Этот метод можно использовать, если мессенджер не поддерживает SOCKS Proxying. Однако в этом случае мессенджер должен позволить вам изменить адрес сервера входа в систему.

Установите соединение SSH следующим образом:

ssh -L 1337: логин.icq.com:5190 [email protected]

Это создаст локальный сокет, который прослушивает указанный порт (1337). Любое соединение с этим портом будет перенаправлено через туннель на ваш DD-WRT ящик, который затем установит соединение с указанным целевым хостом и портом (login.icq.com:5190, который является адресом сервера входа в ICQ). Теперь все, что вам нужно сделать, это подключить ваш мессенджер к локальному порту вместо сервера ICQ:

2.3 Удаленное администрирование

Если вы хотите установить RDP-соединение для управления компьютером Windows в вашей домашней сети, вы можете безопасно сделать это через туннель SSH.

Установите соединение SSH следующим образом:

ssh -L 1337: 192.168.0.100: 3389 [email protected]

… где 192.168.0.100 — это компьютер в вашей домашней сети, которым предполагается управлять. Теперь просто откройте инструмент RDP и подключитесь к локальному сокету:

Это также будет работать с VNC, вам просто нужно настроить порт (3389) при установке SSH-соединения.

DD-WRT Удаленный доступ по SSH через VPN

SSH-доступ не работает, когда клиент OpenVPN включен на DD-WRT. Пакеты
действительно приходят к маршрутизатору, если вы пытаетесь использовать SSH для IP-адреса WAN, однако, поскольку весь OUTPUT-трафик перенаправляется через VPN (interface tun0) SSH не удастся.

Чего не хватает, так это правила OUTPUT в iptables для маршрутизации трафика на порт 22 через интерфейс vlan2 (это интерфейс, подключенный напрямую к Интернету).

Сначала создайте таблицу 202 через IP шлюза на интерфейсе VLAN2:

 $ ip route добавить значение по умолчанию через $ (nvram get wan_gateway) dev vlan2 table 202 

Затем примените правило из таблицы 202 к упаковкам, отмеченным цифрой 22.

 $ ip rule add fwmark 22 table 202 

Наконец, пометьте 22 каждый выходной пакет на 22-м порту, который не поступает ни с одной машины в локальной сети.

 $ iptables -t mangle -I ВЫХОД -p tcp --sport 22 -d! 192.168.1.0/24 -j MARK - отметка 22 

Обратите внимание, что последняя команда пропускает пакеты из локальной сети в моем случае 192.168.1.0 / 24, причина в том, что при подключении по SSH с хоста локально пакеты должны маршрутизироваться через br0 , а не через vlan2 .

Сначала введите эти команды в командной строке вашего маршрутизатора, чтобы убедиться, что они работают с вами. Если они каким-то образом нарушат вашу маршрутизацию, перезагрузка очистит их. Убедившись, что они работают, вы можете добавить их в сценарий брандмауэра вашего маршрутизатора. Также обратите внимание, что некоторые версии DDWRT не будут применять правила iptables, пока не будут перезапущены все службы.

Обратите внимание, что мои IP-адрес и порт в моей конфигурации отличаются, потому что я не использую значения по умолчанию.

Для справки, вот как выглядит мой скрипт раздела Firewall:

 # Создать правило для пропуска VPN
эхо 0> / proc / sys / net / ipv4 / conf / all / rp_filter
iptables -t mangle -F ПЕРЕДАЧА
ip route добавить таблицу по умолчанию 200 через $ (nvram get wan_gateway)
ip rule add fwmark 1 table 200
очистка кеша IP-маршрута  ## SSH для расшифровки (порт 12601)
# Сначала часть переадресации портов
iptables -t nat -I PREROUTING -p tcp --dport 12601 -j DNAT --to 192.

Leave a comment