> For the complete documentation index, see [llms.txt](https://mysther.gitbook.io/knowledge-base/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://mysther.gitbook.io/knowledge-base/defesa/melhorando-sua-seguranca-1.md).

# Linux

### Fail2Ban

#### Instalando

```bash
sudo apt install fail2ban
```

| CONCEITO / ARQUIVO            | DESCRIÇÃO                                                                                                                                                                                       |
| ----------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `Filters`                     | Um filtro é definido com expressões regulares, que correspondem a padrões de tentativas de invasões em logs                                                                                     |
| `Actions`                     | Define comandos a serem executados, por exemplo, bloquear ou liberar um determinado IP                                                                                                          |
| `Jail`                        | Combina os filtros com as ações                                                                                                                                                                 |
| `/etc/fail2ban/fail2ban.conf` | Arquivo com configurações básicas                                                                                                                                                               |
| `/etc/fail2ban/jail.conf`     | Arquivo com configurações de serviços monitorados, combinando filtros e ações. Na verdade, configurações feitas pelo usuário, se recomenda a utilização do `jail.local` ao invés de `jail.conf` |
| `/etc/fail2ban/action.d/`     | Diretório onde ficam as regras de ações a serem tomadas, caso os filtros deêm match                                                                                                             |
| `/etc/fail2ban/filter.d/`     | Diretório com expressões e padrões para detectar os ataques                                                                                                                                     |

###

### Rkhunter

#### Instalando

```bash
sudo aptitude install rkhunter
```

#### Atualizando

```bash
sudo rkhunter --propupd
```

#### Realizando Scanner

```bash
sudo rkhunter --check
```

### <br>

### Desabilitando login

```bash
chsh -s /sbin/nologin <user>
```

###

### SSH

Edite o arquivo de configuração do SSH que está localizado em `/etc/ssh/ssh_config`  e realize as seguintes configurações:

| CONFIGURAÇÃO                               | DESCRIÇÃO                                               |
| ------------------------------------------ | ------------------------------------------------------- |
| PasswordAuthentication no                  | Forçar a autenticação apenas por chave                  |
| PermitRootLogin no                         | Desabilitar o login com o root                          |
| AllowUsers \<user1> \<user2> ..  \<user10> | Permitir que apenas certos usuários façam login via SSH |

###

### Desabilitando login TTY  do root

Este é mais um modo de proteger o root (ou superusuário) indicando em quais TTYs ele pode fazer login. Administradores cuidadosos criam um ambiente onde o root, não faça login de qualquer maneira, evitando assim problemas sérios de segurança. Ao remover as entradas deste arquivo, o root não fará login em qualquer tipo de terminal, obrigando assim o uso do `su` ou `sudo`.

```bash
> /etc/securetty
```

### Apache

#### Configurando Apache para não exibir diretórios web

Abra o arquivo `/etc/apache2/apache2.conf`, procure pelo trecho abaixo e substitua `Options Indexes FollowSymLinks` por `Options FollowSymLinks`.

```bash
<Directory /var/www/>
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>
```

#### Ocultando detalhes em banner de erro

Edite o arquivo `/etc/apache2/conf-enabled/security.conf` e altere `ServerTokens OS` para `ServerTokens Prod` para ocultar informações do SO e altere `ServerSignature On` para `ServerSignature Off` para ocultar informações sobre o Apache.
