Как на openwrt передать файлы

Обновлено: 04.07.2024

Немного ранее я уже писал про плюсы и минусы OpenWRT, а теперь хочется добавить конкретики.
Итак, дружище, ты прошился на OpenWRT, поэтому принимай мои поздравления. Теперь ты будешь смотреть на мир иначе, ведь баги, глюки и прочие непонятные вещи (на подобии редактора vi) теперь будут тебя радовать постоянно и преследовать в кошмарных снах (шутка).

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

Изменить порт SSH можно через web-интерфейс перейдя System-Administration или через редактирование файла /etc/config/dropbear.
Перезапуск демона производится командой
/etc/init.d/dropbear restart
Дополнительно обрати внимание, чтоб telnet был отключен, а ssh доступен только из зоны LAN.
Все это проделывается для того, чтоб сбить с толку злоумышленника или зловредное ПО. Ведь роутер может использоваться не только в домашней сети, состоящей из телевизора и двух смартфонов.

3. Русификация
Ставим пакет luci-i18n-base-ru и жмакаем F5.

4. Установка скинов
Ставим пакет luci-theme-material и luci-theme-freifunk-generic и каждый раз жмакаем F5 для просмотра новой темы.

7. Меняем MAC снаружи и MAC Wi-Fi
Зачем нам менять МАС? Для того, чтоб обмануть злоумышленника или вредонос. Приведу пример, допустим у тебя стоит TP-Link, который имеет непропатченую производителем уязвимость и по MAC адресу интерфейса можно определить, какой у тебя производитель маршрутизатора и поискать уязвимости. Поэтому мы будем маскироваться под что-то другое, допустим под D-Link.
Физический адрес интерфейса меняется в файлах:
/etc/config/wireless
/etc/config/network
или руками через web-интерфейс.

9. Настраиваем iperf3 на маршрутизаторе
Для автоматического запуска iperf3 в виде демона ставим сам iperf3, а далее идем в вебморду роутера Система-Загрузка и туда вписываем
/usr/bin/iperf3 -f Mbits -B 192.168.100.1 -D -s &
или вписываем строку в /etc/rc.local.

В первый раз, когда вы подключитесь к маршрутизатору, вы, вероятно, увидите предупреждение о отпечатке ключа RSA. Если вы уверены, что это адрес вашего маршрутизатора OpenWrt, просто введите yes и нажмите Return. Затем введите пароль, предоставленный вашему маршрутизатору, или нажмите Return, если это начальная настройка. Вот пример сеанса:

Чтобы завершить ssh сеанс на маршрутизаторе, введите exit и нажмите Return.

Остальная часть этой страницы описывает несколько эмуляторов терминала, которые Windows, Linux или macOS могут использовать для доступа к вашему маршрутизатору OpenWrt.

Терминальные эмуляторы Windows

Cmder, Smartty, Putty и WinSCP являются терминальными эмуляторами, которые позволяют вам сходить в маршрутизатор.

Использование Cmder

Cmder для Windows эмулятор терминала с открытым исходным кодом, который работает в Windows. Он может свободно использовать и обеспечивает легкую “оболочку командной строки” которая позволяет вам ssh в OpenWrt. Его привлекательные шрифты и цветовая схема легко видны на глазах. Полное распределение является предпочтительным (over the mini distribution), так как она обеспечивает эмуляцию Баша, с Unix-й набором команд.

Откройте папку Cmder и дважды щелкните Cmder значок. Вы увидите окно Cmder, похожее на изображение ниже. Чтобы передать ssh в маршрутизатор OpenWrt на 192.168.1.1, введите ssh root@192.168.1.1 затем нажмите Return


Использование Smartty

Smartty дает вам доступ к командной строке для OpenWrt и позволяет вам открывать /редактировать/загружать/загружать файлы в OpenWrt и в целом более современную и удобную для пользователя, чем Putty (еще один инструмент, описанный ниже):

после установки или после распаковки архива, дважды щелкните по исполняемому файлу SmarTTY. Вы будете приветствованы окном с двумя вариантами, дважды нажмите “setup новое соединение SSH ” (другая опция предназначена для последовательных подключений, для usb-TTL -ключей и иногда вы подключаетесь к серийным выводам устройства на плате, мы выиграли Не используйте это сейчас). Имя пользователя: root (это “администратор” и только пользователь по умолчанию OpenWrt) Пароль: оставьте это поле пустым для вашего первого подключения, а затем напишите пароль, который вы установили (либо в графическом интерфейсе Luci, либо после первого доступа к SSH ) По умолчанию в прошивке OpenWrt отсутствует серверный компонент, позволяющий открывать /редактировать/просматривать/загружать/загружать файлы в Smartty, поэтому после того, как вы подключились к интернету, напишите, opkg update && opkg install openssh-sftp-server чтобы установить его. Если следующий шаг завершится неудачно, возможно, потребуется перезагрузить устройство OpenWrt для запуска этой новой службы. Теперь вы можете нажать Файл → Открыть удаленный файл чтобы открыть всплывающее окно с файловой системой устройства OpenWrt, и вы можете перемещаться по нему и открывать текстовые файлы, например, как обычно (они будут открываться в окне текстового редактора SmarTTY) Если вы хотите загрузить или загрузить файлы в/из определенной папки на устройстве, вы можете щелкнуть по меню SCP и выбрать наиболее подходящее действие оттуда.

Использование putty

Putty дает вам доступ к командной строке для OpenWrt:

Начните “putty.exe”с вашего клиента Windows. Появится окно входа в систему Putty. перейдите в “Session” категорию окна входа в Putty, найдите поле “Host Name” (or IP address) и просто введите IP -адрес (например, 192.168.1.1 ) вашего устройства OpenWrt, сохраните порт 22 по умолчанию. Нажмите Open кнопку в нижней части, чтобы открыть соединение. Это вызовет окно оболочки, спрашивая login as . Войдите как root с паролем OpenWrt, который вы определили некоторое время раньше. Если вы еще не установили пароль “root”, вам не будет задан пароль.

Использование WinSCP

WinSCP позволяет просматривать файловую систему OpenWrt в Windows Exlorer, например, в стиле GUI :

Обычно этого не требуется, но для простоты этого способа перезагрузите ваше устройство OpenWrt, чтобы убедиться, что служба SFTP действительно запущена Начните WinSCP.exe с вашего клиента Windows, появится окно входа WinSCP. Готово. Теперь у вас есть вид, похожий на Exlorer, на вашу файловую систему OpenWrt.

Редактирование конфигурационных файлов OpenWrt с помощью встроенного графического редактора WINSCP:
для редактирования конфигурационного файла OpenWrt с помощью редактора WinSCP с графическим интерфейсом щелкните правой кнопкой мыши файл в WinSCP и выберите “Edit” из контекстного меню.

Linux Terminal Emulators

Все дистрибутивы Linux предоставляют клиентский интерфейс ssh как часть стандартной установки.

Откройте эмулятор терминала и напишите ssh root@192.168.1.1 (“ssh» - это команда, root это пользователь OpenWrt, к которому вы подключаетесь, а 192.168.1.1 это светодиод по умолчанию OpenWrt)

Обычно у Linux также есть клиенты SCP (для открытия/редактирования/загрузки/выгрузки файлов в OpenWrt), которые могут быть установлены или не установлены по умолчанию. Вам нужно найти документацию вашего дистрибутива или выполнить поиск с помощью интерфейса управления пакетами для “SCP”, чтобы найти, где он находится, и его текущий статус установки. Прочтите его встроенное руководство (“man scp”, например, для клиента командной строки SCP) или google некоторые учебные пособия, чтобы узнать, как его использовать.

macOS Terminal Emulators

На macOS (ранее Mac OSX) любой эмулятор терминала позволит вам ssh. Там несколько терминальных эмуляторов:

Терминал - встроенная терминальная программа macOS. Найти его /Приложения/Утилиты

Чтобы подключиь ssh в вашем маршрутизаторе OpenWrt на 192.168.1.1, введите ssh root@192.168.1.1 , и нажмите Return.

  • Last modified: 2020/01/10 15:01
  • by stokito

Self-registration in the wiki has been disabled.
If you want to contribute to the OpenWrt wiki, please post HERE in the forum or ask on IRC for access.

Except where otherwise noted, content on this wiki is licensed under the following license:
CC Attribution-Share Alike 4.0 International


Утилита uci, входящая в состав openwrt, позволяет редактировать конфигурационные файлы, считывать из них информацию и «налету» применять изменения.

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

В файле /etc/config/system изменим значения hostname и timezone



Здесь мы использовали только два параметра get и set, обо всём остальном читайте по указанным выше ссылкам.


Чтобы изменения времени тотчас вступили в действие, дайте команду.

Firewall

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

Открыть какой-либо порт для доступа через WAN можно прописав команды iptables в файл /etc/rc.local…

Командой ifconfig можно посмотреть названия интерфейсов (wlan0).

Открываем 80-ый и 22-ой порты. Если нужен UDP протокол, то меняем tcp на udp.

Правила вступят в действие после перезагрузки.

OpenSSH

Меняем урезанный dropbear на полноценный openssh.

Пароль для root должен быть установлен.

Следующими командами переносим dropbear на другой порт (2222) и перезапускаем его:

Закрываем текущую сессию и открываем новую на новом порту (2222):

Устанавливаем openssh-server

Ставим его в автозагрузку и стартуем:

Снова закрываем текущую сессию и открываем новую на стандартном порту (22):

Отключаем dropbear

Всё готово. Если нужно, то устанавливаем openssh-sftp-server для передачи файлов:

Конфиг-файл openssh — /etc/ssh/sshd_config.

Допустим нам нужно выполнять некий скрипт, который будет перегружать роутер каждые пять минут, тогда делаем следующее…

Создаём скрипт rebwrt.sh в папке bin

Проверяем всё ли правильно:

Даём ему права на исполнение:


Если он уже остановлен, то выдаст ошибку.

И стартуем cron:


Откроется в редакторе vi (см. ниже).

Подробности и примеры смотрите в wiki.

Редактор vi

Для редактирования файла нажимаем символ "i".
Вносим изменения.
Нажимаем Esc.
Вводим последовательно символы :wq (w-сохранить, q-выйти).
Нажимаем Enter.
Файл отредактирован.

Установка программ в RAM

Порядок действий таков: по идее, чтоб установить пакет в «память» надо использовать флаг -d ram…

ESP8266+mqtt mosquitto, instapush, twitter, SMTP, ThingSpeak

Содержание

Делаем отдельную WiFi сеть для IoT

Настраиваем OpenWRT

Настраиваем MQTT брокер mosquitto

Настройка MQTT-Spy

Пишем прошивку в Arduino IDE, подключаем ESP8266 к mosquitto

Устанавливаем и настраиваем mqttwarn

Передаем данные с ESP8266 на ThingSpeak

Передаем данные c ESP8266 по EMAIL

Передаем с ESP8266 на смартфон PUSH уведомления

Управляем ESP8266 GPIO со смартфона

ESP8266 публикует в Twitter состояние GPIO

Поднимаем Dynamic DNS и делаем bridge с CloudMQTT

Делаем отдельную WiFi сеть для IoT

Мы будем использовать не обычную WiFi точку доступа из ближайшего магазина и не народный MR3020, а для того, чтобы решение получилось максимально доступно для широкого круга умельцев, а не только для линуксоидов, которые не признают ничего, кроме командной строки в терминале, мы возьмем, практически за те же деньги, роутер от китайского стартапа Gl.iNET, созданный специально для DIY. Вот наша партнерская ссылка для покупки этого устройства на Aliexpress для тех, кто готов поддержать наш сайт одновременно экономя на покупках с нашим партнером Aliexpress.

Для тех, кто побаивается линуксов вообще и OpenWRT в частности, сообщаю, что мы будем работать c OpenWRT в русифицированном WEB интерфейсе. Сам я не обладаю большим опытом работы в linux и фанатом командной строки не являюсь, поэтому и вам постараюсь показать простые приемы, которые, возможно, и не блещут изяществом.

Русифицированный интерфейс OpenWRT

Русифицированный интерфейс OpenWRT

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

Свободная и занятая память при работе всех нужных нам приложений

Свободная и занятая память при работе всех нужных нам приложений

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

Обратите внимание, что у Gl.iNET есть две модели роутеров: 6408A и 6416A, которые имеют на борту 8 и 16 Мб флеш памяти соответственно. Сейчас разницы в цене у них практически нет, так что постарайтесь взять 16-ти мегабайтную модель. Если вы будете повторять все, что будет описано в данной статье, то все равно придется подключать USB флешку для раcширения overlay раздела, потому что размер всех установленных пакетов у меня уже перевалил за 50 Мбайт.

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

Далее мы будем строить такую сеть:

IoT Home Network

ESP8266 IoT Home Network

Как видите, мы не будем вообще использовать функции маршрутизации IP пакетов, наш роутер будет работать в качестве Ethernet моста в той же подсети, что и остальные устройства. Это позволит нормально функционировать протоколу mDNS без пробрасывания UDP портов, отменит необходимость прописывать маршруты из локальной сети в сеть IoT, и при этом мы будем использовать DHCP сервер вашего основного маршрутизатора. Однако, самое главное, что мы получим в результате: две независимые WiFi сети. Это позволит нам переводить ESP8266 в режим 802.11b или 802.11g для снижения энергопотребления в случаях, когда не требуется высокая скорость подключения без ущерба в скорости для остальных WiFi устройств, требовательных к скорости подключения к интернет.

В итоге должно получиться что-то вроде этого (кстати, приколитесь в каком радиовакууме я живу)

Настраиваем OpenWRT

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

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

Мне было проще подключиться к роутеру через USB-TTL и все настроить в терминале

Читайте также: