Страница 1 из 1
Выполнение shell команды через веб
Добавлено: 2009-10-26 11:39:33
HEDG_SS
Задача : Требуется получать данные из ipfw и в зависимости от этого выводить нужную страницу. Для этого отрабатывает cgi скрипт.
На паре серверов работает такая схема (поднималось раньше), потребовалось поднять на еще одном серваке,а я уже и забыл, как это делал

. Насколько помню просто не хватает прав для доступа к ipfw, поэтому команда не выполняется.
Знаю, что есть варианты :
1. sudo
2. perlsuid + выставление бита suid
Юмор в том, что сделано было каким то другим способом, причем более простым...
Платформа :
FreeBSD 7.0
Apache 2.2
Подскажите, какие еще есть варианты?
Заранее спасибо!
Re: Выполнение shell команды через веб
Добавлено: 2009-10-26 16:17:48
hizel
pipe, cron
Re: Выполнение shell команды через веб
Добавлено: 2009-10-26 16:27:06
HEDG_SS
Насчет pipe не понял.. причем он тут ?
Cron - точно не то.
Скрипт простой: пользователь заходит на страницу, и в зависимости входит ли этот ип в разные таблицы, выводятся разные сообщения...
Re: Выполнение shell команды через веб
Добавлено: 2009-10-26 16:30:09
hizel
если скрипт простой то только через suid
Re: Выполнение shell команды через веб
Добавлено: 2009-10-27 13:03:35
HEDG_SS
Все, всем СПАСИБО!
2hizel Отдельное
спасибо за активную помощь на форуме
!
Обсуждение этой же темы на
Opennet.ru.
Подробный ответ от туда :
Код: Выделить всё
# cp /sbin/ipfw .
# chmod u+s ipfw
=== begin cmd.cgi ===
#!/bin/sh
echo Content-type: text/html
echo
echo '<pre>'
./ipfw list
=== end cmd.cgi ===
http://server/path/cmd.cgi - выдает список правил, проверено
Имейте ввиду, что этой потенциальная дыра. Я собирал для этого спец бинарник ipfw, где работала только команда show.
Re: Выполнение shell команды через веб
Добавлено: 2009-10-27 20:14:38
reLax
Ммм...Помню такого плана команды, как
ipfw list и т.п. выводил в web через MySQL - в кроне просто раз минуту в таблицу заносился результат от такой команды.
Более серьезные можно через sudo с явным указанием команды, типа того:
Код: Выделить всё
root ALL=(ALL) ALL
alex ALL=NOPASSWD: /sbin/pfctl -q -t NETAMS_INET -T add -f /home/alex/KP_ANOTHER_HOST, /sbin/pfctl -q -t NETAMS_INET -T delete -f /home/alex/KP_ANOTHER_HOST
Re: Выполнение shell команды через веб
Добавлено: 2009-10-27 22:37:28
hizel
навесить на ipfw suid - epic fail :]
через sudo надежнее, да