Guia para proteger um servidor VPS com Linux

Índice

UMA Servidor VPS (Servidor Privado Virtual), É uma partição lógica de um disco rígido por meio de uma máquina virtual, um vps nos dá mais controle sobre o gerenciamento de recursos em comparação com o serviço de servidor compartilhado.

Um VPS é ideal para quem pretende utilizar um servidor profissionalmente mas a um custo inferior ao de um dedicado e também para quem pretende iniciar e fazer testes na administração de servidores, mas não tem a certeza dos aspectos técnicos, o VPS servidor é uma boa opção para começar. Ele pode ser usado para testar ferramentas e habilidades sem gastar muito dinheiro e colocar em risco um servidor de produção.

Podemos criar um VPS como visto no tutorial:

  • Crie um servidor VPS local

Ou use alguns pagamentos, existem muitas empresas que oferecem servidor VPS por mês ou por dia, como o DigitalOcean, para testar configurações em um ambiente real.

O mais importante quando devemos administrar um servidor é decidir quais medidas de segurança adotaremos serão necessárias. Aunque existen muchas medidas y herramientas de seguridad también pueden ser contraproducentes ya que consumen recursos y pueden no dejar funcionar bien algunas aplicaciones por eso debemos ser conscientes de los riesgos, las necesidades para poder decidir sobre el equilibrio entre la facilidad, el rendimiento del servidor y a segurança.

Neste tutorial, irei fornecer uma série de configurações recomendadas para um VPS seguro

Bloqueio de acesso com firewalls
Os firewalls atuam como uma barreira entre o tráfego geral da Internet e o servidor. É importante revisar, filtrar e bloquear o tráfego interno e externo.

Por meio de um conjunto de regras configuradas pelo administrador, um servidor usará apenas portas de rede específicas para serviços autorizados. O resto das portas não foram usadas e devem ser protegidas com segurança por um firewall, para negar todo o tráfego destinado a esses locais.

Para este tutorial, vamos supor que gerenciamos um servidor VPS Linux para adotar medidas de segurança. Para estabelecer regras básicas de firewall, devemos primeiro rastrear quais portas abrimos, para isso usamos o comando:

 ifconfig
Nós determinamos o ip:
 nmap -sT -O 192.168.0.11

Isso permite saber quais portas estão escutando e condicionar o uso de serviços em alguns casos. Configurar bem as regras do nosso firewall é uma boa base para a segurança do servidor e da rede.

Existem muitos firewalls disponíveis, alguns são:

  • Firewall IPCop
  • Segurança e firewall do ConfigServer

O firewall mais usado é o Iptables que já vem com o Linux, mas não possui interface gráfica, a partir da janela do terminal (conectado via SSH) podemos utilizar os seguintes comandos:

Bloqueie um determinado IP de entrada:

 sudo iptables -A INPUT -s 190.160.45.60 -j DROP
Bloqueie um IP de entrada e uma porta por interface de rede ethernet ou rede com fio:
 iptables -A INPUT -i eth0 -s 190.160.45.60 - porta de destino 25 -j DROP
Eu bloqueio um IP de entrada, mas por WiFi:
 iptables -A INPUT -i wlan0 -s 190.160.45.60 -j DROP
Se eu remover o parâmetro -s IP e deixar a porta, então eu bloqueio a porta para qualquer IP

Iptables é a ferramenta usada para gerenciar o firewall netfilter incluído no kernel do Linux. A vantagem do Iptables é que ele passou por auditorias de segurança muito profundas para garantir que funciona e é útil.

Outro aspecto interessante é que podemos criar um script ou uma interface para definir as regras para iptables, embora já existam muitos disponíveis que permitem configurar com conjuntos de regras de uma forma muito flexível.

Use SSH com segurança para administração remota
Quando devemos gerenciar um servidor ao qual não temos acesso local, devemos fazê-lo remotamente. Para isso, o serviço é utilizado por meio de um protocolo denominado SSH, que significa Secure Shell, que permite que o servidor seja totalmente gerenciado por meio de um interpretador de comandos,

O SSH oferece a capacidade de criar e manter um túnel de tráfego entre o computador e o servidor para que uma conexão segura seja estabelecida enquanto o túnel transmite dados por meio de uma conexão criptografada.

Embora o protocolo em si seja muito seguro e tenha sido amplamente analisado e testado, podemos adicionar algumas opções de configuração para torná-lo mais seguro, como mude a porta, pois por padrão a porta de conexão SSH é a porta 22, para isso nos conectamos via SSH e, em seguida, editamos o arquivo:

 / etc / ssh / sshd_config
Nós nos conectamos usando o seguinte comando:
 usuário ssh @ ip

A seguir editamos o arquivo e mudamos a porta para outra ao nosso gosto que não interfira em nenhum serviço, por exemplo 9200:

 nano / etc / ssh / sshd_config

Nós gravamos e nós reiniciamos SSH para que adote a nova configuração, de acordo com a distro linux:

Fedora, Centos

 sbin / service sshd restart
Debian, Ubuntu
 /etc/init.d/sshd restart
Então teremos que acessar novamente, faremos da seguinte forma:
 usuário ssh @ ip -p 9200
Então, bloqueamos a porta 22 desta forma, eles não serão capazes de nos escanear e tentar um ataque de força bruta.
 iptables -A SAÍDA -p tcp --dport 22 -j DROP
Instale um IPS ou sistema de prevenção de intrusão
Um sistema de prevenção de intrusão é um software que permite monitorar e controlar o acesso em uma rede de computadores para proteger recursos ou um servidor de ataques e intrusões. A tecnologia de prevenção de intrusão é um complemento vital para um sistema de detecção de intrusão (IDS), enquanto um IPS funciona como um firewall enquanto um IDS analisa que tipo de tráfego está circulando na rede, mas também verifica o conteúdo e o que esse conteúdo faz.

