1

Тема: Дополнительные возможности веб-интерфейса (php версия)

Под спойлером ("<продолжить читать>") скрины веб-интерфейса, на них, собственно, всё наглядно видно. После спойлера инструкция по установке.

http://pdf-docs.ru/tmp/zyxel/w1.jpg
http://pdf-docs.ru/tmp/zyxel/w2.jpg
http://pdf-docs.ru/tmp/zyxel/w3.jpg
http://pdf-docs.ru/tmp/zyxel/ssh.jpg
http://pdf-docs.ru/tmp/zyxel/w5.jpg
http://pdf-docs.ru/tmp/zyxel/w6.jpg
http://pdf-docs.ru/tmp/zyxel/w7.jpg
http://pdf-docs.ru/tmp/zyxel/vnstat2.jpg

Итак. Кто желает попробовать, читаем до конца.

Внимание! Данное расширение использует веб-сервер nginx - поэтому, если у вас на роутере уже используется данный веб-сервер, сохраните предварительно его настройки, так как после установки данного дополнения они будут перезаписаны.


Устанавливаем дополнение - поочерёдно выполняем три команы:

cd /media/DISK_A1/system/root
wget http://pdf-docs.ru/tmp/zyxel/install.sh
sh install.sh

После окончания установки роутер автоматически перезагрузится.


В файле /media/DISK_A1/system/web/addons/ssh.php указываем свой порт для ssh:
$port = "22";
Например, если у вас ssh работает на 384 порту, то сделать так $port = "384";
Сохраняем.
Если порт стандартный, то менять ничего не надо.

Предложения и критику принимаю в этой теме.

Отредактировано sirota202 (2013-11-15 07:49:12)

51

Re: Дополнительные возможности веб-интерфейса (php версия)

sirota202 :

в файле /media/DISK_A1/system/etc/lighttpd/lighttpd.conf раскомментируйте  строку

Вот вам легко говорить! smile  - Это было первое, о чем я подумал, да, к сожалению, сделать это весьма проблематично будет - в прошивке Лайта даже vi нету sad  Ладно, ща "затолкаю" в /tmp busybox от кинетика - посмотрю.

52

Re: Дополнительные возможности веб-интерфейса (php версия)

Ясно. Вот:

/var/tmp # cat /media/DISK_A1/system/var/log/lighttpd/error.log
2013-01-31 19:23:58: (log.c.166) server started
2013-01-31 19:23:58: (mod_fastcgi.c.977) bind failed for: unix:/media/DISK_A1/system/tmp/php-fastcgi.socket-0 No such file or directory
2013-01-31 19:23:58: (mod_fastcgi.c.1397) [ERROR]: spawning fcgi failed.
2013-01-31 19:23:58: (server.c.945) Configuration of plugins failed. Going down.
/var/tmp #

Похоже, не хватает толи папки, толи файла - сейчас посмотрю на другом, что там надо ему...
Создал /media/DISK_A1/system/tmp дальше так:

2013-01-31 19:28:34: (log.c.166) server started
2013-01-31 19:28:34: (mod_fastcgi.c.1103) the fastcgi-backend /media/DISK_A1/system/usr/bin/php-fcgi failed to start:
2013-01-31 19:28:34: (mod_fastcgi.c.1107) child exited with status 16 /media/DISK_A1/system/usr/bin/php-fcgi
2013-01-31 19:28:34: (mod_fastcgi.c.1110) If you're trying to run your app as a FastCGI backend, make sure you're using the FastCGI-enabled version.
If this is PHP on Gentoo, add 'fastcgi' to the USE flags.
2013-01-31 19:28:34: (mod_fastcgi.c.1397) [ERROR]: spawning fcgi failed.
2013-01-31 19:28:34: (server.c.945) Configuration of plugins failed. Going down.

теперь на fcgi идёт ругань.

Отредактировано Dr.Acid (2013-01-31 18:30:18)

53

Re: Дополнительные возможности веб-интерфейса (php версия)

Dr.Acid :

2013-01-31 19:28:34: (log.c.166) server started 2013-01-31 19:28:34: (mod_fastcgi.c.1103) the fastcgi-backend /media/DISK_A1/system/usr/bin/php-fcgi failed to start: 2013-01-31 19:28:34: (mod_fastcgi.c.1107) child exited with status 16 /media/DISK_A1/system/usr/bin/php-fcgi 2013-01-31 19:28:34: (mod_fastcgi.c.1110) If you're trying to run your app as a FastCGI backend, make sure you're using the FastCGI-enabled version. If this is PHP on Gentoo, add 'fastcgi' to the USE flags. 2013-01-31 19:28:34: (mod_fastcgi.c.1397) [ERROR]: spawning fcgi failed. 2013-01-31 19:28:34: (server.c.945) Configuration of plugins failed. Going down.

Такая ошибка бывает обычно, когда в режиме php-fastcgi в настройках php не прописано cgi.fix_pathinfo = 1

файл - /media/DISK_A1/system/etc/php.ini

Надо посмотреть не закомментировано ли там cgi.fix_pathinfo и не стоит ли ноль. Должно быть только так "cgi.fix_pathinfo = 1"

54

Re: Дополнительные возможности веб-интерфейса (php версия)

Я тут nginx поизучал - думаю, пока не поздно, переделаю всё под него. Он реально полегче будет чем lighttpd и поудачнее

55

Re: Дополнительные возможности веб-интерфейса (php версия)

sirota202 :

Надо посмотреть не закомментировано ли там cgi.fix_pathinfo и не стоит ли ноль. Должно быть только так "cgi.fix_pathinfo = 1"

Посмотрел - стоит 1 (ваш же файл). Итого с вас пока папка tmp в архив system (должна быть, в ней создается php-fastcgi.socket-0) и разобраться, почему всё-таки не работает lighttpd (хотя, это скорее уже его примочки, вроде fcgi b php)

Ну, nginx наверное тоже стоит попробовать.

56

Re: Дополнительные возможности веб-интерфейса (php версия)

Dr.Acid :

Итого с вас пока папка tmp в архив system

Добавлю.

Dr.Acid :

и разобраться, почему всё-таки не работает lighttpd

Есть предположение, что без его установки не хватает какой-то приблуды, которая запускала бы /media/DISK_A1/system/usr/bin/php-fcgi, чтобы тот постоянно болтался в памяти.

Попробуйте руками его запустить и потом уже lighttpd

57

Re: Дополнительные возможности веб-интерфейса (php версия)

/var/tmp # /media/DISK_A1/system/usr/bin/php-fcgi
/media/DISK_A1/system/usr/bin/php-fcgi: can't load library 'libiconv.so.2'

Даже при том, что libiconv.so.2 закинул ему. Короче, библиотек нужно... дофига, памяти жрет немерянно.

UPD
Точняк, похоже, рама кончилась - поэтому libiconv.so.2 уже не грузится. Видимо, на Лайте погонять не удасться sad

Отредактировано Dr.Acid (2013-01-31 20:12:34)

58

Re: Дополнительные возможности веб-интерфейса (php версия)

Как назло, Лайт у меня - "боевой" роутер. Ну подчистил память - 13Мб свободно а всё равно libiconv.so.2 не грузится, почему не понятно.

59

Re: Дополнительные возможности веб-интерфейса (php версия)

Я как раз из за памяти твёрдо решил забить на lighttpd и использовать nginx - судя по тому что я вижу у себя, он кушает меньше и более гибок в настройках

60

Re: Дополнительные возможности веб-интерфейса (php версия)

sirota202 :

imalv26, в файле /media/DISK_A1/system/web/sidebar.asp

все записи http://<%=LAN_IP_ADDR;%>:88  замените на http://_IP_кинетика_ :88

По ходу на всех 4G так.

Завтра у меня выходной, буду думать как сделать универсально для всех.

переименовал на свой 192.168.1.1 но так и незаработало, надеюсь завтра у вас получитца сделать универсальним для всех Keenetic.
и еще интересует способ удаления и отката  на keevi?

61

Re: Дополнительные возможности веб-интерфейса (php версия)

imalv26 :

переименовал на свой 192.168.1.1 но так и незаработало, надеюсь завтра у вас получитца сделать универсальним для всех Keenetic.

Покажите часть своего /media/DISK_A1/system/web/sidebar.asp там где вы переименовывали.

imalv26 :

и еще интересует способ удаления и отката  на keevi?

opkg remove lighttpd & opkg remove php5-fastcgi
rm -r -f /media/DISK_A1/system/web
Потом установить keevi

62

Re: Дополнительные возможности веб-интерфейса (php версия)

