Ir para conteúdo

Featured Replies

Postado
  • Diretor
Se por acaso você tiver um servidor web confira aqui 10 dicas para deixar seu servidor mais seguro.

serverSec.jpg
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ários
autoindex – Lista os diretórios quando o index.html não estiver presente
status - Mostra o status do servidor
env - Limpar e configurar variáveis de ambiente
setenvif - Colocar variáveis de ambiente nos cabeçalhos
cgi - Scripts CGI
actions - Ações disparadas em certas requisições
negotiation - Negociação de conteúdo
alias - Mapeamento de requisições para diferentes sistemas de arquivos
include - Declarações server side
filter - Filtro de requisições
versão - Manipulação de informações de versão e arquivos conf
as-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 apache
mod_auth* – Módulos para autenticação
mod_log_config.c – Módulo para tratamento de logs
mod_ssl.c – Para SSL
prefork.c – Para MPM
httpd_core.c – Módulos principais do apache
mod_mime.c – Configurações do MIME
mod_dir.c – Módulo para redirecionamentos de diretórios para a index.html
mod_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 habilitada
Order 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 seguidos
Options Includes – Permite includes server side (usando mod_include)
Options IncludesNOEXEC – Permite includes server side sem a possibilidade de rodar comandos ou scripts
Options Indexes – Remove a listagem de diretórios
Options 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.

 

post-76262-0-79775000-1438140572_thumb.j

 

post-76262-0-41040200-1438140597_thumb.j

Editado por alexxxxxxx (veja o histórico de edições)

 

20230912_034613.png.cf49b650c34dd7d7b1f79bd49c70f53c.png

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
  • 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!

 

20230912_034613.png.cf49b650c34dd7d7b1f79bd49c70f53c.png

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.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo