Como bloquear ataques de força bruta ssh usando sshguard

Como bloquear ataques de força bruta ssh usando sshguard

Sshguard é um daemon de código aberto que protege os anfitriões de ataques de força bruta. Ele realiza isso através do monitoramento e agregação de registros do sistema, detectando ataques e bloqueando os atacantes usando um dos back -ends do firewall do Linux: iptables, Firewalld, pf, e IPFW.

Inicialmente projetado para fornecer uma camada extra de proteção para o serviço OpenSSH, Sshguard também protege uma ampla gama de serviços, como Vsftpd e Postfix. Ele reconhece vários formatos de log, incluindo syslog, syslog-ng e arquivos de log bruto.

[Você também pode gostar: como proteger e endurecer o servidor OpenSsh]

Sshguard é bastante parecido com Fail2ban apenas que está escrito em C (Fail2ban está escrito em Pitão), é mais leve e fornece menos recursos.

Neste guia, demonstraremos como você pode instalar e configurar Sshguard bloquear Ssh ataques de força bruta em seu servidor Linux.

Etapa 1: Instale SshGuard no Linux

Começamos com a instalação de Sshguard no Linux.

Instale Sshguard no Debian/Ubuntu

Primeiro, atualize as listas de pacotes e depois instale Sshguard A partir dos repositórios padrão usando o gerente de pacote APT.

$ sudo apt update $ sudo apt install sshguard 

Uma vez instalado, o Sshguard O serviço começa automaticamente e você pode verificar isso usando o comando:

$ sudo systemctl status sshguard 
Verifique Sshguard no Ubuntu

Instale o SSHGUARD nos sistemas RHEL

Para distribuições baseadas em RHEL, como CENTOS, Rochoso, e Almalinux, Comece instalando o EPEL repositório conforme previsto no comando abaixo.

$ sudo dnf install https: // dl.FedoraProject.org/pub/epel/epel-latest-8.Noarch.RPM ou $ SUDO DNF Instale o lançamento de Epel 

Com EPEL no lugar, vá em frente e instale Sshguard Usando o gerenciador de pacotes DNF.

$ sudo dnf install sshguard 

Uma vez instalado, inicie e defina Sshguard Para começar na inicialização do sistema ou reiniciar.

$ sudo systemctl start sshguard $ sudo systemctl atable sshguard 

Certifique -se de verificar isso Sshguard está funcionando como esperado.

$ sudo systemctl status sshguard 
Verifique SshGuard em Rhel

Etapa 2: Configuração do SSHGUARD no Linux

Sshguard monitora ativamente o /var/log/auth.registro, /var/log/seguro Systemd Journal e syslog-ng Arquivos de log para tentativas de login com falha.

Para cada tentativa de login malsucedida, o host remoto é proibido por um período limitado de tempo que, por padrão, é definido em 120 segundos. Depois disso, o tempo de proibição aumenta em um fator de 1.5 com cada tentativa de login sucessiva falhada.

O tempo que os hosts ofensivos são proibidos, além de outros parâmetros, é especificado no sshguard.conf arquivo. Você pode acessar o arquivo de configuração usando o editor Vim, conforme mostrado.

$ sudo vim/etc/sshguard/sshguard.conf 

Nas distribuições baseadas em RHEL, o arquivo de configuração está localizado no caminho a seguir.

$ sudo vim /etc /sshguard.conf 

Aqui está uma amostra do arquivo de configuração quando visualizado de Ubuntu / Debian.

Arquivo de configuração SSHGuard

Vamos nos concentrar na opção principal.

  • O PROCESSO INTERNO A diretiva aponta para o caminho completo do executável back -end. Neste exemplo, vemos que Iptables é definido como o back -end de firewall padrão.
  • O LIMITE A diretiva bloqueia os invasores quando sua pontuação de ataque excede o valor especificado.
  • O Block_time Opção é o número de segundos em que um invasor está bloqueado após cada tentativa sucessiva de login com falha. Por padrão, isso é definido como 120 após a primeira tentativa. Isso aumenta com cada tentativa sucessiva de login com falha.
  • O TEMPO DE DETECÇÃO a opção refere -se ao tempo em segundos durante os quais o invasor é registrado ou lembrado pelo sistema antes de sua pontuação ser redefinida.
  • O Whitelist_file Opção aponta para o caminho completo do arquivo da lista de permissões que contém hosts que não deveriam estar na lista negra./li>

Etapa 3: Configure o SSHGUARD para bloquear ataques de força bruta SSH

Para afastar força bruta Ataques, você precisa configurar os seguintes firewalls para trabalhar sshguard.

Bloqueie ataques SSH usando UFW

Se você instalou o UFW e ativado em seu Ubuntu / Debian sistema, modifique o /etc/ufw/antes.regras arquivo.

$ sudo vim etc/ufw/antes.regras 

Adicione as seguintes linhas logo após o Permitir tudo em loopback seção.

# Permitir tudo no loopback -a ufw -se para inputa -i lo -j Aceitar -a ufw -before -safput -o lo -j Aceitar # Hand off Control para sshd para sshguard: sshguard -[0: 0] -a ufw -Efore -Input -p TCP - -Dport 22 -J SshGuard 

Salve o arquivo e reinicie o UFW.

$ sudo systemctl reiniciar ufw 

Agora tente fazer login no servidor de um sistema diferente com as credenciais erradas e observe que você será bloqueado por 120 segundos após a primeira tentativa de login fracassada.

Você pode verificar isso verificando o Auth.registro arquivo de log.

$ sudo cauda -f/var/log/auth.registro 
Verifique os ataques de força bruta ssh

Após a próxima tentativa de log com falha, o tempo de bloco aumenta para 240 segundos, então 480 segundos, então 960 segundos e assim por diante.

Bloquear ataques SSH usando firewalld

Se você estiver executando o firewalld, verifique se ele está configurado e ativado. Em seguida, execute o seguinte comando para ativar sshguard Na sua zona preferida.

$ sudo firewall-cmd --permanent-zone = public --add-rich-rule = "regra fonte ipset = sshguard4 gota" 

Para aplicar as mudanças, recarregue Firewalld e sshguard.

$ sudo firewall-cmd--reload $ sudo systemctl reiniciar sshguard 

Em seguida, verifique a regra da seguinte maneira:

$ sudo firewall-cmd--info-ipset = sshguard4 
Verifique SshGuard no firewalld

Bloqueie ataques SSH usando iptables

Se você ainda está usando Iptables, Primeiro, crie uma nova regra de cadeia para sshguard em Iptables Para começar a bloquear os bandidos.

# iptables -n sshguard 

Em seguida, atualize o ENTRADA cadeia para direcionar o tráfego para sshguard e bloquear todo o tráfego de festas nefastas.

# iptables -a input -j sshguard 

Para bloquear portas específicas, como Ssh, Pop, e IMAP dos agressores executam o comando:

# iptables -a input -m multiport -p tcp -destinação -ports 22.110.143 -j sshguard 

E, finalmente, salve a regra para que as mudanças entrem em vigor.

# iptables-save>/etc/iptables/iptables.regras 

Etapa 4: Como fazer a Whitelist SSH bloqueou hosts

Para a lista de permissões de um host bloqueado, basta especificar seu nome de host ou endereço IP no arquivo da lista de permissões que está localizado em:

/etc/sshguard/whitelist - Ubuntu/Debian /etc/sshguard.Lista de permissões - Distrões baseados em Rhel 

Depois disso, certifique -se de reiniciar o sshguard Daemon e o back -end do firewall para que as mudanças se apliquem.

Neste guia, demonstramos como você pode bloquear Ssh Ataques de força bruta usando Sshguard Daemon em servidores Linux. Seu feedback é bem -vindo.