sirota202 :

Star Per, к сожалению, не срабатывает

чего не так? Поместите в конец после ссылок перед </body>. Можно в виде функции повесить на onload, но может что уже висит из других скриптов.

Если из PHP, то $_SERVER['HTTP_HOST']. Адрес, порт и имя хоста мб любым, не обязательно локальным.

63

Re: Дополнительные возможности веб-интерфейса (php версия)

Из .asp, из php бы у меня даже вопросов не возникло.

Star Per :

чего не так? Поместите в конец после ссылок перед </body>. Можно в виде функции повесить на onload, но может что уже висит из других скриптов.

Я сделал сразу так - http://"+document.location.hostname+":88/
У меня работает, но, вот, например, у Dr.Acid нет.

64

Re: Дополнительные возможности веб-интерфейса (php версия)

джаваскриптом везде работает, и в тегах sidebar.asp и в tree.js
в tree.js можно добавить для примера (то же самое)

window.onload = function ()
{ 
    for (var i = 0; i < document.links.length; i++)
    {
        var a = document.links[i];
        if (a.port == '88' && a.hostname != document.location.hostname)
        {
            a.hostname = document.location.hostname;
        }
    }
};

вообще, наверное, можно было бы подмонтировать только /web/js и рулить только джаваскриптом, нежели переть целый движок...

65

Re: Дополнительные возможности веб-интерфейса (php версия)

Star Per, суть в том, что у меня работает, но, почему-то, у Dr.Acid, нет.

Монтировать одну /web/js не выйдет - мне нужно менять /web/sidebar.asp, а монтируя только /web/js/ это будет невозможно.

Я вообще решил, что выкладывать буду только ту часть всего, которая отвечает непосредственно за вэб-интерфейс, а именно это папка "web".
У меня нет возможности тестировать ПО на разных версиях кинетика и, чтобы не иметь постоянных глюков, как сейчас, что у меня работает, на 4G не работает и т.д. лучше если владельцы своих роутеров сами будут ставить себе нужный им http сервер и подключать мои файлы. А я не буду на это отвлекаться.

Суть такая - человек на выбор ставит себе lighttpd+php, либо nginx+php, в настройках ставит 88 порт, а дальше просто берёт мой архив с файлами, решает что ему нужно, а что лишнее, добавляет скрипт монтирования папки web и можно пользоваться. Кстати, я остановился для себя на nginx - разница с lighttpd в 10% используемой памяти от общего объёма памяти в пользу nginx.

На данный момент ещё поработал над службами:
http://pdf-docs.ru/tmp/zyxel/z8.jpg
И добавил файловый менеджер
http://pdf-docs.ru/tmp/zyxel/z9.jpg
Никуда пока не выкладывал.

Отредактировано sirota202 (2013-02-01 16:51:11)

66

Re: Дополнительные возможности веб-интерфейса (php версия)

sirota202 :

Star Per, суть в том, что у меня работает, но, почему-то, у Dr.Acid, нет.

Дико извиняюсь, но вот сейчас попробовал вручную вернул в sidebar.asp
http://"+document.location.hostname+":88  и всё заработало!
Так что этот вопрос, похоже, снимается (или это опять какие-то плавающие глюки)

Файлменеджер - это круто!
Ждем интерфейс к opkg  smile

67

Re: Дополнительные возможности веб-интерфейса (php версия)

При попытке включить пароль вышло следующее(я так понимаю, не должно было быть): http://dracid2011.narod2.ru/tmp/pic3.jpg

sirota202, я правильно понял, что вы уже перешли на nginx?

UPD
Да, пароль он теперь спрашивает, вот только неизвестно, какой  big_smile   Не пускает. sad

Отредактировано Dr.Acid (2013-02-01 17:22:48)

68

Re: Дополнительные возможности веб-интерфейса (php версия)

Dr.Acid :

При попытке включить пароль вышло следующее(я так понимаю, не должно было быть):

Я гляну. На самом деле с последнего выкладывания файлов (пару дней назад) переделал уже настолько, что лучше в старые дебри не лезть. Если не срочно, то лучше день подождать, я завтра выложу всё что есть сейчас и опишу, что как, чтобы по-возможности максимум избежать глюков - у меня как часы, но, не уверен, что у всех будет так же.

Отредактировано sirota202 (2013-02-01 17:30:17)

69

