Перейти к содержанию

OpenWRT CLI banner

Материал из OpenWrt Wiki
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)

Есть 2 баннера, которые отображаются в OpenWRT CLI при входе через SSH:

  • отображаться перед аутентификацией - параметр BannerFile в /etc/config/dropbear
  • отображается после успешного входа в систему - /etc/banner

Чтобы изменить баннер в OpenWrt, вам нужно изменить /etc/banner. Этот файл содержит текст, который отображается при входе через SSH. Вы можете редактировать этот файл напрямую с помощью текстового редактора, например nanoили vi. В качестве альтернативы вы можете использовать sed команду для управления файлом баннера или создать собственный скрипт для динамической генерации текста баннера при входе в систему. Действия по изменению баннера:

  1. Доступ к маршрутизатору: Подключитесь к маршрутизатору OpenWrt через SSH или последовательную консоль.
  2. Отредактируйте файл баннера:
    • Откройте /etc/bannerфайл с помощью текстового редактора: nano /etc/bannerили vi /etc/banner.
    • Измените текст на желаемый баннер.
    • Сохраните изменения.
  3. (Необязательно) Используйте sedдля более сложных изменений: вы можете использовать эту sedкоманду для выполнения более сложных изменений в файле баннера, таких как добавление переменных или условного текста.
  4. (Необязательно) Создайте пользовательский скрипт: для динамических баннеров вы можете создать скрипт, который запускается при входе в систему и генерирует текст баннера. Затем вы можете перенаправить вывод скрипта в /etc/bannerфайл.
  5. Протестируйте изменения: выйдите из системы и войдите снова, чтобы увидеть новый баннер.

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

Чтобы добавить временную метку к баннеру, можно использовать следующую команду:

Код

sed -i '$a $(date)' /etc/banner

Эта команда добавляет текущую дату и время в конец файла /etc/banner.

Важные соображения:

  • Резервное копирование оригинального баннера: Прежде чем вносить какие-либо изменения, рекомендуется создать резервную копию исходного /etc/bannerфайла: cp /etc/banner /etc/banner.bak
  • Рассмотрите возможность использования собственного скрипта: Если вам нужен более динамичный контент баннера, использование скрипта — более гибкий подход.

Генерация ASCII Art текста для баннера:

https://patorjk.com/software/taag/#p=testall&f=JS%20Bracket%20Letters&t=OpenWrt

Динамический баннер OpenWRT-CLI-SSH-Onload-Info-Script

Пример баннера, которые генерирует скрипт при входе через SSH.

https://github.com/semazurek/OpenWRT-CLI-SSH-Onload-Info-Script

  • Измените, если необходимо, Logo/ASCII Art в файле /etc/banner
  • Создайте скрипт показа CPU/RAM/HDD(ROM) + WiFi DHCP -> /etc/init.d/banner.sh ( vi /etc/init.d/banner.sh )
#!/bin/sh /etc/rc.common

START=99
STOP=15

start() {

  cpuUsage=$(top -bn1 | grep load | awk '{printf "%.2f%%\t\t\n", $(NF-2)}')
  ramUsage=$(free -m | awk 'NR==2{printf "%.2f%%\t\t", $3*100/$2 }')
  romUsage=$(df -h | awk '$NF=="/"{printf "%s\t\t", $5}')

echo  " CPU: $cpuUsage RAM: $ramUsage HDD: $romUsage"
echo  " -------------------------------------DHCP------------------------------------"
echo -e " IP Address\tName\tMAC Address"
for interface in `iw dev | grep Interface | cut -f 2 -s -d" "`
do

  maclist=`iw dev $interface station dump | grep Station | cut -f 2 -s -d" "`

  for mac in $maclist
  do

    ip="UNKN"
    host=""
    ip=`cat /tmp/dhcp.leases | cut -f 2,3,4 -s -d" " | grep $mac | cut -f 2 -s -d" "`
    host=`cat /tmp/dhcp.leases | cut -f 2,3,4 -s -d" " | grep $mac | cut -f 3 -s -d" "`

    echo -e " $ip\t$host\t$mac"
  done
done

}

stop() {
        echo stop
}
  • Сделайте скрипт исполняемый:
chmod +x /etc/init.d/banner.sh
  • Проверьте работу banner:
service banner.sh start
  • Включите banner службу:
service banner.sh enable
  • Добавьте /etc/init.d/banner.sh в /etc/profile:
vi /etc/profile
Insert key
[ -f /etc/banner ] && cat /etc/banner && /etc/init.d/banner.sh start
Esc :wq