# Занятие 4. Безопасность Linux серверов # ip ubuntu 192.168.1.21 ![](https://i.imgur.com/LM9vH6J.png) ip debian 192.168.1.20 ![](https://i.imgur.com/h8QJE1X.png) ip kali 192.168.1.12 ![](https://i.imgur.com/aYL7voh.png) ip windows ![](https://i.imgur.com/0bf6juE.png) # Практическая работа “Настройка файлового сервера в корпоративной инфраструктуре” # Прежде всего следует обновить локальную базу пакетов ![](https://i.imgur.com/zLzbf0t.png) Далее установите пакеты из главного репозитория: apt-get install -y samba samba-client ![](https://i.imgur.com/SbYcKTV.png) Добавим samba в автозагрузку. ![](https://i.imgur.com/wZ4p8Z0.png) Проверим что сервис запустился. ![](https://i.imgur.com/m7U66Og.png) Создайте резервную копию файла конфигурации Samba: cp /etc/samba/smb.conf /etc/samba/smb.conf.bak ![](https://i.imgur.com/5jQzwuV.png) Создайте или выберете директорию, к которой все пользователи будут иметь общий доступ ![](https://i.imgur.com/bbShPXp.png) Перейдите к этому каталогу и измените режим доступа и владельца: chmod -R 0755 public ![](https://i.imgur.com/a9Wcb8I.png) Создайте или выберете каталог, к которому иметь доступ будут ограниченное число пользователей: создан ранее ![](https://i.imgur.com/dbq7uMT.png) Создадим учётные записи ![](https://i.imgur.com/AnPEZfM.png) Создайте группу пользователей, которые будут иметь доступ к приватным данным ![](https://i.imgur.com/UkHgaw6.png) ![](https://i.imgur.com/US6brCh.png) Измените группу, которой принадлежит приватная директория ![](https://i.imgur.com/YvyXCqY.png) Задайте пароль, с помощью которого пользователь будет подключаться к каталогу ![](https://i.imgur.com/nNXSYbn.png) Откроем файл конфигурации на редактирование с помощью текстового редактора, например nano: Внесём следующие изменения в конфигурационный файл и перезапустим сервис ![](https://i.imgur.com/rCs0MeK.png) ![](https://i.imgur.com/gCuRmau.png) ![](https://i.imgur.com/3A8ayjG.png) Проверим что нет ошибок в конфигурации ![](https://i.imgur.com/mjkBieo.png) ![](https://i.imgur.com/PTolhH6.png) ![](https://i.imgur.com/mc0bKY4.png) Перезапустим сервис ![](https://i.imgur.com/N3zcvWo.png) Создадим два документа ![](https://i.imgur.com/gMUOS9T.png) Любой пользователь может подключится к public и посмотреть наличие файлов в директории, но не может подключится к private ![](https://i.imgur.com/y4EJmRS.png) Были введены учётные данные пользователя ![](https://i.imgur.com/Zw4CWDu.png) ![](https://i.imgur.com/KqQzkNh.png) На Debian установим smbclient ![](https://i.imgur.com/odn95L4.png) Видим доступные сетевые ресурсы на Debian ![](https://i.imgur.com/9WGrPzn.png) Получение доступа к сетевому ресурсу ![](https://i.imgur.com/vpOr0LN.png) Пользователь не может получить доступ к private ![](https://i.imgur.com/7DA0vKr.png) А пользователь из группы smbgrp может ![](https://i.imgur.com/9CFjf4R.png) Настроим Samba, ресурс с названием share и дать права на чтение группе пользователей users, но предоставить возможность записи для группы с именем admins, а также пользователю PT ![](https://i.imgur.com/teDxMeX.png) ![](https://i.imgur.com/Xqb9e5B.png) Создадим нужные группы ![](https://i.imgur.com/mktiDSX.png) Создадим нужного пользователя ![](https://i.imgur.com/ioT02wh.png) ![](https://i.imgur.com/1SDfju9.png) Добавим пользователи в группу users и admins ![](https://i.imgur.com/fwbjFdY.png) ![](https://i.imgur.com/nezFbkk.png) Настройка smb по заданию ![](https://i.imgur.com/S5jDsHR.png) ![](https://i.imgur.com/jiAbZqg.png) ![](https://i.imgur.com/gQLH24F.png) ![](https://i.imgur.com/fLZHHC9.png) Создадим файлы ![](https://i.imgur.com/VtlpakF.png) Зайдём под пользователм ptuser ![](https://i.imgur.com/I1cxpZP.png) Пользователь может вносить изменения в файл. Зайдём под пользователм vlad ![](https://i.imgur.com/bBPaMl0.png) ![](https://i.imgur.com/ChspWFc.png) У пользователя нет права на измения только на чтение. Настройка корзины для общего доступа: введём в глобальной конфигурации следующие строчки ![](https://i.imgur.com/oEYfpJp.png) Перезапустим сервис ![](https://i.imgur.com/mkpdru2.png) Команда smbstatus выводит отчет о текущих соединениях к директориям, кто присоеденился, когда, с какого ip-address, какую директорию используют ![](https://i.imgur.com/eXa52dj.png) Установим iptables позволяет изменят настройки iptables и штатный пакет, позволяющий сохранить правила после перезагрузки системы iptables-persistent ![](https://i.imgur.com/QoCUFGF.png) Посмотрим правила iptables, для этого достаточно опции -L ![](https://i.imgur.com/OtQBVpv.png) Настроить firewall iptables, открыв порты, которые использует SAMBA. Разрим подключения только из локального диапазона IP-адресов ![](https://i.imgur.com/papKFhN.png) ![](https://i.imgur.com/iuf8tzb.png) Чтобы сохранить текущие настройки брандмауэра нужно ввести команду netfilter-persistent save ![](https://i.imgur.com/7wTI3bn.png) Перезапустим службу и убедимся что настройки сохранились ![](https://i.imgur.com/8pUxYHw.png) # Практическая работа "Fail2Ban-SSH и Brute-force attack" # Обновим репозиторий ![](https://i.imgur.com/lDbjo7K.png) Далее давайте установим Fail2Ban ![](https://i.imgur.com/cOpM2J2.png) Добавим сервис в автозагрузку ![](https://i.imgur.com/0eqpJ61.png) После установки сервис запускается автоматически ![](https://i.imgur.com/OSDSHYG.png) Ознакомимся со всеми файлами в директории Fail2Ban ![](https://i.imgur.com/5DY2qOF.png) Откроем файл конфигурации jail.conf ![](https://i.imgur.com/n4FN6pJ.png) ![](https://i.imgur.com/j6nr332.png) И первое, что мы видим - это то, что нам рекомендуют создать дополнительный файл с .local расширением так как при обновлении Fail2Ban файл jail.conf может тоже обновиться и настройки будут возвращены поумолчанию. (если нужно настраивать фильтры для многих сервисов, то можно использовать jail.conf (но следить за обновлениями) или скопировать его с разрешением. local) ![](https://i.imgur.com/YRKHcQ5.png) ![](https://i.imgur.com/h8plCHJ.png) Создадим фильтр для ssh в файле конфигурации ![](https://i.imgur.com/cgb4Gz6.png) ![](https://i.imgur.com/4WX1sWS.png) Сохраняем изменения ![](https://i.imgur.com/JN8BpCm.png) Проверим, что fail2ban работает ![](https://i.imgur.com/E93TQlX.png) Теперь давайте попробуем подключиться по ssh и ввести три раза неправильно пароль ![](https://i.imgur.com/ZJDYZjj.png) Увидим, что используется одно правило. Ip адрес был добавлен в бан лист ![](https://i.imgur.com/X7oj1fP.png) В конфигурации iptables есть новая цепочка f2b-sshd, на которую ссылается правило цепочки INPUT Теперь выполнить вход не получится ![](https://i.imgur.com/4OSB6mU.png) Чтобы убрать бан по ip нужно ввести следующую команду ![](https://i.imgur.com/jOTsiEz.png) Установим hydra на debian ![](https://i.imgur.com/L4PUmqe.png) Запустим атаку hydra ![](https://i.imgur.com/euVhxUW.png) ![](https://i.imgur.com/rEQfcCZ.png) Был получен бан ![](https://i.imgur.com/e5YEEU1.png) Остановим подбор паролей. Удалим ip из бана и выключим сервис fail2ban ![](https://i.imgur.com/NHjbR9h.png) ![](https://i.imgur.com/BIYLNsg.png) Запустим подбор паролей снова. Чтобы обнаружить подбор паролей выведем последние строчки файла логов ратификации ![](https://i.imgur.com/YCZqDUK.png) ![](https://i.imgur.com/0xSdX3m.png) В качестве демонстрации работы программы пароль пользователя vlad был задан 11, чтобы ускорить подбор пароля ![](https://i.imgur.com/QRdCRfJ.png) Выбран собственный словарь пароля ключ -x. 2:2:1 - пароль размером четыре символа, состоящий только из цифр. А именно все пароли в диапазоне 0000-9999 ![](https://i.imgur.com/NXEg9OP.png) После того как пароль будет наёден он будет записан в файл ключ -o ![](https://i.imgur.com/MyFh1Kb.png) При запуске fail2ban адрес будет автоматически помещён в бан, так как по логам увидит большое количество попыток неверного ввода пароля ![](https://i.imgur.com/ytkSiXO.png) ![](https://i.imgur.com/VnPTy5S.png) Уберём адрес из бана ![](https://i.imgur.com/gbxk2pr.png) # Fail2Ban и Dos/DDoS attack на примере nginx # Установите пакеты, необходимые для подключения apt-репозитория ![](https://i.imgur.com/jB3Hjah.png) Теперь нужно импортировать официальный ключ, используемый apt для проверки подлинности пакетов ![](https://i.imgur.com/aAxktsd.png) Проверьте, верный ли ключ был загружен. Ключ совпадает с тем что указан в методичке ![](https://i.imgur.com/JKSjAcd.png) Для подключения apt-репозитория для стабильной версии nginx, выполните следующую команду ![](https://i.imgur.com/uNhUYhQ.png) ![](https://i.imgur.com/CmVg8NJ.png) Установим nginx ![](https://i.imgur.com/ULEC2QJ.png) ![](https://i.imgur.com/OXY8k6W.png) ![](https://i.imgur.com/VEEBYu2.png) Устанавливаем fail2ban и ipset ![](https://i.imgur.com/tXC3kWP.png) ![](https://i.imgur.com/sx7RQAc.png) Сервис запущен ![](https://i.imgur.com/oGIHrv3.png) Выключим apache2 ![](https://i.imgur.com/Qv7AvWG.png) ![](https://i.imgur.com/I6MXQYe.png) ![](https://i.imgur.com/TPg0C8z.png) Теперь страница nginx доступна ![](https://i.imgur.com/H6ZVngU.png) Далее переходим: nano /etc/nginx/sites-enable/default - тут находится стартовая страничка nginx ![](https://i.imgur.com/78JgfmL.png) далее переходим в конфигурационный файл nginx.conf: `nano /etc/nginx/nginx.conf` - в данном файле нам надо внести следующие изменения ![](https://i.imgur.com/cprH3yv.png) Перезапустим сервис ![](https://i.imgur.com/r20py8i.png) Отроем страничку nginx запустим режим разработчик после зажатия ctrl+r - выйдет ошибка 503 ![](https://i.imgur.com/NPDrUDA.png) Днные ошибки будут отображаться в log файле ![](https://i.imgur.com/FHKRZtK.png) Настройке fail2ban от DDoS атак на наш сервер ![](https://i.imgur.com/4LryodO.png) ![](https://i.imgur.com/CraF6uh.png) После чего нам необходимо изменить настройку, что iptables не отсылал reject а отсылал drop, так как для борьбы с ботами - это более эффективно ![](https://i.imgur.com/drEbaVK.png) ![](https://i.imgur.com/ynNwaL4.png) Далее переходим в файл nano /etc/fail2ban/action.d/iptables-common.conf ![](https://i.imgur.com/iPYLROX.png) Но как мы уже знаем, настройки конфигурационных файлов поумолчанию могут быть перезаписаны при обновлении, поэтому создаём новый файл: touch iptables-blocktype.local ![](https://i.imgur.com/EBjLfR4.png) В созданном файле пропишем touch iptables-blocktype.local ![](https://i.imgur.com/3d4hy2y.png) Затем перезапустим fail2ban ![](https://i.imgur.com/M3p1Ll3.png) Теперь нам нужно посмотреть, правила iptables ![](https://i.imgur.com/sZWR07M.png) Пока что в правилах нет запрещённых ip адресов. Убедимся. что настройки в fail2ban применились и введём ![](https://i.imgur.com/REVQ7Td.png) Убедимся. что настройки в fail2ban применились и введём ![](https://i.imgur.com/o0Y5BbT.png) Также проверим, что сейчас нет заблокированных ip-адресов ![](https://i.imgur.com/ZS36jt3.png) Теперь переходим на нашу страничку и вводим ip-адрес сервера в браузере, переходим в режим разработчика и далее делаем многочисленные запросы: в Chrome это - ctrl+r ![](https://i.imgur.com/l0XSbh1.png) Адрес был добавлен в бан лист ![](https://i.imgur.com/dtxvdil.png) В iptables можно увидеть запись ![](https://i.imgur.com/xm9gBX4.png) Разблокировать нужный ip-адрес возможно с помощью команды ![](https://i.imgur.com/5Cj6wop.png)