Olá,

Estou desenvolvendo uma pequena funcionalidade na rede interna da instituição na qual trabalho. Trata-se de uma pequena página em php que depois de fazer a autenticação de user/pass pergunta para o usuario se o mesmo quer LIBERAR ou CORTAR o acesso do Lab. à internet.
Como o apache que está no server roda como user www, para que o script php executa-se o comando /sbin/iptables [regra], adicionei o user www no arq. de conf. do SUDO. (até aki tudo ok).
O estranho problema ocorre quando mando executar o comando descrito acima atraves da pagina php. Jah testei exec(), system, `craze`, e outras funções mas naum funciona...O php naum está filtrando nenhuma dessas funções. O mais impressionante desse erro é que o comando que peço para executar /sbin/iptables funciona apenas em algumas circunstancias :/ por exemplo.

// SIM ! eu naum estou usando as Vars. de retorno, mas naum eh necessario...
// E sim ! eu testei com outros comandos...com e sem SUDO e TODOS os comandos executam pelo menos alguam coisa...SOH O IPTABLES DAH PAU !!! :/
exec("sudo /sbin/iptables -I lab -p all -s 10.130.0.0/24 -j DROP&quot<IMG SRC="images/forum/icons/icon_wink.gif">;

A regra/comando estão certos. Jah testei milhoes de vezes atraves da linha de comando (sim! como root e como www atraves do SUDO) Eu simplesmente naum posso usar IPTABLES -I ou IPTABLES -D (caso eu tente NADA acontece...) Agora IPTABLES -A ou IPTABLES -F, eu posso (ahh..mais uma coisa :/ eu posso tambem em situações únicas, caso eu faça referência a uma chain que é chamada por outra, ie: IPTABLES -N temp; IPTABLES -N temp2; IPTABLES -A temp -s 10.130.0.0/24 -j temp2. Eu tambem naum posso executar IPTABLES -A)

JAH REESCREVI O SCRIPT MUITAS VEZES...JAH MEXI NA CONF DO PHP E DO APACHE (ESTÃO IDENTICAS AS CONFIGURAÇÕES DE OUTRO SERVER QUE RODA OS COMANDOS EXEC, SYSTEM, ETC...)

POR FAVOR ALGUEM ME AJUDE !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

ADDs-ON:

>faz o seguinte, executa seu script na parte q da erro de depois olha o log >de erro do apache pra ver oq eh (/var/log/httpd/error_log)

Eh...tentei, mas nada aparece nos logs do Apache... alguem jah fez ou tentou fazer alguma coisa parecida com essa antes ?
Eu achei um script na internet que um cara fez pra administra uma LanHouse (na espanha :/) que faz EXATAMENTE a mesma coisa que o meu...Mas é exatamente mesmo... Mas aqui naum funfa :/
Oq mais poderia ser ?

>eu jah fiz isso tb, mas foi em perl.... e qdo me apresentava esses erros era >pau na permissao.. como vc configuro o sudo?

Basicamente o que fiz foi isso:

www-data ALL = NOPASSWD: /sbin/iptables

como eu disse, comandos foram adicionados para teste...como por exemplo, ID (que retornou corretamente id(0) gid(0) - root)
Inexplicavelmente as regras IPTABLES -I -D e -A nao funcionam (IPTABLES -A funciona em algumas circunstancias). Agora, estranhamente IPTABLES -F [chain] funciona :/

jah tentei até no desespero colocar o iptables com perm. 777 (eu jah voltei ) e de nada adiantou...Jah testei executando as regras como Root e como o user www-data via linha de comando. Com e sem o sudo, e dah certo. Apenas no Script naum funfa :/