--- title: Практическая работа 4 tags: pt-start, linux basics --- ## Настройка samba ### Базовая настройка Заданием по тз было натсроить возможность записи в папку для группы admins и пользователя ptuser. Идем в /etc/samba/smb.conf и добавляем папку share. Указываем ей путь, после чего делаем ее read only. Теперь создаем белый список из тех, у кого есть доступ на запись в данный ресурс: это будет группа admins и пользователь ptuser. ![](https://i.imgur.com/4NPhIkC.png) Добавляем smb в автозапуск на сервер системе ![](https://i.imgur.com/OlcPMOq.png) ДОбавляем группу admins и PT(не обязательно). ![](https://i.imgur.com/l18Tu8x.png) Теперь создаем пользователей. Так как эти пользователи будут использоваться только для smb, то отдельной директории home создавать им не будет, а параметр --ingroup позволит указать в какой группе они будут состоять. ![](https://i.imgur.com/aoGKOcy.png) ![](https://i.imgur.com/nyJkmkt.png) ![](https://i.imgur.com/qml4ulG.png) Теперь добавляем их через smbpasswd -a user ![](https://i.imgur.com/qvQHgXG.png) Для подключения к smb с системы windows требуется включить поддержку общего доступа в менб программ. ![](https://i.imgur.com/W9tVcJ0.png) Теперь включаем поддержку протокола smbv2. ```commands Set-SmbServerConfiguration | Select EnableSMB2Protocol Set-SmbServerConfiguration -EnableSMB2Protocol $true ``` ![](https://i.imgur.com/7snpNoE.png) Теперь подключаемся, введя в поисковую строку. Таким образом мы можем подключаться к сетевым папкам от систем windows ``` \\<ip>\<shared name> ``` ![](https://i.imgur.com/EW0HGsY.png) Теперь подключаемся с клиент системы к серверу от имени adminsmb(у него есть доступ к редактированию). Создавать директории нам разрешено ![](https://i.imgur.com/8Ul5Qol.png) Подключаемся от имени ptuser и проверяем тоже самое. Доступ должен быть. Видим, что директории создавать можем, а следовательно редактирование разрешено. ![](https://i.imgur.com/jNWsDAS.png) Теперь пробуем подключиться от пользователя. Так как это обычный пользователь, то доступа у него не должно быть, следовательно ему выведет "доступ запрещен". ![](https://i.imgur.com/jc3auzk.png) Теперь разберем подробнее команду smbstatus. В ней расписывается версия samba, а чуть ниже самое важное: данные подключения пользователей. Тут присутствует номер процесса подключения, имя пользователя, его группа, ip адрес, с которого производится подключение, протокол подключение, шифрование(если есть), а также способ подключения(может быть пустым). Дальше можно увидеть активные подключения к сетевым папкам и время, когда соединение было открыто. ![](https://i.imgur.com/1jJ46eL.png) ### Настройка корзины общего доступа Создаем настройку для корзины. > [name=despersy] > Сразу отмечу, что делать корзину в общей папке не стоит, если не включено hide dot files для папки, ибо пользователя будут видеть общую корзину. ![](https://i.imgur.com/B7Vt2LL.png) Теперь добавдяем настройку в нашк общую папку ![](https://i.imgur.com/t0lSLDU.png) Проверяем результат. Закидываем любой файл, после чего удаляем его. Теперь проверяем в папке trash. ![](https://i.imgur.com/4vpUulT.png) ## Работа с Fail2ban Скачиваем fail2ban. apt install fail2ban. ![](https://i.imgur.com/74xK96g.png) Теперь добавляем его в автозапуск. ![](https://i.imgur.com/R5Rk9BB.png) Смотрим структуру директорий fail2ban(удобнее было бы использовать tree для этого, но по умолчанию он не скачан) ![](https://i.imgur.com/5zbCwu1.png) Включаем настройку fail2ban. Так как у меня ssh включен на другом порту, что и настройка немного другая. ![](https://i.imgur.com/e7fTacK.png) Вот полная настройка /etc/fail2ban/jail.conf ![](https://i.imgur.com/3yMmSV9.png) Перезапускаем для введения настроек в силу и проверяем его работу ```commands systemctl restart fail2ban systemctl status fail2ban ``` ![](https://i.imgur.com/cHAWgz4.png) Так как подключения по паролю у меня было отключено, его стоит теперь включить, ибо иначе атаку провести не сможем. ![](https://i.imgur.com/XDRoiXa.png) > [name=despersy] > Так как гидра отказывается работать на на моем порту, мне пришлось использовать аналог - медузу > ![](https://i.imgur.com/bL55SMT.png) Выполняем атаку и попадаем в бан. ![](https://i.imgur.com/8VgLqTn.png) Смотрим результат атаки. Видим одного пользователя в бане - это наш атакующий, если посмотреть более подробное описание. ```commands fail2ban-client status fail2ban-client status sshd ``` ![](https://i.imgur.com/5XteNDT.png) ![](https://i.imgur.com/aLflNE3.png) ## Базовая защита от DoS атак. Скачиваем пакеты ``` apt install curl gnupg2 ca-certificates lsb-release debian-archive-keyring -y ``` ![](https://i.imgur.com/KJsrUNB.png) теперь скачиваем ключ подписи для репозитория. > [name=despersy] > Ловим ошибку... Ясно, будем ипровизировать. > ![](https://i.imgur.com/8JcAr4u.png) > Меняем немного команду на скачивание, получаем удовлетворительный результат > ![](https://i.imgur.com/EnDzxer.png) > Результарующая команда > ``` curl -N -s https://nginx.org/keys/nginx_signing.key | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null ``` Теперь добавялем репозиторий в список. Добавилось успешно, осталось проверить. ![](https://i.imgur.com/QcHpV3b.png) Устанавливаем повышенный приоритет для пакета nginx именно из этого репозитория. ![](https://i.imgur.com/ur3e1LZ.png) > [name=despersy] > А booksworm то в релизах пока еще нет... Ясно будем брать что есть > ![](https://i.imgur.com/cnnXmIe.png) > Скачиваем nginx > ![](https://i.imgur.com/IidF5tn.png) Теперь остается отключить apache2 и включить nginx, после чего откроется стартовая страница apache2, ибо мы ее не заменяли. ``` systemctl stop apache2 systemctl start nginx ``` ![](https://i.imgur.com/CRp3dFe.png) Переходим в /var/www/html и заменяем тут два файла. ![](https://i.imgur.com/JIvWgae.png) Вот результат ![](https://i.imgur.com/i5M0AA6.png) Переходим к защите. Скачиваем ipset ![](https://i.imgur.com/sTmxaGB.png) И делаем настройку в /etc/nginx/sites-enabled/default ![](https://i.imgur.com/QAXOFyy.png) После этого переходим в основной конфиг nginx и добавляем выделенные строчки ![](https://i.imgur.com/yRT6Ncz.png) Теперь при удерживании на сайте ctrl+r(перезагрузка страницы) мы будем имитровать DoS атаку. Сервер через пару секунд даст нам 503 ошибку ![](https://i.imgur.com/c3Ej6ic.png) Посмотрим логи наших действий ![](https://i.imgur.com/ntATMfP.png) ### Защита от DoS при помощи fail2ban В jail.conf настраиваем лимит подключение для nginx, чтобы после этого кидать пользователя в банлист ![](https://i.imgur.com/tt5DvCl.png) > [name=despersy] > Но нам выдаст ошибку при запуске, поэтому комментим пару строчек > ![](https://i.imgur.com/tQfviEZ.png) Теперь смотрим применение настроек![](https://i.imgur.com/BiPp4iH.png) Выполнив опять предыдущую атаку мы попадем в бан ``` iptables -L -v fail2ban-client status fail2ban-client status nginx-limit-req ``` ![](https://i.imgur.com/U3FBrri.png) ![](https://i.imgur.com/Ngf8rHi.png) ![](https://i.imgur.com/Hv8LlEA.png) Вот результат атаки с fail2ban ![](https://i.imgur.com/w5UiCWx.png) Теперь убираем и бана наш ip ![](https://i.imgur.com/pbgXNCt.png) И опять получаем доступ к сайту ![](https://i.imgur.com/Y6ONdOw.png)