Page tree
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Current »

Доступно с версии EasyWRT 2.4.0

Шаблон скрипта custom доступен по ссылке: скачать

Шаблон скрипта my_update.sh доступен по ссылке: скачать


Что такое EasyCustom?


EasyCustom - сервис ручной кастомизации ПО EasyWRT, состоящий из архива с набором файлов, команд и скриптов.


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

При загрузке EasyCustom, системные файлы будут заменены на аналогичные файлы из архива, а при сбросе роутера к заводским настройкам - настройки будут взяты из загруженного архива, что позволяет оставлять записанные настройки "заводскими".

Для базовой настройки доступен web-конфигуратор по ссылке https://data.nag.wiki/private/WiFi_Routers/Doc/easycustom.html

Структура EasyCustom


EasyCustom представляет собой архив .tar.gz, его cодержимое:

Обязательное:

  1. Каталоги - /etc/ezcustom

  2. Скрипт (текстовый файл без расширения) - custom

Необязательное (вносится при необходимости):

  1. Скрипт обновления архива EasyCustom my_update.sh

  2. Собственные shell-скрипты

  3. Файл ограничений элементов WEB-UI luci.acl

Команды для скрипта "custom"


Файл custom - linux shell скрипт, с помощью которого можно изменить базовую конфигурацию роутера и модифицировать логику выполнения скриптов (своих или штатных).

Для ознакомления с доступными параметрами, введите с cli роутера:

uci show

Для их применения нужно указывать полный путь до нужного параметра uci, например:

  • 'firewall' - конфигурационный файл
  • 'ssh' - секция конфига

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

Файл custom должен быть создан в Unix-формате. В ОС Linux это выполняется по умолчанию.

После установки собранных настроек на роутер, стандартный сброс к заводским настройкам их не удалит. Если вы хотите изменить какие-либо настройки в конфигурации ezcustom, но в custom-скрипте не предусмотрели обновление архива с сервера, вы можете воспользоваться командой в cli:

firstboot -y && reboot

Команды для сборки скрипта custom не будут работать в cli и предназначены только для easycustom. Ниже описаны все доступные команды:

RELEASE_IS

Проверяет версию ПО. Можно использовать с оператором if

Пример использования
if RELEASE_IS "2.3.1"
then
CONFIG_SET network.lan.ipaddr='192.168.10.1'
fi

MODEL_IS

Проверяет имя модели. Можно использовать с оператором if

Пример использования
if MODEL_IS "SNR-CPE-ME2-Lite"
then
CONFIG_SET system.@system[0].hostname='ME2-Lite-Router'
fi

CONFIG_SET

Устанавливает значение в конфигурации uci

Пример использования
CONFIG_SET system.@system[0].hostname='ME2-Lite-Router'

CONFIG_GET

Получает значение из конфигурации uci

Пример использования
LOG_SIZE="$(CONFIG_GET system.@system[0].log_size)"

CONFIG_DELETE

Удаляет значение в конфигурации uci

Пример использования
CONFIG_DELETE system.@system[0].hostname

CONFIG_ADD

Создать анонимную секцию конфигурации uci

Пример использования
MY_RULE="$(CONFIG_ADD firewall rule)"
CONFIG_SET "firewall.${MY_RULE}.name=Allow-DHCP-Renew"
CONFIG_SET "firewall.${MY_RULE}.src=wan"

CONFIG_ADD_LIST

Добавляет значение в список конфигурации uci

Пример использования
CONFIG_ADD_LIST uhttpd.main.listen_http='127.0.0.1:80'

INSTALL_LOGO

Устанавливает логотип в систему

Пример использования
INSTALL_LOGO "logo.svg"

INSTALL_STYLES

Устанавливает файл css стилей в систему

Пример использования
INSTALL_STYLES "styles.css"

WIFI_SET_2GHZ

Задает параметры для конфига "/etc/wireles/mtXXXX..." Wi-Fi 2.4 ГГц

Пример использования
WIFI_SET_2GHZ "SSID1" "SSID-NAME-2GHz"

WIFI_SET_5GHZ

Задает параметры для конфига "/etc/wireles/mtXXXX..." Wi-Fi 5 ГГц в системе

