[AsteriskBrasil] Cgi sem permissao para comando asterisk -rx
Oseias Ferreira
ferreira.oseias em gmail.com
Sábado Agosto 21 21:12:20 BRT 2010
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.
Mais detalhes sobre a lista de discussão AsteriskBrasil