Implementando servidor de aplicações PHP utilizando Zend Framework

Esse mega artigo aborda todos os conceitos técnicos e práticos para a implementação de um servidor de aplicações PHP utilizando framework Zend, incluindo detecção de intrusão e entre outros conceitos. Vale a pena conferir.

[ Hits: 142.950 ]

Por: José Cleydson Ferreira da Silva em 27/04/2010


Ferramenta para detecção de intrusão (opcional)



Configurar no servidor apache uma ferramenta de detecção de intrusão pode ajudar na tomada de decisão ou na correção no fluxo da aplicação ou correção no arquivo .htaccess.

Sugere-se a ferramenta PHPIDS para analisar as tentativas de inserção de código ou tentativas de endereçamento de URL e outras tentativas. A cada tentativa logs são gerados, será necessário periodicamente verifica-los, ou se necessário criar uma rotina para informar a ocorrência.

O processo de instalação é simples, porém necessita de configurações em alguns arquivos da ferramenta e do servidor apache, portanto siga os passos abaixo para fazer a instalação e configuração.

Escolha o diretório de instalação, se preferir pode utilizar a pasta compartilhada do php que se encontra em /usr/share/Zend é importante separar a ferramenta de configuração do servidor das aplicações que serão desenvolvidas.

Entrar no diretório PATH do php:

# cd /usr/share/

Faça download do phpides:

# wget http://php-ids.org/files/phpids-0.6.2.tar.gz

Descompactar o pacote:

# tar -xvzf phpids-0.6.2.tar.gz

Mudar usuário e grupo do diretório tmp da ferramenta IDS:

# cd phpids-0.6.2/lib/IDS
# chown -R www-data:www-data tmp


Fazer configuração do PHPIDS:

# cd config
# vim config.ini


Configurar caminho nas diretivas:

[General]

    filter_type = xml
    filter_path = /usr/share/phpids/lib/IDS/default_filter.xml
    tmp_path = /usr/share/phpids/lib/IDS/tmp

[Logging]

    ; file logging
    path = /usr/share/phpids/lib/IDS/tmp/phpids_log.txt

[Caching]

; file cache
    path = /usr/share/phpids/lib/IDS/tmp/default_filter.cache
; memcached
    ;host = localhost
    ;port = 11211
    ;key_prefix = PHPIDS
    ;tmp_path = /usr/share/phpids/lib/IDS/tmp/memcache.timestamp

Pode-se criar uma aplicação que irá monitorar as requisições, que por sua vez, irá detectar possíveis tentativas de quebra de segurança, bem como, inserção de códigos, tentativas de descoberta de URL e entre outros.

Crie um subdiretório phpids dentro do diretório /home/aplicativos/estrutura/ ou no diretório que achar conveniente e adicione os códigos abaixo em um arquivo index.php ou phpids.php. Os comentários do arquivo relatam o que o mesmo está desempenhando.

<?php
/**
* autores: José Cleydson Ferreira da Silva,  Néliton Antônio Campos
* primeira versão: 13 abr 2010
*/
/**
* Monitora as requisições, detectando possíveis tentativas de quebra de segurança.
*/

set_include_path(get_include_path() . PATH_SEPARATOR . '/usr/share/phpids/lib');
require_once 'IDS/Init.php';
$request = array('REQUEST' => $_REQUEST, 'GET' => $_GET, 'POST' => $_POST, 'COOKIE' => $_COOKIE);
$init = IDS_Init::init('/usr/share/phpids/lib/IDS/Config/Config.ini');
$ids = new IDS_Monitor($request, $init);
$result = $ids->run();

/**
* Registra as tentativas de quebra de segurança detectadas em log.
*/

if (!$result->isEmpty()) {
   require_once 'IDS/Log/File.php';
   require_once 'IDS/Log/Composite.php';
   $compositeLog = new IDS_Log_Composite();
   $compositeLog->addLogger(IDS_Log_File::getInstance($init));
   $compositeLog->execute($result);
   header('location: ' . $_SERVER['SCRIPT_NAME']);
   die;
}

Após salvo o arquivo é necessário configurar a diretiva auto_prepend_file do arquivo php.ini, para vincular o arquivo no php.

; Automatically add files before or after any PHP document.
auto_prepend_file = /home/usuario/sistemas/estrutura/phpids/index.php

Os logs são gerados em /usr/share/phpids/lib/IDS/tmp/phpids_log.txt ou no local onde instalou a ferramenta phpIDS.

Página anterior     Próxima página

Páginas do artigo
   1. Índice
   2. Introdução
   3. Sobre Zend Framework
   4. Particionamento
   5. Instalação do Servidor Web
   6. Habilitando o módulo mod_rewrite
   7. Habilitando o módulo mod_userdir
   8. Instalando Zend Framework
   9. Testando Zend Framework
   10. Padrões de diretórios para aplicações do Zend Framework
   11. Script para a criar a estrutura de diretório do MVC
   12. Configurando restrição de acesso
   13. Configurando Virtual Host
   14. Padronizando o formato dos registros em arquivos de log
   15. Suporte a conexões seguras com SSL
   16. Configurando exibição de erros
   17. Liberando acesso a ftp
   18. Rotinas de backup
   19. Ferramenta para detecção de intrusão (opcional)
   20. Acelerando o PHP (opcional)
   21. Considerações finais
Outros artigos deste autor

Gerência de projetos com Redmine

Os novos plugins do Compiz

Cadê o cubo?

Cairo-Dock - Seu desktop Linux com cara de MAC

[Estudo de caso] Ferramentas Open Source tem sido um caso de sucesso na Biotecnologia e Bioinformática

Leitura recomendada

Grip, the GNOME Ripper

NagiosVision: Tem humanos perto do seu servidor

Bind consultando zonas em base LDAP

SystemRescueCd - Corrigindo o sistema e recuperando dados

Instalação e configuração do Nagios

  
Comentários
[1] Comentário enviado por viniciusgnu em 27/04/2010 - 08:47h

Meu velho, como sempre está de parabéns! "Keep up with the good work"!
Abraço

[2] Comentário enviado por cleysinhonv em 27/04/2010 - 08:50h

Valeu Vinicius!

Como sempre "procurar" / "tentar" / "me esforçar" em publicar artigos completos que ajudem a comunidade como um todo!

[3] Comentário enviado por uberalles em 27/04/2010 - 11:00h

Que "putza" app server bacana!! Muito bem detalhado seu artigo e passo a passo.

[4] Comentário enviado por cleysinhonv em 27/04/2010 - 11:33h

Olá Andre Miguel,

Bacana né! Procurei Explicar de forma clara e detalhar o máximo possível! Acredito que este material irá ajudar muitas empresas e pessoas que queiram implemetar esse tipo de solução!

Um abraço!

[5] Comentário enviado por valterrezendeeng em 27/04/2010 - 13:04h

Muito Bom o Artigo
Bem Feito e completo

Parabéns !!!!


Abraço

[6] Comentário enviado por razgriz em 27/04/2010 - 13:10h

Belo artigo Kurumin, continue assim!

[7] Comentário enviado por cleysinhonv em 27/04/2010 - 13:16h

Olá valter! Olá Prof. RazGriz!

Obrigado! Fico grato e com sentimento de dever cumprido. Espero que esse artigo possa ajuda-los de alguma forma, utilize-o e indique-o a quem precisar!

Um abraço!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts