(Временная тема) Статическая сборка dropbear 2018.76

kaztost
Сообщения: 223
Зарегистрирован: 17 июл 2017, 00:29

Сообщение kaztost » 07 май 2018, 16:14

adm_, у вас шелл /bin/sh в /etc/passwd? Если да, то я все равно пока не уверен 100%, что musl выдает /bin/sh при отсутствующем /etc/shells, надо musl исходники смотреть. Если нет, то strace показывает, что пока проблема в /etc/shells. Dropbear этот файл не видит, и без него не пустит никого и ни за что. Проще говоря, будьте добры, дайте выхлоп "cat /etc/shells" и "cat /etc/passwd" (без самого пароля). Мы же не знаем, вдруг банально ваш /etc/shells - мертвый симлинк.

Upd. В musl по дефолту /bin/sh и /bin/csh

Аватара пользователя
Zyxmon
Администратор
Сообщения: 1912
Зарегистрирован: 09 авг 2015, 15:33

Сообщение Zyxmon » 07 май 2018, 16:45

kaztost писал(а):Источник цитаты пока не уверен 100%, что musl выдает /bin/sh при отсутствующем /etc/shells, надо musl исходники смотреть.

Код: Выделить всё

....musl-1.1.19/src/legacy$ cat getusershell.c 
#define _GNU_SOURCE
#include <stdio.h>
#include <unistd.h>

static const char defshells[] = "/bin/sh\n/bin/csh\n";

static char *line;
static size_t linesize;
static FILE *f;

void endusershell(void)
{
	if (f) fclose(f);
	f = 0;
}

void setusershell(void)
{
	if (!f) f = fopen("/etc/shells", "rbe");
	if (!f) f = fmemopen((void *)defshells, sizeof defshells - 1, "rb");
}

char *getusershell(void)
{
	ssize_t l;
	if (!f) setusershell();
	if (!f) return 0;
	l = getline(&line, &linesize, f);
	if (l <= 0) return 0;
	if (line[l-1]=='\n') line[l-1]=0;
	return line;
}

adm_
Сообщения: 13
Зарегистрирован: 02 мар 2018, 07:23

Сообщение adm_ » 07 май 2018, 19:13

kaztost,

/data/local/entware/root # cat /etc/passwd|grep root
root:*****************************:0:0::/data/local/cron:/system/bin/sh

/data/local/entware/root # cat /etc/shells
/opt/bin/sh
/opt/bin/ash
/bin/false

/data/local/entware/root # cat /opt/etc/shells
/opt/bin/sh
/opt/bin/ash
/bin/false
/data/local/entware/root # тут не хватает последней пустой строки?

а вот приветствие старого дропбеэ:

BusyBox v1.27.2 () built-in shell (ash)

/data/local/entware/root #
Последний раз редактировалось adm_ 07 май 2018, 19:21, всего редактировалось 1 раз.

Аватара пользователя
Zyxmon
Администратор
Сообщения: 1912
Зарегистрирован: 09 авг 2015, 15:33

Сообщение Zyxmon » 07 май 2018, 19:16

adm_ писал(а):Источник цитаты тут не хватает последней пустой строки?

1. Точно не хватает /system/bin/sh в файле /etc/shells
2. dropbear (см strace) не должен говорить, что этого файла нет.

adm_
Сообщения: 13
Зарегистрирован: 02 мар 2018, 07:23

Сообщение adm_ » 07 май 2018, 19:43

Zyxmon, kaztost,
вот лог неудачного логина после добавления строки /system/bin/sh
strace2.log.zip

/data/local/entware/root # rm /opt/root/strace.log
/data/local/entware/root # /system/xbin/strace -f -v -o /opt/root/strace.log /opt/bin/dropbear -p 443 -W 1024
[5020] May 07 15:33:03 Failed loading /etc/dropbear/dropbear_dss_host_key
[5020] May 07 15:33:03 Failed loading /etc/dropbear/dropbear_ecdsa_host_key
[5022] May 07 15:33:04 Running in background
[5109] May 07 15:33:19 Child connection from 192.168.1.2:48536
[5109] May 07 15:33:28 Bad password attempt for 'root' from 192.168.1.2:48536
[5109] May 07 15:36:53 Bad password attempt for 'root' from 192.168.1.2:48536
[5109] May 07 15:37:02 Bad password attempt for 'root' from 192.168.1.2:48536

# ls -lFa /etc/shells
-rw-r--r-- 1 root root 51 May 7 15:24 /etc/shells

...и Вы про коннект по ключу как-то ничего не говорите...
У вас нет необходимых прав для просмотра вложений в этом сообщении.

Аватара пользователя
Zyxmon
Администратор
Сообщения: 1912
Зарегистрирован: 09 авг 2015, 15:33

Сообщение Zyxmon » 07 май 2018, 19:50

adm_ писал(а):Источник цитаты ...и Вы про коннект по ключу как-то ничего не говорите...

По ключу, если использовать Entware, все работает. А что у Вас, что за исходники - это уже сами.....

Я не понимаю, почему нет желания использовать Entware или готовый Linux.
PS Выкладывайте логи на pastebin, а не в прикрепленный архив. Читающему в 1000 раз удобнее.....

adm_
Сообщения: 13
Зарегистрирован: 02 мар 2018, 07:23

Сообщение adm_ » 07 май 2018, 19:56

Zyxmon,
По ключу, если использовать Entware, все работает. А что у Вас, что за исходники - это уже сами.....

стоп, в энтваревский дропбеэ я захожу по ключу на ура, что видно по логам.
не работает собранный kaztost'ом дропбеэ 2018.76, в исходниках которого, даю честное слово, мною не написано ни строчки... ;-)
...так что кивание на исходники либо мною не понято, либо мимо цели...

kaztost
Сообщения: 223
Зарегистрирован: 17 июл 2017, 00:29

Сообщение kaztost » 07 май 2018, 20:25

adm_ писал(а):Источник цитаты в исходниках которого, даю честное слово, мною не написано ни строчки

Ну мною тоже ни строчки, я только собрал. Причем это часть касается самого musl, которая вошла в бинарник в виде части скомпилированного разработчиками Alpine Linux-а файла libc.a. И у меня все прекрасно работает на нескольких устройствах. Гипотез почему такое у вас происходит у меня нет, если все правда: /etc/shells то ли есть, то ли нет. Нет, такое можно организовать конечно как в kernel-space, так и в userspace, но вряд ли производитель на это сподобился. Ну попробуйте удалить симлинк /etc (андроид переживет сию потерю), и создать симлинк /etc->/opt/etc, если в энтвари все работает.

А ключи пока не причем вообще. Вот увидит dropbear файл shells - только тогда можно говорить о ключах и паролях.

adm_
Сообщения: 13
Зарегистрирован: 02 мар 2018, 07:23

Сообщение adm_ » 07 май 2018, 21:01

kaztost,

unlink /etc; ln -s /opt/etc /etc - пароль принят, но во входе отказано.
https://pastebin.com/R44wrFLb + https://pastebin.com/Q9YQ1iWV

выскажите предположения, плиз, почему может не работать вход по ключу, по которому успешно коннектится старый дропбеэ (а также по ещё 2м созданным в новом дропбеэ ключам).

kaztost
Сообщения: 223
Зарегистрирован: 17 июл 2017, 00:29

Сообщение kaztost » 07 май 2018, 21:33

Зачем вы тот же самый лог еще раз выложили https://pastebin.com/Q9YQ1iWV ?
Выкладывайте новый, где /etc/shells нашелся или опять не нашелся. Если не нашелся, то еще раз - ключи к результату операции отношения не имеют.

А первый пастебин что? лог клиента? Зачем? Мы пока считаем, что клиент верно посылает ключи и все остальное.


Вернуться в «Entware на Android»

Кто сейчас на конференции

Всего 3 посетителя :: 0 зарегистрированных, 0 скрытых и 3 гостя (основано на активности пользователей за последние 5 минут)
Больше всего посетителей (162) здесь было 16 ноя 2019, 18:33

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя