###### 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)