Home Comunidade Eventos YouTube Networks Desafios // produtos Academy News CTI | CVE Contato

01 - Servidor Apache

video explicativo
Video explicativoEspaco reservado para o video desta anotação — adicione video: https://youtu.be/... no frontmatter da nota.

Servidor Web Apache

1. Definição e Posicionamento Histórico

O Servidor Web Apache (Apache HTTP Server) é um dos softwares mais influentes e maduros da história da Internet. Mantido pela Apache Software Foundation (ASF), o "httpd" foi o servidor dominante por décadas e permanece como a escolha de referência para infraestruturas que exigem máxima flexibilidade, uma vasta biblioteca de módulos e suporte para configurações descentralizadas. Operando sob uma arquitetura modular robusta, o Apache é capaz de servir desde sites estáticos simples até complexas aplicações corporativas integradas a bancos de dados e sistemas de autenticação legados.

Baseado no código do NCSA HTTPd (1995), o Apache foi criado por um coletivo de administradores que aplicavam "patches" ao servidor original — daí o nome "A Patchy Server", posteriormente formalizado como Apache. Sua adoção explodiu na década de 1990 com a popularização da Web, atingindo ~60% de mercado no ano 2000. Hoje mantém cerca de 28% do mercado global, perdendo apenas para o NGINX em cenários de alto tráfego.

Cronologia de Versões

Versão Lançamento Destaque
1.3 1998 Suporte a módulos dinâmicos (DSO)
2.0 2002 Novo sistema de MPMs, suporte IPv6
2.2 2005 mod_proxy_http aprimorado, SSL nativo
2.4 2012 MPM Event estável, suporte HTTP/2
2.4.x Em curso Patch de segurança contínuo, OCSP stapling

2. Arquitetura MPM (Multi-Processing Modules)

Diferente de servidores baseados em eventos puros, o Apache permite que o administrador escolha como o servidor deve gerenciar conexões e processos.

MPM Prefork (Process-based)

Cada requisição é atendida por um processo individual. É a escolha mais estável para aplicações que não são seguras para threads (como o PHP clássico via mod_php), isolando falhas de um processo dos demais. No entanto, consome muita memória RAM em alta carga (~2-10 MB por processo).

MPM Worker (Hybrid)

Utiliza uma mistura de múltiplos processos, onde cada processo gerencia múltiplas threads. É mais eficiente que o Prefork, mas exige que as bibliotecas da aplicação sejam Thread-Safe. Recomendado para Python (mod_wsgi) e Ruby (Passenger).

MPM Event (Evolução Moderna)

O modelo mais performático do Apache hoje. Ele é similar ao Worker, mas dedica threads específicas para conexões persistentes (Keep-Alive), liberando recursos rapidamente para novas requisições.

Comparativo de Performance

MPM Conexões Simultâneas Memória por Conexão Thread-Safe Necessário
Prefork Baixa (~256) ~2-8 MB Não
Worker Média (~1024) ~256 KB-1 MB Sim
Event Alta (~10000) ~64-256 KB Sim

3. O Poder do Sistema de Módulos (mod_*)

A flexibilidade do Apache reside na sua capacidade de estender funcionalidades através de módulos carregáveis (DSO - Dynamic Shared Object).

Módulos Essenciais

Módulo Função Caso de Uso Típico
mod_rewrite Manipulação de URLs SEO, URLs amigáveis, redirects
mod_ssl / mod_md TLS e renovação automática Let's Encrypt, certs corporativos
mod_proxy Proxy reverso e forward Encaminhar para NodeJS, Python
mod_security WAF (firewall de aplicação) Bloqueio SQLi, XSS, LFI
mod_evasive Anti-DoS Limitar requisições por IP
mod_deflate / mod_brotli Compressão de respostas Reduzir banda em texto
mod_expires Cache-Control Assets estáticos com TTL
mod_status Server-status Monitoramento em tempo real

Exemplo de Configuração de Módulo

LoadModule rewrite_module modules/mod_rewrite.so
LoadModule ssl_module modules/mod_ssl.so

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>

4. Configuração Descentralizada: O Arquivo .htaccess

