Warning: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in ..../includes/class_bootstrap.php(430) : eval()'d code on line 123
Вопросы по работе PHP на роутере
Page 1 of 11 123 ... LastLast
Results 1 to 15 of 165

Thread: Вопросы по работе PHP на роутере

  1. #1
    Join Date
    Jan 2006
    Location
    Kiev
    Posts
    91

    Question Вопросы по работе PHP на роутере

    Подскажите, плз, как выполнить команду на роутере из PHP сценария.
    Создал страничку и PHP сценарий, которые лежат в opt\share\www\
    После ввода пароля на страничке параметры передаются PHP сценарию и он должен выполнить команду на роутере (запретить доступ в интернет командой iptables ). Но, увы, команда не выполняется. В терминале PUTTY все выполняется. Можно решить задачу?
    P.S. My router WL500g.Deluxe + WL500g.Premium

  2. #2
    Join Date
    Jun 2006
    Location
    Moscow, Russia
    Posts
    8
    Quote Originally Posted by Jekl
    (запретить доступ в интернет командой iptables ). Но, увы, команда не выполняется. В терминале PUTTY все выполняется. Можно решить задачу?
    В логах что-нибудь пишет? Под каким пользователем запускается WEB-сервер (возможно для запуска iptables не хватает прав доступа)? Какие переменные окружения у пользователя под которым запускается WEB-сервер (может он просто команду найти не может. Например нет переменной PATH, тогда можно попробовать прописать абсолютный путь к iptables в PHP-скрипте)?

  3. #3
    Join Date
    Jan 2006
    Location
    Kiev
    Posts
    91
    Quote Originally Posted by Dinos
    В логах что-нибудь пишет? Под каким пользователем запускается WEB-сервер (возможно для запуска iptables не хватает прав доступа)? Какие переменные окружения у пользователя под которым запускается WEB-сервер (может он просто команду найти не может. Например нет переменной PATH, тогда можно попробовать прописать абсолютный путь к iptables в PHP-скрипте)?
    Сервер запускается под пользователем nobody.
    И это правильно!
    Значит мы пойдем другим путем (с) Дедушка Ленин
    Попробую записывать из PHP в файл (например control) команду (например ON или OFF) и пускай Cron каждые 5 минут запускает скрипт, который будет проверять его содержимое и выполнять соответствующую команду iptables.

    Quote Originally Posted by Jekl
    Сервер запускается под пользователем nobody.
    И это правильно!
    Значит мы пойдем другим путем (с) Дедушка Ленин
    Попробую записывать из PHP в файл (например control) команду (например ON или OFF) и пускай Cron каждые 5 минут запускает скрипт, который будет проверять его содержимое и выполнять соответствующую команду iptables.
    Но глупо, каждые 5 минут дергать скрипт, чтобы проверить - а не в последние ли 5 минут, а ни в этот ли день, админ через веб решил управлять доступом.
    Так что, собственно вопрос остался!

    Люди! Я понимаю, что лето, жарко, облом. Но, вопрос, наверное, не сложный. Просто не знаю я Linux. А изучать уже староват (своими руками ломал вторую сделаную в союзе ЭВМ на лампах).
    Last edited by Omega; 23-03-2012 at 12:35. Reason: fixed
    P.S. My router WL500g.Deluxe + WL500g.Premium

  4. #4
    Тут реально засада, php или sh скрипт не важно. Чтобы сотворить задуманное, скрипт должен обладать правими root (0:0). А засада в том, что скрипт не может быть suid-м, для этого нужна компиленная прога на c/c++, которая делает все необходимое. Вот на нее можно будет повись suid бит, и выполнить из PHP скрипта... примерно так.

  5. #5
    Можно запускать Web-сервер (и PHP-интертрепатор ) с правами root. Но это стремно
    Sorry for my bad English.
    Покупайте Отечественных Слонов!!!

  6. #6
    Quote Originally Posted by FilimoniC
    Можно запускать Web-сервер (и PHP-интертрепатор ) с правами root. Но это стремно
    Стемно, это еще мягко говоря... Кстати описал бы что требуется, без домыслов и вариантов решения, может найдется приемлемый вариант. На вскидку это то, что тебе нужно, но незная вводных, точно сказать сложно...
    http://www.zeroflux.org/cgi-bin/cvstrac.cgi/knock/wiki
    Вариант, замечательно ставится и работает через ipkg install knock

  7. #7
    Join Date
    Jan 2006
    Location
    Kiev
    Posts
    91
    Quote Originally Posted by andlev
    Стемно, это еще мягко говоря... Кстати описал бы что требуется, без домыслов и вариантов решения, может найдется приемлемый вариант. На вскидку это то, что тебе нужно, но незная вводных, точно сказать сложно...
    http://www.zeroflux.org/cgi-bin/cvstrac.cgi/knock/wiki
    Вариант, замечательно ставится и работает через ipkg install knock
    Большой сенкс! Возможно это и будет само простое решение.
    Дома стоит роутер и два компа: мой и дочки. Я хочу удаленно (с работы) иметь возможность запрещать дочке доступ в инет.
    P.S. My router WL500g.Deluxe + WL500g.Premium

  8. #8
    Не секьюрно это, поставит дочка закладку между роутером и инетом (свой роутер), словит последовательность и/или пароль, тут всем благим намерениям, придет конец

    Шутки шутками, но реально проще сделать два скрипта on.sh & off.sh собственно они будут содержать одну строчку (добавление и удаление правила для iptables). А выполнять через "ssh -l admin home.router.ip on.sh", и соотвественно off... Пароли при этом будут наглухо шифроваться, да и надежность намного выше. IMHO так будет правильно...

  9. #9
    Садисты. Не лишайте детей инета, лучше скорость режьте чтоб это быстро утомляло. Иначе словит дочка инет-зависимость....
    Sorry for my bad English.
    Покупайте Отечественных Слонов!!!

  10. #10
    Quote Originally Posted by FilimoniC
    Садисты. Не лишайте детей инета, лучше скорость режьте чтоб это быстро утомляло. Иначе словит дочка инет-зависимость....
    Скорость для WAN в этой железке не порежишь. L7 фильтры отсутствуют, так что QoS поднять не реально. Встроенная в Premium поделка, ограничивает только LAN (со страшными глюками), в общем с этой стороны "яму" копать смысла нет

  11. #11
    Join Date
    Jan 2006
    Location
    Kiev
    Posts
    91
    Quote Originally Posted by FilimoniC
    Садисты. Не лишайте детей инета, лучше скорость режьте чтоб это быстро утомляло. Иначе словит дочка инет-зависимость....
    Да не садист я
    Но:
    1. Ей вначале уроки делать надо, а потом в инет.
    2. Когда перешли с dial-up на выделенку, она пакетный зарубежный траффик в один момент съела. Так что, тормозами ее не запугаешь - будет сидеть и ждать до посинения, пока не загрузиться сайт.
    Ссори, больше флеймить не буду, каюсь.

    Quote Originally Posted by andlev
    А выполнять через "ssh -l admin home.router.ip on.sh"...
    На работе Винда 98. Какой ssh. В том то и дело, что не хочу через терминал (пользуюсь сейчас PuTTY).
    P.S. My router WL500g.Deluxe + WL500g.Premium

  12. #12
    Quote Originally Posted by Jekl
    На работе Винда 98. Какой ssh. В том то и дело, что не хочу через терминал (пользуюсь сейчас PuTTY).
    А у пути в комплекте есть plink.

  13. #13
    Join Date
    Jan 2006
    Location
    Kiev
    Posts
    91
    Quote Originally Posted by 6opoga
    А у пути в комплекте есть plink.
    Пожалуй knockd предпочтительней. Он может слушать закрытые порты.
    Т.е. порт ssh можно закрыть снаружи, а блокировать инет через knockd.
    P.S. My router WL500g.Deluxe + WL500g.Premium

  14. #14
    Ну вот: knockd, который открывает www-php с правами root. на работе достаточно странички с простеньким жабаскриптом. и фреймом
    Sorry for my bad English.
    Покупайте Отечественных Слонов!!!

  15. #15
    Quote Originally Posted by FilimoniC
    Ну вот: knockd, который открывает www-php с правами root. на работе достаточно странички с простеньким жабаскриптом. и фреймом
    Зачем так сложно? knockd все равно, что запускать, и работает он с рутовыми правими. Т.е. им можно сделать задуманное в один шаг... В принципе вариант хороший, если нет желания палить рутовый пароль под камерами или на компе со спайварью. Однако если нет такой паранои, то knockd это тоже лишнее усложнее, плюс нет обратной связи, не знаешь точно отработало оно или сглючило. Через ssh (plink), можно получить назад строку с подтверждением/ошибкой, и дальше спать спокойно

Page 1 of 11 123 ... LastLast

Similar Threads

  1. How to execute php scripts ?
    By simistef in forum WL-500gP Q&A
    Replies: 13
    Last Post: 11-03-2008, 10:35

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •