Jump to content

Работа с Entware при обновлениях прошивки Keenetic


Recommended Posts

Весной 2018 года на Keenetic Giga III с прошивкой 2.11.C.1.0-3 по инструкции уважаемого TheBB установил систему пакетов Entware:

Затем установил несколько пакетов, в том числе пакет MC, с помощью которого написал свой первый Bash-скрипт и добавил его в автозагрузку.

Позднее прошивка Keenetic неоднократно обновлялась и стала последняя 2.14.C.0.0-4, а скрипт продолжает успешно работать.

Сейчас возникла необходимость правки Bash-скрипта и я через SSH-подключение попробовал запустить пакет MC, но получил:

Command::Base error[7405600]: no such command: mc.

Позднее выяснил, что ни одна команда, в том числе opkg list-installed не работает.

На Роутере в менеджере Менеджер пакетов OPKG указан Сценарий initrc: /opt/etc/init.d/rc.unslung

Что надо сделать, чтобы можно было получить доступ к ранее установленным пакетам, в частности к MC ?

Edited by iFinder
опечатка
Link to comment
Share on other sites

4 минуты назад, iFinder сказал:

Позднее выяснил, что ни одна команда, в том числе opkg list-installe не работает.

Нет такой команды. Есть `opkg list-installed`. Впрочем начнем с простого - просто `opkg` (без параметров) работает?.

Если лень разбираться - сохраните свой скрипт, переформатируйте носитель, переустановите entware, восстановите скрипт.

Link to comment
Share on other sites

Думается мне ТС попал в shell самого кинетика.

Нужно зайти по фтп или самбе на флешку и поменять порт dropbear на любой кроме 22.

Link to comment
Share on other sites

3 минуты назад, zyxmon сказал:

Нет такой команды. Есть `opkg list-installed`.

Конечно. Исправил.

4 минуты назад, zyxmon сказал:

Впрочем начнем с простого - просто `opkg` (без параметров) работает?

Да работает:

(config)> opkg

             disk - set Open Package disk
           chroot - chroot Open Package executables
           initrc - set Open Package init script
         timezone - set Open Package timezone
     dns-override - override local DNS service

5 минут назад, zyxmon сказал:

Если лень разбираться - сохраните свой скрипт, переформатируйте носитель, переустановите entware, восстановите скрипт. 

Нет не лень. Просто надо разобраться - не переустанавливать же каждый раз при обновлении.

Link to comment
Share on other sites

3 минуты назад, dexter сказал:

Думается мне ТС попал в shell самого кинетика.

А что такое ТС ?

4 минуты назад, dexter сказал:

Нужно зайти по фтп или самбе на флешку и поменять порт dropbear на любой кроме 22

Зашёл по самбе на флэшку, а как поменять порт dropbear на любой кроме 22 не знаю.

  • Confused 1
Link to comment
Share on other sites

ТС - топик стартер.

В скрипте запуска dropbear  в каталоге init.d, где увидите цифры 22 меняйте их например на 2222, перезапускайте OPKG и подключайтесь к порту 2222.

  • Thanks 1
Link to comment
Share on other sites

Ну в файле же /opt/etc/dropbear.conf

Лучше прошивочный запускать на любом другом, на обновления влиять не будет

ip ssh
    port 62200
    security-level private
    lockout-policy 5 15 3
!

 

Link to comment
Share on other sites

8 минут назад, dexter сказал:

В скрипте запуска dropbear  в каталоге init.d, где увидите цифры 22 меняйте их например на 2222

В папке /etc/init.d/ нашёл файл S51dropbear

Зашёл на флэшку подключенную к USB роутера через TotalComander 6.53, но поменять не смог: после правки в редакторе AkelPad размер файла стал 0 байт. При попытке записи в папку резервной копии первоначального файла S51dropbear сообщает, что нет места.

Настроил анонимный доступ через FTP. Почему-то зайти удалось только введя Логин и Пароль разрешённого пользователя. Но заменить номер порта удалось.

20 минут назад, dexter сказал:

перезапускайте OPKG

Не нашёл команды на перезапуск OPKG. Как перезапустить ?

Link to comment
Share on other sites

Из вэб интерфейса в разделе OPKG, галочку снимите или сделайте раздел не выбран. Сохраните. Затем верните все как было не забыв прописать сценарий "/opt/etc/init.d/rc.unslung". Всё должно получиться.

А можно просто флешку извлечь и заново вставить.

Edited by dexter
  • Thanks 1
Link to comment
Share on other sites

7 минут назад, vasek00 сказал:

Ну в файле же /opt/etc/dropbear.conf

А у меня нет такого файла вообще нет на флэшке !

 

11 минуту назад, vasek00 сказал:

ip ssh port 62200 security-level private lockout-policy 5 15 3 !

Это надо вставить в конфиг.файл Keenetic ?

Link to comment
Share on other sites

Только что, iFinder сказал:

А у меня нет такого файла вообще нет на флэшке !

 

Это надо вставить в конфиг.файл Keenetic ? 

Пример из рабочего конфига

!
ip ssh
    port 62200
    security-level private
    lockout-policy 5 15 3
!

! - обязательны

Второе сам скрипт dropbear в котором есть ссылка на его конфиг

#!/bin/sh

PATH=/opt/bin:/opt/sbin:/sbin:/bin:/usr/sbin:/usr/bin

PIDFILE="/opt/var/run/dropbear.pid"
DROPBEAR="/opt/sbin/dropbear"

. /opt/etc/config/dropbear.conf

dropbear_status ()
{
	[ -f $PIDFILE ] && [ -d /proc/`cat $PIDFILE` ]
}
...



# cd /opt/etc/config
/opt/etc/config # ls -l
-rw-------    1 root     root             8 Dec 23 08:36 dropbear.conf
/opt/etc/config # cat dropbear.conf
PORT=22
/opt/etc/config # 

 

Link to comment
Share on other sites

47 минут назад, dexter сказал:

А можно просто флешку извлечь и заново вставить.

Сейчас невозможно мне это сделать

 

47 минут назад, dexter сказал:

Из вэб интерфейса в разделе OPKG, галочку снимите или сделайте раздел не выбран. Сохраните. Затем верните все как было не забыв прописать сценарий "/opt/etc/init.d/rc.unslung". Всё должно получиться. 

Сделал всё как написано, но PUTTY не подключается по исправленному мною порту 222, а подключается по прежнему 22 !

Edited by iFinder
Link to comment
Share on other sites

15 минут назад, dexter сказал:

Смотрите лог при запуске флешки.

Отличная идея.

У меня роутер настроен по инструкции техподдержки: получает IP для клиентов с другого роутера, а сам является DHCP-сервером только для гостевой сети. Именно поэтому и возникают ошибки в журнале:

 
Янв 14 22:42:45
ndm
Opkg::Manager: disk is set to: Entware:/.
Янв 14 22:42:45
ndm
kernel: EXT4-fs (sda): re-mounted. Opts: (null)
Янв 14 22:42:45
ndm
Opkg::Manager: /tmp/mnt/2830c0e8-ee61-540d-4a26-0271e5df6778 mounted to /tmp/mnt/2830c0e8-ee61-540d-4a26-0271e5df6778.
Янв 14 22:42:45
ndm
Opkg::Manager: /tmp/mnt/2830c0e8-ee61-540d-4a26-0271e5df6778 mounted to /opt/.
Янв 14 22:42:45
ndm
Opkg::Manager: /tmp/mnt/2830c0e8-ee61-540d-4a26-0271e5df6778 initialized.
Янв 14 22:42:45
ndm
Opkg::Manager: configured init script: "/opt/etc/init.d/rc.unslung".
Янв 14 22:42:45
ndm
Core::ConfigurationSaver: saving configuration...
Янв 14 22:42:45
mosquitto[9535]
Warning: Mosquitto should not be run as root/administrator.
Янв 14 22:42:45
root
Started cron from .
Янв 14 22:42:49
ndm
Network::Interface::Repository: unable to find Bridge0 as "Network::Interface::IP".
Янв 14 22:42:49
ndm
SstpServer::Manager: no such IP interface: Bridge0.
Янв 14 22:42:49
ndm
Network::Interface::Repository: unable to find Bridge0 as "Network::Interface::IP".
Янв 14 22:42:49
ndm
VpnServer::Manager: no such IP interface: Bridge0.
Янв 14 22:42:49
ndm
Core::ConfigurationSaver: configuration saved.
Янв 14 22:43:03
ndm
Core::Server: started Session /var/run/ndm.core.socket.
Янв 14 22:43:03
ndm
Core::Session: client disconnected.
Янв 14 22:43:03
ndm
Core::Server: started Session /var/run/ndm.core.socket.
Янв 14 22:43:03
ndm
Core::Session: client disconnected.
Янв 14 22:43:03
ndm
Core::Server: started Session /var/run/ndm.core.socket.
Янв 14 22:43:03
ndm
Core::Session: client disconnected.
Янв 14 22:43:04
ndm
Core::Server: started Session /var/run/ndm.core.socket.
Янв 14 22:43:04
ndm
Core::Session: client disconnected.
Но если в этом деле, я могу флэшку вставить в нормально настроенный роутер.
Edited by iFinder
Link to comment
Share on other sites

