Управление IPTables из web-интерфейса (Не загружаются правила)

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модератор: SLEDopit

Ответить
Аватара пользователя
Corsair
Сообщения: 842
Статус: Местный "тролль"
ОС: Fedora

Управление IPTables из web-интерфейса

Сообщение Corsair »

Допустим есть скрипт:

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

<?php
    $output = shell_exec('sudo /sbin/iptables -A INPUT -p all -j LOG --log-prefix "INPUT packets"');
    echo $output;
?>

Он по лоике вещей должен загружать указанное правило, но он этого не делает и при том возвращает истину.

В sudoers прописал

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

corsair ALL = NOPASSWD: /sbin/iptables
apache ALL = NOPASSWD: /sbin/iptables


От моего пользователя из консоли все прекрасно работает. То же самое правило, но из скрипта и от пользователя, под которым работает апач - нет.
Хотя допустим если я захочу выполнить ls, все прекрасно отработает.

SELinux отключен, IPTables включен.
Уж не знаю что еще придумать...
Ситуация усугубляется тем, что это важная часть моего диплома, сроки сдачи которого уже очень сильно поджимают.
Так что буду ОЧЕНЬ признателен за какие-либо идеи на этот счет.
Жестокий стоячий админ (с) коллега
Спасибо сказали:
Аватара пользователя
brandy
Сообщения: 41
ОС: Gentoo

Re: Управление IPTables из web-интерфейса

Сообщение brandy »

А апач собран с suexec-ом? И модуль suexec-а подгружен в конфиге?
Спасибо сказали:
Аватара пользователя
Corsair
Сообщения: 842
Статус: Местный "тролль"
ОС: Fedora

Re: Управление IPTables из web-интерфейса

Сообщение Corsair »

Апач из пакета. mod_suexec присутствует. Но пользователя и группу я в конфиг не прописывал.
А без него никак? Я специально пользователя apache в sudoers внес. Но и через sudo не работает. Так и должно быть или я туплю?
Про suexec едва слышал, если можно поподробнее.
Жестокий стоячий админ (с) коллега
Спасибо сказали:
Аватара пользователя
brandy
Сообщения: 41
ОС: Gentoo

Re: Управление IPTables из web-интерфейса

Сообщение brandy »

Дело в том, что собрать с модулем недостаточно, может быть у вас в конфиге

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

<IfDefine SUEXEC>
LoadModule suexec_module modules/mod_suexec.so
</IfDefine>

но переменная SUEXEC не "продефайнена", и, следовательно, апач при запуске увидит, что SUEXEC нет такого, и не подгрузит этот модуль.
вот строчка из конфига инит-скрипта для апача в дженту:

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

APACHE2_OPTS="-D DEFAULT_VHOST -D INFO -D LANGUAGE -D SUEXEC -D PHP5 -D LDAP -D LDAP_AUTH"

таким образом дефайнятся значения, по которым апач при загрузке определяет, какие модули грузить. посмотрите в инит-скрипт вашего дистрибутива, может вам просто надо добавить в строку запуска -D SUEXEC.
Кроме того прочитайте про настрйоку этого модуля в конфиге апача - Apache Module mod_suexec
Спасибо сказали:
Аватара пользователя
Corsair
Сообщения: 842
Статус: Местный "тролль"
ОС: Fedora

Re: Управление IPTables из web-интерфейса

Сообщение Corsair »

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

[root@corsair logs]# cat /etc/httpd/logs/localhost-error_log | grep suEXEC
[Fri Apr 18 18:58:21 2008] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)

Вроде suexec работает, но IPTables от этого покорнее не стал=)
Вот конфиг хоста:

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

<VirtualHost *:80>
    DocumentRoot /var/www/html
    ServerName localhost
    SuexecUserGroup corsair corsair
    ErrorLog logs/localhost-error_log
    CustomLog logs/localhost-access_log common
</VirtualHost>

