Como proteger seu servidor Apache

Como proteger seu servidor Apache
O Apache é um servidor web popular e de código aberto disponível para sistemas Linux e Windows. Ele permite a configuração para uma gama diversificada de casos de uso, desde páginas da web html até conteúdo de aplicativos dinâmicos de pré -processador de hipertexto (PHP).O Apache fornece uma plataforma segura e robusta para implantar seus aplicativos da Web. No entanto, ainda é importante instalar os patches de segurança mais recentes e configurar o servidor corretamente para estabelecer um ambiente seguro para seus aplicativos da Web.
Neste artigo, você encontrará algumas dicas e truques para fortalecer as configurações do Apache Web Server e melhorar a segurança geral.

Conta de usuário não privilegiada

O objetivo de uma conta de usuário sem raios ou sem privilégios é restringir o usuário de acesso desnecessário a determinadas tarefas dentro de um sistema. No contexto de um servidor da Web Apache, isso significa que ele deve funcionar em um ambiente restrito apenas com as permissões necessárias. Por padrão, o Apache é executado com privilégios da conta Daemon. Você pode criar uma conta de usuário não raiz separada para evitar ameaças em caso de vulnerabilidades de segurança.

Além disso, se o Apache2 e o MySQL estiverem sob as mesmas credenciais do usuário, qualquer problema no processo de serviço de uma vez terá um impacto no outro. Para alterar os privilégios do usuário e do grupo para o servidor da web, vá para /etc /apache2, abra o arquivo EnvArs e defina o usuário e agrupa um novo usuário de conta não privilegiado, digamos, "Apache" e salve o arquivo.

ubuntu@ubuntu ~: $ sudo vim/etc/apache2/Envvars
… Snip…
exportar apache_run_user = apache
exportar apache_run_group = apache
… Snip…

Você também pode usar o seguinte comando para alterar a propriedade do diretório de instalação para o novo usuário sem raiz.

ubuntu@ubuntu ~: $ sudo chown -r apache: apache /etc /apache2
Emitir o seguinte comando para salvar as alterações:
ubuntu@ubuntu ~: $ sudo serviço apache2 reiniciar

Mantenha o Apache atualizado

Apache é famoso por fornecer uma plataforma segura com uma comunidade de desenvolvedores altamente preocupada que raramente enfrenta bugs de segurança. No entanto, é normal descobrir problemas depois que o software é lançado. Portanto, é essencial manter o servidor da web atualizado para aproveitar os recursos de segurança mais recentes. Também é recomendável seguir as listas de anúncios do Apache Server para se manter atualizado sobre novos anúncios, lançamentos e atualizações de segurança da comunidade de desenvolvimento Apache.

Para atualizar seu Apache usando o APT, digite o seguinte:

ubuntu@ubuntu ~: $ sudo apt-get update
ubuntu@ubuntu ~: $ sudo apt-get upgrade

Desative a assinatura do servidor

A configuração padrão de um servidor Apache expõe muitos detalhes sobre o servidor e suas configurações. Por exemplo, as diretivas ativadas do ServerSignature e Servertokens no/etc/apache2/apache2.O arquivo confunhoso adicione um cabeçalho adicional à resposta HTTP que expõe informações potencialmente sensíveis. Essas informações incluem detalhes de configuração do servidor, como versão do servidor e sistema operacional de hospedagem, que podem ajudar o invasor com o processo de reconhecimento. Você pode desativar essas diretrizes editando o Apache2.FILO CONFE VIA VIM/NANO e adicione a seguinte diretiva:

ubuntu@ubuntu ~: $ sudo vim/etc/apache2/apache2.conf
… Snip…
ServerSignature off
… Snip…
Servertokens Prod
… Snip…

Reinicie o Apache para atualizar as alterações.

Desativar listagens de diretórios de servidores

As listagens de diretórios exibem todo o conteúdo salvo na pasta raiz ou subdiretórios. Os arquivos do diretório podem incluir informações confidenciais não destinadas à exibição pública, como scripts PHP, arquivos de configuração, arquivos contendo senhas, logs, etc.
Para proibir listagens de diretórios, altere o arquivo de configuração do Apache Server, editando o Apache2.arquivo conf como:

ubuntu@ubuntu ~: $ sudo vim/etc/apache2/apache2.conf
… Snip…

Opções -Indexes

… Snip…

OU

… Snip…

Opções -Indexes

… Snip…

Você também pode adicionar esta diretiva no .arquivo htaccess do seu diretório principal do site.

Proteger as configurações do sistema

