###### tags: `Linux basic`
# Linux_Basic-Омаров_Джамалутин-Практика-4
*Выполнил Омаров Джамалутин*
## Практическая работа №4.1 Настройка файлового сервера в корпоративной инфраструктуре
### Часть 1. Установка Samba на Linux
Буду показывать на Ubuntu Server.
1.1 Обновление пакетов;

1.2 Скачивание и установка samba;

1.3 Создание резервной копии;

1.4 Создаем директорию, к которой будет общий доступ;

1.5 Права доступа на папку public;

1.7 Создание приватной папки для определенных пользователей;

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

1.9 Создадим пользователя, добавим его в созданную группу;

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

1.11 Создадим пароль для пользователя, с помощью которого пользователь будет подключаться к каталогу;

1.12 Зайдем в файл конфигурации smb;

1.13 global;

1.14 public;

1.15 private;

Значения параметров выше:
- global - раздел с общими настройками для Samba сервера
- workgroup - рабочая группа Windows, WORKGROUP - значение по умолчанию для всех Windows машин, если вы не меняли самостоятельно
- security - режим безопасности, значение user означает аутентификацию по логину и паролю
- map to guest - задает способ обработки запросов, bad user - запросы с неправильным паролем будут отклонены, если такое имя пользователя существует
- wins support - включить или выключить поддержку WINS
- dns proxy - возможность запросов к DNS
- public - название общего каталога, которое будут видеть пользователи сети, может быть произвольным и не совпадать с именем директории
- path - полный путь до общего каталога
- browsable - отображение каталога в сетевом окружении
- writable - использование каталога на запись, инверсия read only
- guest ok - авторизация без пароля
- force user - пользователь по умолчанию
- valid users - список пользователей, у которых есть доступ к каталогу, через @ указывается unix-группа пользователей
- Проверить настройки в smb.conf можно с помощью команды:
- testparm -s
1.16 testparm -s;

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

### Часть 2. Настройка firewall iptables
В операционной системе Linux в ядро встроен очень гибкий и надежный фаервол iptables.
Откроем порты. которые использует samba.
2.1 Покажу конфигурацию и расскажу про используемые опции;

* A добавляет правило в цепочку
* s сеть для устройств отправителей пакетов
* p протокол
* m позволяет использовать дополнительный шаблон
* dport порт
* j действие
2.2 Как видим, мы добавили правило в цепочку INPUT;

2.3 Чтобы правила сохранялись после перезагрузки, установим данный пакет;

2.4 Посмотрим правила в файле;

2.5 Сохраним правила;

-f указывать путь к файлу.
2.6 ИТОГ после перезагрузки:



2.7 Добавление в автозагрузку;

2.8 Команда smbstatus;

Показывает кто в данный момент подключен к общему ресурсу, а также используемую версию протокола:
На Kali 3_11, на Windows 2_10.
Обе машины сидят с user1.
2.9 Теперь Kali сидит с nobody;

### Часть 3. Доступ к папкам клиентом Linux, Windows
**Linux**
3.1 Общая информация;

3.2 На Linux при помощи smbclient подключились public;

3.3 А теперь доступ к папке private;

**Windows**
3.4 На Windows;

3.5 Доступ к папке private;

3.6 Зашел, используя пароль и логин пользователя из группы smbgr на сервере.

### Часть 4. Настройка share
4.1 Создание папки;

4.2 Права на папку;

* PT имеет права чтения и записи
* admins группа имеет права чтения и записи
* Остальные только чтение
4.3 /etc/samba/smb.conf

## Практическая работа №4.2 Fail2Ban-SSH и Brute-force attack
Научимся конфигурировать Fail2Ban для отражения атак brute-force attack на SSH.
Fail2ban — простой в использовании локальный сервис, который отслеживает log–файлы запущенных программ, и на основании различных условий блокирует по IP найденных нарушителей.
### Часть 1. Настроим SSH сервер
1.1 Проверим установлен ли, и если установлен, то активен ли?

1.2 Конфигурация;

Оставим базовые настройки.
1.3 Пробуем подключиться;

Работает.
На этом базовую настройку завершил, если понадобится изменить конфигурацию, я покажу.
### Часть 2. Fail2ban
2.1 Обновим пакеты;

2.2 Установим fail2ban;

2.3 Запустим сервис;

2.4 Ознакомимся со всеми файлами в директории;

самый важный файл - это jail.conf (данный файл содержит фильтры по умолчанию для определенных служб)
2.5 Откроем этот файл;

2.6 Нам рекомендуют создать локальный файл, чтобы не потерять конфигурацию при обновлении. Создадим его;

2.7 Добавим фильтр для ssh;

2.8 Для того, чтобы fail2ban понимал куда смотреть, делаем следующее;


Увидели подключение с Kali по ssh.
Данный файл показывает попытки подключения к ssh серверу.
2.9 Продолжим конфигурацию;

2.10 Делаем рестарт сервиса;

2.11 Проверяем активность;

2.12 Пробуем подключиться 3 раза с неправильным паролем;

2.13 Можно убедиться еще одним способом;

2.14 Теперь посмотрим журнал банов;

2.15 Более подробная статистика по sshd;

2.16 Kali забанен;

2.17 Теперь поменяем enable = false в файле конфигурации, и посмотрим результат;

2.18 После рестарта сервиса, забаненный ip адрес не пропадал. Поэтому я сделал следующее;

2.19 Теперь забаненных ip нет, можно подключаться снова;

2.20 Подключили hydra снова;

2.21 Заблокировали, отработано корректно.

2.22 Теперь отключим fail2ban;

2.23 Запустим hydra;

Идет подбор пароля из указанного списка, указал 4 потока.
2.24 Я ввел в список свой пароль от ssh, вот какой результат;

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

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

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

Отпечаток ключа: 573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62
1.4 Для подключения apt-репозитория для стабильной версии nginx, выполним следующую команду;

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

1.6 Установим nginx;

1.7 Запустим;

Порт 80;

1.8 Проверим в браузере;

1.9 У меня есть apache2, поэтому делаем следующее;

1.10 Теперь работает!

### Часть 2. Далее переходим к настройке nginx от DDoS атак на наш сервер
2.1 Установим fail2ban и ipset

2.2 Переходим сюда, здесь находится стартовая страница nginx;

2.3 Добавляем данную строчку;

Если скорость поступления запросов превышает описанную в зоне, то их обработка задерживается так, чтобы запросы обрабатывались с заданной скоростью.
2.4 Далее переходим в конфигурационный файл nginx.conf;

Позволяют в среднем не более 3 запросов в секунду.
То есть поставили ограничения по скорости запросов.
2.5 После чего вбиваем ip-адрес сервера в браузере, переходим в режим разработчика и далее делаем многочисленные запросы. Ctrl+R;

2.6 Данные ошибки будут отображаться в log файле.
cat /var/log/nginx/error.log;

Данный log файл даст нам нужную информация для настройки фильтрации fail2ban.
### Часть 3. Настройка fail2ban от DDoS атак на наш сервер
3.1 Во вновь созданном файле jail.local внесём следующие параметры;

3.2 Также добавим;

3.3 Далее переходим в другой файл;

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


3.5 Перезапустим, чтобы настройки применились;

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

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

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

3.9 Теперь проведем Ddos;

Результат;

3.10 Вот, что показывает iptables;

3.11 Вот, что показывает fail2ban;

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

3.13 После разблокировки есть доступ;
