OpenWrt - короткие заметки





UCI

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

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

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

Считываем значения:

uci get system.@system[0].hostname
uci get system.@system[0].timezone


Устанавливаем свои:

uci set system.@system[0].hostname=Istarik
uci set system.@system[0].timezone=UTC-3:30


Применяем изменения:

uci commit system


И проверяем:

uci get system.@system[0].hostname
uci get system.@system[0].timezone





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


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

echo 'UTC-3:30' > /tmp/TZ





Firewall

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

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

# Put your custom commands here that should be executed once
# the system init finished. By default this file does nothing.

iptables -A input_rule -i wlan0 -p tcp --dport 80 -j ACCEPT

iptables -A input_rule -i wlan0 -p tcp --dport 22 -j ACCEPT

exit 0


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



Либо добавить соответствующие правила в пользовательский файл /etc/firewall.user, который подключён в основном конфиг-файле (/etc/config/firewall).

...
config rule
        option src              wan
        option dest_port        80
        option target           ACCEPT
        option proto            tcp

config rule
        option src              wan
        option dest_port        22
        option target           ACCEPT
        option proto            tcp



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

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




OpenSSH

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

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

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

uci set dropbear.@dropbear[0].Port=2222
uci commit dropbear
/etc/init.d/dropbear restart


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

ssh -p 2222 root@192.168.1.1


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

opkg update
opkg install openssh-server


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

/etc/init.d/sshd enable
/etc/init.d/sshd start


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

ssh root@192.168.1.1


Отключаем dropbear

/etc/init.d/dropbear disable
/etc/init.d/dropbear stop


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

opkg update
opkg install openssh-sftp-server


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




Cron

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

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

echo "#!/bin/sh" > /bin/rebwrt.sh
echo "reboot" >> /bin/rebwrt.sh


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

cat /bin/rebwrt.sh


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

chmod +x /bin/rebwrt.sh


Останавливаем cron:

/etc/init.d/cron stop

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

Добавляем задание:

echo "*/5 * * * * /bin/rebwrt.sh" >> /etc/crontabs/root


И стартуем cron:

/etc/init.d/cron enable
/etc/init.d/cron start




Посмотреть расписание:

crontab -l


Удалить файл:

crontab -r


Редактировать файл:

crontab -e

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

Таблица crontab:

* * * * * выполняемая команда
- - - - -
| | | | |
| | | | ----- День недели (0 - 6) (Воскресенье =0 или =7)
| | | ------- Месяц (1 - 12)
| | --------- День (1 - 31)
| ----------- Час (0 - 23)
------------- Минута (0 - 59)


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




Редактор vi

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




На этом пока всё, в дальнейшем буду дополнять статью.



  • 0
  • 301
Telegram-канал istarik

Известит Вас о новых публикациях...


Комментарии (0)

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