[AsteriskBrasil] RES: Cgi sem permissao para comando asterisk -rx

Alcapone Felippe alcaponefelippe em bol.com.br
Domingo Agosto 22 14:01:18 BRT 2010


Oseias,
Certíssimo!

Obrigado pela bela resposta!
Estava encrencado aqui para descobrir e você me ajudou bem!

Abracos

-----Mensagem original-----
De: asteriskbrasil-bounces em listas.asteriskbrasil.org
[mailto:asteriskbrasil-bounces em listas.asteriskbrasil.org] Em nome de Oseias
Ferreira
Enviada em: sábado, 21 de agosto de 2010 21:12
Para: asteriskbrasil em listas.asteriskbrasil.org
Assunto: Re: [AsteriskBrasil] Cgi sem permissao para comando asterisk -rx


Em 21/08/2010, às 15:12, leandro alves escreveu:

> Como root use: chown asterisk.asterisk seu_agi
>
> Volte para o seu uuario e tente de novo.
>

Mas perece que ele está usando é cgi mesmo.
Neste caso não adianta nada fazer chown no script.

Ele quer que o apache mostre a saida do comando:
asterisk -rx "comando"

Quanto rodar o apache como root, Alcapone, eu não aconselho.
É melhor você configurar o sudo e permitir somente os aplicativos que  
o apache precisará rodar.
Aí você invoca com o asterisk com o sudo.

O seu /etc/sudoers deverá ficar mais ou menos assim:

seu_usuario_que_roda_o_apache     ALL=NOPASSWD:/usr/sbin/asterisk

Para descobrir que usuario roda o seu apache:
ps axu|grep apache

Nos Debians like, geralmente é www-data.
Como root digite:
#visudo

e adicione a linha:

www-data	ALL=NOPASSWD:/usr/sbin/asterisk

Agora no seu script você terá que fazer assim:

#!/bin/bash
echo "Content-type: text/html"
echo ""
sudo /usr/sbin/asterisk -rx "sip show peers"

Salva ele e faça ficar executável e com permissão de leitura para  
todos os usuários.

chmod +rx seu_script.cgi

Sem as duas primeiras linhas, o cgi não funciona. O browser não  
reconhece o que está vindo.
É claro que, para tornar legível, você precisará formatar a saída do  
asterisk. Desta forma imprime tudo embolado no browser.
Você pode usar o awk.

Se der errado, veja nos logs do apache.
Geralmente está em /var/log/apache2/error.log

Lembre-se que o apache tem permissão para executar o shell do asterisk.
Isto já é uma brecha enorme. Controle as permissões do que pode ser  
configurado no comando do asterisk.
Mas é melhor que rodar o apache como root.
O apache como root compromete todo sistema, pois dá permissão a um  
possível invasor rodar qualquer cgi como root.
Dentro do cgi, ele pode colocar qualquer coisa. Inclusive algo para  
mudar a senha do root.
Aí já era...

Abraço.

--
Oséias Ferreira.










_______________________________________________
KHOMP: qualidade em placas de E1, GSM, FXS e FXO para Asterisk. 
- Hardware com alta disponibilidade de recursos e qualidade KHOMP
- Suporte técnico local qualificado e gratuito 
Conheça a linha completa de produtos KHOMP em www.khomp.com.br
_______________________________________________
Temos tudo para seu projeto VoIP com Asterisk!
Descontos especiais para assinantes da AsteriskBrasil.org.
Registre-se e receba um cupom exclusivo de desconto!
Acesse agora www.voipmania.com.br
______________________________________________
Lista de discussões AsteriskBrasil.org
AsteriskBrasil em listas.asteriskbrasil.org
http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil



Mais detalhes sobre a lista de discussão AsteriskBrasil