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)

2

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

Итак, попробовал.
1) Информация PHP - вещь специфическая, нужна далеко не всем. Вынести в отдельный пакет(архив - называйте, как угодно, не суть важно).
2) Службы - у меня не работают кнопки Перезапустить, Вкл.,  Изменить - пишет

Firefox не может установить соединение с сервером 192.168.1.1:88.

В IE аналогично. Очевидно, это из-за того, что где-то жестко вбит IP адрес 192.168.1.1 (у меня он другой). В sidebar.asp я это поправил, но, считаю, что правильней брать адрес из переменной LAN_IP_ADDR (или ещё как?)
С прошивками прикольная вещь - понравилось(но, может, всё же на отдельный экран вынести?)
3) Команды SSH - Во первых, "лишние" переводы строк(думаю, это будет легко поправить):

keenetic# ls /
************************
bin

dev

etc

lib

media

mnt

opt

proc

sbin

storage

sys

tmp

usr

var

web

Во вторых - даю ls /tmp  в ответ получаю:

keenetic# ls /tmp
************************
/tmp

Ерунда какая-то...
Итого: Идея хорошая, выглядит очень даже неплохо, но сыро пока...

Ах да, ещё: Команды SSH - хорошая такая "дыра" в безопасности:
Закрываю браузер с кинетиком, даю

http://192.168.2.2:88/ssh.php

И(без авторизации!) попадаю на страницу, где можно давать команды от рута wink
Уж миллион раз писали... sad

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

3

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

Dr.Acid :

1) Информация PHP - вещь специфическая, нужна далеко не всем. Вынести в отдельный пакет(архив - называйте, как угодно, не суть важно).

Сделал всё отдельными пакетами

Dr.Acid :

Службы - у меня не работают кнопки Перезапустить, Вкл.,  Изменить - пишет

Это я исправил, теперь от IP адреса роутера не зависит

Dr.Acid :

С прошивками прикольная вещь - понравилось(но, может, всё же на отдельный экран вынести?)

Вынес

Dr.Acid :

3) Команды SSH - Во первых, "лишние" переводы строк(думаю, это будет легко поправить):

Переводы не лишние. Когда выводится много текста, типа opkg list, то без этих переводов трудно разобраться что к чему, так как идёт сплошным текстом. С ls /tmp буду разбираться.

В остальном провёл оптимизацию, отвязал от keevi - он больше не нужен, добавил ещё функционала, сейчас буду разбираться со сборкой пакетов для opkg и потом представлю бета версию одним пакетом.

4

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

Поправил адреса в services.php - вроде работает(шустренько так, не то что keevi). Вот только, как я понял, то что перечисленно здесь:

$allserv = array(
                "..",
                ".",
                "S01swap",
                "S10dropbear",
                "S10keevi",
                "K29php",
                "S12vnstatd"
                    );

отображаться не должно - думаю, сюда надо внести всё, что обеспечивает работу самого веб расширения, и должно быть не важно, с S или K.
Плюсы(по сравнению с keevi): скорость (мне показалось, намного быстрее)
Функционал(хотя, здесь могу ошибаться).
Минусы: "Тяжелый" (зависит от многих пакетов, такое на SIRAM, пожалуй, не поставиш. keevi легковесней, опять же даже по объему)

5

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

sirota202, а можно не привязываться к lighttpd?

Ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fhtagn...
Keenetic Giga & WD Mybook Live user

6

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

ZimniY :

sirota202, а можно не привязываться к lighttpd?

А чем это плохо? (Хотя вопрос действительно интересный, поддерживаю. Я так понимаю, что можно юзать любой веб-сервер, поддерживающий php)
sirota202, вам осталось только повторить функционал keevi.opkg и keevi.vnstat(vnstat не обязательно - он на 4ж всё равно не работает lol ), чтоб завершить начатое.

Отредактировано Dr.Acid (2013-01-28 19:08:12)

7

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

ZimniY, я умею только на php, поэтому в моём случае без lighttpd не обойтись

8

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

Dr.Acid :

А чем это плохо?

Ну, например, лично мне оказалось проще осилить nginx, чем lighttpd, и переучиваться уже поздновато... cool

Dr.Acid :

осталось только повторить функционал keevi.opkg и keevi.vnstat(vnstat не обязательно - он на 4ж всё равно не работает lol )

Хы, мне, например, keevi.opkg без надобности, но это - оффтоп smile

Ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fhtagn...
Keenetic Giga & WD Mybook Live user

9

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

sirota202 :

я умею только на php, поэтому в моём случае без lighttpd не обойтись

