Note |
---|
|
Доступно с версии EasyWRT Шаблон скрипта custom доступен по ссылке: скачать Шаблон скрипта my_update.sh доступен по ссылке: скачать |
...
...
Что такое EasyCustom?
...
...
сервис ручной кастомизации ПО EasyWRT, |
|
...
состоящий из архива с набором файлов, команд и скриптов. Позволяет провести ручное изменение настроек EasyWRT без
|
|
...
сборки прошивки, и записать измененные параметры в постоянную память маршрутизатора через загрузку собранного архива. При загрузке EasyCustom, системные файлы будут заменены на аналогичные файлы из архива, а при сбросе роутера к заводским настройкам - настройки будут взяты из загруженного архива, что позволяет оставлять записанные настройки "заводскими".
Для базовой настройки доступен web-конфигуратор по ссылке https://data.nag.wiki/private/WiFi_Routers/Doc/easycustom. |
|
...
Описание структуры и использования EasyCustom
...
Column |
---|
|
Panel |
---|
borderColor | grey |
---|
borderWidth | 1 |
---|
borderStyle | dashed |
---|
| Image Added
|
|
|
Структура EasyCustom
...
Section |
---|
Column |
---|
EasyCustom представляет собой архив .tar.gz, его cодержимое: Section |
---|
Column |
---|
Обязательное: Каталоги - /etc/ezcustom Скрипт (текстовый файл без расширения) - custom
|
Column |
---|
Необязательное (вносится при необходимости): Скрипт обновления архива EasyCustom my_update.sh Собственные shell-скрипты Файл ограничений элементов WEB-UI luci.acl
|
|
|
|
...
...
Warning |
---|
Файл custom должен быть создан в Unix-формате. В ОС Linux это выполняется по умолчанию. |
Warning |
---|
После установки собранных настроек на роутер, стандартный сброс к заводским настройкам их не удалит. Если вы хотите изменить какие-либо настройки в конфигурации ezcustom, но в custom-скрипте не предусмотрели обновление архива с сервера, вы можете воспользоваться командой: Code Block |
---|
| firstboot -y && reboot |
Команда удалит все настройки EasyCustom и вернет роутер в заводское состояние. |
...
|
Panel |
---|
borderColor | grey |
---|
borderWidth | 1 |
---|
borderStyle | dashed |
---|
| Image Added
|
|
|
Команды для скрипта "custom"
...
Файл custom - linux shell скрипт, с помощью которого можно изменить базовую конфигурацию
...
роутера и модифицировать логику выполнения скриптов (своих или штатных).
...
В ezcustom реализован набор команд, позволяющих менять конфигурацию маршрутизатора:
...
Panel |
---|
|
|
Команда | Описание | Пример |
---|
RELEASE_IS | Проверить текущий релиз на соответствие. Можно использовать с оператором if.MODEL_IS | Проверить текущую модель на соответствие. Можно использовать с оператором if.title | Как смотреть базовый конфиг роутера? |
---|
|
Для ознакомления с доступными параметрами, введите с cli роутера: |
theme | RDark |
---|
if RELEASE_IS "2.3.1"
then
CONFIG_SET network.lan.ipaddr='192.168.10.1'
fi |
Для их применения нужно указывать полный путь до нужного параметра uci, например: - 'firewall' - конфигурационный файл
- 'ssh' - секция конфига
Нижеперечисленные команды используются для внесения изменения в конфигурационные файлы, без необходимости ручного изменения файла, по аналогии с базовой логикой uci. Image Added
|
Файл custom должен быть создан в Unix-формате. В ОС Linux это выполняется по умолчанию.
После установки собранных настроек на роутер, стандартный сброс к заводским настройкам их не удалит. Если вы хотите изменить какие-либо настройки в конфигурации ezcustom, но в custom-скрипте не предусмотрели обновление архива с сервера, вы можете воспользоваться командой в cli:
Code Block |
---|
|
|
theme | RDark |
if MODEL_IS "SNR-CPE-ME2-Litefirstboot -y && reboot
Команды для сборки скрипта custom не будут работать в cli и предназначены только для easycustom. Ниже описаны все доступные команды:
Section |
---|
|
Column |
---|
| Проверяет версию ПО. Можно использовать с оператором if Code Block |
---|
language | bash |
---|
title | Пример использования |
---|
collapse | true |
---|
| if RELEASE_IS "2.3.1"
then
CONFIG_SET |
| system.@system[0].hostname='ME2-Lite-Routernetwork.lan.ipaddr='192.168.10.1'
fi |
|
|
Команды внесения изменения в конфигурационные файлы
Expand |
---|
В каталоге роутера /etc/config/ находятся конфигурационные файлы, каждый из них отвечает за логику работы отдельной службы.
Для примера, разберём структуру секции 'ssh' из конфига 'firewall'.
- 'firewall' - конфигурационный файл
- 'ssh' - секция конфига
далее идут параметры и их значения:
Image Removed
Команды CONFIG_GET, CONFIG_SET, CONFIG_DELETE, CONFIG_ADD_LIST, CONFIG_ADD используются для внесения изменения в конфигурационные файлы, без необходимости ручного изменения файла. Для их применения нужно указывать полный путь до нужного параметра.
Warning |
---|
Эти команды используются только в скрипте custom, в cli использовать их нельзя. |
Команда | Описание | Пример |
---|
CONFIG_GET | Получить значение из конфигурации uci. Section |
---|
|
Column |
---|
| Проверяет имя модели. Можно использовать с оператором if |
|
theme | RDark |
LOG_SIZE="$(CONFIG_GETtitle | Пример использования |
---|
collapse | true |
---|
| if MODEL_IS "SNR-CPE-ME2-Lite"
then
CONFIG_SET system.@system[0]. |
|
log_size)"hostname='ME2-Lite-Router'
fi |
|
Section |
---|
|
Установить значение конфигурации uci. Info |
---|
Для получения списка параметров uci, перейдите в cli через ssh и введите команду Пример вывода параметров, отвечающих за настройки WAN: Image Removed
|
Column |
---|
| Устанавливает значение в конфигурации uci |
| theme | RDarktitle | Пример использования |
---|
collapse | true |
---|
| CONFIG_SET system.@system[0].hostname='ME2-Lite-Router'
|
|
---|
Section |
---|
|
DELETEУдалить значение
Column |
---|
| Получает значение из конфигурации uci | . Code Block |
---|
language | bash |
---|
title | Пример использования |
---|
|
| theme | RDark | DELETEhostname
Section |
---|
|
ADD_LISTДобавить
список . Code Block |
---|
language | bash |
---|
title | Пример использования |
---|
|
| themeRDarkADD_LISTuhttpd.main.listen_http='127.0.0.1:80'system.@system[0].hostname
|
|
|
Section |
---|
|
Column |
---|
| Создать анонимную секцию конфигурации uci | . | theme | RDarktitle | Пример использования |
---|
collapse | true |
---|
| MY_RULE="$(CONFIG_ADD firewall rule)"
|
|
CONFIG_SET "firewall.${MY_RULE}.name=Allow-DHCP-Renew"
|
|
CONFIG_SET "firewall.${MY_RULE}.src=wan" |
|
---|
Команды персонализации WEB-UI
Expand |
---|
|
Команда | Описание | Пример |
---|
INSTALL_LOGO | Установить логотип в web ui. | использовать файл donut.svg из архива в качестве логотипа
Section |
---|
|
Column |
---|
| Добавляет значение в список конфигурации uci |
|
theme | RDark |
---|
INSTALL_LOGO "donut.svg" |
INSTALL_STYLES | Установить файл стилей. | использовать файл pink.css из архива в качестве файла стилей web ui title | Пример использования |
---|
collapse | true |
---|
| CONFIG_ADD_LIST uhttpd.main.listen_http='127.0.0.1:80'
|
|
Section |
---|
|
Column |
---|
| Устанавливает логотип в систему Code Block |
---|
language | bash |
---|
title | Пример использования |
---|
|
| themeRDarkSTYLESpinkcss" |
Команды настройки параметров Wi-Fi
Expand |
---|
| Команда | Описание | Пример
---|
Section |
---|
|
Column |
---|
| Устанавливает файл css стилей в систему Code Block |
---|
language | bash |
---|
title | Пример использования |
---|
collapse | true |
---|
| INSTALL_STYLES "styles.css" |
|
|
Section |
---|
|
Установить настройку WiFi для диапазона 2.4GHz. Info |
---|
|
|
Чтобы узнать переменную нужной настройки, ознакомьтесь с содержимым файла
Column |
---|
|
Задает параметры для конфига "/etc/wireles/mtXXXX |
/mtXXXX.dat для каждого диапазона через cli (XXXX - обозначение чипа, отвечающего за диапазон)
Image Removed
установить имя сети "SNR-CPE-CUSTOM" для диапазона ..." Wi-Fi 2.4 ГГц Code Block |
---|
language | bash |
---|
title | Пример использования |
---|
|
|
themeRDarkSNRCPECUSTOM"
Section |
---|
|
Установить настройку WiFi для диапазона 5GHz Info |
---|
|
|
Чтобы узнать переменную нужной настройки, ознакомьтесь с содержимым файла
Column |
---|
|
Задает параметры для конфига "/etc/wireles/mtXXXX |
/mtXXXX.dat для каждого диапазона через cli (XXXX - обозначение чипа, отвечающего за диапазон)
Image Removed
установить имя сети "SNR-CPE-CUSTOM" для диапазона 5 ГГц..." Wi-Fi 5 ГГц в системе Code Block |
---|
language | bash |
---|
title | Пример использования |
---|
|
|
themeRDark5GHZSSID1SNRCPECUSTOM"
Section |
---|
|
| Установить настройку WiFi для всех диапазонов в системе | - установить имя сети "SNR-CPE-CUSTOM" для диапазонов 2.4 ГГц и 5 ГГц
Code Block |
---|
language | bash |
---|
theme | RDark
Column |
---|
|
Задает параметры для конфигов "/etc/wireles/mtXXXX..." всех диапазонов Wi-Fi в системе Code Block |
---|
language | bash |
---|
title | Пример использования |
---|
collapse | true |
---|
| WIFI_SET_ALL "SSID2" " |
|
SNRCPECUSTOM
Section |
---|
|
Возможные значения
Column |
---|
| Задает параметр PMF только в 2.4 ГГц с возможными значениями: "off", "optional", "mandatory | ".Устанавливает значение для функции PMF в диапазоне 2.4 ГГц установить PMF для диапазона 2.4 ГГц в опциональный" режим | theme | RDarktitle | Пример использования |
---|
collapse | true |
---|
| WIFI_SET_PMF_2GHZ "optional" |
|
---|
Section |
---|
|
Возможные значения
Column |
---|
| Задает параметр PMF только в 5 ГГц с возможными значениями: "off", "optional", "mandatory | ".Устанавливает значение для функции PMF в диапазоне 5 ГГц установить PMF для диапазона 5 ГГц в "опциональный режим | theme | RDark | title | Пример использования |
---|
collapse | true |
---|
| WIFI_SET_PMF_5GHZ "optional" |
|
---|
Section |
---|
|
Возможные значения
Column |
---|
| Задает параметр PMF во всех диапазонах с возможными значениями: "off", "optional", "mandatory" | .Устанавливает значение для функции PMF во всех диапазонах - установить PMF для диапазонов 2.4 ГГц и 5 ГГц в "опциональный" режим
Code Block |
---|
|
|
Code Block |
---|
language | bash |
---|
title | Пример использования |
---|
collapse | true |
---|
| WIFI_SET_PMF_ALL "optional" |
|
Section |
---|
|
Возможные значения
Column |
---|
| Задает параметр ширины канала только для 2.4 ГГц с возможными значениями: "20", "20/40", "40" | .Устанавливает значение МГц ширины канала в диапазоне 2.4 ГГц- установить ширину канала для диапазона 2.4 ГГц в 20 МГц
| theme | RDarktitle | Пример использования |
---|
collapse | true |
---|
| WIFI_SET_BW_2GHZ " |
|
20/
---|
Section |
---|
|
Возможные значения
Column |
---|
| Задает параметр ширины канала только для 5 ГГц с возможными значениями: "20", "20/40", "40", "80", "160" | .Устанавливает значение МГц ширины канала в диапазоне 5 ГГц. 160 МГц - доступно только в AX2.- установить ширину канала для диапазона 5 ГГц в 160 МГц
Code Block |
---|
language | bash |
---|
title | Пример использования |
---|
|
| themeRDark160
|
Section |
---|
|
Column |
---|
WIFI_SET_SSID_UNIQ_2GHZ
|
| При использовании WIFI_SET_SSID_UNIQ_2GHZ "<SSID>" получим уникальный SSID в виде "<SSID>-XXXX", где XXXX это последние четыре цифры MAC-адреса. По умолчанию используется идентификатор "SSID1" из конфига чипа 5 ГГц в /etc/wireles/mtXXXX/mtXXXX.dat. | установить уникальный SSID для диапазона 2.4 ГГц
Column |
---|
|
Задает уникальный SSID только для 2.4 ГГц. Для уникальности в SSID подставляются 4 последние символа MAC-адреса |
theme | RDark | title | Пример использования |
---|
collapse | true |
---|
| WIFI_SET_SSID_UNIQ_2GHZ " |
|
test2
---|
Section |
---|
|
Column |
---|
WIFI_SET_SSID_UNIQ_5GHZ
|
| При использовании WIFI_SET_SSID_UNIQ_5GHZ "<SSID>" получим уникальный SSID в виде "<SSID>-XXXX", где XXXX это последние четыре цифры MAC-адреса. По умолчанию используется идентификатор "SSID1" из конфига чипа 5 ГГц в /etc/wireles/mtXXXX/mtXXXX.dat. | - установить уникальный SSID для диапазона 5 ГГц
Column |
---|
|
Задает уникальный SSID только для 5 ГГц. Для уникальности в SSID подставляются 4 последние символа MAC-адреса |
themeRDark | Пример использования | collapse | true |
---|
| WIFI_SET_SSID_UNIQ_5GHZ " |
|
test5"
Section |
---|
|
Column |
---|
WIFI_SET_SSID_UNIQ_ALL
| При использовании
Column |
---|
| Задает уникальный SSID для всех диапазонов Wi-Fi. Для уникальности в SSID подставляются 4 последние символа MAC-адреса Code Block |
---|
language | bash |
---|
title | Пример использования |
---|
collapse | true |
---|
| WIFI_SET_SSID_UNIQ_ALL " |
| <SSID>" получим один уникальный SSID в виде "<SSID>-XXXX", где XXXX это последние четыре цифры MAC-адреса. По умолчанию используется идентификатор "SSID1" из конфигов чипов 2.4 ГГц и 5 ГГц в /etc/wireles/mtXXXX/mtXXXX.dat.установить один уникальный SSID для диапазона 2.4 ГГц и 5 ГГц
|
Section |
---|
|
Column |
---|
| Задает имя учетной записи администратора |
|
theme | RDark |
---|
WIFI_SET_SSID_UNIQ_ALL "test5" |
Команды настройки учетных записей
Expand |
---|
|
Команда | Описание | Пример |
---|
ADMIN_USERNAME | Установить логин администратора | установить логин для администратора "SuperAdmin" | title | Пример использования |
---|
collapse | true |
---|
| ADMIN_USERNAME "SuperAdmin" |
|
Section |
---|
|
Column |
---|
| Задает имя учетной записи администратора | themeADMIN_USERNAME "SuperAdmin" | RDark | Установить логин пользователя | установить логин для пользователя "Supportcode
Section |
---|
language | bash |
|
theme | RDark |
---|
USER_USERNAME "Support" |
Установить
Column |
---|
|
Задает пароль для учетной записи администратора или пользователя |
- установить пароль для администратора "SuperPassword"
themeSETRDark | Пример использования | collapse | true |
---|
| SET_PASSWD "SuperAdmin" "SuperPassword"
SET_PASSWD "JustUser" "JustPassword" |
|
Section |
---|
|
Установить хэш пароля для
Column |
---|
| Задает пароль для учетной записи администратора или пользователя | .Может применяться: когда требуется включить учетную запись User по умолчанию. В этом случае, требуется убрать знак , скрывая под hash в конфиге. Позволяет включить учетную запись пользователя через custom-скрипт, для этого уберите "!" из начала hash | .когда нужно скрыть от пользователя пароль учетной записи администратора.info Expand |
---|
| Чтобы узнать hash необходимого пароля, создайте пароль для пользователя через WEB-UI и посмотрите его hash через cli по пути /etc/shadow . Копируйте символы от знака "$" до первого знака ":" Image Modified
|
|
- установить пароль для администратора "SuperAdmin" в виде hash
Code Block |
---|
|
|
ADMIN_USERNAME
Code Block |
---|
language | bash |
---|
title | Пример использования |
---|
collapse | true |
---|
| SET_PASSWD_HASH "SuperAdmin" '$1$mY4f0J6G$84QHY80iDhWcgymeWjQSR1'
|
|
SuperAdmin$1$mY4f0J6G$84QHY80iDhWcgymeWjQSR1$1$mY4f0A7P$84QHY80iDhWcgymeWjQCP2' |
|
...
Sectionexpand |
---|
| Команда |
| Описание | ПримерУстановить
Column |
---|
|
Устанавливает файл crontab из stdin |
theme | RDark | title | Пример использования |
---|
collapse | true |
---|
| SET_CRONTAB <<EOF
* */2 * * * sh "/lib/my_update.sh"
EOF |
|
---|
Section |
---|
|
Установить
Column |
---|
| Устанавливает файл из архива easycustom.tar.gz в систему | .- установить файл passwd из архива как /etc/passwd
Code Block |
---|
|
language | bash |
---|
theme | RDark Code Block |
---|
language | bash |
---|
title | Пример использования |
---|
collapse | true |
---|
| INSTALL_FILE "passwd" "/etc/passwd" |
|
Кастомные скрипты
...
Кроме
...
системных команд, EasyCustom позволяет интегрировать пользовательские shell-скрипты
...
и внедрить свою уникальную логику в ПО EasyWRT.
Для примера рассмотрим
...
реализацию кода для обновления ezcustom-
...
архива с выделенного сервера.
...
Скрипт my_update.sh
...
Section |
---|
|
Column |
---|
Cодержимое скрипта автоматического обновления |
|
...
. Для использования нужно изменить переменную "UPDATE_URL", указав ссылку на ваш сервер. |
|
...
| title | Содержимое скрипта my_update |
---|
collapse | true |
---|
| #!/bin/sh
my_curl() {
timeout 60 curl $@
}
my_log() {
logger -t "my_custom_updater" "$@"
}
die() {
my_log "$@"
exit
}
UPDATE_URL="<вставьте ссылку на сервер с архивом EasyCustom>"
LAST_MODIFIED_FILE="/etc/ezcustom/.last_modified"
NEW_CUSTOM="/tmp/custom.tar.gz"
my_log "check '$UPDATE_URL' for updates..."
HEADERS="$(my_curl -I "$UPDATE_URL")"
LAST_MODIFIED="$(echo "$HEADERS" | grep -e '^Last-Modified:')"
test -z "$LAST_MODIFIED" && die "unable to check for updates"
my_log "last modified date: '$LAST_MODIFIED'"
test "$LAST_MODIFIED" = "$(cat "$LAST_MODIFIED_FILE")" && die "already at last configuration version"
my_log "downloading new version"
my_curl -o "$NEW_CUSTOM" "$UPDATE_URL" || die "unable to download new configuration"
sysupgrade --restore-backup "$NEW_CUSTOM" || die "unable to update configuration"
echo "$LAST_MODIFIED" >"$LAST_MODIFIED_FILE"
sync |
|
|
...
укажите блок кода для обращения роутера к прописанному серверу: |
|
...
...
| title | Пример CRON-скрипта |
---|
collapse | true |
---|
| # check for configuration update every 5 min
INSTALL_FILE "my_update.sh" "/etc/my_update.sh"
SET_CRONTAB <<EOF
*/5 * * * * sh "/etc/ |
|
|
...
Модуль luci-acl - account manager
Модуль позволяет установить правила ограничения доступа к определенным элементам web-интерфейса для отдельных пользователей.
EasyWRT имеет два встроенных пользователя:
- Admin - административная учетная запись, имеет цифровой идентификатор - 0
- User - пользовательская учетная запись, имеет цифровой идентификатор - 2
Конфигурация модуля расположена по пути /etc/config/luci-acl и поддерживает две основные политики:
- deny - запрет чтения и редактирования указанной страницы.
- readonly - запрет редактирования, но не чтения указанной страницы.
Политики применяются к пользователям на основе цифрового идентификатора приведенного выше.
Пример управления элементами UI через luci-acl
Если вы подготовили и протестировали ограничения web-ui заранее, поэтому сейчас требуется загрузка этого файла в роутер вместе с архивом EasyCustom.
Для этого потребуется указать команду в файле custom.
Code Block |
---|
|
language | bash |
---|
theme | RDark
|
- Для корректной работы необходим веб сервер который умеет отвечать на HEAD запросы и корректно передает заголовок Last-Modified
- Скрипт установит новый архив, если веб-сервер передаст заголовок Last-Modified с измененным значением. Иными словами - проверяется совпадение дата и времени модификации архива на сервере
Чтобы скрипт проверял обновление периодически, установите скрипт в систему (например в директорию /etc) и включите периодический запуск скрипта через CRON, Блок кода в скрипте с проверкой обновлений раз в 5 минут:
Ограничение UI для учетных записей через luci-acl
...
Модуль позволяет установить правила ограничения доступа к определенным элементам web-интерфейса для отдельных пользователей.
Доступны 2 варианта внесения ограничений:
Section |
---|
|
Column |
---|
|
Code Block |
---|
language | bash |
---|
title | Пример использования |
---|
collapse | true |
---|
| # установка файла luci-acl из архива EasyCustom в каталог /etc/config/luci-acl
INSTALL_FILE "luci-acl" "/etc/config/luci-acl" |
|
|
Настройка ограничений командами EasyCustom, без файла luci-acl
...
Section |
---|
|
Column |
---|
Редактирование напрямую: |
| theme | RDarktitle | Пример использования |
---|
collapse | true |
---|
| # запрет на чтение и редактирование страницы cwmp для пользовательской учетной записи
CONFIG_SET luci-acl.@user[0].deny='admin/status/log' 'admin/services/easycwmp'
# запрет на редактирование страницы vlan для пользовательской учетной записи
CONFIG_SET |
| luci-acl.@user[0].readonly='admin/network/vlan/advanced' |
---|
...
luci-acl.@user[0].readonly='admin/network/vlan/advanced' |
|
|
EasyWRT имеет два встроенных пользователя:
- Admin - административная учетная запись, имеет цифровой идентификатор - 0
- User - пользовательская учетная запись, имеет цифровой идентификатор - 2
Политики применяются к пользователям на основе цифрового идентификатора. Конфигурация /etc/config/luci-acl поддерживает две основные политики:
- readonly - запрет только редактирования
- deny - запрет и чтения и редактирования указанной страницы
Внешнее оформление UI
...
Warning |
---|
Для отображения новых стилей, после установки архива ezcustom, нужно обновить вкладку со сбросом кэша: Ctrl + F5 |
Для большей совместимости с новыми версиями ПО мы не рекомендуем глубокую кастомизацию, по этому рассмотрим пример кастомизации UI на основе изменения стилей интерфейса через style.css
...
Section |
---|
|
Для просмотра и редактирования стилей WEB-UI EasyWRT: - Перейдите на страницу управления роутером
|
...
- в браузере
- Авторизуйтесь на роутере
|
...
- Перейдите в инструменты разработчика на странице (возможность и способ перехода может различаться в зависимости от браузера)
|
...
- Измените стили нужных элементов
|
...
...
- Перейдите в "источники" из инструментов разработчика, скачайте измененные стили
|
...
- .
Column |
---|
Image Added |
Column |
---|
Image Added
|
|
Для загрузки новых стилей, укажите команду в файле custom с названием файла .css:
Code Block |
---|
|
INSTALL_STYLES "style.css" |
...
Для изменения логотипа новый файл логотипа должен быть векторным изображением с расширением .svg.
После выбора логотипа и проверки его расширения, укажите его загрузку командой в файле custom:
Code Block |
---|
|
INSTALL_LOGO "logo.svg" |
Пример кастомизации
Описание
...
Section |
---|
|
Column |
---|
Image Added
|
Column |
---|
Image Added
|
Column |
---|
Image Added
|
|
Пример кастомизации
...
Section |
---|
|
Рассмотрим использование EasyCustom на примере тестового технического требования. Column |
---|
Загрузить созданный архив можно двумя способами: - Через WEB-UI, по пути Управление → Конфигурация → Восстановить резервную копию;
- Через ACS, загрузив файл как обычный конфигурационный файл (по аналогии с резервной копией).
Expand |
---|
title | Пример требований к кастомизации |
---|
|
- Учетная записать администратора:
- Логин: Admin1
- Пароль зашифрован: AdminPass
- Учетная запись пользователя:
- Логин: User1
- Пароль зашифрован: UserPass
- Ограничить доступ к пунктам WEB-UI:
- CWMP: чтение и запись
- Расширенная настройка VLAN: запись
- NTP
- NTP-клиент: включить
- NTP-сервер: включить
- Добавить в списки NTP-серверы:
- Параметры удаленного доступа
- Доступ на WAN по SSH: включить
- Доступ с подсети 10.1.1.0/24
- Доступ с адреса 10.10.10.10
- Порт 23
- Доступ на WAN по HTTP: включить
- Доступ с подсети 10.1.1.0/24
- Доступ с адреса 10.10.10.10
- Порт 81
- Доступ на WAN по HTTPS: включить
- Доступ с подсети 10.1.1.0/24
- Доступ с адреса 10.10.10.10
- Порт 444
- CWMP
- Режим работы CWMP: static
- Периодическое информирование ACS-сервера: включить
- Интервал информирования ACS-сервера: 4000
- Адрес ACS-сервера: http://10.1.1.6:7547/
- CWMP-порт: 7547
- STUN
- STUN-запросы : включить
- Адрес STUN-сервера: 192.168.1.1
- Порт STUN-сервера: 19303
- Порт STUN-клиента: 25565
- Интервал отправки сообщений: 120
- Имя пользователя STUN: Admin
- Пароль: Admin
- IGMP-proxy
- IGMP-proxy: включить
- fastleave: включить
- respawn: включить
- UPnP
- UPnP: включить
- Дополнительное журналирование: включить
- Защищенный режим: включить
- Сервисы деактивации аварий
- Перезапуск WAN : включить
- Проверка доступности шлюза: включить
- Интервал проверки: 35
- Количество попыток: 4
- Обнаружение петель: включить
- Время отключения порта при обнаружении петли: 10 секунд
- Настройки сети
- LAN
- LAN-IP: 192.168.1.111
- DHCP
- Минимальный адрес аренды: 10
- Максимальное количество адресов для аренды: 143
- Максимальное время аренды: 11h
- WAN
- Тип соединения: static
- Адрес: 10.1.1.111
- Шлюз: 10.1.1.1
- Маска: 255.255.255.0
- DNS: 8.8.8.8, 8.8.4.4
- Hostname: SNR-CPE-Router
- MTU: 1500
- Туннелированное подключение: включить
- Тип: PPPoE
- Логин: Admin
- Пароль: Admin
- Использовать маршрут по умолчанию: включить
- Wi-Fi
- Диапазон 2.4 Ghz
- Имя сети: Network-2GHz
- Тип шифрования: WPA2-PSK
- Пароль: Password123
- Автовыбор канала: включить
- Тип: По количеству станций
- Исключить каналы: 12, 13, 14
- Ширина канала: 20 Mhz
- PMF: Обязательно
- Диапазон 5 Ghz
- Имя сети: Network-5Ghz
- Тип шифрования: WPA2-PSK
- Пароль: Password123
- Автовыбор канала: включить
- Тип: По количеству станций
- Исключить каналы: 132, 136, 140, 144, 149, 153, 157, 161, 165
- Ширина канала: 20 Mhz
- PMF: Обязательный
- Стили
- W4N-N
- Стиль интерфейса: Голубой
- Логотип: Ягоды
- MD2
- Стиль интерфейса: Коричневый
- Логотип: Арбуз
- ME2-Lite
- Стиль интерфейса: Розовый
- Логотип: Пончик
- AX1
- Стиль интерфейса: Желтый
- Логотип: Сыр
- AX2
- Стиль интерфейса: Серый
- Логотип: Яблоко
- Обновление архива
- Проверка обновлений каждые 5 минут
|
|
|
|
...
Column |
---|
- Создаем каталог /etc
- В /etc
|
|
...
- создаем каталог /ezcustom
|
|
...
- В /etc/ezcustom создаем текстовый файл
|
|
...
- "custom" без расширения , сохраняем с форматом окончания строк Unix.
- В /etc/ezcustom добавим подготовленные файлы стилей, логотипов и ограничений UI, по необходимости
- По вышеописанным требованиям
|
|
...
Warning |
---|
|
Не добавляйте пробелы и комментарии после команд! Это помешает роутеру выполнить команду.- , отредактируем файл custom, используя ранее перечисленные команды
|
|
...
title | Содержимое скрипта custom |
---|
collapse | true |
---|
| # НАСТРОЙКА УЧЕТНОЙ ЗАПИСИ АДМИНИСТРАТОРА
# логин
ADMIN_USERNAME "Admin1"
# hash пароля
SET_PASSWD_HASH "Admin1" '$1$GyDkBMuw$DMAIDu9YL8DyDTaVkiahS1'
# НАСТРОЙКА УЧЕТНОЙ ЗАПИСИ ПОЛЬЗОВАТЕЛЯ
# логин
USER_USERNAME "User1"
# hash пароля
SET_PASSWD_HASH "User1" '$1$uhqRRzgo$LYXc1oYdHrHoh4BErjSEL/'
# УСТАНОВКА ФАЙЛА ОГРАНИЧЕНИЙ WEB-ИНТЕРФЕЙСА luci-acl
# установка файла luci-acl ограничений в web-ui
INSTALL_FILE "luci-acl" "/etc/config/luci-acl"
#ИЗМЕНЕНИЕ КОНТАКТНЫХ ДАННЫХ В WEB-UI
# телефон службы поддержки клиентов оператора связи
CONFIG_SET system.@system[0].snr_custom_support_phone='8-800-123-45-67'
# сайт/интернет-ресурс оператора связи
CONFIG_SET system.@system[0].snr_custom_support_url='http://support.myisp.com'
# НАСТРОЙКИ NTP
# включение ntp-клиента
CONFIG_SET system.ntp.enabled='1'
# включение ntp-сервера
CONFIG_SET system.ntp.enable_server='1'
# замена стандартного ntp сервера (0.ru.pool.ntp.org)
CONFIG_SET system.ntp.server='new1.ntp.net'
# добавление еще двух ntp-серверов в список
CONFIG_ADD_LIST system.ntp.server='new2.ntp.net'
CONFIG_ADD_LIST system.ntp.server='new3.ntp.net'
# НАСТРОЙКА ПРАВИЛ ДЛЯ ДОСТУПА НА WAN ПО SSH
# название правила
CONFIG_SET firewall.ssh.name='Allow-SSH'
# включение доступа по SSH на wan
CONFIG_SET firewall.ssh.enabled='1'
# зона доступности
CONFIG_SET firewall.ssh.src='wan'
# указываем новый порт 23 в конфиге dropbear и firewall
CONFIG_SET dropbear.@dropbear[0].Port='23'
CONFIG_SET firewall.ssh.dest_port='23'
# протокол подключения
CONFIG_SET firewall.ssh.proto='tcp'
# тип правила
CONFIG_SET firewall.ssh.target='ACCEPT'
# разрешаем доступ с подсетей
CONFIG_ADD_LIST firewall.ssh.src_ip='10.10.10.10'
CONFIG_ADD_LIST firewall.ssh.src_ip='10.1.1.0/24'
# НАСТРОЙКА ПРАВИЛА ДЛЯ ДОСТУПА НА WAN ПО HTTP
# название правила
CONFIG_SET firewall.http.name='Allow-HTTP'
# включение доступа по HTTP на wan
CONFIG_SET firewall.http.enabled='1'
# зона доступности
CONFIG_SET firewall.http.src='wan'
# удаляем секцию стандартного конфига порта 80 в uhttpd для http
CONFIG_DELETE uhttpd.main.listen_http
# указываем новый порт 88 в конфиге uhttpd и firewall
CONFIG_ADD_LIST uhttpd.main.listen_http='0.0.0.0:88'
CONFIG_ADD_LIST uhttpd.main.listen_http='[::]:88'
CONFIG_SET firewall.http.dest_port='88'
# протокол подключения
CONFIG_SET firewall.http.proto='tcp'
# тип правила
CONFIG_SET firewall.http.target='ACCEPT'
# разрешаем доступ с подсетей
CONFIG_ADD_LIST firewall.http.src_ip='10.10.10.10'
CONFIG_ADD_LIST firewall.http.src_ip='10.1.1.0/24'
# НАСТРОЙКА ПРАВИЛА ДЛЯ ДОСТУПА НА WAN ПО HTTPS
# название правила
CONFIG_SET firewall.https.name='Allow-HTTPS'
# включение доступа по HTTPS на wan
CONFIG_SET firewall.https.enabled='1'
# зона доступности
CONFIG_SET firewall.https.src='wan'
# удаляем секцию стандартного конфига порта 443 в uhttpd для https
CONFIG_DELETE uhttpd.main.listen_https
# указываем новый порт 444 в конфиге uhttpd и firewall
CONFIG_ADD_LIST uhttpd.main.listen_https='0.0.0.0:444'
CONFIG_ADD_LIST uhttpd.main.listen_https='[::]:444'
CONFIG_SET firewall.https.dest_port='444'
# протокол подключения
CONFIG_SET firewall.https.proto='tcp'
# тип правила
CONFIG_SET firewall.https.target='ACCEPT'
# разрешаем доступ с подсетей
CONFIG_ADD_LIST firewall.https.src_ip='10.10.10.10'
CONFIG_ADD_LIST firewall.https.src_ip='10.1.1.0/24'
# НАСТРОЙКА CWMP-ДЕМОН
# включение CWMP-демона в режиме static
CONFIG_SET easycwmp.@local[0].enable='3'
# включение периодического информирования ACS-сервера
CONFIG_SET easycwmp.@acs[0].periodic_enable='1'
# адрес ACS-сервера
CONFIG_SET easycwmp.@acs[0].url='http://10.1.1.6:7547'
# CWMP-порт
CONFIG_SET easycwmp.@local[0].port='7547'
# интервал информирования ACS-сервера
CONFIG_SET easycwmp.@acs[0].periodic_interval='4000'
# НАСТРОЙКА STUN
# порт клиента stun
CONFIG_SET tr069_stun.stun.client_port='25565'
# включение stun-запросы
CONFIG_SET tr069_stun.stun.enable='1'
# интервал отправки stun-сообщений
CONFIG_SET tr069_stun.stun.min_keepalive='120'
# пароль stun
CONFIG_SET tr069_stun.stun.password='Admin'
# адрес stun-сервера
CONFIG_SET tr069_stun.stun.server_address='192.168.1.1'
# порт stun-сервера
CONFIG_SET tr069_stun.stun.server_port='19303'
# имя пользователя stun
CONFIG_SET tr069_stun.stun.username='Admin'
# НАСТРОЙКА IGMP-PROXY
# включение igmp-proxy
CONFIG_SET igmpproxy.@igmpproxy[0].enable='1'
# включение fastleave
CONFIG_SET igmpproxy.@igmpproxy[0].quickleave='1'
# включение respawn
CONFIG_SET igmpproxy.@igmpproxy[0].respawn='1'
# НАСТРОЙКА UPnP
# включение upnp
CONFIG_SET upnpd.config.enabled='1'
CONFIG_SET upnpd.config.enable_upnp='1'
# включить дополнительное журналирование upnp
CONFIG_SET upnpd.config.log_output='1'
# разрешить перенаправление только для запрашивающих IP-адресов
CONFIG_SET upnpd.config.secure_mode='1'
# СЕРВИСЫ ДЕАКТИВАЦИИ АВАРИЙ
# восстановить работу WAN при поднятии интерфейса
CONFIG_SET cpe-tools.services.wan_arping_watchdog='1'
# проверка доступности шлюза через ARP-запросы и перезапрос реквизитов по dhcp
CONFIG_SET cpe-tools.services.wan_arping_interval='35'
# количество ARP-запросов
CONFIG_SET cpe-tools.services.wan_arping_attempts='4'
# включение режима обнаружения петель
CONFIG_SET cpe-tools.services.lpdet_interval='1'
# время в секундах до отключения порта при обнаружении петель
CONFIG_SET cpe-tools.services.lpdet_shutdown='10'
# НАСТРОЙКА LAN-ip
# изменение LAN-ip
CONFIG_SET network.lan.ipaddr='192.168.1.111'
# НАСТРОЙКА DHCP LAN
# минимальный адрес аренды
CONFIG_SET dhcp.lan.start='10'
# максимальное количество адресов для аренды
CONFIG_SET dhcp.lan.limit='143'
# максимальное время аренды (минимум 2m)
CONFIG_SET dhcp.lan.leasetime='11h'
# НАСТРОЙКИ WAN
# dns-серверы для wan
CONFIG_SET network.wan.dns='8.8.8.8 8.8.4.4'
# адрес шлюза
CONFIG_SET network.wan.gateway='10.1.1.1'
# адрес WAN
CONFIG_SET network.wan.ipaddr='10.1.1.111'
# маска
CONFIG_SET network.wan.netmask='255.255.255.0'
# тип соединения для WAN
CONFIG_SET network.wan.proto='static'
# hostname роутера
CONFIG_SET network.wan.hostname='SNR-CPE-ROUTER'
# НАСТРОЙКИ VPN PPPOE НА WAN
# маршрут по умолчанию
CONFIG_SET network.vpn.defaultroute='1'
# включение vpn на wan
CONFIG_SET network.vpn.disabled='0'
CONFIG_SET network.vpn.ifname='eth1'
# пароль пользователя в туннеле
CONFIG_SET network.vpn.password='Admin'
# тип vpn-соединения
CONFIG_SET network.vpn.proto='pppoe'
# логин пользователя в туннеле
CONFIG_SET network.vpn.username='Admin'
# ДОПОЛНИТЕЛЬНЫЕ НАСТРОЙКИ WAN
# mac-адрес WAN-порта
CONFIG_SET network.wan.macaddr='F8:F0:82:1E:8C:A3'
# изменение mtu на wan
CONFIG_SET network.wan.mtu='1500'
# НАСТРОЙКИ WI-FI 2.4Ghz
# изменение SSID 2.4Ghz
WIFI_SET_2GHZ "SSID1" "Network-2GHz"
# изменение пароля 2.4Ghz
WIFI_SET_2GHZ "WPAPSK1" "Password123"
# вкл. автовыбора 2.4Ghz (тип: 1-по количеству станций, 2-по уровню шума, 3-по загрузке QBSS)
# интервал указывается в часах
WIFI_SET_2GHZ "Channel1" "0"
WIFI_SET_2GHZ "AutoChannelSelect" "1"
WIFI_SET_2GHZ "ACSCheckTime" "24"
# исключение каналов из автовыбора (указывать каналы через ";")
WIFI_SET_2GHZ "AutoChannelSkipList" "12;13;14"
# ручной выбор канала (если выключен автовыбор)
WIFI_SET_2GHZ "Channel1" "10"
# тип шифрования 2.4Ghz
WIFI_SET_2GHZ "AuthMode" "WPA2PSK"
# PMF 2.4 GHz тип "обязательно"
# ( Если "PMFMFPC = 1" + "PMFMFPR = 0", то будет тип "опционально".)
# ( Если "PMFMFPC = 0" + "PMFMFPR = 0", то будет тип "выключить".)
WIFI_SET_2GHZ "PMFMFPC" "1"
WIFI_SET_2GHZ "PMFMFPR" "1"
# PMF 2.4 GHz тип "обязательно" (coming soon with next update)
WIFI_SET_PMF_2GHZ "mandatory"
# ШИРИНА КАНАЛА 2.4 GHz = 20 Mhz
# ( Если "HT_BW = 1" + "VHT_BW = 0" + "HT_BSSCoexistence = 0", то будет ширина 40 Mhz )
WIFI_SET_2GHZ "HT_BW" "0"
WIFI_SET_2GHZ "VHT_BW" "0"
WIFI_SET_2GHZ "HT_BSSCoexistence" "0"
# ширина канала 20 МГц (coming soon with next update)
WIFI_SET_BW_2GHZ "20"
# НАСТРОЙКИ WI-FI 5Ghz
# изменение SSID 5Ghz
WIFI_SET_5GHZ "SSID1" "Network-5Ghz"
# изменение пароля 5GHz
WIFI_SET_5GHZ "WPAPSK1" "Password123"
# вкл/выкл автовыбора 5Ghz (тип: 1-по количеству станций, 2-по уровню шума, 3-по загрузке QBSS)
WIFI_SET_5GHZ "AutoChannelSelect" "1"
# исключение каналов из автовыбора (указывать каналы через ";")
WIFI_SET_5GHZ "AutoChannelSkipList" "132;136;140;144;149;153;157;161;165"
# ручной выбор канала (если выключен автовыбор)
WIFI_SET_5GHZ "Channel1" "36"
# PMF 5 GHz тип "обязательно"
# ( Если "PMFMFPC = 1" + "PMFMFPR = 0", то будет тип "опционально".)
# ( Если "PMFMFPC = 0" + "PMFMFPR = 0", то будет тип "выключить".)
WIFI_SET_5GHZ "PMFMFPC" "1"
WIFI_SET_5GHZ "PMFMFPR" "1"
# PMF 5 GHz тип "обязательно" (coming soon with next update)
WIFI_SET_PMF_5GHZ "mandatory"
# ШИРИНА КАНАЛА 5 GHz = 20 Mhz
# ( Если "HT_BW = 1" + "VHT_BW = 0" + "HT_BSSCoexistence = 0", то будет ширина 40 Mhz.)
# ( Если "HT_BW = 1" + "VHT_BW = 0" + "HT_BSSCoexistence = 1", то будет ширина 20/40 Mhz. )
# ( Если "HT_BW = 1" + "VHT_BW = 1" + "HT_BSSCoexistence = 1", то будет ширина 80 Mhz. )
WIFI_SET_5GHZ "HT_BW" "0"
WIFI_SET_5GHZ "VHT_BW" "0"
WIFI_SET_5GHZ "HT_BSSCoexistence" "1"
# ширина канала 20 МГц (coming soon with next update)
WIFI_SET_BW_5GHZ "20"
# УСЛОВИЕ УЧЕТА МОДЕЛИ SNR-CPE
if MODEL_IS "SNR-CPE-ME2-Lite"
then
INSTALL_LOGO "donut.svg"
INSTALL_STYLES "pink.css"
fi
if MODEL_IS "SNR-CPE-MD2"
then
INSTALL_LOGO "arbuz.svg"
INSTALL_STYLES "brown.css"
fi
if MODEL_IS "SNR-CPE-W4N-N"
then
INSTALL_LOGO "yagoda.svg"
INSTALL_STYLES "blue.css"
fi
if MODEL_IS "SNR-CPE-AX1"
then
INSTALL_LOGO "cheese.svg"
INSTALL_STYLES "yellow.css"
fi
if MODEL_IS "SNR-CPE-AX2"
then
INSTALL_LOGO "apple.svg"
INSTALL_STYLES "dark.css"
fi
# УСТАНОВКА ФАЙЛА ПРОВЕРКИ ОБНОВЛЕНИЙ АРХИВА КАСТОМИЗАЦИИ
# check for configuration |
|
|
...
Warning |
---|
|
Не добавляйте пробелы и комментарии после команд! Это помешает роутеру выполнить команду. |
Сборка всех файлов в единый каталог
Соберем все необходимые и подготовленные файлы.
Добавьте файлы логотипов, стилей, скрипт обновления и файл ограничений luci-acl в каталог /etc/ezcustom.
Полученный каталог и его содержимое на скриншоте:
Image Removed
Создаем tar.gz архив
Для архивации можно использовать программу 7zip, свободное программное обеспечение. В корень архива помещаем каталог /etc.
Загрузка архива и результат применения стилей
Warning |
---|
При загрузке архива на роутер, он будет автоматически определен как EasyCustom-архив, никаких дополнительных действий не требуется. |
Загрузить полученный архив можно двумя способами:
- через WEB-UI по пути Управление → Конфигурация → Восстановить резервную копию;
- через ACS, загрузив файл как обычный конфигурационный файл (по аналогии с резервной копией).
...
Image Removed
Image Removed
Image Removed
...
update every 5 min
# установка скрипта my_update.sh в каталог /etc
# проверка раз в 5 минут
INSTALL_FILE "my_update.sh" "/etc/my_update.sh"
SET_CRONTAB <<EOF
*/5 * * * * sh "/etc/my_update.sh"
EOF |
Warning |
---|
| Не добавляйте пробелы и комментарии после команд! Это помешает их выполнению |
|
|