O .O arquivo htaccess é um recurso conveniente e poderoso que permite a configuração fora do Apache2 principal.arquivo conf. No entanto, nos casos em que um usuário pode fazer upload de arquivos para o servidor, isso pode ser explorado por um invasor para fazer upload de seu próprio “.arquivo htaccess ”com configurações maliciosas. Então, se você não estiver usando esse recurso, poderá desativar o .Diretiva Htaccess, eu.e.:

ubuntu@ubuntu ~: $ sudo vim/etc/apache2/apache2.conf
… Snip…
#Accessfilename .htaccess
… Snip…

OU
Desative o .Arquivo HTACCESS, exceto para os diretórios habilitados especificamente, editando Apache2.arquivo conf e revirando a diretiva de allowoverride para nenhuma;

ubuntu@ubuntu ~: $ sudo vim/etc/apache2/apache2.conf
… Snip…

Allowoverride nenhum

… Snip…

Diretórios seguros com autenticação

Você pode criar credenciais de usuário para proteger todos ou alguns dos diretórios usando o utilitário htpasswd. Vá para a pasta do servidor e use o seguinte comando para criar um .arquivo htpasswd para armazenar hashes de senha para as credenciais atribuídas a, digamos, um usuário chamado Dev.

ubuntu@ubuntu ~: $ sudo htpasswd -c/etc/apache2/-htpasswd dev

O comando acima solicitará a nova senha e a confirmação de senha. Você pode ver o gato ./htpasswd arquivo para verificar o hash das credenciais de usuário armazenadas.

Agora, você pode definir automaticamente o arquivo de configuração no diretório Your_Website que você precisa proteger modificando o .arquivo htaccess. Use o seguinte comando e diretrizes para ativar a autenticação:

ubuntu@ubuntu ~: $ sudo nano/var/www/your_website/.htaccess
… Snip…
AuthType Basic
AuthName "Adicione o prompt de diálogo"
Authuserfile/etc/apache2/user_name/domain_name/.htpasswd
Requer usuário válido
… Snip…

Lembre -se de adicionar o caminho conforme o seu.

Execute módulos necessários

A configuração padrão do Apache inclui módulos ativados que você pode nem precisar. Esses módulos pré-instalados abrem portas para problemas de segurança do Apache que já existem ou podem existir no futuro. Para desativar todos esses módulos, primeiro você precisa entender quais módulos são necessários para o funcionamento suave do seu servidor da web. Para esse fim, consulte a documentação do módulo Apache que abrange todos os módulos disponíveis.

Em seguida, use o seguinte comando para descobrir quais módulos estão em execução em seu servidor.

ubuntu@ubuntu ~: $ sudo ls/etc/apache2/mods-habilitado

Apache vem com o poderoso comando A2Dismod para desativar o módulo. Ele evita o carregamento do módulo e solicita um aviso ao desativar o módulo de que a ação pode afetar negativamente seu servidor.

ubuntu@ubuntu ~: $ sudo a2dismod module_name

Você também pode desativar o módulo comentando na linha LoadModule.

Evite loris lentos e ataques do DOS

A instalação padrão de um servidor Apache obriga a aguardar solicitações de clientes por muito tempo, o que sujeita o servidor a desacelerar os ataques de Loris e DOS. O apache2.O arquivo de configuração confious fornece uma diretiva que você pode usar para diminuir o valor do tempo limite para alguns segundos para evitar esses tipos de ataques, i i.e.:

ubuntu@ubuntu ~: $ sudo vim/etc/apache2/apache2.conf
Tempo limite 60

Além disso, o novo Apache Server vem com um módulo útil mod_reqtimeout que fornece uma diretiva requestreadTimeout para proteger o servidor de solicitações ilegítimas. Esta diretiva vem com algumas configurações complicadas, para que você possa ler as informações relacionadas disponíveis na página de documentação.

Desativar solicitações HTTP desnecessárias

As solicitações ilimitadas de HTTP/HTTPS também podem levar ao baixo desempenho do servidor ou a um ataque de DOS. Você pode limitar o recebimento de solicitações HTTP por diretório usando o limiteRequestbody a menos de 100k. Por exemplo, para criar uma diretiva para a pasta/var/www/your_website, você pode adicionar a diretiva LimitRequestbody abaixo de allowaroverride, eu.e.:

… Snip…

Opções -Indexes
Allowoverride tudo
LimitRequestbody 995367

… Snip…

Nota: Lembre -se de reiniciar o Apache após as alterações aplicadas para atualizá -lo de acordo.

Conclusão

A instalação padrão do servidor Apache pode fornecer muitas informações confidenciais para ajudar os invasores em um ataque. Enquanto isso, existem muitas outras maneiras (não listadas acima) para proteger o servidor da Web Apache também. Continue pesquisando e mantendo -se atualizado sobre novas diretivas e módulos para proteger seu servidor ainda.