**Отчёт по заданию 4. Занятиe 4. Безопасность Linux серверов .** Выполнил Бершауэр Владислав. Практическая работа №1,2,3. Ход работы: ## **Часть 4.1. "Настройка файлового сервера в корпоративной инфраструктуре".** Unix - сервером выступал kali. Unix - клиентом выступал debian. Windows - клиентом выступал Windows. **Настройка сервера:** ![](https://i.imgur.com/jMDI93o.png) ![](https://i.imgur.com/5MRVHJN.png) Создание резервной копии: ![](https://i.imgur.com/348qAUb.png) Проверка сервиса и добавление в автозагрузку: ![](https://i.imgur.com/zzuHXra.png) Создание директории общего доступа: ![](https://i.imgur.com/1uorsrY.png) Настройка прав: ![](https://i.imgur.com/C56p8SH.png) Создание директории приватного доступа: ![](https://i.imgur.com/Gv9nLa8.png) Создание учеток: ![](https://i.imgur.com/dPyX7wV.png) Создание группы пользователей для приватного доступа, а также добавление учеток туда: (изменение группы, которой принадлежит приватная директория. chgrp.) ![](https://i.imgur.com/yT4WrKc.png) Настройка паролей: ![](https://i.imgur.com/3y19yhq.png) Редактирование конфига: ![](https://i.imgur.com/39geYFW.png) ![](https://i.imgur.com/zWh1rqX.png) ![](https://i.imgur.com/Hp16f3P.png) ![](https://i.imgur.com/56eAM4k.png) Перезагрузка сервиса: ![](https://i.imgur.com/cKO4LIx.png) Создадим два текстовых файла для проверки прав доступа: ![](https://i.imgur.com/4FZwcbw.png) *UNIX:* Любой пользователь может подключится к public и посмотреть наличие файлов в директории, но не может подключится к private: ![](https://i.imgur.com/2vlh237.png) ![](https://i.imgur.com/hfWp51v.png) Зайдем с учеток. Неверно введенный пароль: ![](https://i.imgur.com/K3mlxdy.png) Верно введенный пароль: ![](https://i.imgur.com/NWalMWt.png) ![](https://i.imgur.com/tWjzd9F.png) *WINDOWS:* ![](https://i.imgur.com/08FvyI6.png) Видим обе директории. Спокойно заходим в public: ![](https://i.imgur.com/nQZUJ43.png) Чтобы зайти в директорию private, нужно ввести данные от учетки: ![](https://i.imgur.com/tAM7b0y.png) ![](https://i.imgur.com/YGROZOb.png) Настроим Samba, ресурс с названием share и дать права на чтение группе пользователей users, но предоставить возможность записи для группы с именем admins, а также пользователю PT: Создадим ресурс: ![](https://i.imgur.com/oNlYoFd.png) Юзеров и группы: ![](https://i.imgur.com/baZTtH3.png) ![](https://i.imgur.com/NvkoDDx.png) Добавление нужных учеток в нужные группы: ![](https://i.imgur.com/pOGSnRm.png) Задали пароли: ![](https://i.imgur.com/37xU0Uf.png) ![](https://i.imgur.com/eIy7DXb.png) ![](https://i.imgur.com/oEMmNTi.png) Конфиг с необходимыми настройками приватности ресурса: ![](https://i.imgur.com/hVVDHYY.png) Создание файла для проверки: ![](https://i.imgur.com/FrdCUbJ.png) Зайдем с учетки PT: ![](https://i.imgur.com/cTvJggr.png) С учетки, не состоящей в актуальном пуле учеток (другой пользователь, не имеющий отношения к Share): ![](https://i.imgur.com/oT6mK2r.png) Valid users: ![](https://i.imgur.com/YaCxQgt.png) ![](https://i.imgur.com/2wxzQSB.png) Прочтем файл: ![](https://i.imgur.com/FJAyYGz.png) ![](https://i.imgur.com/GRbXTwb.png) Настройка корзины для общего доступа: ![](https://i.imgur.com/9uZ4ZfK.png) smbstatus: ![](https://i.imgur.com/lEl1UAt.png) Команда выводит отчет о текущих соединениях к директориям, кто присоеденился, когда, с какого ip-address, какую директорию используют. Вывод в файл: ![](https://i.imgur.com/chKN06A.png) Настроим firewall iptables, открыв порты, которые использует SAMBA. ![](https://i.imgur.com/nKpn0WD.png) Штатный пакет, позволяющий сохранить правила после перезагрузки системы: ![](https://i.imgur.com/EVGH2a7.png) ![](https://i.imgur.com/pO544T2.png) Сами правила: ![](https://i.imgur.com/rhVCJ9u.png) ![](https://i.imgur.com/gFy6Ix1.jpg) ## **Часть 4.2. "Fail2Ban-SSH и Brute-force attack".** Обновление ОС: ![](https://i.imgur.com/wubpshY.png) Установка Fail2Ban: ![](https://i.imgur.com/kjw4NEl.png) Запуск: ![](https://i.imgur.com/cYN5mUu.png) Файлы в директории: ![](https://i.imgur.com/R1D9kp5.png) Откроем файл конфигурации: ![](https://i.imgur.com/uMEjwFr.png) ![](https://i.imgur.com/bGnoFRb.png) Создадим дополнительный файл jail.local и внесем в него фильтр для ssh: ![](https://i.imgur.com/gFPwJoM.png) Перезагружаем сервис: ![](https://i.imgur.com/xqU5Pbx.png) Попытаемся получить бан. Подключимся по ssh и введем три раза неверный пароль: ![](https://i.imgur.com/xoHw9Fp.png) ![](https://i.imgur.com/ZZZ1mUP.png) В итоге получаем: ![](https://i.imgur.com/S58tfXJ.png) Зайти снова не можем: ![](https://i.imgur.com/votUfTz.png) Удалим наш Ip-адрес из бана: ![](https://i.imgur.com/3MUH6yR.png) Теперь попробуем сделать подобное, но с брутфорсом (гидрой). Установка: ![](https://i.imgur.com/9fhoOUK.png) Первое подключение: ![](https://i.imgur.com/mh3vq2R.png) IP заблокирован: ![](https://i.imgur.com/uCmKNlh.png) ![](https://i.imgur.com/9Fobkdu.png) Поменяем значение enable на False в конфиге: ![](https://i.imgur.com/oUI5s8R.png) Перезагрузка: ![](https://i.imgur.com/fjKQaMk.png) В данный момент никто не блокируется (из-за рестарта): ![](https://i.imgur.com/lQhDo5d.png) Запускаем гидру ещё раз и наблюдаем результат: ![](https://i.imgur.com/U4scIB4.png) Отключим fail2ban и запутим hydra: ![](https://i.imgur.com/4Swvgxv.png) ![](https://i.imgur.com/hAr1oUx.png) начал происходить подбор паролей. ## **Часть 4.3. "Fail2Ban и Dos/DDoS attack" на примере nginx.** Установка пакетов, необходимых для подключения apt-репозитория: ![](https://i.imgur.com/9dCjReo.png) Импорт официального ключа, используемого apt для проверки подлинности пакетов: ![](https://i.imgur.com/g4tUjUX.png) Проверка: ![](https://i.imgur.com/vNSct6W.png) Отпечаток ключа совпадает с тем, что указан в методических указаниях. Для подключения apt-репозитория для стабильной версии Nging выполним команду: ![](https://i.imgur.com/0BCMhQO.png) Для использования пакетов из нашего репозитория вместо распространяемых в дистрибутиве, настроим закрепление: ![](https://i.imgur.com/H915Zht.png) Установка nginx: ![](https://i.imgur.com/wq7hqQF.png) Включение и проверка: ![](https://i.imgur.com/cavh8hb.png) Был установлен помимо nginx сервер apache2, меняем стартовую страничку путем перемещения файла: ![](https://i.imgur.com/y7AevMb.png) Результат: ![](https://i.imgur.com/wdHg99V.png) **DDoS атаки** Установка ipset: ![](https://i.imgur.com/TcqmXUc.png) Изменим конфигурацию в /etc/nginx/sites-enabled/default: ![](https://i.imgur.com/a3ns88J.png) ![](https://i.imgur.com/tcWG584.png) Изменение конфигурации в /etc/nginx/nginx.conf: ![](https://i.imgur.com/BtVpBqf.png) ![](https://i.imgur.com/Odcx1a4.png) После этого вбили адрес сервера в браузер, зашли в режим разработчика и начали флудить запросами (ctrl + r): ![](https://i.imgur.com/VKpxL9s.png) Вышла ошибка 503: ![](https://i.imgur.com/CeVYMOf.png) Лог: ![](https://i.imgur.com/JUj20aH.png) Настройка fail2ban от DDoS атак на наш сервер: Добавим изменения в уже существующий файл jail.local ![](https://i.imgur.com/EpqMBQI.png) Посмотрим конфиг /etc/fail2ban/actinond./iptables-common.conf: ![](https://i.imgur.com/JWdsIfL.png) Создадим новый файл, из-за того, что настройки конфигурационных файлов по умолчанию могут быть перезаписаны при обновлении: ![](https://i.imgur.com/8Z3iWOI.png) Перезапустим fail2ban: ![](https://i.imgur.com/PGiqszl.png) iptables пока что ничего не отрабатывает: ![](https://i.imgur.com/NOJn9ue.png) Настройки в fail2ban применены: ![](https://i.imgur.com/5V3CHs7.png) Сейчас нет заблокированных ip: ![](https://i.imgur.com/TRiBAgF.png) Повторим атаку: ![](https://i.imgur.com/ooC5JHH.png) Переходим на сервер и смотрим что показывает iptables и fail2ban: ![](https://i.imgur.com/C9A5b2Q.png) ![](https://i.imgur.com/yohwRjX.png) Видим созданное правило и заблокированный ip-адрес. Разблокируем адрес: ![](https://i.imgur.com/KqhbE6f.png) Настроим защиту сервера от DoS/DDoS атак, используя тот же fail2ban и ipset: Пользовался информацией с этого сайта: https://ixnfo.com/ustanovka-i-ispolzovanie-ipset.html Создали правило с типом hash:ip, добавили необходимый адрес.Создали iptables: ![](https://i.imgur.com/8GPzF6h.png) После применения данных настроек на сайт нельзя зайти. ![](https://i.imgur.com/b8tm6UE.png)