A lista de verificação de práticas recomendadas de segurança do Apache de 14 etapas (e-book em PDF incluído)

Publicados: 2017-11-22

railwayfx/stock.adobe.com

Atualmente, o Apache continua sendo o software de servidor web líder no mundo, com uma participação de mercado de 45,8%. Isso equivale a cerca de 80 milhões de sites cujos servidores web são alimentados por Apache. Muito impressionante, certo?

Apache é um software de servidor web de código aberto que existe desde 1995, então só isso já diz muito sobre sua confiabilidade e longevidade. Depois, há os sites de alto perfil executados em servidores Apache: Apple, Adobe e Paypal são apenas algumas das principais marcas que confiam seus sites ao Apache.

É claro que isso não torna o Apache 100% seguro, pois nenhum software estará 100% protegido contra hackers, especialmente quando é uma plataforma tão conhecida e confiável (como o WordPress). Mas se você está procurando um e-book, módulo, guia, tutorial, estrutura ou lista de verificação de segurança de servidor da Web em PDF sobre segurança do Apache, você veio ao lugar certo.

Se você deseja fortalecer a segurança do Apache ou está tendo algum problema de segurança do Apache ou tentando corrigir uma ou duas vulnerabilidades, a lista de verificação a seguir fornecerá 14 práticas recomendadas de segurança para adicionar ao plano de segurança do seu site.

Nossa equipe na WP Buffs ajuda proprietários de sites, agências parceiras e parceiros freelancers a implementar as melhores práticas de segurança do Apache. Se você precisa de nós para gerenciar 1 site ou oferecer suporte a 1.000 sites de clientes, nós estamos sempre à sua disposição.

A lista de verificação definitiva de práticas recomendadas de segurança do Apache

Para aqueles que desejam realmente fortalecer seu site WordPress, é essencial proteger o Apache como faria com qualquer outro software que se conecta e alimenta seu site. Não fazer isso pode até afetar a velocidade do seu site. Então, veja como você fará isso:

1. Atualize o Apache

Você sabe como o WordPress e quaisquer plug-ins e temas instalados precisam ser atualizados regularmente? O mesmo acontece com o seu servidor web.

Se você está nervoso porque seu site não está rodando na versão mais recente do Apache, você pode verificar isso com uma linha de comando httpd -v. Se a versão gerada não corresponder à versão atual do Apache, você poderá atualizá-la com o seguinte:

# yum update httpd
# apt-get install [add Apache version here]c

2. Ative os registros

Se você estiver trabalhando com um provedor de hospedagem WordPress gerenciado, ele cuidará de monitorar seu servidor e o WordPress em busca de vulnerabilidades e outros sinais de alerta. Dito isso, você também deve ficar de olho no tráfego do servidor.

Com o Apache, você pode obter acesso a este log de atividades atualizando seu módulo mod_log_config. Basicamente, ele lhe dirá o que os usuários fazem sempre que tocam no seu servidor.

3. Obtenha um certificado SSL

Como o seu servidor web lida com todas as solicitações do navegador/servidor para o seu site, é importante protegê-lo com um certificado SSL. A boa notícia é que agora você pode obter um certificado SSL gratuitamente. Isso é mais importante agora do que nunca, portanto, se você não tiver capacidade técnica para instalar sozinho, qualquer provedor de hospedagem de qualidade poderá fazer isso por você.

4. Adicione um firewall

Além da proteção adicional da criptografia SSL, seu servidor web deve ser fortalecido com um firewall. Para o Apache, isso significa ativar o ModSecurity.

Para instalá-lo em seu servidor, você pode executar o seguinte:

# yum install mod_security
# /etc/init.d/httpd restart

Assim que o firewall estiver ativo, ele impedirá que uma série de atividades maliciosas cheguem ao seu servidor, como injeção de SQL, sequestro de sessão e scripts entre sites.

5. Instale mod_evasive

Mod_evasive é o módulo que protegerá seu servidor Apache contra força bruta e ataques DDoS, portanto, certifique-se de que também esteja habilitado. Ele colocará na lista negra tentativas de login simultâneas e com falha, bem como monitorará IPs maliciosos.

6. Defina limites HTTP

Os ataques distribuídos de negação de serviço (DDoS) são muito simples de bloquear se você souber que tipo de ações observar. Como o DDoS tende a acontecer ao atingir repetidamente seu servidor com grandes solicitações, seu objetivo deve ser definir limites que impeçam que isso aconteça.

Aqui estão alguns dos limites que você deseja estabelecer:

  • KeepAlive = ativado
  • KeepAliveTimeout
  • LimitRequestBody
  • LimitRequestFields
  • LimitRequestFieldSize
  • LimitRequestLine
  • LimitXMLRequestBody
  • MaxClientes
  • MaxKeepAliveRequests
  • MaxRequestWorkers
  • SolicitaçãoReadTimeout
  • Tempo esgotado

