Relatório de sistema via browser (shell script + CGI)

Um bom administrador de redes tem que estar atento aos detalhes provenientes do seu servidor Linux. Uma forma simples e fácil é pelo uso eficaz de relatórios de sistema. Aqui vou mostrar uma forma de fazer um relatório com shell script + CGI, podendo ser visualizado remotamente via internet através de seu servidor web.

[ Hits: 57.365 ]

Por: William França em 06/10/2006


Segurança do CGI e considerações finais



Bom, muito simples não é mesmo? Preste atenção que eu não usei a tag:

echo "Content-type: text/html"

Usei esta aqui:

echo "Content-type: text/plain"

Fiz isso porque não queria enfeitar o relatório com inúmeras tags HTML, mas nada impede que você faça isso, é só programar de forma ordenada e dinâmica.

Agora atenção redobrada na segurança do seu relatório, não se esqueça que ele poderá ser visualizado por qualquer navegador remotamente, então impeça que outras pessoas por ventura descubram este relatório e talvez descubram informações privilegiadas do seu servidor e as usem para fazer delitos e crimes digitais.

Para efetivarmos a segurança nos nossos scripts CGI, vá até o seu httpd.conf e descomente a linha:

AccessFileName .htaccess

Também descomente essas:

<Files ~ "^.ht">
   Order allow,deny
   Deny from all
</Files>

Deixe esta linha igual a esta:

<Directory /diretorio/que/tera/htaccess/>
   AllowOverride AuthConfig
</Directory>

Preste atenção que o default destas linhas acima é "None", então deixe como indicado acima.

Crie no diretório que você quer proteger um arquivo com o nome .htaccess:

# touch .htaccess

Dentro dele adicione as seguintes linhas:

AuthName "Acesso Restrito"
  AuthType Basic
  AuthUserFile /usr/lib/cgi-bin/ .htpasswd
  require valid-user

Crie agora os usuários que terão permissão:

# htpasswd -m -c ./.htpasswd usuário1

Depois que se cria o primeiro usuário, não há mais necessidade de usar o "-c", continue adicionando seus usuários assim:

# htpasswd -m ./.htpasswd usuário2

Bom, já ensinei o suficiente, o que não ensinei aqui você acha no Google, foi lá onde aprendi a fazer isso, pois não tenho professor, bem que eu queria ter, mais é isso ai, adaptem para as suas reais necessidades, faça bom uso destes recursos e Viva o Linux, porque sem ele estaríamos sendo fritados em uma frigideira torrando igual torresmos a mercê do monopolismo.

Ah, e uma pequena propaganda a partir do final de Setembro/2006 meu novo site estará funfando, provavelmente terá o DNS: www.williamcrazy.com

Ficarei imensamente grato pela visita de vocês.

Cordialmente,
William França

Página anterior    

Páginas do artigo
   1. Configuração
   2. Entendendo o CGI e preparando o terreno
   3. Lógica do relatório e dependências
   4. relatorio.cgi
   5. Segurança do CGI e considerações finais
Outros artigos deste autor

Simples sistema de backup com acesso remoto

Leitura recomendada

Script GitPratico para criar repositórios remotos sem logar no GitHub

Script com muitas utilidades para arquivos e pastas

GNU Parallel: criando atividades em paralelo com shell script

Monitorando servidores pelo celular

Simples sistema de backup com acesso remoto

  
Comentários
[1] Comentário enviado por pacman em 06/10/2006 - 18:22h

Fazer CGI-BIN em Bash é muito divertido :)

Sugestão: para evitar 4750834750345 echo "...." pode ser feito algo assim

cat <<EOF
Content-type: text/html

<html> <head> <title> Exemplo de CGI </title> </head>
...
EOF

Abraço

[2] Comentário enviado por coffani em 06/10/2006 - 18:48h

Excelente artigo Wilian, vou usar nos meus servers, tenhos uns mais saum separados pra cada serviço esse ai apesar de simples é bem funcional.. Parabéns.