Никто от Вас не требует не использовать php, но зависимость от web-сервера можно сделать "вилочную": nginx | lighttpd. Это если Вы решите "опакетить" своё творение "по правилам"

Отредактировано ZimniY (2013-01-28 19:45:44)

Ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fhtagn...
Keenetic Giga & WD Mybook Live user

10

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

ZimniY :

Никто от Вас не требует не использовать php, но зависимость от web-сервера можно сделать "вилочную": nginx | lighttpd. Это если Вы решите "опакетить" своё творение "по правилам"

Всё будет, а пока lighttpd - сначала отшлифую всё на нём, потом сделаю и для nginx.

Отредактировано sirota202 (2013-01-30 13:27:08)

11

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

Кто поможет понять как из этого собрать пакет .ipk?

Отредактировано sirota202 (2013-01-30 13:27:48)

12

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

sirota202, поставил вчера. Сегодня обновил. Даже не знаю как объяснить... Попробую описать ситуацию. Кинетик стоит дома. К домашней сети подключаюсь по ssh с пробросом портов (домашний 192.168.1.1:80 пробрасывается на 127.0.0.1:8882 на работе). В рабочей сети обращаюсь к 127.0.0.1:8882 попадаю на web кинетика в домашней сети. Весь web интерфейс кинетика таким образом работает нормально (ссылки преобразуются в проброшенные).  PHP дополнение так не делает. Пробросил 192.168.1.1:88 - не помогло. Т.е. при работе со стандартной частью IP в ссылках преобразуется, в PHP части - нет. Путано объяснил... Может на скринах понятнее будет - в левом нижнем углу обвел красным. Первый скрин (бОльший по высоте) - ссылка при обращении к стандартной части, Второй - при обращении к php части.
http://i1.imageban.ru/out/2013/01/29/e30c6ed909c74151215a330fc913fd33.jpg  http://i6.imageban.ru/out/2013/01/29/100e8f97142760b3fd3d255860654c89.jpg
На настройки проброса портов не грешу - в домашней сети стоит еще комп с php прикладухой - там адреса преобразуются.

13

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

laforsh, в этом дополнении к веб-интерфейсу ссылки в меню формируются так - http://<%=LAN_IP_ADDR;%>:88/services.php - то есть вместо <%=LAN_IP_ADDR;%> подставляется IP адрес кинетика. Стандартная часть ссылок прописана так - /system/diag.asp, например (то есть без указания http://...). Если я буду делать так же, не будет подставляться порт на котором работает дополнение. Вариант с http://<%=LAN_IP_ADDR;%>:88 казался мне универсальным для всех. В вашем случае откройте файл /media/DISK_A1/system/web/sidebar.asp и замените там все <%=LAN_IP_ADDR;%> на 127.0.0.1

14

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

laforsh, хотя если все <%=LAN_IP_ADDR;%> на 127.0.0.1, в домашней сети работать не будет
Нужно тогда какое-то решение, добавляющее автоматом порт :88 при варианте указания ссылок (/services.php, /ssh.php и т.д.) без IP адреса роутера. Надо будет подумать

15

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

Попробовал обновлённый пакет. Вот: http://dracid2011.narod2.ru/tmp/pic2.jpg
Что нужно сделать, чтобы полностью удалить это дело. - Я так понимаю, это от наложения старого на новое.

16

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

Dr.Acid, возможно

файл /media/DISK_A1/system/web/sidebar.asp

http://<%=LAN_IP_ADDR;%>:88
Или
http://192.168.1.1:88 заменить на свой IP адрес :88
Посмотрю почему так выходит, не должно такого было быть

17

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

sirota202, отдельно(вручную) ваши страницы открываются и работают нормально. Не могу сообразить, почему "съехала боковая панель". Ну да ладно, сейчас возьму sidebar.asp из флешки и переделаю заново.

UPD
Разобрался. Проблема действительно в sidebar.asp , в конструкции <%=LAN_IP_ADDR;%> вместо адреса. Если прописать адреса жестко, всё ок.

Отредактировано Dr.Acid (2013-01-29 14:08:10)

18

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

Dr.Acid, а у вас какая модель кинетика? У меня гига и в ней <%=LAN_IP_ADDR;%> заменяется на IP адрес роутера, при генерации страницы. Если у вас не гига, выходит, что не на всех моделях действует данная конструкция и придётся придумывать по-другому.

19

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

sirota202, туплю, увидел на скрине, что 4G smile

20

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

sirota202 :

sirota202, туплю, увидел на скрине, что 4G smile