7. Exclua módulos não utilizados

Ao deixar módulos não utilizados, sem manutenção ou expirados em seu servidor Apache, você deixa seu site aberto a hackers por meio de um ponto de entrada que nem precisa estar lá.

A primeira coisa que você deve fazer é descobrir quais módulos estão realmente ativos. Você pode fazer isso usando um comando LoadModule. Depois de examinar a lista e identificar quais módulos você não precisa, basta adicionar o símbolo “#” antes de cada módulo que deseja desativar e reiniciar.

8. Alterar usuário e grupo padrão

As configurações padrão e os usuários deixados em qualquer software, em geral, são uma má prática de segurança. A razão para isso é simples: se você estiver usando o nome de usuário ou grupo padrão do Apache, pode apostar que os hackers também sabem quais são esses nomes padrão.

Em vez de deixar os padrões no lugar, você deve criar uma nova conta sem privilégios para executar seus processos Apache. Usando os comandos # groupadd e # useradd, você pode definir as novas entidades. Apenas lembre-se de atualizar seu httpd.conf com os novos nomes de usuários e grupos que você criou.

9. Bloquear acesso ao diretório

Aqui está outro exemplo de configurações padrão que precisam ser alteradas. Nesse caso, é o acesso concedido aos arquivos do seu diretório que permite que qualquer pessoa explore onde quiser.

Para colocar um bloco total no lugar, use o seguinte comando:

<Directory "/">
Require all denied
</Directory>

Se quiser permitir o acesso a determinados usuários, você pode fazer isso:

<Directory "/usr/users/*/public_html">
Require all granted
</Directory>

Se quiser habilitar o acesso a determinadas pastas dentro do diretório, você pode fazer isso:

<Directory "/usr/local/httpd">
Require all granted
</Directory>

Você também pode examinar o repositório do módulo Apache para obter mais ajustes nos direitos de acesso do usuário.

10. Não publique o diretório

Você sabia que se o seu servidor não tiver um arquivo de índice, os usuários poderão ver todo o conteúdo armazenado em seu diretório raiz? Obviamente, isso não é bom, então você precisará desativar essa configuração padrão com o seguinte:

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

11. Ocultar detalhes do servidor

Como o Apache é um software de código aberto, os detalhes sobre a versão usada estarão prontamente disponíveis se essas configurações não estiverem desabilitadas no servidor. Como os hackers podem usar essas informações confidenciais para descobrir como invadir seu servidor, convém bloquear essas informações.

Há duas coisas que você deseja desativar:

  • ServerSignature – que é a versão do Apache
  • ServerTokens – que inclui a versão do sistema operacional, entre outros detalhes confidenciais do servidor

Essas informações podem ser encontradas por outros usuários simplesmente visualizando uma página de erro em seu site, por isso é muito importante impedir que isso seja mostrado. Para fazer isso, atualize o httpd.conf com o seguinte:

ServerSignature Off
ServerTokens Prod

12. Ocultar a ETag

O cabeçalho ETag no Apache, infelizmente, inclui vários detalhes confidenciais sobre o seu servidor. Obviamente, qualquer coisa que compartilhe esse tipo de informação com o mundo exterior deveria ser ocultada. Além disso, se você estiver administrando um site de comércio eletrônico, precisará ocultar isso para ser compatível com PCI.

Para fazer isso, adicione a seguinte diretiva ao seu httpd.conf:

FileETag None

13. Desative a substituição de .htaccess

O .htaccess é um arquivo importante para qualquer site WordPress. É por isso que você precisa bloqueá-lo e garantir que ninguém mais possa substituir suas configurações.

Para desabilitar isso, adicione o seguinte ao seu httpd.conf na raiz:

<Directory />
Options -Indexes
AllowOverride None
</Directory>

14. Desative SSI e CGI

Arquivos habilitados para Server Side Included (SSI) podem expor seu site a uma série de problemas de segurança se não forem verificados. O mesmo vale para scripts CGI. Para evitar que qualquer um deles permita que hackers sobrecarreguem seu servidor ou injetem scripts maliciosos em seu código, lembre-se de desativá-los ou restringir o que eles fazem por meio da diretiva Options.

Aqui estão alguns valores de opções que você pode usar:

  • Opções todas
  • As opções incluem NOEXEC
  • Opções -Inclui
  • Opções -ExecCGI
  • Opções -Inclui -ExecCGI
  • Opções MultiViews

Cuidando do seu servidor Apache

Em um esforço para reforçar a segurança do seu site, preste atenção especial ao servidor Apache. Problemas como configuração incorreta do servidor e deixar as configurações padrão em vigor podem colocar seu site em risco tanto quanto um núcleo não atualizado ou práticas inseguras de codificação PHP.

Quer dar seu feedback ou participar da conversa?Adicione seus comentários no Twitter.