Уже и на /sbin/iptables дал доступ apache, все равно не выполняется скрипт и все. Весь день убил на это блин =(
Как хоть запускать IPTables надо из скрипта? Никаких спец команд у suexec нет, типа sudo?
Жестокий стоячий админ (с) коллега
Спасибо сказали:
Аватара пользователя
Corsair
Сообщения: 842
Статус: Местный "тролль"
ОС: Fedora

Re: Управление IPTables из web-интерфейса

Сообщение Corsair »

В манах по suexec пишут что от рута suexec работать не будет. Не пойму тогда как мне запустить IPtables.
sudo из веба тоже работать не хочет, говорит, что без терминила не буду работать. А где я его возму...
Но самое главное, скрипт вида:

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

<?php
echo exec("./whoami");
?>

говорит что я apache, а не corsair! Хотя suexec говорит что все хорошо, мол я работаю...
Жестокий стоячий админ (с) коллега
Спасибо сказали:
Аватара пользователя
brandy
Сообщения: 41
ОС: Gentoo

Re: Управление IPTables из web-интерфейса

Сообщение brandy »

Может вам взлянуть в сторону webmin для этой конкретно цели? Гадость конечно редкостная, но...
Спасибо сказали:
Аватара пользователя
brandy
Сообщения: 41
ОС: Gentoo

Re: Управление IPTables из web-интерфейса

Сообщение brandy »

О, еще вариант :)
без всяких су судо и прочих су - веб-морда делает тестовый файлик - .sh - скрипт со списком команд, которые надо запустить, а рут из под крона раз в минуту проверяет - если файл появился - /bin/sh /var/www/__path_to_script/script.sh
Спасибо сказали:
Аватара пользователя
Corsair
Сообщения: 842
Статус: Местный "тролль"
ОС: Fedora

Re: Управление IPTables из web-интерфейса

Сообщение Corsair »

Вся проблема в том, что эта самая веб-морда и есть мой диплом. Сделано все очень удобно и красиво и я его уже успел полюбить=) А вебмин это пальба из сами знаете чего по сами знаете чему.
А с помощью как раз второго варианта он сейчас и работает. Вплоть до временных сроков угадали. Но этот метод не совсем изящен, уж такой я человек, что душа все время тянется к прекрасному=)

Ладно, я думаю защищу и в таком виде. Не хочу время на разработку зря терять. А после защиты все-таки разберусь с этим suexec'ом и сделаю все красиво.
Спасибо за советы.
Жестокий стоячий админ (с) коллега
Спасибо сказали:
Аватара пользователя
Corsair
Сообщения: 842
Статус: Местный "тролль"
ОС: Fedora

Re: Управление IPTables из web-интерфейса

Сообщение Corsair »

Решил воскресить тему. Диплом у меня уже есть, но описанная проблема снова не дает мне покоя. Вот я и решил снова спросить, в надежде, что встретится знающий человек.
Проблема все та же: надо выполнить из веб-морды любое приложение с павами рута.
- suexec не будет выполняться под рутом
- sudo не может работать без терминала

Гугл заддосил, но он мне не помог.
Жестокий стоячий админ (с) коллега
Спасибо сказали:
Аватара пользователя
DaemonTux
Сообщения: 1480
Статус: Юный падаван
ОС: Gentoo

Re: Управление IPTables из web-интерфейса

Сообщение DaemonTux »

Corsair писал(а):
23.10.2008 22:46
Решил воскресить тему. Диплом у меня уже есть, но описанная проблема снова не дает мне покоя. Вот я и решил снова спросить, в надежде, что встретится знающий человек.
Проблема все та же: надо выполнить из веб-морды любое приложение с павами рута.
- suexec не будет выполняться под рутом
- sudo не может работать без терминала

Гугл заддосил, но он мне не помог.


Может раскавырять какойнить дистрибутив с вебмордой к iptables и посмотреть как там реализованно.
Vladivostok Linux User Group
Спасибо сказали:
Аватара пользователя
Corsair
Сообщения: 842
Статус: Местный "тролль"
ОС: Fedora

Re: Управление IPTables из web-интерфейса

Сообщение Corsair »

Да дело даже уже не в iptables, а в принципиальной возможности выполнить что-то рутовое из веб-морды, мне, например, еще бы и выполнение route совсем не помешало бы.
А по поводу дистров с веб-мордой к iptables, пример привести можете?
Правда, я думаю, что похожие утилиты (веб-морда к CUPS или тот же Webmin) работают на собственном узко заточенном веб-сервере, который несколько более либерален, нежели Апач.
Кстати как обстоят дела с этой либеральностью у других популярных веб-серверов, например, nginx или lighttpd, в принице для такой маленькой задачки, Апача, наверно, даже много.
Жестокий стоячий админ (с) коллега
Спасибо сказали:
Аватара пользователя
DaemonTux
Сообщения: 1480
Статус: Юный падаван
ОС: Gentoo

Re: Управление IPTables из web-интерфейса

Сообщение DaemonTux »

Насколько я помню у clarkconnect веб морда на индейце крутится.
Vladivostok Linux User Group
Спасибо сказали:
DMUTPUUM
Сообщения: 1
ОС: CentOS

Re: Управление IPTables из web-интерфейса

Сообщение DMUTPUUM »

Corsair
Добрый день, получилось у вас?
Спасибо сказали:
Ответить