Como proteger SSH com fail2ban no CentOS

Índice

Os servidores não existem isoladamente e muitos são instalados e personalizados apenas com a configuração SSH mais básica, podendo ser vulneráveis ​​a ataques de força bruta.
A ferramenta fail2ban fornece uma maneira de proteger automaticamente o servidor de ataques suspeitos e software malicioso.
O programa funciona verificando os arquivos de log e ajuda a reagir a ações como tentativas de conexão malsucedidas repetidas.
Começaremos instalando fail2ban
Como fail2ban não está disponível no CentOS, devemos começar baixando o repositório:
rpm- Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

Em seguida, instalamos fail2ban a partir da linha de comando com o seguinte comando
yum install fail2ban

Copiamos o arquivo de configuração
O arquivo de configuração fail2ban padrão está localizado em /etc/fail2ban/jail.conf. O trabalho de configuração não deve ser feito nesse arquivo, no entanto, e uma cópia local dele deve ser feita em vez disso, para backup.
cp / etc / fail2ban / jail.conf / etc / fail2ban / jail.local

Assim que o arquivo for copiado, podemos fazer todas as alterações no novo arquivo jail.local. Muitos dos possíveis serviços que podem precisar de proteção estão neste arquivo já pré-configurados. Cada um está em sua própria seção, configurado e desligado.
Defina os padrões para Jail.Local
Abra o novo arquivo de configuração fail2ban:
 vi / etc / fail2ban / jail.local 

A primeira seção das configurações padrão cobre as regras básicas que o fail2ban seguirá. Se você deseja configurar uma proteção mais personalizada para o seu servidor virtual privado, pode personalizar os detalhes de cada seção.
Você pode ver a seção padrão alguns detalhes como o seguinte.
 [PADRÃO] # "Ignorar" pode ser um endereço IP, uma máscara CIDR ou um host DNS. Fail2ban não # Banirá uma string que corresponda a um endereço nesta lista. Vários endereços podem ser #define por separador de espaço. ignoreip = 127.0.0.1 # "Bantime" é o número de segundos que um host está impedido de acessar ou banido. bantime = 3600 # O tempo em segundos que um host será bloqueado se fizer um número máximo de consultas com falha findtime = 600 # "Maxretry" é o número de falhas permitidas antes de ser banido. maxretry = 3 

Digite seu endereço IP na linha pessoal ignoreip. Você pode separar cada endereço com um espaço. IgnoreIP colocará na lista de permissões certos endereços IP e garantirá que eles não sejam deixados de fora de seu VPS. Incluir seu endereço irá garantir que você não se bane acidentalmente de seu próprio servidor virtual privado.
O próximo passo é decidir sobre um tempo de banimento, o número de segundos que um host é bloqueado no servidor se violar alguma das regras. Isso é especialmente útil no caso de robôs, que uma vez que o acesso é proibido, simplesmente passarão para o próximo alvo. O padrão é 10 minutos, você pode aumentar para uma hora se quiser.
Maxretry é o número de tentativas de acesso incorretas que um host pode ter antes que suas tentativas de acesso sejam banidas durante o tempo de banimento.
O tempo de localização refere-se à quantidade de tempo que um host tem para inserir o valor padrão é de 10 minutos, o que significa que se uma tentativa for feita para acessar um host para um servidor e ele falhar, para fazer login mais do que o valor maxretry 3 vezes os 10 minutos designados, seu IP será bloqueado e você não poderá acessar.
Configure a seção ssh - iptables em Jail.Local
A seção de detalhes do SSH está um pouco mais abaixo nas configurações e já está instalada e ativada. Embora não seja necessário fazer nenhuma alteração nesta seção, você pode encontrar detalhes sobre cada linha abaixo.
 [ssh - iptables] enabled = true filter = sshd action = iptables [name = SSH, port = ssh, protocol = tcp] sendmail-whois [name = SSH, dest = root, [email protected]] logpath = / var / log / maxretry seguro = 5

Ativado simplesmente se refere ao fato de que a proteção SSH está ativada. Você pode desligá-lo com a palavra falso.
O filtro, que você usa por padrão para sshd, refere-se ao arquivo de configuração que contém as regras que fail2banuses usa para encontrar correspondências. O nome é uma versão abreviada da extensão do arquivo. Por exemplo, sshd refere-se a /etc/fail2ban/filter.d/sshd.conf
Ação descreve as etapas que fail2ban executará para proibir um endereço IP correspondente. Como a entrada do filtro, cada ação se refere a um arquivo no diretório action.d. A ação de proibição padrão, iptable, pode ser encontrada em /etc/fail2ban/action.d/iptables.conf
No iptables, você pode personalizar ainda mais o fail2ban. Por exemplo, se você estiver usando uma porta não padrão, você pode alterar o número da porta entre colchetes para a altura, tornando a linha de visão da mesma família:
por exemplo . iptables [nome = SSH, porta = 30000, protocolo = tcp]
Você também pode alterar o protocolo de TCP para UDP nesta linha, dependendo de qual deseja que o fail2ban monitore.
Se você tiver um servidor de e-mail configurado em seu servidor virtual privado, fail2ban pode enviar um e-mail quando um endereço IP for banido. No caso de bypass, sendmail-whois refere-se às ações localizadas em /etc/ fail2ban / action.d / sendmail-whois.conf.
o caminho do log se refere à localização do log que o fail2ban rastreará.
A linha de repetição máxima na seção SSH tem a mesma definição da opção padrão. No entanto, se um serviço foi habilitado e você deseja ter valores específicos para cada um deles, você pode definir o novo valor máximo de novas tentativas para SSH aqui.
Reiniciar fail2ban
Depois de fazer qualquer alteração na configuração do fail2ban, sempre certifique-se de reiniciar o fail2ban:
sudo reiniciar serviço fail2ban

Você pode ver as regras que fail2ban coloca em vigor dentro da tabela de IP:
iptables- L
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