Postado Julho 29, 2015 9 anos Diretor Se por acaso você tiver um servidor web confira aqui 10 dicas para deixar seu servidor mais seguro. 1. Desative módulos desnecessários Se você está instalando o apache pelo seu código fonte você deve desativar alguns módulos. Se você usar o ./configure —help você verá todos os módulos que podem ser ativados ou desativados. Antes de desativar confira se não vai necessitar de um desses módulosOs principais são:userdir – Mapeamento de diretórios específicos de usuáriosautoindex – Lista os diretórios quando o index.html não estiver presentestatus - Mostra o status do servidorenv - Limpar e configurar variáveis de ambientesetenvif - Colocar variáveis de ambiente nos cabeçalhoscgi - Scripts CGIactions - Ações disparadas em certas requisiçõesnegotiation - Negociação de conteúdoalias - Mapeamento de requisições para diferentes sistemas de arquivosinclude - Declarações server sidefilter - Filtro de requisiçõesversão - Manipulação de informações de versão e arquivos confas-is - arquivos as-is Desabilite isso tudo na hora do comando ./configure, conforme exemplo: Se você habilitar o ssl, terá de habilitar o mod_setenv, se não receberá o erro: Após a instalação, você pode ver o que está instalado com o comando httpd -l: Neste caso, temos os seguintes módulos instalados:core.c – Módulos principais do apachemod_auth* – Módulos para autenticaçãomod_log_config.c – Módulo para tratamento de logsmod_ssl.c – Para SSLprefork.c – Para MPMhttpd_core.c – Módulos principais do apachemod_mime.c – Configurações do MIMEmod_dir.c – Módulo para redirecionamentos de diretórios para a index.htmlmod_so.c – Para iniciar módulos no início e reinício 2. Rode o apache em um usuário e grupo separado do resto Por padrão, o apache roda como nobody ou daemon. É bom rodar o apache com seu próprio usuário sem privilégios. Por exemplo um usuário chamado apache. Vamos então criar o usuário e o grupo e configurar para ser o padrão do apache Após isso, reinicie o apache, e com o comando ps -ef você verá que o apache está rodando no usuário apache. vi httpd.conf User apache Group apache groupadd apache useradd -d /usr/local/apache2/htdocs -g apache -s /bin/false apache 3. Restrinja o acesso aos diretórios (com deny, allow) Para isso, defina isso no arquivo httpd.conf: Isto quer dizer:Options None – Marcando isto como None vai evitar que alguma opção a mais seja habilitadaOrder deny,allow – Isso é como as ações deveram ser seguidas. Usando deny,allow, todas as funções deny serão executadas por primeiro.Deny from all – Isso remove o acesso a todos dos diretórios raiz. Como não tem nenhuma opção allow todos permanecem sem acesso a raiz. 4. Defina permissões apropriadas para os diretórios conf e bin Estes diretórios devem ser acessados apenas por usuários autorizados. É uma boa idéia criar um grupo e adicionar todos os usuários que devem acessar e bloquear para todo o resto. Vamos chamar esse grupo de apacheadmin. 5. Remova navegação por diretórios Se você não fizer isso, todos os usuários poderão ver todos os arquivos e diretórios, desde a raiz. Para isso apenas precisamos colocar o None ou -Indexes como parâmetro nos arquivos de configuração: ou 6. Não libere o .htaccess Options -Indexes Order allow,deny Allow from all Usando o .htaccess dentro de um diretório, os usuários podem reescrever todas as diretivas do apache. Em algumas situações isso é bom, mas este arquivo deve ser evitado. Precisamos usar a opção "AllowOverride None" para remover o .htaccess: 7. Desabilite outras opções Segue algumas outras opções:Options All – Todas as opções são habilitadas (exceto MultiViews). Se você não especificar nada, este é o estado padrão.Options ExecCGI – Executa os scripts CGI (uses mod_cgi)Options FollowSymLinks – Se você tiver links simbólicos eles serão seguidosOptions Includes – Permite includes server side (usando mod_include)Options IncludesNOEXEC – Permite includes server side sem a possibilidade de rodar comandos ou scriptsOptions Indexes – Remove a listagem de diretóriosOptions MultiViews - Permite content negotiated multiviews (usando mod_negotiation)Options SymLinksIfOwnerMatch – Similar ao FollowSymLinks. Mas, apenas se o dono do link e do diretório que aponta são os mesmos Nunca especifique ‘Options All’. Sempre use uma ou mais das opções acima (você pode usar várias em conjunto). Veja alguns exemplos: 8. Remova os módulos DSO desnecessários Options -Includes +FollowSymLink AllowOverride None Order allow,deny Allow from all Se você carregou algum módulo dinâmico compartilhado no apache, ele estará presente dentro do httpd.conf dentro de "LoadModule". Comente todas as linhas desnecessárias. 9. Remova o acesso a uma rede específica Se você quer que seu site seja visto apenas por um range de ip específico ou por uma rede use o seguinte: Options NoneOptions None 10. Não mostre e nem envie informações com a versão do apache Por padrão, um servidor HTTP responde nos cabeçalhos a versão do apache e do php. Isso a princípio é inofensivo, mas se pudermos remover essa informação de um possível atacante podemos melhorar nossa segurança.AllowOverride None Order deny,allow Deny from all Allow from 10.10.1.21 ou AllowOverride None Order deny,allow Deny from all Allow from 10.10.0.0/24 vi httpd.conf ServerTokens Prod Segue abaixo alguns possíveis valores: ServerTokens Prod displays “Server: Apache” ServerTokens Major displays “Server: Apache/2″ ServerTokens Minor displays “Server: Apache/2.2″ ServerTokens Min displays “Server: Apache/2.2.17″ ServerTokens OS displays “Server: Apache/2.2.17 (Unix)” ServerTokens Full displays “Server: Apache/2.2.17 (Unix) PHP/5.3.5″ (Se você não especificar nenhum ServerTokens este será o valor padrão) Créditos: há Brutal Security testei em xampp httpd.conf deixa assim essas linhas # Fancy directory listings ##Include "conf/extra/httpd-autoindex.conf" #LoadModule autoindex_module modules/mod_autoindex.so agora seu site não vai listar muito bom ai é só configurar avisos de erro do apache. Editado Julho 29, 2015 9 anos por alexxxxxxx (veja o histórico de edições) Eu sou um entusiasta da programação apaixonado por ajudar a comunidade open source a crescer. Sempre em busca de novos desafios e oportunidades para contribuir com meu código. #OpenSource #Programação #Contribuição
Postado Julho 30, 2015 9 anos Tópico aprovado e movido a área correta, obrigado por compartilhar. Você recebeu um REP pela contribuição. ➥ Regras | Seções OTServ | Seções BOT
Postado Julho 30, 2015 9 anos ótimo tutorial, porém para quem não entende, tá bem vago de como fazer as modificações, achar arquivos etc.
Postado Julho 31, 2015 9 anos Autor Diretor se um cara sabe instalar 1 apache e um site e deixar online tbm sabe configurar... tantos tutoriais por qui pra ensinando a instalar sites hehe é noix qualquer dúvida tamo ai! obrigado por aprovarem esse tópico pois isso realmente funciona e são as dicas mais existente pra um web server seguro! tanto linux e tanto windows! Eu sou um entusiasta da programação apaixonado por ajudar a comunidade open source a crescer. Sempre em busca de novos desafios e oportunidades para contribuir com meu código. #OpenSource #Programação #Contribuição
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.