quinta-feira, 3 de setembro de 2015

Hardening e Boas Práticas em Apache Web Server

Hardening Básico e boas práticas de segurança em Servidores Web com Apache

O Apache é um servidor Web bastante utilizado no ramo do desenvolvimento Web por conta da sua comunidade, performance e configuração fácil, portanto ele ainda deixa algumas brechas por default que podem comprometer o funcionamento e segurança da sua aplicação. Vou listar algumas dicas de segurança que você pode utilizar para dar um pouco mais de segurança para seu servidor e evitar roubo de código, listagem de diretório e etc. 

Removendo a versão e informações do Web Server. 



Edite o arquivo de configuração do apache

# vim /etc/apache2/apache2.conf para Debian
# vim /etc/httpd/conf/httpd.conf para CentOS RHEL Linux

Procure pelas linha "ServerSignature" e "Server Tokens" e modifique os valores para "Off"

ServerSignature Off
ServerTokens Prod





Desabilitando a listagem de diretórios


 É possível verificar a listagem de arquivos do Webserver caso o Apache não esteja devidamente configurado. Essa falha de segurança pode acarretar em acesso a arquivos de configuração de banco de dados, roubo de código e informações vitais do servidor. Para cobrir essa falha vamos novamente acessar o arquivo de configurações do apache apache2.conf ou httpd.conf e procurar para

<Directory /var/www/html>
          Options -Indexes
</Directory>





Desabilitar Trace

Edite o arquivo httpd.conf ou apache2 e no final do arquivo adicione a linha:
TraceEnable Off

Feito isso recarregue as configurações do Apache 

# service http restart
# service apache2 restart


Desabilitando módulos desnecessários


Como dizem os guias de boas práticas de segurança da informação, é o ideal rodar em um servidor o mínimo possível, diminuindo assim o risco de sofrer ataques e exploits em vulnerabilidades de serviços que você mesmo nem sabia que existia ali.

Você pode obter uma lista de módulos disponíveis no sistema no diretório /etc/apache2/mods-available

# ls -l /etc/apache2/mods-available


Agora dê uma olhada no diretório /etc/apache2/mods-enabled. Neste diretório existem links simbólicos dos módulos alocados na pasta mods-available. Veja todos que você usa em seu negócio e remova os demais

# rm -r LinkDoModulo




Gerenciando os Logs do servidor

É rotina de todo administrador de sistemas acompanhar os logs dos serviços, afim de antecipar erros, correção de falhas, monitoramento de acessos, performance e etc. 

Os logs de acesso do apache estão salvos em: /var/log/httpd/access_log
Os logs de erro do Web Server ficam gravados em:  /var/log/httpd/error_log

exemplo: # tail -f /var/httdp/error_log



Criando o usuário e grupo do apache

# groupadd apache
# useradd -d /var/www/ -g apache -s /bin/nologin apache


Agora edite o arquivo o httpd.conf ou apache2.conf

E o procure pelo usuário e grupo que o apache vai usar para se comunicar com o servidor

# nano /etc/httpd/conf/httpd.conf

User apache
Group apache



Usando o Mod Security

O Modsecurity funciona como um web application firewall para seu servidor web que pode te auxiliar na proteção do seu site contra ataques DOS e DDoS. Ele não é a solução completa, mas é um grande facilitador. 


# sudo apt-get install libapache2-modsecurity
# sudo a2enmod mod-security
# sudo /etc/init.d/apache2 force-reload

# yum install mod_security
# systemctl mod_security enabled 
# service httpd restart

:)




SOBRE O AUTOR

Matheus Fidelis

http://msfidelis.github.io/

Power Ranger, Piloto de Helicópteros e Astronauta da NASA. Desenvolvedor Web PHP com foco em Backend e POO, Linux SysAdmin DevOps e Entusiasta Python. Criou esse site pra contribuir com a comunidade com coisas que aprende dentro de um setor maluco de TI :)

Postar um comentário

 
Nanoshots | Open Source Security, Linux e Tutoriais © 2015 - Designed by Templateism.com