---
# System prepended metadata

title: Untitled

---

1 Настройка файлового сервера в корпоративной инфраструктуре

Для начала скачаю Samba на Linux сервер.

Далее создам папку, к которой в будущем пользователи будут иметь общий доступ
![](https://i.imgur.com/2jdHoXV.png)


А также папку для ограниченного количества пользователей и, соответственно, группу пользователей, которая будет иметь к ней доступ, а также задам пароль для доступа
![](https://i.imgur.com/xHRxBMl.png)

После этого в конфиге написал все  раздаваемые папки и их параметры
![](https://i.imgur.com/pKtOO2y.png)

При заходе с windows и авторизации через пользователя igor (не входит в группу SMB) вижу следующую картину:
![](https://i.imgur.com/gsxrlD4.png)
И при попытке открыть папку private:
![](https://i.imgur.com/CAtL4B9.png)
и даже если сейчас ввести данные пользователя SMBuser1, то будет ошибка, т.к. надо изначально авторизироваться под нужным пользователем.
Если изначально авторизироваться под пользователем SMB, то откроются спокойно обе папки.

Чтобы подключиться с другого linux через консоль, есть утилита smbclient:
sudo apt install smbclient

После можно подключится при помощи команды:
smbclient //<ip адрес>/<имя папки> -U <имя пользователя>

Также можно посмотреть список всех сетевых папок:
smbclient -L \\<ip адрес> -N
![](https://i.imgur.com/35dmvaJ.png)
(флаг -N - авторизация без пароля. Это можно использовать только для доступа к публичным папкам.)

2 Fail2Ban-SSH и Brute-force attack

Fail2Ban – программа для защиты серверов от атак brute force. Программа считывает логи и блокирует IP-адреса, активность которых является подозрительной (например, большое количество попыток войти с неправильно введенным паролем, выполнение опасных или бессмысленных действий и т.д.). В случае обнаружения подобных действий программа обновляет правила брандмауэра для блокировки такого IP-адреса на определенный промежуток времени.

Скачаю fali2ban 
![](https://i.imgur.com/FOKS2Rz.png)

и посмотрю файлы конфигурации 
![](https://i.imgur.com/6bzwdDF.png)

После посмотрю файл jail.conf 
![](https://i.imgur.com/BxYYNvD.png)

В нем сказано, что для того, чтобы настроить конфигурацию надо создать файл jail.local и уже в нем писать нашу конфигурацию, т.к. при обновлении файл jail.conf может тоже обновиться и наши настройки из-за этого могут слететь.

Настрою конфигурацию в jail.local
![](https://i.imgur.com/JAxJwiR.png)

Здесь:
[название правила]
enable - вкл/выкл фильтра
port - порт целевого сервиса
filter - фильтр, который будет использоваться для поиска подозрительных действий (в нашем случае sshd, который соответствует файлу /etc/fail2ban/filter.d/sshd.conf)
logpath -  расположение лог-файла, в котором фильтр будет искать подозрительную активность на основе описанных критериев
maxretry - количество попыток ввода пароля пользователем, прежде чем его заблокируют
bantime - время блокировки пользователя в секундах
ignoreip - список ip адресов, которые не будут попадать под фильтр

После этого я перезагрузил сервис, чтобы настройки применились и проверил ее на работоспособность
![](https://i.imgur.com/bHxjHQ2.png)
(Вот после 3х неправильных попыток ввода пароля, мне заблокировали доступ)

Также можно посмотреть журнал банов и увидеть там заблокированный ip
![](https://i.imgur.com/noaSqGB.png)

Для того, чтобы разблокировать ip адрес, нужно ввести команду:
fail2ban-client set <название правила> unbanip <ip адрес>

Hydra - это программное обеспечение с открытым исходным кодом для перебора паролей в реальном времени от различных онлайн сервисов, веб-приложений, FTP, SSH и других протоколов. Её особенность в том, что перебор выполняется не по хэшу, а напрямую с помощью запросов к серверу, а значит с её помощью можно проверить, правильно ли настроены фаерволы, работает ли защита, а также способна ли система вообще определить такую атаку на сервер.

Установлю ее на linux-клиент, отключу fail2ban на сервере и попробую атаковать его. 
Для этого введу команду:
sudo hydra -l igor -P /usr/share/hydra/dpl4hydra_local.csv ssh://<ip адрес> -I -v

где:
-l - показывает, к какому пользователю надо подключаться
-P <путь к папке> - использование пароля из файла со списком (выше я использовал список dpa (default password list) это список паролей по умолчанию, который скачивается вместе с самой Hydra)
-I - игнорирование файла восстановления (для более быстрого перебора)
-v - подробный вывод

![](https://i.imgur.com/2bKlFVh.png)
(можно увидеть, что он по-немногу перебирает пароли и рано или поздно мог подобрать его)

Теперь включу обратно fail2ban и снова запущу hydra
![](https://i.imgur.com/F3M5mOi.png)
(Можно увидеть, что сервер сразу блокирует пользователя и программа сразу завершает свою работу)

3 Fail2Ban и Dos/DDoS attack

В начале были скачаны необходимые пакеты и ключ, чтобы подключить apt-репозиторию:
пакеты:
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/gOpkV7Q.png)

И после этого надо ввести 2 последние команды, чтобы окончательно установить nginx:
sudo apt update
sudo apt install nginx

Далее настрою nginx
Сначала выставлю в /etc/nginx/sites-enabled/default 
следующие параметры:
limit_req zone=ltwo burst=5 nodelay
![](https://i.imgur.com/wIkaxj1.png)
(Задам зону разделяемой памяти (zone) и максимальный размер всплеска запросов (burst). Если скорость поступления запросов превышает описанную в зоне, то их обработка задерживается так, чтобы запросы обрабатывались с заданной скоростью)

Теперь внесу изменения в /etc/nginx/nginx.conf:
![](https://i.imgur.com/JjXupoC.png)

После этого попробую справоцировать ошибки 503 и посмотреть их в log файле
![](https://i.imgur.com/ou4c8yU.png)
![](https://i.imgur.com/LJtVFwT.png)

Теперь настрою fail2ban для защиты нашего сервера от таких DDoS атак. Так, добавим новое правило jail.local:
![](https://i.imgur.com/9UBVnEX.png)

А также изменим настройку iptables, чтоб он отсылал не reject, а drop, т.к. это более эффективно против ботов. Для этого в /etc/fail2ban/action.d/ создадим файл iptables-blocktype.local, чтобы наши настройти не слетели после обновления:
![](https://i.imgur.com/eiCWiIk.png)

Проверю, применились ли настройки:
![](https://i.imgur.com/OsqDEo5.png)

Т.к. все применилось, попробую снова поделать многочисленные запросы в nginx:
![](https://i.imgur.com/7yBEpZZ.png)
(меня заблокировал fail2ban, а значит, всё работает)
![](https://i.imgur.com/e0jS1ud.png)
