Pular para o conteúdo principal

Dicas para manter seu ambiente Web seguro

Cada vez mais frequentes, os ataques á sites Web tiram o sono de qualquer Administrador. Abaixo listamos algumas dicas para melhorar a segurança de seu ambiente Web. Serão abordadas dicas para Servidores com Apache e Nginx.

1 – Oculte a versão do software utilizado

Tanto o Apache quanto Nginx, principalmente em suas telas de erro, exibem a informação da versão do software utilizada. Essa informação, aparentemente inofensiva, pode ser útil para o atacante, que pode buscar um ataque “específico” para versão que você está usando.

Para desabilitar no Apache, basta alterar a seguinte opção no arquivo httpd.conf:
ServerSignature Off

Para desabilitar no Nginx, alterar a opção abaixo no nginx.conf:
server_tokens off;

2 – Desabilitar métodos TRACE/TRACK

Esses métodos vem habilitados por padrão no Apache. Para desabilitá-los, basta alterar a opção abaixo no httpd.conf:
TraceEnable off

3 – Utilize “VirtualHosts” e restrinja acesso “direto” ao servidor.

Utilize VirtualHosts mesmo quando tiver apenas um site no servidor. Isso evitará que o site seja “descoberto” por scans na rede.

4 – Sistema de arquivos “somente leitura” para usuário apache/nginx

Dê permissão de escrita somente nos diretórios que forem necessários (pasta de uploads, por exemplo). Neste caso, pode-se retirar permissão de execução para estas pastas.

5 – Utilize Firewall de Aplicação Web sempre que possível.

Um Firewall de Aplicação Web ou WAF (Web Application Firewall), é um filtro onde se aplica um conjunto de regras para uma conexão HTTP. O mais conhecido é o ModSecurity, que pode ser instalado para ser utilizado com Apache (uso no Nginx está em estado “beta”). Para o Nginx, pode-se utilizar o Naxsi.
O uso do WAF não garante por si só a segurança, mas é uma ferramenta importante para a mitigação dos problemas e vulnerabilidades dos softwares/sistemas. 

6 – Restrinja opções “perigosas” do PHP

Algumas funções do PHP podem ser extremamente “perigosas” se não utilizadas adequadamente, e em grande parte das vezes podem ser desabilitadas sem prejuízo nenhum. A opção para desabilitá-las se encontra no arquivo php.ini (normalmente em /etc/php.ini). Segue abaixo algumas:

# Impede ataques de RFI e LFI ( Remote e Local File Inclusion ) . Obs: Atualização automática de softwares (CMS, por exemplo) podem não funcionar sem essa função. Todavia, você pode simplesmente habilita-lá quando for utilizar.
allow_url_fopen = Off

# Impede que mensagens de erros sejam exibidas no browser
display_errors = Off
  
# Impede a execução de caracteres especiais digitados em campos de formulário convertendo-os em barra invertida. Protege contra ataques de SQL injection
magic_quotes_gpc = Off

# Impede o acesso a arquivos remotos através dos parâmetros include ou require, evitando injeção de código malicioso.
allow_url_include = Off

# Impede a exibição das informações sobre o PHP no browser
expose_php = Off

# Impede a execução de strings maliciosas devido as falhas no desenvolvimento da aplicação.
register_globals = Off

# Desabilitar algumas funções “perigosas” do PHP:
disable_functions = show_source, system, shell_exec, passthru, exec, phpinfo, popen, proc_open

Comentários

Postagens mais visitadas deste blog

Tutorial: Consultas LDAP no Active Directory

Hoje será mostrado como fazer Consultas Salvas (Saved queries) e alguns exemplos: 1. No Active Directory Users and Computers, click com o botão direito no item Saved Queries e selecione New e depois Query. 2. Digite o nome para a Query, por exemplo: “Usuários Ativos” e coloque uma descrição e depois clic em Define Query. 3. Na drop-down box Find selecione Custom Search e então click em Advanced tab. 4. Digite uma das Queries e execute. Consultas de Usuarios Usuarios sem grupo (apenas domain users): (&(objectCategory=user)(objectClass=user)(!memberOf=*)) Usuarios sem e-mail (objectcategory=person)(!mail=*) Usuarios com e-mail (objectcategory=person)(mail=*) Usuarios que nunca fizeram logon no dominio (&(&(objectCategory=person)(objectClass=user))(|(lastLogon=0)(!(lastLogon=*)))) Usuários Criados depois de 09/10/2011 (objectCategory=user)(whenCreated>=20111009000000.0Z) Obs: troque o data por uma data da sua necessidade Usuários que precisam mudar a sen...

Usando o CIFS para mapear diretórios Windows no Linux

Usando o CIFS para mapear diretórios Windows no Linux Se você utiliza o samba e está tendo problemas com mapeamentos, não possui Samba no seu servidor Linux ou precisa acessar de forma rápida um diretório Windows pelo Linux, passe a usar o CIFS. Com ele, caso o servidor mapeado sofra um shutdown (Linux mapeando Windows), automaticamente ao se re-estabelecer a conexão com o Servidor, o mapeamento sobe. Neste post estarei tratando a situação onde temos um servidor Linux e desejamos através dele efetuar leituras ou gravações em diretórios no Windows. No Windows Estou adotando como exemplo o servidor com IP 192.168.0.1, dominio TESTE, usuário Administrador e senha 123!456. O objetivo é mapear o diretório D:\Teste no Linux. Então, pelo windows, compartilhe este diretório. No Linux# cd /mnt # mkdir teste # mount –t cifs //192.168.0.1/teste /mnt/teste –o user=Administrador,password=’123!456’,domain=TESTE Pronto!!! Agora você pode compartilhar seus arquivos entre o...

Erro MYSQL Cloud (Google, AWS, Digital Ocean) - Resolvido

Atualmente executando um servidor nginx com o wordpress, recebo um erro no banco de dados após alguns minutos de execução. Ao executar o comando para verificar os logs: # tail -f /var/log/mysqld.log a saída do comando é : 2019-09-12 19:11:24 25864 [Note] Plugin 'FEDERATED' is disabled. 2019-09-12 19:11:24 25864 [Note] InnoDB: Using atomics to ref count buffer pool pages 2019-09-12 19:11:24 25864 [Note] InnoDB: The InnoDB memory heap is disabled 2019-09-12 19:11:24 25864 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins 2019-09-12 19:11:24 25864 [Note] InnoDB: Memory barrier is not used 2019-09-12 19:11:24 25864 [Note] InnoDB: Compressed tables use zlib 1.2.11 2019-09-12 19:11:24 25864 [Note] InnoDB: Using Linux native AIO 2019-09-12 19:11:24 25864 [Note] InnoDB: Using CPU crc32 instructions 2019-09-12 19:11:24 25864 [Note] InnoDB: Initializing buffer pool, size = 128.0M InnoDB: mmap(137363456 bytes) failed; errno 12 2019-09-12 19:11:2...