17 минут назад, vasek00 сказал:

Второе сам скрипт dropbear в котором есть ссылка на его конфиг

Да я правил в файле ftp://192.168.11.21/etc/init.d/S51dropbear, но у него несколько другое содержимое:

#!/bin/sh

PATH=/opt/bin:/opt/sbin:/sbin:/bin:/usr/sbin:/usr/bin

PIDFILE="/opt/var/run/dropbear.pid"
PORT=222
DROPBEAR="/opt/sbin/dropbear"


dropbear_status ()
{
    [ -f $PIDFILE ] && [ -d /proc/`cat $PIDFILE` ]
}

start()
{
    $DROPBEAR -p $PORT -P $PIDFILE
}

stop()
{
    kill `cat $PIDFILE`
}
case "$1" in
    start)
        if dropbear_status
        then
            echo dropbear already running
        else
            start
        fi
        ;;
    stop)
        if dropbear_status
        then
            stop
        else
            echo dropbear is not running
        fi
        ;;
    status)
        if dropbear_status
        then
            echo dropbear already running
        else
            echo dropbear is not running
        fi
        ;;

    restart)
        stop
        sleep 3
        start
        ;;
    *)
        echo "Usage: $0 {start|stop|restart|status}"
        ;;
esac

 

Link to comment
Share on other sites

В результате на данный момент имею:

1. В файле ftp://192.168.11.21/etc/init.d/S51dropbear указано:

PORT=222

    Может при правке в редакторе AkelPad атрибуты файла были изменены и поэтому изменения отвергаются ?

2. В конфиге SSH-сервер вообще не указан, а значит не запущен.

3. В журнале при перезапуске OPKG и перезагрузке системы вообще нет упоминания о SSH-сервере.

4. PUTTY подключается по порту 22 и не подключается по порту 222.

Куда копать дальше ?

  • Confused 1
Link to comment
Share on other sites

37 минут назад, iFinder сказал:

Да я правил в файле ftp://192.168.11.21/etc/init.d/S51dropbear, но у него несколько другое содержимое: 

Маленькая ремарка только вот завтра будете менять на данном роутере данную flash то будете данную операцию делать заново при описанном варианте через конфиг (для прошивочного на другой порт) не чего не надо. 

Edited by vasek00
Link to comment
Share on other sites

3 минуты назад, vasek00 сказал:

Маленькая ремарка только вот завтра будете менять на данном роутере данную flash то будете данную операцию делать заново при описанном варианте через конфиг (для прошивочного на другой порт) не чего не надо. 

Извините, но не уловил мысль. Объясните пожалуйста

Link to comment
Share on other sites

8 часов назад, iFinder сказал:

Извините, но не уловил мысль. Объясните пожалуйста 

Пользователь собирается использовать Entware на flash/HDD.

1. Перед ее установкой правит конфиг про который выше, сохранив его и потом подправив записать на роутер

ip ssh
    port 62200

можно и через cli

2. Ставит Entware и не париться про 22 port

3. Решил сменить Entware из-за смены носителя или еще что-то c flash/HDD => опять возиться с настройками 22 port.

 

 

Link to comment
Share on other sites

867296758_.png.867628b382f1b654d2bbc36fc1309916.png

Слева шелл самого кинетика, справа шелл ентваре. У Вас окно кокой вид имеет если нажать "tab"?

 

Если есть возможность, попробуйте перезагрузить роутер.

Edited by dexter
Link to comment
Share on other sites

Извините, что долго не отвечал. Только с работы вернулся.

12 часа назад, dexter сказал:

Слева шелл самого кинетика, справа шелл ентваре. У Вас окно кокой вид имеет если нажать "tab"?

У меня окно имеет вид слева - значит вход был через шелл самого кинетика !

Получается, что dropbear, предоставляющий SSH-доступ к шелл Entware, у меня вообще не запускается и поэтому изменение порта в файле ftp://192.168.11.21/etc/init.d/S51dropbear на 222 или 2222 ни к чему не приводит. Так ?

А если бы он запускался, то должен ли был он быть в логе ?

Link to comment
Share on other sites

13 часа назад, vasek00 сказал:

1. Перед ее установкой правит конфиг про который выше, сохранив его и потом подправив записать на роутер

Вопросы:

1. А почему именно перед установкой Entware ? А после установки, т.е. сейчас, нельзя ?

2. Правильно ли я понял, что существуют два варианта разведения SSH-доступа к шелл самого кинетика и к шелл Entware на разные порты:

А. Меняем порт SSH-доступа к шелл Entware с помощью указания в файле ftp://192.168.11.21/etc/init.d/S51dropbear (т.е. /opt/etc/init.d/S51dropbear) строки 

PORT=222

Б. Меняем порт SSH-доступа к шелл Keenetic с помощью указания в его конфиг.файле строк:

!                           <=== этот знак от вышерасположенного фрагмента конфиг.файла Keenetic. Так ?
ip ssh
    port 62200
    security-level private
    lockout-policy 5 15 3
!                           <=== этот знак закрывает блок настроек ssh. Так ?

 

Link to comment
Share on other sites

Да, всё верно, где-то надо поменять. После установки тоже можно поменять.

Вот кусок лога после того как отключил и включил OPKG из вэб интерфейса.

Янв 15 21:36:36 ndm
Opkg::Manager: disk is set to: OPKG:/.
Янв 15 21:36:36 ndm
kernel: EXT4-fs (sda1): re-mounted. Opts: (null)
Янв 15 21:36:36 ndm
Opkg::Manager: /tmp/mnt/7145571b-6dba-4950-b617-ed7eb4704045 mounted to /tmp/mnt/7145571b-6dba-4950-b617-ed7eb4704045.
Янв 15 21:36:36 ndm
Opkg::Manager: /tmp/mnt/7145571b-6dba-4950-b617-ed7eb4704045 mounted to /opt/.
Янв 15 21:36:36 ndm
Opkg::Manager: /tmp/mnt/7145571b-6dba-4950-b617-ed7eb4704045 initialized.
Янв 15 21:36:36 ndm
Opkg::Manager: configured init script: "/opt/etc/init.d/rc.unslung".
Янв 15 21:36:36 ndm
Core::ConfigurationSaver: saving configuration...
Янв 15 21:36:36 root
Started snmpd from .
Янв 15 21:36:36 dropbear[872]
Running in background
Янв 15 21:36:40 ndm
Core::ConfigurationSaver: configuration saved.

Вот это надо смотреть 

Янв 15 21:36:36 dropbear[872]
Running in background

 

  • Thanks 1
Link to comment
Share on other sites

И вот это почитайте 

И вот лог если dropbear на 22 порту.

Янв 15 21:50:07 dropbear[2605]
Failed listening on '22': Error listening: Address already in use
Янв 15 21:50:07 dropbear[2605]
Early exit: No listening ports available.
Янв 15 21:50:07 ndm
Opkg::Manager: /opt/etc/init.d/rc.unslung: exit code 1.

 

Edited by dexter
  • Thanks 1
Link to comment
Share on other sites

По моему топик-стартеру следует подучить матчасть. У него mosquito и cron запускаются, а dropbear - нет. Или он не сам все делал, или же ему в прошлый раз кто-то настроил. С такими знаниями ставить Entware противопоказано.

PS Из скрипта запуска dropbear видно, как сейчас задается порт. В последнем обновлении это специально изменили, что бы при последующих порт не перезатирался.

  • Upvote 1
Link to comment
Share on other sites

43 минуты назад, dexter сказал:

Вот это надо смотреть 


Янв 15 21:36:36 dropbear[872]
Running in background

Cпециально перезагрузил роутер. Таких строк в журнале моего Keenetic нет

Link to comment
Share on other sites

1 час назад, zyxmon сказал:

У него mosquito и cron запускаются, а dropbear - нет. Или он не сам все делал, или же ему в прошлый раз кто-то настроил.

И ни то и ни другое. Делал всё сам.

 

1 час назад, zyxmon сказал:

PS Из скрипта запуска dropbear видно, как сейчас задается порт. В последнем обновлении это специально изменили, что бы при последующих порт не перезатирался.

И опять ошибка в логике умозаключений, т.к. в приведенном скрипте запуска dropbear указан 222 порт, который я устанвновил по рекомендации и знающего и могущего помочь участника форума dexter:

В 14.01.2019 в 21:48, dexter сказал:

В скрипте запуска dropbear  в каталоге init.d, где увидите цифры 22 меняйте их например на 2222, перезапускайте OPKG и подключайтесь к порту 2222.

а я поменял на 222.

Link to comment
Share on other sites

14 минуты назад, iFinder сказал:

И опять ошибка в логике умозаключений, т.к. в приведенном скрипте запуска dropbear указан 222 порт

Если порт указан в скрипте запуска dropbear, значит Вы не обновляли 100 лет пакеты. 

  • Y'r wrong 1
Link to comment
Share on other sites

39 минут назад, zyxmon сказал:

Если порт указан в скрипте запуска dropbear, значит Вы не обновляли 100 лет пакеты. 

И не лень писать ни о чём ?

Ведь из первого сообщения темы видно, что делалось и что соответственно пакеты не обновлялись 9 месяцев.

Edited by iFinder
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...