Да нет, на самом деле, не совсем. У меня "адская смесь" из 4G и обычного кинетика(ядро от 4G, прошивка - от кинетика, причем располагается на USB флешке). Ваш LAN_IP_ADDR это не тот, что в переменной mib? (т.е. flash LAN_IP_ADDR) Если это оно, то должно работать - это у всех кинетиков одинаково сделано(у всех есть такая переменная). Вот у меня сейчас так:

/media/DISK_A1/system/root # flash LAN_IP_ADDR
LAN_IP_ADDR="192.168.2.2"
/media/DISK_A1/system/root #

Вы же можете вызывать шелл(команды) из скрипта? Может, попробовать завести свою переменную и в неё вытаскивать mib, как это делается в скриптах. Типа так:

eval `flash LAN_IP_ADDR`

Отредактировано Dr.Acid (2013-01-29 14:44:50)

21

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

Dr.Acid :

Ваш LAN_IP_ADDR это не тот, что в переменной mib? (т.е. flash LAN_IP_ADDR) Если это оно, то должно работать - это у всех кинетиков одинаково сделано(у всех есть такая переменная). Вот у меня сейчас так:

Да, это оно.

Dr.Acid :

Вы же можете вызывать шелл(команды) из скрипта? Может, попробовать завести свою переменную и в неё вытаскивать mib, как это делается в скриптах.

Будем пробовать. Новые версии пока выкладывать не буду, наверное, пока текущие ошибки не будут полностью исправлены.
На счёт остального что-нибудь скажите (имею ввиду работу страниц "Службы", "Прошивки..." и пр.)? Есть критичные замечания?

22

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

sirota202 :

На счёт остального что-нибудь скажите (имею ввиду работу страниц "Службы", "Прошивки..." и пр.)? Есть критичные замечания?

Нет, там вроде всё нормально. Единственное - на странице Расширения PHP у меня ничего нет, пусто. Но у меня ведь что-то стоит из php, так? Раньше, вроде там что-то отображалось. Ну и проблема ls /tmp осталась (не понимаю, почему). Вы там как-то /tmp используете что-ли?

Посмотрел ssh.php - вроде нет, всё нормально. Вот только: может, не стоит всё же "обрабатывать" команды, а исполнять, "как есть"(как дали в строке)?
Непонял только конструкцию

$sshcmd = str_replace('service ', '/media/DISK_A1/system/etc/init.d/', $sshcmd);

что-это за замена и откуда она берется, ну да ладно, надо будет с этим путем потестить.

23

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

Попробовал

ls service 

- прикольно, только, наверное, пробел после service всёже стоит убрать. Да и вообще, спорная штука, учитывая, что на странице "Службы" есть всё, что нужно.

24

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

Dr.Acid :

Ну и проблема ls /tmp осталась (не понимаю, почему). Вы там как-то /tmp используете что-ли?

ls /tmp не выводит, возможно, потому, что это ссылка на папку.
ls /tmp/ работает (слеш на конце)

Dr.Acid :

Единственное - на странице Расширения PHP у меня ничего нет, пусто. Но у меня ведь что-то стоит из php, так?

Стоит - самый минимум, без которого php не устанавливается. "Расширения PHP" выводит те расширения, которые доустанавливались уже дополнительно.

Dr.Acid :

Непонял только конструкцию

$sshcmd = str_replace('service ', '/media/DISK_A1/system/etc/init.d/', $sshcmd);

Это, чтобы при включении/выключении/перезагрузки служб не писать длинный путь "/media/DISK_A1/system/etc/init.d/S26xupnpd restart", а писать просто service S26xupnpd restart, например.
Ну и обрабатывать некоторые команды надо. Только тут ещё много чего нужно проверить. Например, если без обработки выполнить команду "top", то у вас зависнет веб-интерфейс. Поэтому она обрабатывается (добавляются параметры) и после этого нормально выходит на экран.

Отредактировано sirota202 (2013-01-29 15:32:45)

25

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

Dr.Acid :

- прикольно, только, наверное, пробел после service всёже стоит убрать. Да и вообще, спорная штука, учитывая, что на странице "Службы" есть всё, что нужно.

Пробел там для того, о чем я постом выше написал) В общем с SSH ещё работать и работать, в плане команд, чтобы всем было хорошо и чтобы грамотно.

Вообще можно сделать так (вкладку настройки), чтобы пользователь сам в админке мог алиасы для команд ssh прописывать какие ему нравятся.
Например, чтобы введя команду ls у него отрабатывало ls -la и прочее.

Отредактировано sirota202 (2013-01-29 15:39:53)