---
# System prepended metadata

title: Fail2Ban-SSH и Brute-force attack

---

# Fail2Ban-SSH и Brute-force attack
:::spoiler Подготовка системы и установка Fail2Ban
## Подготовка системы и установка Fail2Ban
```
sudo apt update

sudo apt-get install Fail2Ban

service Fail2Ban start
```
Стартовать Fail2Ban ОБЯЗАТЕЛЬНО, так как он запускается при перезагрузке или старте ОС.

Просмотр статуса
![](https://i.imgur.com/V0xle7o.png)
:::

:::spoiler Настройка конфигурационного файла
## Настройка конфигурационного файла
Все файлы Fail2Ban храняться в директории /etc/fail2ban. Файл с настройками jail.conf, но он может изменяться при обновлениях, поэтому необходимо создать файл **jail.local** и писать все конфиги туда.

Нам нужно включить модуль **sshd** (*enabled = true*), выбрать порт ssh, указать путь до файла, в котором искать подключения ssh. Далее максимальное количество неудачных попыток, время бана, ip, который не блокировать.
![](https://i.imgur.com/2sZQLP1.png)

Затем перезапускаем службу.

`sudo service fail2ban restart`

:::

:::spoiler Создание словарей
## Создание словарей
### pwdlogy

Установить гит
`sudo apt install git`

Установить утилиту
`sudo git clone https://github.com/tch1001/pwdlogy.git`

Перейти в папку **pwdlogy**
`cd pwdlogy/`

Добавить ключевые слова в файл **keywords.txt**, известные даты рождения в файл **birthday.txt**.
Запустить скрипт:
`sudo python3 pwdlogy.py`

Ввести start:
`pwdlogy > start` 

Пароли сгенерировались в файл **gen.txt**.

### crunch
скачать:
`sudo apt-get install crunch`

сделать список паролей:

`crunch 3 5 ev -o ~/crunch_passwd`

3 - минимум символов в пароле
5 - максимум симвволов в пароле
ev - символы
-о - файл, куда записать вывод

:::

:::spoiler Брутфорс
## Брутфорс
### Patator

`patator ssh_login host=192.168.132.163 user=FILE0 0=/home/nik/login.txt password=FILE1 1=/home/nik/password.txt  -x ignore:mesg='Authentication failed.'`

![](https://i.imgur.com/zHZ5yuD.png)

### Hydra
`hydra -V -f -t 3 -l debian-1 -P /home/nik/password.txt ssh://192.168.132.163`

![](https://i.imgur.com/UY3uJjB.png)

### Medusa
`medusa -h 192.168.132.163 -u debian-1 -P ~/password.txt -M ssh -f`

![](https://i.imgur.com/DzMVXLw.png)

### Metasploit
Ссылка на [гайд](https://itsecforu.ru/2018/09/26/%D0%BA%D0%B0%D0%BA-%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%82%D1%8C-metasploit-framework-%D0%BD%D0%B0-ubuntu-linux-mint/?ysclid=lb0q37q28s493552609) по установке метасплойта

![](https://i.imgur.com/WS6JZuV.png)

![](https://i.imgur.com/JGzooH3.png)

:::

:::spoiler 7 лаба
# “Fail2Ban и Dos/DDoS attack” на примере nginx

## Разворачивание сервера nginx на базе дистрибутивов Debian
Установка пакетов
`sudo apt install curl gnupg2 ca-certificates lsb-release debian-archive-keyring`

Ключ для проверки целостности пакета
`curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null`

Верный ли ключ?
`gpg --dry-run --quiet --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg`
![](https://i.imgur.com/OwcRGd6.png)

Подключение apt-репозитория для стабильной версии nginx
`echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] http://nginx.org/packages/debian `lsb_release -cs` nginx" | sudo tee /etc/apt/sources.list.d/nginx.list`

Закрепим использование этих пакетов
`echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" | sudo tee /etc/apt/preferences.d/99nginx`

Установка nginx
```
sudo apt update
sudo apt install nginx
```
Результат:
![](https://i.imgur.com/WG7GH6m.png)

## Защита сервера от DoS/DDoS атак через встроенные возможности nginx

В **/etc/nginx/sites-enable/default** добавляем строчку:
```
limit_req zone=ltwo burst=5 nodelay;
```
В **/etc/nginx/nginx.conf** добавляем строчки:
```
limit_conn_zone $binary_remote_addr zone=lone:10m;
limit_req_zone $binary_remote_addr zone=ltwo:10m rate=3r/s;
limit_req_zone $binary_remote_addr zone=highspeed:10m rate=10r/s;
```
Перезапускаем службу

В браузере зажимаем ctr+r
Результат:
![](https://i.imgur.com/5elEc5w.png)

Логи:
```
cat /var/log/nginx/error.log
```
![](https://i.imgur.com/4zAHyS9.png)


## Защита сервера от DoS/DDoS атак с помощью fail2ban при помощи iptables в автоматическом режиме
![](https://i.imgur.com/kKsMdZ3.png)


## Защита сервера от DoS/DDoS атак с помощью fail2ban при помощи ipset в автоматическом режиме.
![](https://i.imgur.com/juS94wC.png)

:::