---
# System prepended metadata

title: Отчёт по лабораторной работе №4 - Безопасность Linux серверов
tags: [Linux Labs]

---

###### tags: `Linux Labs`
# Отчёт по лабораторной работе №4 - Безопасность Linux серверов
## Часть №1 - Настройка файлового сервера в корпоративной инфраструктуре
Обновим пакетную базу:
![](https://i.imgur.com/sUpbxgF.png)

Далее стоит установить пакеты из главного репозитория. В моём случае уже было всё установленно:
![](https://i.imgur.com/13E6I6d.png)

Создадим резервную копию файла конфигурации samba:
![](https://i.imgur.com/PEQBeoN.png)

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

Изменим режим доступа и владельца:
![](https://i.imgur.com/RXUvRWC.png)

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

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

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

Добавим в группу пользователя:
![](https://i.imgur.com/2kv92Uj.png)

Изменим группу папки:
![](https://i.imgur.com/MdKshZO.png)

Зададим пароль, с помощью которого пользователь будет подключаться к каталогу:
![](https://i.imgur.com/ikJxolx.png)

Зименим содержимое файла конфигурации на следующее:
![](https://i.imgur.com/CBFcLMv.png)

И перезапустим сервис:
![](https://i.imgur.com/o33Vyso.png)

Теперь присоединимся к серверу через unix машинку:
![](https://i.imgur.com/jAUbsNB.png)

И через windows (я использовал хостовую систему):
Авторизируемся:
![](https://i.imgur.com/R7wADa1.png)
![](https://i.imgur.com/x5GAL1i.png)

В качестве ещё одного доказательства работы, создам файлик в приватной папке:
![](https://i.imgur.com/iKo2b59.png)

Его видно как на ubuntu:
![](https://i.imgur.com/7luArfs.png)

Так и на winodws:
![](https://i.imgur.com/PYWWr9j.png)

Мы также можем посмотреть его содержимое:
![](https://i.imgur.com/r2r8mZB.png)

Настройки iptables:
![](https://i.imgur.com/4IGu0xD.png)

Также стоит добавить сервис в автозагрузку:
![](https://i.imgur.com/UIs1p5t.png)



## Выполнение задания, связанного с папкой share:
Теперь создадим папку share и настрим её согласно требованиям:
![](https://i.imgur.com/baQ19A8.png)

Создадим пользователя PT и выдадим ему пароль:
![](https://i.imgur.com/e0zqEY7.png)

Перезапустим сервис и проверим настройки:
Если пользователь user1 попробует создать, например, папку, то встретиться с запертом:
![](https://i.imgur.com/QUh96Nu.png)
![](https://i.imgur.com/ctVM0uP.png)

После авторизации через admin появится возможность полноценно использовать share:
![](https://i.imgur.com/QqlLKOy.png)

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

В то время как user1 эта возможность всё ещё недоступна:
![](https://i.imgur.com/P8KXjdp.png)

C PT тоже всё отлично:
![](https://i.imgur.com/kPDumvA.png)

Проверим и другие возможности.
User1 всё также может редактировать папку private:
![](https://i.imgur.com/8XgpocR.png)

А вот PT и admin - нет:
![](https://i.imgur.com/8T9kaL7.png)

К public доступ имеют все:
![](https://i.imgur.com/Z2Ex6Ze.png)

Для сохранения правил iptables в debian и ubuntu добавили пакет iptables-persistent. Всё, что нужно для сохранения iptables - просто после их настройки ввести пару команд, преставленных ниже, и при следующей загрузке они будут применены:
![](https://i.imgur.com/OFglt7I.png)

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

Также не стоит забывать про настройку прав с помощью chmod, а также других средств.

## Часть №2 - Fail2Ban-SSH и Brute-force attack
Обновим пакетную базу:
![](https://i.imgur.com/yVsOBjt.png)

Установим Fail2ban:
![](https://i.imgur.com/FPBCXNY.png)

И запустим его:
![](https://i.imgur.com/LMEj2O5.png)

Ознакомимся с файлами директории fail2ban:
![](https://i.imgur.com/JoM8dcq.png)

Откроем его конфигурационный файл:
![](https://i.imgur.com/Elg27zu.png)

Прочтём рекомендации и выполним их. После этого получаем следующий кофигурационный файл: 
Он блокирует все попытки bruteforc'а на 22 порт (в данном случае - ssh). В настройках установлено ограничение попыток авторизации в 3 раза, после чего пользователь получает бан на 3600 секунд т.е. на 1 час реального времени (такая судьба ждёт все ip, кроме 127.0.0.1 - сам сервер получать бан не будет):
![](https://i.imgur.com/86XWMhf.png)

Перезапустим fail2ban:
![](https://i.imgur.com/f5UrDjq.png)

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

Попробуем ввести 3 раза пароль неверно:
![](https://i.imgur.com/pkSKMPw.png)

Увидим, что нас забанили.

При запуске гидры получаем ошбику:
![](https://i.imgur.com/F0DX9pS.png)

А при проверке fail2ban:
![](https://i.imgur.com/ZsvlThw.png)

Теперь же я проведу атаку на другой хост, с выключенным fail2ban. Последствия:
![](https://i.imgur.com/1M3c8UV.png)
![](https://i.imgur.com/aiOq4VT.png)

Достаточно чётко видно, что происходит атака.

## Часть №3 - "Fail2Ban и Dos/DDoS attack" на примере nginx
Установим пакеты, необходимые для подключения apt-репозитория:
![](https://i.imgur.com/55TbNDN.png)

Теперь нужно импортировать официальный ключ, используемый apt для проверки подлинности пакетов. Скачаем ключ:
![](https://i.imgur.com/90CYb0R.png)

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

Ключ верный.

Для подключения apt-репозитория для стабильной версии nginx:
![](https://i.imgur.com/GE91KXV.png)

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

Запустим nginx:
![](https://i.imgur.com/aWZhpVk.png)

Как видим, установка прошла успешно.

Установим fail2ban (в моём случае он уже был установлен):
![](https://i.imgur.com/Mb4FMIL.png)

Откроем файл стартовой странички nginx и выставляем следующие параметры:
![](https://i.imgur.com/QYczk5C.png)

Далее внесём некоторые изменения в конфигурационный файл nginx:
![](https://i.imgur.com/9rUAbuO.png)

Зажав ctrl+r мы вызовем ошибку 503 (сервер недоступен):
![](https://i.imgur.com/f23ZaNR.png)

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

Создадим файл jail.local и введём туда следующие параметры:
![](https://i.imgur.com/s12dZKI.png)

Создадим файл iptables-blocktype.local и внесём в него следующие параметры:
![](https://i.imgur.com/G0D94Dz.png)

Перезапустим сервис и проверим его статус:
![](https://i.imgur.com/IzVnhfN.png)

Просмотрим, что обрабатывает iptables, убедимся, что настройки fail2ban применились, также проверим бан лист nginx:
![](https://i.imgur.com/va1ZS4v.png)

После многочисленных запросов сервер возвращает такой ответ:
![](https://i.imgur.com/uyQLRgT.png)

Также iptables и nginx выводят следующие данные:
![](https://i.imgur.com/E2jjkvL.png)

Следующей командой мы можем разбанить ip-адрес:
![](https://i.imgur.com/CZ5GgWE.png)
