---
title: Fail2Ban (opcional)
slug: fail2ban-opcional
icon: {"faIcon":"fa-solid fa-ban"}
createdAt: 2024-07-16T08:10:54.317Z
---

`Fail2Ban` é uma ferramenta que monitora os logs do sistema em busca de tentativas maliciosas (como tentativas de força bruta) e, em seguida, bane os IPs que mostram os padrões maliciosos usando regras de firewall. A configuração padrão do `Fail2Ban` é frequentemente suficiente para proteger o SSH, mas você pode personalizá-la conforme necessário.

## 1. Instalação

- Primeiro, atualize os repositórios e instale o `Fail2Ban`:

```shell
sudo apt update && sudo apt install fail2ban -y
```

## 2. Configuração

- Copie o arquivo de configuração padrão para um arquivo local para evitar sobrepor atualizações futuras:

```shell
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
```

- Edite o arquivo `jail.local` para personalizar as configurações:

```shell
sudo nano /etc/fail2ban/jail.local
```

- Arquivo jail.local com configurações padrões para usar como exemplo.

::File{src="https://api.archbee.com/api/presign/WrddBFERPU0q9RsNfrg2V/iJ0Yz3EdDwfRNKE7Ji1tP_jail.local" label="jail.local"}

- Na seção `[DEFAULT]`, você verá configurações que são aplicadas globalmente a menos que sejam sobrescritas por configurações específicas da "jail".

Algumas opções úteis:

- `bantime`: a duração (em minutos) que um IP será banido.
- `findtime`: intervalo de tempo (em minutos) para considerar o numero de tentativas de acesso com erro
- `maxretry`: o número de tentativas falhas permitidas dentro do `findtime` antes que um banimento ocorra.

Por exemplo, para banir um IP por uma hora após 3 tentativas falhas em um período de 10 minutos, você configuraria:

:::hint{type="info"}
Lembre-se que para ativar qualquer regra precisa remover o comentário **`#`**
:::

```none
bantime  = 1h
findtime = 1m
maxretry = 3
```

- Na seção `[sshd]`, certifique-se de que está habilitado:

```text
[sshd]
enabled = true
```

- Se você mudou a porta padrão do SSH (por exemplo, para 2222), você também deve ajustar a linha `port = ssh` para:

```text
port = 2222
```

## 3. Iniciar e Habilitar o Fail2Ban

- Após configurar, inicie o serviço `Fail2Ban` e habilite-o para iniciar na inicialização:

```shell
sudo systemctl start fail2ban
sudo systemctl enable fail2ban
```

## 4. Monitorar e Gerenciar

- Para ver os IPs atualmente banidos:

```shell
sudo fail2ban-client status sshd
```

- Para desbanir um IP:

```shell
sudo fail2ban-client set sshd unbanip IP_PARA_DESBANIR
```

Com isso, o `Fail2Ban` estará monitorando tentativas de login SSH e banindo IPs que fazem tentativas repetidas e falhas, ajudando a proteger seu servidor contra ataques de força bruta.
