![Como gerenciar suas fotos no iPhone](/f/2a5fe958a56101cdac9f044f5f9a1a02.png?width=100&height=100)
Todos nós estamos muito familiarizados com Apache servidor da web, é um servidor da web muito popular para hospedar seus arquivos da web ou seu site na web. Aqui estão alguns links que podem ajudá-lo a configurar o servidor web Apache em sua máquina Linux.
Aqui neste tutorial, vou cobrir algumas dicas principais para proteger seu servidor da web. Antes de aplicar essas mudanças em seu servidor web, você deve ter alguns fundamentos do servidor Apache.
Quando você instala Apache com fonte ou qualquer outro instalador de pacote como yum, ele exibe o versão do seu Apache servidor da web instalado em seu servidor com o Nome do sistema operacional do seu servidor em Erros. Ele também mostra as informações sobre Módulos Apache instalados em seu servidor.
Na foto acima, você pode ver que Apache está mostrando seu versão com o SO instalado em seu servidor. Isso pode ser uma grande ameaça à segurança do seu servidor web, bem como da sua máquina Linux. Prevenir Apache para não exibir essas informações para o mundo, precisamos fazer algumas mudanças no arquivo de configuração principal do Apache.
Abra o arquivo de configuração com o editor vim e pesquise “ServerSignature“, É por padrão Ligado. Nós precisamos Desligado esta assinatura do servidor e a segunda linha “ServerTokens Prod”Diz ao Apache para retornar apenas o Apache como produto no cabeçalho de resposta do servidor em cada solicitação de página, suprime o sistema operacional, informações de versão principal e secundária.
# vim /etc/httpd/conf/httpd.conf (RHEL / CentOS / Fedora) # vim /etc/apache2/apache2.conf (Debian / Ubuntu)
ServerSignature Off. ServerTokens Prod
# service httpd restart (RHEL / CentOS / Fedora) # service apache2 restart (Debian / Ubuntu)
Por padrão, o Apache lista todos os contente do diretório raiz do documento na ausência de arquivo de índice. Por favor, veja a imagem abaixo.
Pudermos desligar lista de diretórios usando Diretiva de opções no arquivo de configuração de um diretório específico. Para isso, precisamos fazer uma entrada em httpd.conf ou apache2.conf Arquivo.
Opções -Indexes.
A comunidade de desenvolvedores Apache está trabalhando continuamente em problemas de segurança e liberando seu versão atualizada com novo opções de segurança. Portanto, é sempre recomendável usar o última versão do Apache como seu servidor web.
Checar Versão Apache: Você pode verificar sua versão atual com httpd -v comando.
# httpd -v. Versão do servidor: Apache / 2.2.15 (Unix) Servidor construído: 13 de agosto de 2013 17:29:28
Você pode atualizar sua versão com o seguinte comando.
# yum update httpd. # apt-get install apache2
Também é recomendado manter seu Núcleo e SO atualizado para as versões estáveis mais recentes se você não estiver executando nenhum aplicativo específico que funcione apenas em um sistema operacional ou kernel específico.
É sempre bom minimizar as chances de ser vítima de qualquer ataque na web. Portanto, é recomendado desativar todos aqueles módulos que não estão em uso atualmente. Você pode listar todos os módulos compilados do servidor web, usando o seguinte comando.
# grep LoadModule /etc/httpd/conf/httpd.conf # tem que colocar as linhas `LoadModule 'correspondentes neste local para que o. # LoadModule foo_module modules / mod_foo.so. LoadModule auth_basic_module modules / mod_auth_basic.so. LoadModule auth_digest_module modules / mod_auth_digest.so. LoadModule authn_file_module modules / mod_authn_file.so. LoadModule authn_alias_module modules / mod_authn_alias.so. LoadModule authn_anon_module modules / mod_authn_anon.so. LoadModule authn_dbm_module modules / mod_authn_dbm.so. LoadModule authn_default_module modules / mod_authn_default.so. LoadModule authz_host_module modules / mod_authz_host.so. LoadModule authz_user_module modules / mod_authz_user.so. LoadModule authz_owner_module modules / mod_authz_owner.so. LoadModule authz_groupfile_module modules / mod_authz_groupfile.so. LoadModule authz_dbm_module modules / mod_authz_dbm.so. LoadModule authz_default_module modules / mod_authz_default.so. LoadModule ldap_module modules / mod_ldap.so. LoadModule authnz_ldap_module modules / mod_authnz_ldap.so. LoadModule include_module modules / mod_include.so. LoadModule log_config_module modules / mod_log_config.so. LoadModule logio_module modules / mod_logio.so. LoadModule env_module modules / mod_env.so. LoadModule ext_filter_module modules / mod_ext_filter.so. ...
Acima está a lista de módulos que são ativados por padrão, mas muitas vezes não são necessários: mod_imap, mod_include, mod_info, mod_userdir, mod_autoindex. Para desativar o módulo específico, você pode inserir um “#”No início dessa linha e reinicie o serviço.
Com uma instalação padrão Apache executa seu processo com o usuário ninguém ou demônio. Por razões de segurança, é recomendado executar Apache em seu próprio não privilegiado conta. Por exemplo: http-web.
# groupadd http-web. # useradd -d / var / www / -g http-web -s / bin / nologin http-web
Agora você precisa contar Apache para executar com este novo usuário e para fazer isso, precisamos fazer uma entrada em /etc/httpd/conf/httpd.conf e reinicie o serviço.
Aberto /etc/httpd/conf/httpd.conf com o editor vim e pesquise a palavra-chave “Do utilizador" e "Grupo”E aí você precisará especificar o nome do usuário e nome do grupo usar.
Usuário http-web. Grupo http-web
Podemos restringir o acesso aos diretórios com “Permitir" e "Negar”Opções em httpd.conf Arquivo. Aqui, neste exemplo, estaremos protegendo diretório raiz, para isso, definindo o seguinte no httpd.conf Arquivo.
Opções Nenhum Negar ordem, permitir Negar de todos.
Esses dois módulos “mod_security" e "mod_evasive”São módulos muito populares do Apache em termos de segurança.
Onde mod_security funciona como um firewall para nossos aplicativos da web e nos permite monitorar o tráfego em tempo real. Também nos ajuda a proteger nossos sites ou servidor da web de ataques de força bruta. Você pode simplesmente instalar mod_security em seu servidor com a ajuda de seus instaladores de pacote padrão.
$ sudo apt-get install libapache2-modsecurity. $ sudo a2enmod mod-security. $ sudo /etc/init.d/apache2 force-reload
# yum install mod_security. # /etc/init.d/httpd restart
mod_evasive funciona de forma muito eficiente, é preciso apenas uma solicitação para processá-la e processá-la muito bem. Previne Ataques DDOS de fazer tanto dano. Este recurso de mod_evasive permite que ele lide com o Força bruta HTTP e Dos ou DDos ataque. Este módulo detecta ataques com três métodos.
mod_evasive pode ser instalado diretamente da fonte. Aqui, temos um guia de instalação e configuração desses módulos que o ajudará a configurar esses módulos Apache em sua caixa Linux.
Por padrão Apache segue links simbólicos, pudermos desligar este recurso com FollowSymLinks com Diretiva de opções. E para fazer isso, precisamos fazer a seguinte entrada no arquivo de configuração principal.
Opções -FollowSymLinks
E, se houver algum do utilizador ou local na rede Internet precisar FollowSymLinks habilitar, podemos simplesmente escrever uma regra em “.htaccess”Arquivo desse site.
# Habilite links simbólicos. Opções + FollowSymLinks
Observação: Para habilitar regras de reescrita dentro de “.htaccess" Arquivo "AllowOverride All”Deve estar presente na configuração principal globalmente.
Pudermos desligar lado do servidor inclui (mod_include) e CGI execução se não for necessário e para fazer isso precisamos modificar o arquivo de configuração principal.
Opções -Inclui. Opções -ExecCGI
Podemos fazer isso para um diretório específico também com a tag Directory. Aqui neste exemplo, estamos desligando Inclui e execuções de arquivo Cgi para “/var/www/html/web1”Diretório.
Opções -Inclui -ExecCGI.
Aqui estão alguns outros valores com pode ser ligadas ou desligado com a diretiva de opções.
Por padrão Apache não tem limite para o tamanho total da solicitação HTTP, ou seja, ilimitada e quando você permite grandes solicitações em um servidor da web, é possível que você seja vítima de Ataques de negação de serviço. Podemos limitar o tamanho das solicitações de uma diretiva Apache “LimitRequestBody”Com a tag do diretório.
Você pode definir o valor em bytes de 0 (ilimitado) para 2147483647 (2GB) que são permitidos em um corpo de solicitação. Você pode definir esse limite de acordo com as necessidades do seu site. Suponha que você tenha um site onde permite uploads e deseja limitar o tamanho do upload para um diretório específico.
Aqui neste exemplo, user_uploads é um diretório que contém arquivos carregados por usuários. Estamos colocando um limite de 500K por esta.
LimitRequestBody 512000.
Bem, é verdade que você não pode proteger completamente o seu site de Ataques DDos. Aqui estão algumas diretrizes que podem ajudá-lo a ter um controle sobre isso.
Apache permite que você registre independentemente de seu Log de sistema operacional. É aconselhável habilitar o registro do Apache, porque ele fornece mais informações, como os comandos inseridos por usuários que interagiram com seu servidor web.
Para fazer isso, você precisa incluir o mod_log_config módulo. Existem três diretivas principais relacionadas ao registro disponíveis com o Apache.
Você também pode usá-los para um site específico se estiver fazendo Hospedagem virtual e para isso você precisa especificá-lo na seção de host virtual. Por exemplo, aqui está a configuração do host virtual do meu site com registro ativado.
DocumentRoot /var/www/html/example.com/ Nome do servidor www.example.com. DirectoryIndex index.htm index.html index.php. ServerAlias example.com. ErrorDocument 404 /story.php. ErrorLog/var/log/httpd/example.com_error_log CustomLog /var/log/httpd/example.com_access_log combinado
Por último mas não menos importante Certificados SSL, você pode proteger todas as suas comunicações de maneira criptografada pela Internet com o certificado SSL. Suponha que você tenha um site no qual as pessoas fazem login provando suas credenciais de login ou você tem um site de comércio eletrônico onde as pessoas fornecem seus detalhes bancários ou Débito/Crédito detalhes do cartão para comprar produtos, por padrão, o seu servidor web envia esses detalhes em formato de texto simples, mas quando você usa Certificados SSL para seus sites, Apache envia todas essas informações em texto criptografado.
Você pode comprar certificados SSl de tantos provedores SSL diferentes, como namecheap.com. Se você dirige um pequeno negócio na web e não deseja comprar um certificado SSL você ainda pode atribuir um Certificado autoassinado para o seu site. Apache usa o mod_ssl módulo para apoiar Certificado SSL.
# openssl genrsa -des3 -out example.com.key 1024. # openssl req -new -key example.com.key -out exmaple.csr. # openssl x509 -req -days 365 -em example.com.com.csr -signkey example.com.com.key -out example.com.com.crt
Assim que seu certificado for criado e assinado. Agora você precisa adicionar isso na configuração do Apache. Abra o arquivo de configuração principal com o editor vim, adicione as seguintes linhas e reinicie o serviço.
SSLEngine em SSLCertificateFile /etc/pki/tls/certs/example.com.crt SSLCertificateKeyFile /etc/pki/tls/certs/example.com.key SSLCertificateChainFile /etc/pki/tls/certs/sf_bundle.crt ServerAdmin [email protegido] ServerName example.com DocumentRoot / var / www / html / example / ErrorLog /var/log/httpd/example.com-error_log CustomLog /var/log/httpd/example.com-access_log common.
Abra seu navegador, digite https://example.com, e você será capaz de ver o novo certificado autoassinado.
Estas são algumas dicas de segurança que você pode usar para proteja seu servidor da web Apache instalação. Para obter mais dicas e ideias úteis de segurança, consulte a documentação online oficial do Servidor Apache HTTP.