Utilizando PHP e Apache para desligar um Ubuntu
Um dos problemas que encontro com os servidores que tenho que cuidar é esse: desligá-lo sem intervenção direta na máquina. A ideia de fazer um "desligador" com o PHP surgiu e fui pesquisar para realizar essa proeza.
Idealizando o script
Para fazer um script em PHP para desligar um servidor com o Ubuntu instalado não é difícil, porém algumas medidas de segurança eu procurei utilizar para dar um pouco de segurança e não deixar o script muito rebuscado.
Fazer o servidor desligar somente ao se acessar o script pelo browser seria uma fonte de pequenos desastres, pois o browser tem o seu histórico e a partir dele poderíamos ter usuários fazendo requisições desse script ao servidor por engano muitas vezes. Então o melhor seria deixar que somente usuários autorizados pudessem fazer isso.
Usuário e senha é o mínimo de segurança que se poderia fazer, mas vincular o script a um SGBD só para dar as permissões deixaria o script muito mais complicado do que o que eu queria no início. O que fazer então?
Bom, a solução que encontrei foi criar um único usuário e uma senha respectiva e usar um hash para encriptar ambos.
Isso ainda não me deixava satisfeito, faltava algo ainda. Achei interessante também controlar o host de onde parte a requisição, que, é claro, só poderia partir da própria máquina, por qualquer um dos IPs que ela tivesse, fosse localhost, fosse o IP da LAN.
Para completar as pequenas medidas de segurança, verificar se o método de envio for POST se torna necessário, pois assim sei que o formulário for enviado da forma certa.
Fazer o servidor desligar somente ao se acessar o script pelo browser seria uma fonte de pequenos desastres, pois o browser tem o seu histórico e a partir dele poderíamos ter usuários fazendo requisições desse script ao servidor por engano muitas vezes. Então o melhor seria deixar que somente usuários autorizados pudessem fazer isso.
Usuário e senha é o mínimo de segurança que se poderia fazer, mas vincular o script a um SGBD só para dar as permissões deixaria o script muito mais complicado do que o que eu queria no início. O que fazer então?
Bom, a solução que encontrei foi criar um único usuário e uma senha respectiva e usar um hash para encriptar ambos.
Isso ainda não me deixava satisfeito, faltava algo ainda. Achei interessante também controlar o host de onde parte a requisição, que, é claro, só poderia partir da própria máquina, por qualquer um dos IPs que ela tivesse, fosse localhost, fosse o IP da LAN.
Para completar as pequenas medidas de segurança, verificar se o método de envio for POST se torna necessário, pois assim sei que o formulário for enviado da forma certa.
Meu error.log não exibe mensagem nenhuma, nem de sucesso, nem de falha...
Qual a parte do frontend do código que menciona o script para desligamento?
Ou estou fazendo algo errado, é tudo no mesmo arquivo?
Vlw, abs...