Пример использования
WIFI_SET_ALL "SSID2" "SSID-NAME-5GHz"

WIFI_SET_ALL

Задает параметры для конфигов "/etc/wireles/mtXXXX..." всех диапазонов Wi-Fi в системе

Пример использования
WIFI_SET_ALL "SSID2" "SSID-NAME-ALL-GHz"

WIFI_SET_PMF_2GHZ

Задает параметр PMF только в 2.4 ГГц с возможными значениями: "off", "optional", "mandatory"

Пример использования
WIFI_SET_PMF_2GHZ "optional"

WIFI_SET_PMF_5GHZ

Задает параметр PMF только в 5 ГГц с возможными значениями: "off", "optional", "mandatory"

Пример использования
WIFI_SET_PMF_5GHZ "optional"

WIFI_SET_PMF_ALL

Задает параметр PMF во всех диапазонах с возможными значениями: "off", "optional", "mandatory"

Пример использования
WIFI_SET_PMF_ALL "optional"

WIFI_SET_BW_2GHZ

Задает параметр ширины канала только для 2.4 ГГц с возможными значениями: "20", "20/40", "40"

Пример использования
WIFI_SET_BW_2GHZ "40"

WIFI_SET_BW_5GHZ

Задает параметр ширины канала только для 5 ГГц с возможными значениями: "20", "20/40", "40", "80", "160"

Пример использования
WIFI_SET_BW_5GHZ "80"

WIFI_SET_SSID_UNIQ_2GHZ

Задает уникальный SSID только для 2.4 ГГц. Для уникальности в SSID подставляются 4 последние символа MAC-адреса

Пример использования
WIFI_SET_SSID_UNIQ_2GHZ "SSID-NAME-2GHz"

WIFI_SET_SSID_UNIQ_5GHZ

Задает уникальный SSID только для 5 ГГц. Для уникальности в SSID подставляются 4 последние символа MAC-адреса

Пример использования
WIFI_SET_SSID_UNIQ_5GHZ "SSID-NAME-5GHz"

WIFI_SET_SSID_UNIQ_ALL

Задает уникальный SSID для всех диапазонов Wi-Fi. Для уникальности в SSID подставляются 4 последние символа MAC-адреса

Пример использования
WIFI_SET_SSID_UNIQ_ALL "SSID-NAME-ALL-GHz"

ADMIN_USERNAME

Задает имя учетной записи администратора

Пример использования
ADMIN_USERNAME "SuperAdmin"

USER_USERNAME

Задает имя учетной записи администратора

Пример использования
USER_USERNAME "JustUser"

SET_PASSWD

Задает пароль для учетной записи администратора или пользователя

Пример использования
SET_PASSWD "SuperAdmin" "SuperPassword"
SET_PASSWD "JustUser" "JustPassword"

SET_PASSWD_HASH

Задает пароль для учетной записи администратора или пользователя, скрывая под hash в конфиге. Позволяет включить учетную запись пользователя через custom-скрипт, для этого уберите "!" из начала hash

Чтобы узнать hash необходимого пароля, создайте пароль для пользователя через WEB-UI и посмотрите его hash через cli по пути /etc/shadow .

Копируйте символы от знака "$" до первого знака ":"

Пример использования
SET_PASSWD_HASH "SuperAdmin" '$1$mY4f0J6G$84QHY80iDhWcgymeWjQSR1'
SET_PASSWD_HASH "JustUser" '$1$mY4f0A7P$84QHY80iDhWcgymeWjQCP2'

SET_CRONTAB

Устанавливает файл crontab из stdin

Пример использования
SET_CRONTAB <<EOF
* */2 * * * sh "/lib/my_update.sh"
EOF

INSTALL_FILE

Устанавливает файл из архива easycustom.tar.gz в систему

Пример использования
INSTALL_FILE "passwd" "/etc/passwd"

Кастомные скрипты


Кроме системных команд, EasyCustom позволяет интегрировать пользовательские shell-скрипты и внедрить свою уникальную логику в ПО EasyWRT. 

Для примера рассмотрим реализацию кода для обновления ezcustom-архива с выделенного сервера.

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

Содержимое скрипта my_update
#!/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

В файле custom укажите блок кода для обращения роутера к прописанному серверу:

Пример CRON-скрипта
# check for configuration update every 5 min 
INSTALL_FILE "my_update.sh" "/etc/my_update.sh" 
SET_CRONTAB <<EOF
*/5 * * * * sh "/etc/my_update.sh" 
EOF  
  1. Для корректной работы необходим веб сервер который умеет отвечать на HEAD запросы и корректно передает заголовок Last-Modified
  2. Скрипт установит новый архив, если веб-сервер передаст заголовок Last-Modified с измененным значением. Иными словами - проверяется совпадение дата и времени модификации архива на сервере
  3. Чтобы скрипт проверял обновление периодически, установите скрипт в систему (например в директорию /etc) и включите периодический запуск скрипта через CRON, Блок кода в скрипте с проверкой обновлений раз в 5 минут:

Ограничение UI для учетных записей через luci-acl


Модуль позволяет установить правила ограничения доступа к определенным элементам web-интерфейса для отдельных пользователей.

Доступны 2 варианта внесения ограничений:

Установка файлом

Пример использования
# установка файла luci-acl из архива EasyCustom в каталог /etc/config/luci-acl
INSTALL_FILE "luci-acl" "/etc/config/luci-acl"

Редактирование напрямую:

Пример использования
# запрет на чтение и редактирование страницы 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'

EasyWRT имеет два встроенных пользователя:

  • Admin - административная учетная запись, имеет цифровой идентификатор - 0
  • User - пользовательская учетная запись, имеет цифровой идентификатор - 2

Политики применяются к пользователям на основе цифрового идентификатора.  Конфигурация  /etc/config/luci-acl поддерживает две основные политики:

  • readonly - запрет только редактирования
  • deny - запрет и чтения и редактирования указанной страницы

Внешнее оформление UI


Для отображения новых стилей, после установки архива ezcustom, нужно обновить вкладку со сбросом кэша: Ctrl + F5

Для большей совместимости с новыми версиями ПО мы не рекомендуем глубокую кастомизацию, по этому рассмотрим пример кастомизации UI на основе изменения стилей интерфейса через style.css

Для просмотра и редактирования стилей WEB-UI EasyWRT:

  1. Перейдите на страницу управления роутером в браузере
  2. Авторизуйтесь на роутере
  3. Перейдите в инструменты разработчика на странице (возможность и способ перехода может различаться в зависимости от браузера)
  4. Измените стили нужных элементов
  5. Перейдите в "источники" из инструментов разработчика, скачайте измененные стили.

Для загрузки новых стилей, укажите команду в файле custom с названием файла .css:

 INSTALL_STYLES "style.css"

Для изменения логотипа новый файл логотипа должен быть векторным изображением с расширением .svg

После выбора логотипа и проверки его расширения, укажите его загрузку командой в файле custom:

INSTALL_LOGO "logo.svg"

Пример кастомизации


Рассмотрим использование EasyCustom на примере тестового технического требования.

Загрузить созданный архив можно двумя способами:

  1. Через WEB-UI, по пути Управление → Конфигурация → Восстановить резервную копию;
  2. Через ACS, загрузив файл как обычный конфигурационный файл (по аналогии с резервной копией).
  • Учетная записать администратора:
    • Логин: Admin1
    • Пароль зашифрован: AdminPass
  • Учетная запись пользователя:
    • Логин: User1
    • Пароль зашифрован: UserPass
    • Ограничить доступ к пунктам WEB-UI:
      • CWMP: чтение и запись
      • Расширенная настройка VLAN: запись
  • 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 минут
  1. Создаем каталог /etc
  2. В /etc создаем каталог /ezcustom
  3. В /etc/ezcustom создаем текстовый файл "custom" без расширения , сохраняем с форматом окончания строк Unix.
  4. В /etc/ezcustom добавим подготовленные файлы стилей, логотипов и ограничений UI, по необходимости
  5. По вышеописанным требованиям, отредактируем файл custom, используя ранее перечисленные команды
Содержимое скрипта custom
# НАСТРОЙКА УЧЕТНОЙ ЗАПИСИ АДМИНИСТРАТОРА
# логин
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 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

ВНИМАНИЕ!

Не добавляйте пробелы и комментарии после команд!  Это помешает их выполнению

  • No labels