###### tags: `Linux` # Linux_Basic-Горбаконь_Кирилл-Практика-4 ## Безопасность Linux серверов ### Практическая работа №4.1 * Снапшот Linux-сервера. ![](https://i.imgur.com/abJckmw.png) * Снапшот Linux-клиента. ![](https://i.imgur.com/68ejYGA.png) * Снапшот Windows. ![](https://i.imgur.com/1fNJO7k.png) --- * Обновляем локальную базу пакетов. ![](https://i.imgur.com/4ifUjBD.png) * Устанавливаем Samba. ![](https://i.imgur.com/ni4VbbM.png) * Создаем резервную копию файла конфигурации Samba. ![](https://i.imgur.com/RgauU4P.png) * Создаем директорию, к которой все пользователи будут иметь общий доступ. ![](https://i.imgur.com/h8y4W83.png) * Перейдем к этому каталогу и изменим режим доступа и владельца. ![](https://i.imgur.com/wgLNRhv.png) * Создаем каталог, к которому иметь доступ будут ограниченное число пользователей. ![](https://i.imgur.com/RX1BpYt.png) * Создаем группу пользователей, которые будут иметь доступ к приватным данным. ![](https://i.imgur.com/yVjvdgi.png) * Создаем нужных пользователей с помощью команды useradd. ![](https://i.imgur.com/wNRpwsI.png) * Добавляем созданных пользователей в группу. ![](https://i.imgur.com/3AbHX1g.png) * Изменим группу, которой принадлежит приватная директория. ![](https://i.imgur.com/KSHCo0d.png) * Зададим пароль, с помощью которого пользователь будет подключаться к каталогу. ![](https://i.imgur.com/Wzigsx2.png) * Откроем файл конфигурации и заменим содержимое файла на следующие строки. ![](https://i.imgur.com/g2z2Tx1.png) * Проверим настройки в smb.conf с помощью команды `testparm -s`. ![](https://i.imgur.com/FyExGow.png) * Перезапустим сервис, чтобы изменения вступили в силу. ![](https://i.imgur.com/XIswVzD.png) * Добавим сервис в автозагрузку. ![](https://i.imgur.com/7Eev2nV.png) * Подключаемся с клиента Linux. ![](https://i.imgur.com/p7CG3yz.png) * Подключаемся с клиента Windows. ![](https://i.imgur.com/uugPWpy.png) * Вводим данные для входа в папку private. ![](https://i.imgur.com/7ATSiKp.png) * Входим в папку private. ![](https://i.imgur.com/9tcBNih.png) * Входим в папку public. ![](https://i.imgur.com/f7fGjID.png) --- * Создаем папку share. ![](https://i.imgur.com/vk5cTUm.png) * Назначаем права доступа к новой папке. ![](https://i.imgur.com/puTLXqy.png) * Даем права на чтение группе пользователей users, но предоставляем возможность записи для группы с именем admins, а также пользователю PT. `nano /etc/samba/smb.conf` ![](https://i.imgur.com/qE7Ad5N.png) --- * Проверяем актуальные правила iptables. ![](https://i.imgur.com/gsAjj7r.png) * Открываем порты, которые использует SAMBA. ![](https://i.imgur.com/RhJBbMq.png) * Изменения применились. ![](https://i.imgur.com/jg3IUNO.png) * Устанавливаем дополнительный пакет iptables-persistent ![](https://i.imgur.com/zCykNNP.png) * Включаем его в автозагрузку. ![](https://i.imgur.com/plpxuLV.png) * Перезагружаем машину и видим, что указанные правила фаервола iptables сохранились после перезагрузки. ![](https://i.imgur.com/gX4vBeL.png) --- ### Практическая работа №4.2 * Устанавливаем fail2ban. ![](https://i.imgur.com/wcrEjFp.png) * Запускаем сервис. ![](https://i.imgur.com/rcz8FCZ.png) * Ознакомимся со всеми файлами в директории Fail2Ban. ![](https://i.imgur.com/BpbvvRZ.png) * Открываем jail.conf. ![](https://i.imgur.com/vHhqY0Y.png) * Видим, что нам рекомендуют создать дополнительный файл с расширением .local. Сделаем это: ![](https://i.imgur.com/IhfT9os.png) * Перезапускаем сервис. ![](https://i.imgur.com/BuTSE8P.png) * Начинаем подбор пароля с помощью Hydra. ![](https://i.imgur.com/mL0qNjF.png) * Клиент попал в бан. ![](https://i.imgur.com/CGTW9s9.png) * В конфигурационном файле меняем значение enable на false. ![](https://i.imgur.com/Gz4GZJN.png) * Перезапускаем сервис. ![](https://i.imgur.com/xhqOus6.png) * Снова начинаем брутфорс атаку. ![](https://i.imgur.com/e1PdYgx.png) * Fail2ban отработал корректно. ![](https://i.imgur.com/7Hbw0Sj.png) * Теперь отключим сервис. ![](https://i.imgur.com/VHsUa8Z.png) * Hydra начала подбирать пароли. ![](https://i.imgur.com/RFDfYLF.png) * На сервере открываем лог-файл и видим неудачные попытки авторизации. `cat /var/log/auth.log` ![](https://i.imgur.com/7pEU7UD.png) --- ### Практическая работа №4.3 * Устанавливаем пакеты, необходимые для подключения apt-репозитория. ![](https://i.imgur.com/ZgdnSaL.png) * Импортируем официальный ключ, используемый apt для проверки подлинности пакетов. ![](https://i.imgur.com/f8Ee1LN.png) * Проверяем, верный ли ключ был загружен. ![](https://i.imgur.com/pMxLsyU.png) * Выполним следующую команду для подключения apt-репозитория для стабильной версии nginx. ![](https://i.imgur.com/wq1hQ1t.png) * Настраиваем закрепление. ![](https://i.imgur.com/4xciLJA.png) * Устанавливаем nginx. ![](https://i.imgur.com/XFdBOMz.png) * Стартовая страница nginx. ![](https://i.imgur.com/RU70YlH.png) --- * Устанавливаем fail2ban. ![](https://i.imgur.com/lA8uDXr.png) * Устанавливаем ipset. ![](https://i.imgur.com/fbDqy84.png) * В `/etc/nginx/sites-enable/default` выставляем следующие параметры: ![](https://i.imgur.com/Gk13tsy.png) * Вносим изменения в `/etc/nginx/nginx.conf` ![](https://i.imgur.com/QkLjEX7.png) * Вбиваем ip-адрес сервера в браузере и переходим в режим разработчика. ![](https://i.imgur.com/Gz81fwE.png) * В режиме разработчика отправляем многочисленные запросы ctrl+r, ловим ошибку 503. ![](https://i.imgur.com/QDIAqLP.png) * Данные об ошибке отобразились в log файле: `cat /var/log/nginx/error.log` ![](https://i.imgur.com/1GkiF9Y.png) * Вносим изменения в файл jail.local. ![](https://i.imgur.com/TFmUrTW.png) * `nano iptables-blocktype.local` ![](https://i.imgur.com/slS7xzn.png) * Перезапускаем сервис fail2ban. ![](https://i.imgur.com/Ml8f6X8.png) * Смотрим, что iptables отрабатывает. ![](https://i.imgur.com/WqtbZYR.png) * Настройки в fail2ban применились, фильтры работают по nginx-limit-req, sshd. ![](https://i.imgur.com/Hj56NAj.png) * Заблокированных ip-адресов сейчас нет. ![](https://i.imgur.com/cxofGy9.png) * В режиме разработчика отправляем мнгочисленные запросы ctrl+r и видим такое окно: ![](https://i.imgur.com/KVFthr7.png) * В выводе iptables добавилось новое правило. ![](https://i.imgur.com/i1gjwkD.png) * В выводе fail2ban видим ip компьютера, который отправлял запросы. ![](https://i.imgur.com/oEJH4Wm.png) * Разблокируем этот ip-адрес. ![](https://i.imgur.com/ldNqisv.png)