Oficina

Quebra-fogo versão 1.0

Ter

17

Mar

2009


20:34

  • Imprimir
(2 votos, média 5.00 de 5) 


Nível Intermediário

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

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):

php_value auto_prepend_file "/caminho/absoluto/para/filtro/filtro.php"

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:

auto_prepend_file = /caminho/absoluto/para/filtro/filtro.php

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:

mfx brokerказан вокресторан nikas отзывы asus ноутбукистрельбакурсы валют украины сегоднялобановский александр