Re: Дополнительные возможности веб-интерфейса (php версия)

Не, не срочно. (К томуже, уже разобрался - пароль пустой, оказывается. Файл /media/DISK_A1/system/web/addons/www/passwd/passwd.txt не создался)
У меня сейчас действительно, наверное, уже устаревшая версия. Буду ждать очередного релиза.

70

Re: Дополнительные возможности веб-интерфейса (php версия)

Dr.Acid :

К томуже, уже разобрался - пароль пустой, оказывается. Файл /media/DISK_A1/system/web/addons/www/passwd/passwd.txt не создался

Не могли бы вы проверить, если выполнить команду на вашей модели:

cat /var/cache/mib.bin | sed -ne 's//|/;print' > /media/DISK_A1/system/root/passwd.txt

Создастся ли файл passwd.txt в папке /media/DISK_A1/system/root?
От этого зависит то решение, которое сейчас сделано - будет ли оно работать универсально или случай только мой.
Если файл создастся не пустой, попрошу ещё одну вещь проверить на вашем железе.

Отредактировано sirota202 (2013-02-01 17:40:17)

71

Re: Дополнительные возможности веб-интерфейса (php версия)

У меня(на 4ж-кинетик) вот:

/media/DISK_A1/system/root # cat /var/cache/mib.bin | sed -ne 's//|/;print' > /media/DISK_A1/system/root/passwd.txt
cat: can't open '/var/cache/mib.bin': No such file or directory
/media/DISK_A1/system/root #

Папки /var/cache не существует.

А на Лайте "по умолчанию" ещё и sed нет.

Если эти штуки завязаны на какую-то криптографию в ядре, то, скорее всего, в 4ж и Лайтах это работать не будет - у них ядро "облегченное"(по отношению к кинетикам).

Отредактировано Dr.Acid (2013-02-01 18:03:16)

72

Re: Дополнительные возможности веб-интерфейса (php версия)

Dr.Acid :

Если эти штуки завязаны на какую-то криптографию в ядре

У мен в гиге этот файл (/var/cache/mib.bin), как я предполагаю, является всем содержимым оперативной памяти. Можно прямо сказать, что я какался и писался, вытаскивая оттуда пароль, вычисляя где он, что он и как очистить от остального мусора. Теперь же я в нокдауне, после ваших слов. Очень огорчает, что мне кроме своего роутера больше нет возможности проверять сразу на других моделях. Если всё так как вы говорите, то для защиты админцентра придётся создавать файл с паролями вручную. Либо кто-нибудь найдёт его на своей модели и отправит мне для анализа и попытки проделать то же, что и на гиге.

73

Re: Дополнительные возможности веб-интерфейса (php версия)

sirota202 :

как я предполагаю, является всем содержимым оперативной памяти.

big_smile  Рассмешили - содержимое оперативной памяти, находящееся... в ней же, вместе с кучей других файлов! smile
Нет, ну максимум(в т.ч. и по названию), это похоже на содержимое Конфига (размер mib.bin часом, не 64К будет?)
Но всё равно у меня его нет.
А ежели взять просто flash ADMIN_PASSWORD  , не проще будет wink ?

Вообще, изучите flash all на предмет полезных значений. Помните, что набор этих значений одинаковый для всех моделей кинетиков, независимо то того, все ли они реально используются.

Отредактировано Dr.Acid (2013-02-01 19:27:09)

74

Re: Дополнительные возможности веб-интерфейса (php версия)

Dr.Acid :

размер mib.bin часом, не 64К будет

На моём роутере - нет.

Dr.Acid :

Рассмешили - содержимое оперативной памяти, находящееся...

Почему бы и нет? smile Ну, я не шарю в этом деле, просто интересно тогда, что это такое - там есть всё в перемешку со знаками, которые не являются обычными символами.

Dr.Acid :

А ежели взять просто flash ADMIN_PASSWORD  , не проще будет

А вы сами пробовали?
Результат будет такой - ********
А так да, было бы намного проще.

75

Re: Дополнительные возможности веб-интерфейса (php версия)

Что касается авторизации и nginx.
Для nginx есть модуль nginx-auth-request-module. С ним можно реализовать авторизацию используя родной web сервер из прошивки и не заморачиваться с "выдергиванием" пароля из mib.bin.  Сам модуль живет здесь: https://github.com/perusio/nginx-auth-request-module