você está aqui: Home  → Arquivo de Mensagens

Infraestrutura para Aplicações Web Seguras parte 1 - Sistema

Colaboração: Alexandro Silva

Data de Publicação: 08 de março de 2010

Neste artigo abordarei como montar/manter um servidor seguro. Uso o Debian GNU/Linux como sistema base mas todas as ferramentas e procedimentos listados servem para qualquer Unix-like.

Um dos grandes inimigos na implementação de qualquer solução é o tempo. Tudo tem que ser feito no menor tempo possível, com o menor gasto possível e com 0% de falha. Para respeitamos todas essas premissas as orientações apresentadas serão de rápida implementação e fácil manutenção.

Hardening

Trocando em miúdos o hardening é o fortalecimento de um sistema, serviço ou aplicação com o objetivo de minimizar ou dificultar a ação de hackers e crackers.

Iniciamos o hardening antes da instalação do sistema. Neste momento planejamos:

  1. Daemons/serviços que serão disponibilizados;
  2. Particionamento;

Como o foco do nosso artigo são aplicações Web já sabemos que vamos trabalhar com o Quarteto Fantástico - Linux, Apache, PHP e MySQL ou Postgresql. De antemão já temos definidos os serviços que serão disponibilizados.

Com isso definido recomendo que o diretório /var permaneca numa partição separada, lá ficarão os arquivos do site no /var/www e os arquivos do banco em /var/lib/mysql.

Dependendo da aplicação é possivel que o BD cresca rapidamente então recomendo separar a maior parte do disco para está partição e também recomendo a utilização do sistema de arquivos XFS.

Quer saber porque recomendo o uso deste sistema de arquivos? Clique aqui.

Feito todo o planejamento e com o S.O. instalado iniciaremos os procedimentos de pós-instalação:

  1. Atualizar todo o sistema. No caso do Debian recomendo antes de tudo ajustar o arquivo sources.list removendo todo o conteúdo e adicionado os seguintes repositórios:

      deb http://ftp.us.debian.org/debian stable main contrib
      deb http://security.debian.org/ stable/updates main contrib
    

    Feito isso use o velho e bom aptitude update && aptitude safe-upgrade

  2. Remova todos os serviços desnecessários:

    Recomendo a instalação do < a href="http://">Nmap</a>, assim de forma fácil e rápida descobriremos as portas abertas e os serviços em execução.

      Exemplo:
      
      nmap localhost
      
      Starting Nmap 5.21 ( http://nmap.org ) at 2010-02-25 00:53 BRT
      Nmap scan report for localhost (127.0.0.1)
      Host is up (0.000021s latency).
      Hostname localhost resolves to 2 IPs. Only scanned 127.0.0.1
      Not shown: 996 closed ports
      PORT     STATE SERVICE
      xx/tcp   open  xxx
      xxx/tcp  open xxxx
      xxx/tcp  open  xxx
      xxx/tcp open  xxxxx
      
      Nmap done: 1 IP address (1 host up) scanned in 0.22 seconds
    

    Você poderá remover a aplicação indesejada usando o comando aptitude remove [aplicação] ou apenas impedir que ela seja executada durante o boot, como por exemplo o MTA exim usando o comando** update-rc.d -f exim remove**. Dessa forma o exim permanecerá instalado, por ser dependência para outras aplicações, mas não será executado durante o boot.

  3. Use o sudo

    Evite logar no sistema usando o usuário root e não deixe que membros da equipe façam o mesmo, assim é possivel fortalecer a auditoria de autenticação, instalação e remoção de pacotes e ações que podem danificar o sistema.

  4. Bloqueie o usuário root

    Use o comando** usermod -L root** para bloquear o login usando o usuário root.

  5. Mude a porta padrão do ssh e bloqueie o login do usuário root

    Segurança por obscuridade é uma das técnicas utilizadas para dificultar o FootPrinting, e o port scanning do seu sistema. Para fazer estas modificações acesse o arquivo /etc/ssh/sshd_config e altere as seguintes linhas:

      Port 22
    

    para, por exemplo

      Port 3000
    

    Altere a linha

      PermitRootLogin yes
    

    para

      PermitRootLogin no
    

Refinando o processo de Hardening

Algumas ferramentas podem ser utilizadas para ajudar no processo de hardening do sistema. Recomendo fortemente o uso das seguintes ferramentas:

Hntool

Este é um novo projeto do meu amigo sergipano Hugo Doria que vem crescendo bem rápido e vem contando com novos contribuidores diariamente.

O objetivo desta ferramenta é facilitar a vida do Sysadmin informando as melhorias necessárias para fortalecer os serviços e o próprio sistema.

Como ele é totalmente modular fica muito fácil contribuir. Se você quer aprender a programar em Python essa é hora.

Contribua com o desenvolvimento do Hntool. A comunidade de segurança brasileira agradece.

Bastille

O Bastille protege o sistema operacional, configurando o sistema de maneira pro-ativa para aumentar sua segurança e reduzir as chances de comprometimento. Ele também pode ser usado para assessorar no processo de Hardening do sistema, reportando e detalhando cada configuração de segurança usada pelo programa.

Ele auxilia o usuário/administrador do sistema a escolher exatamente como fortalece-lo. No modo de operação/hardening padrão, ele interage com o usuário fazendo perguntas , explicando cada tópico para, então, criar uma política baseada nas respostas do usuário. Logo em seguida, aplica-se as políticas no sistema. No modo de auditoria, ele cria um relatório para ensinar o usuário sobre as configurações de segurança disponíveis, além de informar quais configurações foram definidas/ajustadas.

Para ajudar na instalação e configuração disponibilizo o capítulo referente ao Bastille que criei para minha aula na Pós em Segurança da Informação da Unijorge.

Monitoramento Seguro

Após todos os ajustes necessários é hora de monitorar e manter o ambiente sempre disponível e seguro. Para isso recomendo a instalação das seguintes ferramentas:

Ossec HIDS

O OSSEC é um escalável, multi-plataforma, e open source HIDS. Ele integra análise de log, checagem de integridade de arquivos, politica centralizada, detecção de rootkit, alerta em tempo real e resposta automática.

Para facilitar a implentação postei 03 artigos com a instalação do OSSEC Server, o Agente e a Interface Web.

Lenbrando que existe a opção da instalação local ( standalone ) permitindo que você seja alertado através do email.

Munin

O Munin é uma ferramenta de gerência de desempenho muito simples de instalar e configurar. Ela permite que você obtenha informações em tempo real de como anda o seu sistema.

Veja o post que disponibilizei sobre está excelente ferramenta.

Apticron

O Apticon é um script que alerta via email diariamente sobre novas atualizações no seu servidor, no alerta você encontra a lista de pacotes que precisam ser atualizados e todo o changelog.

Acesse os links 1 ou 2 para obter informações de como instalar e configurar está ferramenta bastante útil.

Blog do Autor: http://blog.alexos.com.br


 

 

Veja a relação completa dos artigos de Alexandro Silva

Opinião dos Leitores

Seja o primeiro a comentar este artigo
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script