Uma das características únicas do Apache é permitir que usuários sem acesso administrativo ao servidor (root) alterem configurações de suas pastas através de arquivos .htaccess.

  • Flexibilidade: Permite definir regras de segurança, redirecionamentos e caching em nível de diretório.
  • Impacto em Performance: O uso excessivo de .htaccess pode reduzir a velocidade do servidor, pois o Apache deve procurar por esses arquivos em cada subpasta para cada requisição recebida.
  • Recomendação: Em servidores dedicados, desativar .htaccess via AllowOverride None e colocar todas as regras no httpd.conf melhora performance em até 30%.

Diretivas de Controle de Acesso com .htaccess

# Bloquear acesso a arquivos sensíveis
<FilesMatch "^\.">
    Require all denied
</FilesMatch>

# Proteger contra hotlinking de imagens
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^https://(www\.)?meusite\.com/ [NC]
RewriteRule \.(gif|jpg|png)$ - [F]

5. Perspectiva de Cyber Security e Hardening no Apache

ModSecurity (Web Application Firewall - WAF)

O mod_security é o WAF de código aberto mais respeitado do mercado. Ele atua como um filtro entre a Internet e a aplicação, detectando e bloqueando ataques de SQL Injection, Cross-Site Scripting (XSS) e LFI (Local File Inclusion) em tempo real através de regras de assinatura (CRS - Core Rule Set da OWASP).

ModEvasive (Mitigação de DoS)

O mod_evasive monitora padrões de tráfego anônomos. Se um único IP enviar requisições excessivas em um curto intervalo de tempo, o módulo bloqueia temporariamente o atacante (retornando erro 403), protegendo o servidor de ataques de força bruta e DoS de baixa intensidade.

Hardening Checklist

# Ocultar versão do Apache e do SO
ServerTokens Prod
ServerSignature Off

# Desabilitar acesso ao filesystem raiz
<Directory />
    Require all denied
    Options None
    AllowOverride None
</Directory>

# Limitar tamanho de requisição (mitigação de DoS)
LimitRequestBody 10485760
Timeout 45
KeepAliveTimeout 5

# SSL/TLS Hardening
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384
SSLHonorCipherOrder on

6. Auditoria Técnica e Diagnóstico de Apache

Administrar o Apache exige o domínio de ferramentas de controle e consulta:

# Verificando a sintaxe dos arquivos de configuração antes de reiniciar
sudo apache2ctl configtest

# Listando todos os módulos carregados no servidor atual
sudo apache2ctl -M
sudo apachectl -M | grep -i ssl

# Recarregando configuração sem derrubar conexões (graceful)
sudo apache2ctl graceful

# Monitorando logs em formato detalhado para identificar IPs agressores
tail -f /var/log/apache2/other_vhosts_access.log

# Stress test com Apache Bench (ab)
ab -n 10000 -c 100 https://www.exemplo.com/

7. VirtualHost: Gerindo Múltiplos Domínios

O Apache brilha na gestão de múltiplos sites através do conceito de VirtualHost. Cada site possui seu próprio arquivo de configuração isolado (geralmente em sites-available/), permitindo que cada domínio tenha seus próprios caminhos de log, certificados SSL e permissões de diretório independentes.

Exemplo de VirtualHost com SSL

<VirtualHost *:443>
    ServerName www.empresa.com
    ServerAlias empresa.com
    DocumentRoot /var/www/empresa/public

    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/empresa.com/cert.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/empresa.com/privkey.pem
    SSLCertificateChainFile /etc/letsencrypt/live/empresa.com/chain.pem

    Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"

    ErrorLog ${APACHE_LOG_DIR}/empresa_error.log
    CustomLog ${APACHE_LOG_DIR}/empresa_access.log combined
</VirtualHost>

8. Conclusão: O Servidor de Referência Mundial

O Apache HTTP Server continua sendo o alicerce de milhões de servidores ao redor do globo. Sua arquitetura modular, somada ao poder do .htaccess e à robustez do mod_security, torna-o a escolha ideal para ambientes que prezam pela compatibilidade e personalização extrema. Dominar a gestão de MPMs, entender as regras de reescrita e endurecer a configuração com WAFs garante que a infraestrutura Apache seja não apenas funcional, mas inabalável frente às ameaças da web moderna.