Um exemplo é o Fail2Ban, é um aplicativo desenvolvido em Python para prevenção de intrusões, é um IPS, que atua automaticamente analisando e bloqueando conexões remotas que tentam acesso de força bruta.

O Fail2ban não só usa seu próprio log de tentativas de acesso, mas também usa logs de outro software como o iptables, que especifica as regras para poder aplicar um bloqueio.

Você pode usar regras criadas pelo administrador ou criar novas de acordo com sua própria configuração, por exemplo, bloquear um IP que não conseguiu acessar 3 vezes.

Podemos de uma janela SSH ou baixá-lo de seu site oficial, se vier nos repositórios de nossa distro nós o instalamos.

 apt-get install fail2ban
Então, nós o configuramos editando o seguinte arquivo:
 nano /etc/fail2ban/jail.conf

Aqui nós editamos alguns dos parâmetros mais importantes

  • ignoreip: ip que nunca será bloqueado.
  • bantime: tempo em segundos que o bloqueio de IP vai durar.
  • maxretry: número máximo de tentativas de acesso malsucedidas antes de ser bloqueado.

Em seguida, podemos criar filtros para diferentes aplicativos que podemos encontrar no diretório:

 cd /etc/fail2ban/filter.d

Este sistema de prevenção de intrusão nos permitirá mitigar muitos ataques e, assim, aumentar a segurança geral de nossa configuração VPS.

Fail2ban é um serviço que monitora os arquivos de log a fim de determinar se um acesso é um usuário legítimo e se não para bloquear temporariamente o tráfego do endereço IP associado ao usuário que pretende acessar alguns serviços, seja ftp, ssh, e-mail, web, etc.

Esta é uma maneira fácil de bloquear métodos de força bruta automaticamente, pois bloqueá-los fará com que o ataque pare de funcionar pelo tempo que indicamos. Isso geralmente é suficiente para desencorajar novas tentativas de força bruta.

Implementar um sistema de detecção de intrusão ou IDS
Um sistema de detecção de intrusão, ou IDS, é o complemento obrigatório para um sistema de prevenção de intrusão. Um IDS detecta modificações em arquivos ou registros executando comparações Contra esses estados registrados anteriormente para saber se os arquivos foram alterados ou qualquer configuração foi modificada e para registrar qual usuário fez isso.

Existem muitos IDS como o Snort, que vimos no tutorial:

  • Ferramentas de prevenção e segurança de hackers
Meerkat que vimos no tutorial:
  • Sistema de detecção de intrusos Suricata
Tripwire que vimos no tutorial:
  • Fortalecimento da segurança de servidores e sistemas operacionais.

Essas ferramentas usam um banco de dados de arquivos do sistema e protegem os arquivos de configuração. Ao configurar regras e exceções, você define quais arquivos proteger e o que deve ser relatado, para que, ao iniciar o monitoramento do sistema, você possa revisar as execuções e qualquer modificação dos arquivos monitorados.

Todas as ferramentas podem ser configuradas para verificar automaticamente com o cronjob de vez em quando e até mesmo implementar notificações por e-mail em caso de atividade incomum.

Se pegarmos o Snort por exemplo, nós o instalaremos a partir dos repositórios:

 apt-get install snort

Em seguida, vamos para o diretório onde estão os arquivos de regras:

 cd / etc / snort / rules

Por exemplo, vamos olhar para o arquivo mysql.rules

 nano mysql.rules
Onde vemos especificado que qualquer acesso de usuário externo ou root ao serviço MySQL deve ser informado.

Outro exemplo é, por exemplo, monitorar programas de chat tanto do servidor quanto de um computador da rede ou de um computador externo que usa nosso servidor.

 nano chat.rules 

Também podemos configurar cada arquivo de regras para detectar downloads de um navegador ou acesso a um serviço, modificação de um arquivo ou uma página da web específica.

Suricata é mais moderno do que Snort e Tripwire, pois funciona como um mecanismo sniffer para analisar o tráfego de entrada e saída de um sistema de rede. No entanto, é um recurso intensivo para analisar e detectar intrusões desempenhando uma função dupla como IDS e IPS.

Ele também possui plug-ins para atribuir regras e analisar muitos aplicativos e programas. Suricata funciona em todas as camadas do modelo OSI.

Verifique a existência de vírus e malware com Linux Malware Detect ou ClamAV
Embora o Linux seja menos sujeito a esses tipos de ataques, ele não está imune a softwares mal-intencionados. As ferramentas de um sistema de segurança, em conjunto com a implementação de um IPS e um IDS para detectar tentativas de intrusão, requerem software capaz de pesquisar e detectar malware para identificar rastros de atividade que indiquem que existe algum software perigoso instalado no sistema.

No tutorial Linux Malware Detect (LMD) para proteger o Linux, foi explicada a instalação e o uso desta ferramenta para detectar malware, não perca.

Existem vários scanners de malware disponíveis para sistemas Linux que podem ser usados ​​para validar periodicamente a integridade dos servidores. O Linux Malware Detect, também conhecido como maldet ou LCD, é uma opção popular que pode ser instalada e configurada para verificar assinaturas de malware conhecidas com base em seu banco de dados.

Ele pode ser executado manualmente para verificações únicas e também pode ser executado através do cronjob para executar verificações e pesquisas preventivas regulares, especialmente para verificar e-mails e arquivos que podem ser carregados por ftp no servidor. Os relatórios dessas varreduras podem ser enviados por e-mail aos administradores do servidor.

Gostou e ajudou este tutorial?Você pode recompensar o autor pressionando este botão para dar a ele um ponto positivo
wave wave wave wave wave