De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Colaboração: Alexandro Silva
Data de Publicação: 18 de December de 2008
Umas das primeiras coisas a fazer após a instalação do Apache ou de qualquer
serviço é limitar as opções de acesso. No caso do Apache faremos isso editando
o arquivo /etc/apache2/sites-available/default.
Verifique a seção abaixo:
Options FollowSymLinks AllowOverride None
Esta seção controla como o Apache tratará o diretório raiz do sistema de arquivos e todos os arquivos contidos nele.
Edite esta seção adcionando as seguintes linhas:
Order Deny,Allow Deny from all Options None AllowOverride None
Isto fará com que o Apache não exiba qualquer arquivo do sistema de arquivos,
não permitindo opções especiais (como symlinking, includes, ou scripts cgi),
nem que sobreescrevam os arquivos .htaccess
nos diretórios. No entanto, uma
vez que queremos que o Apache acesse arquivos a partir do diretório /var/www/
,
nós precisamos editar a seção abaixo:
Options FollowSymLinks MultiViews Order allow,deny Allow from all
Isto permite que o Apache disponibilize páginas contidas em /var/www e removendo Indexes, isto significa que os usuários não serão capazes de acessar o conteúdo dos diretórios na web.
É necessário reiniciar o Apache para que as efetuar as mudanças.
Agora iremos configurar o Apache para ocultar informações sobre o sistema. Estas informações surgem quando ocorre uma tela de erro, como abaixo:
Para ocultar as informações do sistema edite o arquivo
/etc/apache2/apache2.conf
. Mudando a seguinte linha:
ServerTokens Full
para
ServerTokens Prod
Reinicie o Apache e faça o teste acessando uma página que não existe.
O módulo de segurança, o mod_security, é um módulo do Apache que será instalado para bloquear o monitoramento de requisições e respostas HTTP tanto quanto a negação de pacotes suspeitos.
Inicialmente instale as dependências necessárias
aptitude install libxml2-dev apache2-prefork-dev
Se você optou por baixar o source execute os seguintes passos para compilar o módulo
tar zxvf modsecurity-apache_2.5.7.tar.gz cd modsecurity-apache_2.5.7/apache2/ ./configure && make && make install ( como root! )
Agora acesse o diretório /etc/apache2/mods-available
, acesse o arquivo
modsecurity2.load
e adicione as seguintes linhas:
LoadFile /usr/lib/libxml2.so LoadModule security2_module /usr/lib/apache2/modules/mod_security2.so
Agora vá para um diretório acima, no caso o mods-enabled
e crie um link
simbólico para os arquivo editado anteriormente e para o arquivo mod_unique_id
:
cd ../mods-enabled ln -s ../mods-available/modsecurity2.load ln -s ../mods-available/unique_id.load
Após reiniciar o Apache, verifique o aquivo de log que está em
/var/log/apache2/error.log
. Deverá existir a seguinte linha:
[Wed Dec 03 16:54:25 2008] [notice] ModSecurity for Apache/2.5.2 (http://www.modsecurity.org/) configured.
Primeiro, as regras necessárias para inciar o funcionamento deste módulo encontra-se no diretório /modsecurity-apache_2.5.7/rules, copie estas regras para o diretório /var/lib/modsecurity/
cp modsecurity_crs_* /var/lib/modsecurity/
Informe ao Apache onde encontram-se a regras criando o arquivo
/etc/apache2/conf.d/modsecurity2.conf
e adicionando as seguintes linhas:
Include /var/lib/modsecurity/*.conf
Reinicie o Apache para efetivar as mudanças
Agora que o módulo já está configurado e rodando podemos realizar um teste simples usando o wget:
wget -O - -U ngsecurity analyzer http://
Se o mod_security estiver funcionando, será informado o erro 404:
alexos@cypher:~$ wget -O - -U ngsecurity analyzer http:// 19:13:17 http:// => `- Resolving meu_webtestserver X.X.X.X Connecting to meu_webtestserver|X.X.X.X|:80 connected. HTTP request sent, awaiting response 404 Not Found 19:13:17 ERROR 404: Not Found.
No servidor web execute o comando abaixo
tail /var/log/apache2/debug.log
ou
tail /var/log/apache2/audit.log
Vejam o que apareceu para mim!
[03/Dec/2008:17:18:17 --0500] [matrix/sid#855d8f0][rid#87357f8][/][1] Access denied with code 404 (phase 2). Pattern match (?:\b(?:m(?:ozilla\/4\.0 \ (compatible\)|etis)|ngsecurity analyzer|pmafind)\b|n(?:-stealth|sauditor| essus|ikto)|b(?:lack ?widow|rutus|ilbo)|(?:jaascoi|paro)s|webinspect|\.nasl) at REQUEST_HEADERS:User-Agent. [file "/var/lib/modsecurity/modsecurity_crs_35_bad_robots.conf"] [line "19"] [id "990002"] [msg "Request Indicates a Security Scanner Scanned the Site"] [severity "CRITICAL"] [tag "AUTOMATION/SECURITY_SCANNER"]
Porque surgiu na expressão regular acima o ngsecurity analyzer , a requisição para o arquivo foi negada, mostrando que o mod_security está funcionando.
Hardening
- É um processo de mapeamento das ameaças, mitigação dos
riscos e execução das atividades corretivas - com foco na infra-estrutura
e objetivo principal de torná-la preparada para enfrentar tentativas de
ataque. (Wikipedia)
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários