# Linux basics 4
# Практика 4 Безопасность Linux серверов
*Выполнил Андреев Игорь Константинович*
# Практика 4.1 Настройка файлового сервера в корпоративной инфраструктуре
## Часть 1 - Разворачиваем стенды и настраиваем samba server
### Устройства - ubuntu 1 (пользователь: igor), ubuntu 2 (пользователь: igoradd) и хостовая windows 10 (у меня ноут не потянет 3ю машину xD). Все соединены через bridge сеть
### 1.1 Всё необходимое уже установлено

### 1.2 На ubuntu 2 скачиваем (на винде samba по дефолту)

### 1.3 Делаем бэкап

### 1.4 Создаём директории для samba

### 1.5 Добавляем группу пользователей для приватных данных, созадём одного такого пользователя и меняем принадлежность папки private

### 1.6 Задаём пароль для нового пользователя

### 1.7 Настройка smb.conf


### 1.8 Настраиваем iptables

### 1.9 Теперь необходимо сделать так, чтобы указанные выше правила фаервола iptables были сохранены после перезагрузки машины

### 1.10 Добавляем samba в автозагрузку

### 1.11 Проверяем возможность подключения c Windows и Linux



### ubuntu 2


## Часть 2 - задание
- Получить доступ к папкам и файлам находящимся на файловом сервере Linux, клиентом Linux
- Получить доступ к папкам и файлам находящимся на файловом сервере Linux, клиентом Windows
- Добавить сервис Samba в автозагрузку OS Linux
### Уже выполнены выше
### 2.1 Настрить Samba ресурс с названием share и дать права на чтение группе пользователей users, но предоставить возможность записи для группы с именем admins, а также пользователю PT, для этого можете отредактировать файл /etc/samba/smb.conf.
### Добавляем папку share

### Доавляем юзера pt

### Добавляем группу admins

### smb.conf

### Делаем владельцем папки группу users

### Выдаём права: владелец (users) может толко читать, все остальные (pt, admins, которых мы разрешили) могут записывать в файл

### 2.2 smbstatus

### smbstatus — отчет о текущих соединениях Samba или "Узнаем каким пользователем открыт файл в Samba"
### 2.3 Записываем результат в txt файл

### 2.4 Реализация корзины в samba
### Удаляя файлы или каталог на samba по умолчанию нет возможности их восстановить. Для восстановления придется поднимать файлы с архива бэкапа, что не всегда удобно и быстро. Решим эту проблему
### Создадим папку для мусора и изменим smb.conf


### 2.5 Пробуем удалить файл

### 2.6 Видим наши файлы, ez

# Практика 4.2 Fail2Ban-SSH и Brute-force attack
## Часть 1 - fail2ban
### 1.1 Устанавливаем fail2ban

### 1.2 Запускаем службу

### 1.3 jail.conf

### 1.4 jail.local

### 1.5 Перезапускаем

### 1.6 Устанавливаем hydra

### 1.7 Брутфорсим гидрой

### 1.8 Кого-то заблочили

### 1.9 Мы заблокировали свой же ip, ееей :)

### 1.10 Если в конфигурационном файле поменять на false, то ssh начнёт работать корректно и будет давать возможность подключаться

### 1.11 Тюрьма свободна

### 1.12 Ещё один раз атакуем

### 1.13 Fail2ban отработал

### 1.14 Выключаем защиту

### 1.15 Атака идёт

# Практика 4.3 Fail2Ban и Dos/DDoS attack" на примере nginx
## Часть 1 - Разворачивание сервера nginx на базе дистрибутивов Debian
### 1.1 Установливаем пакеты, необходимые для подключения apt-репозитория

### 1.2 Теперь нужно импортировать официальный ключ, используемый apt для проверки подлинности пакетов

### 1.3 Проверяем загрузку

### 1.4 Подключение apt-репозитория для стабильной версии nginx

### 1.5 Для использования пакетов из нашего репозитория вместо распространяемых в дистрибутиве, настроим закрепление

### 1.6 Устанавливаем nginx

### 1.7 Приветственная страница

## Часть 2 - настройка nginx от DDoS атак на наш сервер
### 2.1 Устанавливаем ipset

### 2.2 nano /etc/nginx/sites-enabled/default и добавляем limit_req zone=ltwo burst=5 nodelay;

### 2.3 nano /etc/nginx/nginx.conf и изменяем limit_req_zone $binary_remote_addr zone=ltwo:10m rate=3r/s;

### 2.4 При многочесленных запросах сайт выдаёт ошибку 503

### 2.5 Данные ошибки будут отображаться в log файле

## Часть 3 - Настройке fail2ban от DDoS атак на наш сервер
### 3.1 Изменяем jail.local

### 3.2 Настройки конфигурационных файлов поумолчанию могут быть перезаписаны при обновлении, поэтому создаём новый файл

### 3.3 Добавляем туда следущее:

### 3.4 Поднимаем fail2ban

### 3.5 Теперь нам нужно посмотреть, что iptables отрабатывает

### 3.6 Убедимся. что настройки в fail2ban применились

### 3.7 Также проверим, что сейчас нет заблокированных ip-адресов

### 3.8 Теперь переходим на нашу страничку и вводим ip-адрес сервера в браузере, переходим в режим разработчика и далее делаем многочисленные запросы

### 3.9 переходим на сервер и смотрим что у нас показывает iptables и fail2ban


### 3.10 Разблокировать нужный ip-адрес возможно с помощью слудующей команды