[3] Comentário enviado por balani em 08/10/2006 - 01:19h

Cara muito bom seu artigo, parabens, sera muito util para mim, vlw

[4] Comentário enviado por williamcrazy em 17/10/2006 - 21:58h

Obrigado, fico feliz em saber que ajudei de alguma forma alguem, pois é muito importante temos o efetivo controle de nossos servidores para manter a casa em ordem, pois o linux é uam excelente plataforma e bem segura, mais o linux só será isso tudo se por de trás tiver um hacker preparado e disposto a aprender cada vez mais, do contrário o linux pode ser uma brecha para dor de cabeça sua e da empresa que você trabalha, e nada melhor do que usar estes tipos de soluções para estar a par do que circula na sua rede.

[5] Comentário enviado por cleitão em 05/12/2006 - 15:23h

Cara bem legal mesmo da pra fazer o cgi funcionar de forma simples e rápida....

Valeu!!!!!!!!!

[6] Comentário enviado por dtux em 28/02/2007 - 23:53h

BOA CARA!!!!!!!!!!!!!!!!

[7] Comentário enviado por coffani em 09/06/2008 - 23:18h

kra... muito bacana seu artigo... muito bem feito, parabens.. vai pro meu favoritos..

[8] Comentário enviado por removido em 12/06/2008 - 03:09h

Parabéns...

[9] Comentário enviado por wagner_guitar em 26/11/2008 - 18:20h

eu instalei o apache , mas nao tem esse arquivo httpd.conf,
sabe o que acontece?????
e ai,o que faco???

desde ja agradeco!!!!!!!

[10] Comentário enviado por williamcrazy em 27/11/2008 - 12:56h

Prezado Wagner Guitar,
o arquivo httpd.conf está presente na pasta que quarda as configurações do seu webserver Apache, dependendo da distro ou da pré-configuração de instalação, podemos encontralo em diferentes lugares.
Na maioria das instalações encontramos ele na pasta /etc/apache ou /etc/apache2 (OBS: Se você está usando o Apache 2, o arquivo que você deve editar é o apache2.conf [ /etc/apache2/apache2.conf], embora exista um httpd.conf, o mesmo serve para outros própositos.) Na dúvida leia o arquivo README, logo no inicio ele indica o arquivo de configuração default (padrão)
Se nada resolver, execulte o seguinte comando: find / -name httpd.conf
E sairá na tela uma gama de resultados com os possiveis diretórios pelos quais seu httpd.conf poderá estar presente, se não resolver tente find / -name apache2.conf

O comando dará um retorno parecido com o seguinte:
/etc/apache/httpd.conf
/etc/apache2/httpd.conf
/var/www/downloads/httpd.conf
/var/www/secreto/confs/httpd.conf

/usr/share/doc/apache/examples/httpd.conf
/usr/share/apache/default-configs/apache-perl/httpd.conf
/usr/share/apache/default-configs/apache-ssl/httpd.conf
/usr/share/apache/default-configs/apache/httpd.conf
/home/www/secreto/httpd.conf

A primeira linha do retorno dá o caminho a ser seguido. Conte conosco!!!

Atenciosamente,
William França (SLACKWARE ATÉ A MORTE)

[11] Comentário enviado por cardelli em 13/04/2010 - 10:54h

Já utilizei cgi.... mas com o apache2 não esta rolando...



como faço para adicionar o modulo do cgi no arquivo apache2.conf?

[12] Comentário enviado por joaopaulobrinate em 11/09/2010 - 09:53h

Cara parabens pelo material viu mto bom mesmo... rapaz talvez vc possa me ajudar!!! veja so o que estou precisando. " TO PRECISANDO CADASTRAR USUARIOS NO PPTPD VIA CGI, E EU NAO SEI NADA DE CGI SE VC PUDER ME DAR UMA FORÇA OBRIGADO VIU" QUAL O SEU MSN?

[13] Comentário enviado por nielsenyuri em 15/02/2011 - 16:50h

material muito bom mesmo,ja estou testando


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts