Oficina
Quebra-fogo versão 1.0
Ter 17 Mar 2009 20:34 |
- Detalhes
- Categoria: Oficina Firewall
- Atualização: Quinta, 19 Março 2009 12:39
- Autor: vovó Vicki
- Acessos: 8090
Este é o quebra-fogo mais simples de todos, uma espécie de genérico. Se os requisitos básicos forem preenchidos (veja quais são em Firewall - Introdução), então este tutorial serve para começar :smile:
Características do quebra-fogo versão 1.0
O quebra-fogo versão 1.0 é um pequeno script PHP que é executado antes de qualquer chamada HTTP, ou seja, toda vez que um usuário solicitar uma página do site, o script roda antes da página ser entregue pelo servidor Apache ao browser do usuário.
O script funciona como um filtro que depura todas as requisições do tipo GET. Existem vários tipos de solicitação, mas, como o GET é o mais frequente, vamos começar com ele. Se for detectada uma tentativa de injetar código malicioso, o script direciona o usuário para uma página de advertência, uma espécie de limbo. Com isto, a solicitação original é descartada e o ataque é neutralizado.
A alma do quebra-fogo
A peça principal do quebra-fogo é o script PHP que funciona como filtro. Na verdade, o script é bastante simples:
Imagino que este código seja auto-explicativo, mas quero chamar sua atenção para a linha 58. A chamada à função exit() é que neutraliza a solicitação infratora. Se você a trocar por return ou break, o aviso de invasão será mostrado, mas junto com a página solicitada, ou seja, o invasor não será neutralizado.
Crie um sub-diretório no diretório principal do site que deve ser protegido. Digamos que tenha o nome 'quebrafogo'. Crie o script filtro.php tomando o cuidado de alterar o valor da variável $caminho (linha 15) - geralmente é /home/www/ ou /home/public_html/, o que resultaria em /home/www/quebrafogo/ ou /home/public_html/quebrafogo/. Faça o upload do script para o diretório quebrafogo.
Como o script pode chamar o arquivo limbo.php, este também precisa ser criado e colocado no mesmo diretório. Apenas como exemplo:
ALERTA DE SEGURANÇA |
|
Endereço IP: | |
Solicitação: | |
Origem: | |
Data e Hora: |
Acionando o quebra-fogo
Para que o script seja executado antes de qualquer página é preciso avisar o servidor Apache. Existem duas formas de conseguir isto. A mais simples e rápida é adicionando a seguinte linha no arquivo .htaccess localizado no diretório principal do site (se você não tiver este arquivo, crie um):
A segunda forma de acionar o quebra-fogo depende do acesso ao arquivo de inicialização do PHP, que costuma se chamar php.ini e costuma estar no mesmo diretório que o Apache. Se não souber onde está, dê este comando de shell para encontrá-lo:
# find -name 'php.ini'
Uma vez localizado, abra o php.ini, procure pela diretiva auto_prepend_file e complete-a com:
Depois de alterar o arquivo php.ini, não se esqueça de reiniciar o Apache para que a nova configuração entre em vigor. Caso tenha esquecido, é só dar os comandos de shell stop e start visando o Apache:
# /etc/rc.d/rc.httpd stop /usr/sbin/apachectl stop: httpd stopped # /etc/rc.d/rc.httpd start /usr/sbin/apachectl stop: httpd started
Somente páginas php podem ser protegidas. Se a(s) página(s) que você quer proteger tiver(em) outro tipo de extensão (htm, html), renomeie a(s) página(s) para nome_da_página.php
Testando o quebra-fogo
Para conferir se o quebra-fogo está funcionando de acordo com o esperado, chame uma das páginas protegidas forçando uma injeção. Por exemplo:
http://seusite.com.br/nome_da_pagina.php?cmd=
:info: Ao acessar o site, se você receber apenas uma página em branco, isto significa que o script tem algum erro. Revise cuidadosamente o código e faça novo teste.
Finalmentes
Se tiver dúvidas ou dificuldades em criar este minifirewall, faça contato. Se tiver idéias e sugestões, deixe seu comentário. Se quiser incrementar o quebra-fogo, leia os próximos tutoriais.
Abraços a todos da vó Vicki :vovo: