###### tags: `Linux`
# Linux_Basic-Горбаконь_Кирилл-Практика-4
## Безопасность Linux серверов
### Практическая работа №4.1
* Снапшот Linux-сервера.

* Снапшот Linux-клиента.

* Снапшот Windows.

---
* Обновляем локальную базу пакетов.

* Устанавливаем Samba.

* Создаем резервную копию файла конфигурации Samba.

* Создаем директорию, к которой все пользователи будут иметь общий доступ.

* Перейдем к этому каталогу и изменим режим доступа и владельца.

* Создаем каталог, к которому иметь доступ будут ограниченное число пользователей.

* Создаем группу пользователей, которые будут иметь доступ к приватным данным.

* Создаем нужных пользователей с помощью команды useradd.

* Добавляем созданных пользователей в группу.

* Изменим группу, которой принадлежит приватная директория.

* Зададим пароль, с помощью которого пользователь будет подключаться к каталогу.

* Откроем файл конфигурации и заменим содержимое файла на следующие строки.

* Проверим настройки в smb.conf с помощью команды `testparm -s`.

* Перезапустим сервис, чтобы изменения вступили в силу.

* Добавим сервис в автозагрузку.

* Подключаемся с клиента Linux.

* Подключаемся с клиента Windows.

* Вводим данные для входа в папку private.

* Входим в папку private.

* Входим в папку public.

---
* Создаем папку share.

* Назначаем права доступа к новой папке.

* Даем права на чтение группе пользователей users, но предоставляем возможность записи для группы с именем admins, а также пользователю PT.
`nano /etc/samba/smb.conf`

---
* Проверяем актуальные правила iptables.

* Открываем порты, которые использует SAMBA.

* Изменения применились.

* Устанавливаем дополнительный пакет iptables-persistent

* Включаем его в автозагрузку.

* Перезагружаем машину и видим, что указанные правила фаервола iptables сохранились после перезагрузки.

---
### Практическая работа №4.2
* Устанавливаем fail2ban.

* Запускаем сервис.

* Ознакомимся со всеми файлами в директории Fail2Ban.

* Открываем jail.conf.

* Видим, что нам рекомендуют создать дополнительный файл с расширением .local. Сделаем это:

* Перезапускаем сервис.

* Начинаем подбор пароля с помощью Hydra.

* Клиент попал в бан.

* В конфигурационном файле меняем значение enable на false.

* Перезапускаем сервис.

* Снова начинаем брутфорс атаку.

* Fail2ban отработал корректно.

* Теперь отключим сервис.

* Hydra начала подбирать пароли.

* На сервере открываем лог-файл и видим неудачные попытки авторизации.
`cat /var/log/auth.log`

---
### Практическая работа №4.3
* Устанавливаем пакеты, необходимые для подключения apt-репозитория.

* Импортируем официальный ключ, используемый apt для проверки подлинности пакетов.

* Проверяем, верный ли ключ был загружен.

* Выполним следующую команду для подключения apt-репозитория для стабильной версии nginx.

* Настраиваем закрепление.

* Устанавливаем nginx.

* Стартовая страница nginx.

---
* Устанавливаем fail2ban.

* Устанавливаем ipset.

* В `/etc/nginx/sites-enable/default` выставляем следующие параметры:

* Вносим изменения в `/etc/nginx/nginx.conf`

* Вбиваем ip-адрес сервера в браузере и переходим в режим разработчика.

* В режиме разработчика отправляем многочисленные запросы ctrl+r, ловим ошибку 503.

* Данные об ошибке отобразились в log файле:
`cat /var/log/nginx/error.log`

* Вносим изменения в файл jail.local.

* `nano iptables-blocktype.local`

* Перезапускаем сервис fail2ban.

* Смотрим, что iptables отрабатывает.

* Настройки в fail2ban применились, фильтры работают по nginx-limit-req, sshd.

* Заблокированных ip-адресов сейчас нет.

* В режиме разработчика отправляем мнгочисленные запросы ctrl+r и видим такое окно:

* В выводе iptables добавилось новое правило.

* В выводе fail2ban видим ip компьютера, который отправлял запросы.

* Разблокируем этот ip-адрес.
