Apache HTTP

Como proteger seu servidor Apache

Como proteger seu servidor Apache
Apache é um servidor da web popular de código aberto disponível para sistemas Linux e Windows. Ele permite a configuração para uma ampla gama de casos de uso, desde páginas da web em HTML até conteúdo de aplicativo da web dinâmico HyperText Preprocessor (PHP).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 adequadamente para estabelecer um ambiente seguro para seus aplicativos da web.
Neste artigo, você encontrará algumas dicas e truques para fortalecer suas configurações do Apache Web Server e melhorar a segurança geral.

Conta de usuário não privilegiado

O objetivo de uma conta de usuário não root ou sem privilégios é restringir o acesso do usuário desnecessário a certas tarefas dentro de um sistema. No contexto de um servidor 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 de conta daemon. Você pode criar uma conta de usuário não root 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 de usuário, qualquer problema no processo de serviço único terá um impacto no outro. Para alterar os privilégios de usuário e grupo do servidor web, vá para / etc / apache2, abra o arquivo envvars e defina o usuário e o grupo como um novo usuário de conta sem privilégios, digamos, “apache” e salve o arquivo.

ubuntu @ ubuntu ~: $ sudo vim / etc / apache2 / envvars
... recorte ..
export APACHE_RUN_USER = apache
export APACHE_RUN_GROUP = apache
... recorte ..

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

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

Mantenha o Apache atualizado

O Apache é famoso por fornecer uma plataforma segura com uma comunidade de desenvolvedores altamente preocupada que raramente enfrenta qualquer bug 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 é aconselhável seguir as Listas de anúncios do servidor Apache 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 apt, digite o seguinte:

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

Desativar 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 ServerSignature e ServerTokens habilitadas no / etc / apache2 / apache2.arquivo conf adiciona um cabeçalho adicional à resposta HTTP que expõe informações potencialmente confidenciais. 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 no processo de reconhecimento. Você pode desativar essas diretivas editando o apache2.arquivo conf via vim / nano e adicione a seguinte diretiva:

ubuntu @ ubuntu ~: $ sudo vim / etc / apache2 / apache2.conf
... recorte ..
ServerSignature Off
... recorte ..
ServerTokens Prod
... recorte ..

Reinicie o Apache para atualizar as mudanças.

Desativar listagens de diretório de servidor

As listagens do diretório exibem todo o conteúdo salvo na pasta raiz ou subdiretórios. Os arquivos de 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 as listagens de diretório, altere o arquivo de configuração do servidor Apache editando o apache2.arquivo conf como:

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

Opções - Índices

... recorte ..

OU

... recorte ..

Opções - Índices

... recorte ..

Você também pode adicionar esta diretiva no .arquivo htaccess do diretório principal do seu 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 seus próprios “.arquivo htaccess ”com configurações maliciosas. Então, se você não estiver usando esse recurso, você pode desativar o .diretiva htaccess, i.e.:

ubuntu @ ubuntu ~: $ sudo vim / etc / apache2 / apache2.conf
... recorte ..
#AccessFileName .htaccess
... recorte ..

OU
Desative o .arquivo htaccess, exceto para os diretórios especificamente habilitados, editando apache2.arquivo conf e transformando a diretiva AllowOverRide em Nenhum;

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

AllowOverride Nenhum

... recorte ..

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.

[email protegido] ~: $ sudo htpasswd -c / etc / apache2 / -htpasswd dev

O comando acima irá pedir a nova senha e a confirmação da senha. Você pode ver o gato .arquivo / htpasswd 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 diretivas para ativar a autenticação:

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

Lembre-se de adicionar o caminho de acordo com o seu.

Execute os módulos necessários

A configuração padrão do Apache inclui módulos habilitados 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 desabilitar todos esses módulos, você primeiro precisa entender quais módulos são necessários para o bom funcionamento do seu servidor web. Para este propósito, verifique a documentação do módulo apache que cobre todos os módulos disponíveis.

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

[email protegido] ~: $ sudo ls / etc / apache2 / mods-enabled

O Apache vem com o poderoso comando a2dismod para desabilitar o módulo. Isso impede o carregamento do módulo e avisa com um aviso ao desabilitar o módulo que a ação pode impactar negativamente o seu servidor.

[email protegido] ~: $ sudo a2dismod module_name

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

Impedir Slow Loris e ataques DoS

A instalação padrão de um servidor Apache força-o a esperar por solicitações de clientes por muito tempo, o que sujeita o servidor a ataques Slow Loris e DoS. O apache2.O arquivo de configuração conf fornece uma diretiva que você pode usar para diminuir o valor de tempo limite para alguns segundos para evitar esses tipos de ataques, i.e.:

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

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

Desativar solicitações HTTP desnecessárias

Solicitações HTTP / HTTPS ilimitadas também podem levar a um baixo desempenho do servidor ou a um ataque DoS. Você pode limitar o recebimento de solicitações HTTP por diretório usando LimitRequestBody para menos de 100K. Por exemplo, para criar uma diretiva para a pasta / var / www / your_website, você pode adicionar a diretiva LimitRequestBody abaixo de AllowOverride All, i.e.:

... recorte ..

Opções - Índices
AllowOverride All
LimitRequestBody 995367

... recorte ..

Nota: Lembre-se de reiniciar o Apache após as mudanças 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. Nesse ínterim, existem muitas outras maneiras (não listadas acima) para proteger o servidor da web Apache, também. Continue pesquisando e mantendo-se atualizado sobre as novas diretivas e módulos para proteger ainda mais o seu servidor.

Como usar o GameConqueror Cheat Engine no Linux
O artigo cobre um guia sobre como usar o mecanismo de cheat GameConqueror no Linux. Muitos usuários que jogam no Windows costumam usar o aplicativo “C...
Melhores emuladores de console de jogo para Linux
Este artigo irá listar software de emulação de console de jogo popular disponível para Linux. A emulação é uma camada de compatibilidade de software q...
Melhores distros Linux para jogos em 2021
O sistema operacional Linux percorreu um longo caminho desde sua aparência original, simples e baseada em servidor. Este sistema operacional melhorou ...