---
# System prepended metadata

title: Linux_Basic-Омаров_Джамалутин-Практика-4
tags: [Linux basic]

---

###### tags: `Linux basic`
# Linux_Basic-Омаров_Джамалутин-Практика-4
*Выполнил Омаров Джамалутин*
## Практическая работа №4.1 Настройка файлового сервера в корпоративной инфраструктуре

### Часть 1. Установка Samba на Linux

Буду показывать на Ubuntu Server.

1.1 Обновление пакетов;
![](https://i.imgur.com/m8e1PUr.png)

1.2 Скачивание и установка samba;
![](https://i.imgur.com/xTqv6eC.png)

1.3 Создание резервной копии;
![](https://i.imgur.com/uyGNx6c.png)

1.4 Создаем директорию, к которой будет общий доступ;
![](https://i.imgur.com/9kgUiFu.png)

1.5 Права доступа на папку public;
![](https://i.imgur.com/l4txaVD.png)

1.7 Создание приватной папки для определенных пользователей;
![](https://i.imgur.com/8gmjJj3.png)

1.8 Создаем группу пользователей, которые будут иметь доступ к приватной папке;
![](https://i.imgur.com/XfLSzvf.png)

1.9 Создадим пользователя, добавим его в созданную группу;
![](https://i.imgur.com/ar9kIYD.png)

1.10 Изменим группу, которой принадлежит приватная директория;
![](https://i.imgur.com/RltegLJ.png)

1.11 Создадим пароль для пользователя, с помощью которого пользователь будет подключаться к каталогу;
![](https://i.imgur.com/qYnilrY.png)

1.12 Зайдем в файл конфигурации smb;
![](https://i.imgur.com/MieSBoC.png)

1.13 global;
![](https://i.imgur.com/HsNkCXm.png)

1.14 public;
![](https://i.imgur.com/9R3xtq1.png)

1.15 private;
![](https://i.imgur.com/Kx9yUgJ.png)

Значения параметров выше:

- 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;
![](https://i.imgur.com/iLMJG9w.png)

1.17 Перезапустил сервис, чтобы изменения вступили в силу;
![](https://i.imgur.com/u4y7Xub.png)

### Часть 2. Настройка firewall iptables

В операционной системе Linux в ядро встроен очень гибкий и надежный фаервол iptables.
Откроем порты. которые использует samba.

2.1 Покажу конфигурацию и расскажу про используемые опции;
![](https://i.imgur.com/F5pFMnA.png)
* A добавляет правило в цепочку
* s сеть для устройств отправителей пакетов
* p протокол
* m позволяет использовать дополнительный шаблон
* dport порт
* j действие

2.2 Как видим, мы добавили правило в цепочку INPUT;
![](https://i.imgur.com/qSt6ASL.png)

2.3 Чтобы правила сохранялись после перезагрузки, установим данный пакет;
![](https://i.imgur.com/q6GNlF2.png)

2.4 Посмотрим правила в файле;
![](https://i.imgur.com/u2Xv8F1.png)

2.5 Сохраним правила;
![](https://i.imgur.com/dZRFUBg.png)
-f указывать путь к файлу.

2.6 ИТОГ после перезагрузки:
![](https://i.imgur.com/Hi69Fyz.png)

![](https://i.imgur.com/trN1rZ8.png)

![](https://i.imgur.com/6VAQBPg.png)

2.7 Добавление в автозагрузку;
![](https://i.imgur.com/we0nydB.png)

2.8 Команда smbstatus;
![](https://i.imgur.com/9UJfwv0.png)
Показывает кто в данный момент подключен к общему ресурсу, а также используемую версию протокола:
На Kali 3_11, на Windows 2_10.
Обе машины сидят с user1.

2.9 Теперь Kali сидит с nobody;
![](https://i.imgur.com/pBZCRnj.png)

### Часть 3. Доступ к папкам клиентом Linux, Windows

**Linux**

3.1 Общая информация;
![](https://i.imgur.com/LXSs9Jb.png)

3.2 На Linux при помощи smbclient подключились public;
![](https://i.imgur.com/biJbgRe.png)

3.3 А теперь доступ к папке private;
![](https://i.imgur.com/t6HAD6p.png)

**Windows**

3.4 На Windows;
![](https://i.imgur.com/BEkIHeW.png)

3.5 Доступ к папке private;
![](https://i.imgur.com/3Ovi6AT.png)

3.6 Зашел, используя пароль и логин пользователя из группы smbgr на сервере.
![](https://i.imgur.com/RRlk25Q.png)

### Часть 4. Настройка share

4.1 Создание папки;
![](https://i.imgur.com/eoUOW6j.png)

4.2 Права на папку;
![](https://i.imgur.com/KeExYrM.png)
* PT имеет права чтения и записи
* admins группа имеет права чтения и записи
* Остальные только чтение

4.3 /etc/samba/smb.conf
![](https://i.imgur.com/BlHxQvG.png)

## Практическая работа №4.2 Fail2Ban-SSH и Brute-force attack

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

### Часть 1. Настроим SSH сервер

1.1 Проверим установлен ли, и если установлен, то активен ли?
![](https://i.imgur.com/xFo0fH3.png)

1.2 Конфигурация;
![](https://i.imgur.com/AU8Xo16.png)
Оставим базовые настройки.

1.3 Пробуем подключиться;
![](https://i.imgur.com/attcA1r.png)

Работает.
На этом базовую настройку завершил, если понадобится изменить конфигурацию, я покажу.

### Часть 2. Fail2ban

2.1 Обновим пакеты;
![](https://i.imgur.com/XLxgEOd.png)

2.2 Установим fail2ban;
![](https://i.imgur.com/SKNqoK5.png)

2.3 Запустим сервис;
![](https://i.imgur.com/TCD3vZR.png)

2.4 Ознакомимся со всеми файлами в директории;
![](https://i.imgur.com/z8Gc4uT.png)
самый важный файл - это jail.conf (данный файл содержит фильтры по умолчанию для определенных служб)

2.5 Откроем этот файл;
![](https://i.imgur.com/maAZ6lB.png)

2.6 Нам рекомендуют создать локальный файл, чтобы не потерять конфигурацию при обновлении. Создадим его;
![](https://i.imgur.com/HSsHLgh.png)

2.7 Добавим фильтр для ssh;
![](https://i.imgur.com/TJWqnHy.png)

2.8 Для того, чтобы fail2ban понимал куда смотреть, делаем следующее;
![](https://i.imgur.com/82PBYAl.png)

![](https://i.imgur.com/Fl0SPIG.png)
Увидели подключение с Kali по ssh.
Данный файл показывает попытки подключения к ssh серверу.

2.9 Продолжим конфигурацию;
![](https://i.imgur.com/xxZxAPF.png)

2.10 Делаем рестарт сервиса;
![](https://i.imgur.com/yGIyThY.png)

2.11 Проверяем активность;
![](https://i.imgur.com/1M37iGT.png)

2.12 Пробуем подключиться 3 раза с неправильным паролем;
![](https://i.imgur.com/o7HGohP.png)

2.13 Можно убедиться еще одним способом;
![](https://i.imgur.com/wx2swqT.png)

2.14 Теперь посмотрим журнал банов;
![](https://i.imgur.com/HjgoSp8.png)

2.15 Более подробная статистика по sshd;
![](https://i.imgur.com/w1K8osu.png)

2.16 Kali забанен;
![](https://i.imgur.com/bIECGFx.png)

2.17 Теперь поменяем enable = false в файле конфигурации, и посмотрим результат;
![](https://i.imgur.com/iIwY0Ln.png)

2.18 После рестарта сервиса, забаненный ip адрес не пропадал. Поэтому я сделал следующее;
![](https://i.imgur.com/Urmqrg7.png)

2.19 Теперь забаненных ip нет, можно подключаться снова;
![](https://i.imgur.com/U4c8Fhy.png)

2.20 Подключили hydra снова;
![](https://i.imgur.com/6AQfOc8.png)

2.21 Заблокировали, отработано корректно.
![](https://i.imgur.com/vGNjzfS.png)

2.22 Теперь отключим fail2ban;
![](https://i.imgur.com/5ApNnm9.png)

2.23 Запустим hydra;
![](https://i.imgur.com/Se4TPv0.png)
Идет подбор пароля из указанного списка, указал 4 потока.

2.24 Я ввел в список свой пароль от ssh, вот какой результат;
![](https://i.imgur.com/SxnlM4g.png)

## Практическая работа №4.3 "Fail2Ban и Dos/DDoS attack" на примере nginx


### Часть 1. Разворачивание сервера nginx на базе дистрибутивов Debian

1.1 Установим пакеты, необходимые для подключения apt-репозитория;
![](https://i.imgur.com/kzQZzDh.png)

1.2 Теперь нужно импортировать официальный ключ, используемый apt для проверки подлинности пакетов. Скачаем;
![](https://i.imgur.com/QQNBD8D.png)

1.3 Проверим, верный ли ключ был загружен;
![](https://i.imgur.com/6FG8Kw5.png)
Отпечаток ключа: 573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62

1.4 Для подключения apt-репозитория для стабильной версии nginx, выполним следующую команду;
![](https://i.imgur.com/6yKgBst.png)

1.5 Для использования пакетов из нашего репозитория вместо распространяемых в дистрибутиве, настроим закрепление;
![](https://i.imgur.com/cDAPBVL.png)

1.6 Установим nginx;
![](https://i.imgur.com/3s4lGFw.png)

1.7 Запустим;
![](https://i.imgur.com/KHmKvK2.png)

Порт 80;
![](https://i.imgur.com/f41MPRp.png)

1.8 Проверим в браузере;
![](https://i.imgur.com/FZhwlmV.png)

1.9 У меня есть apache2, поэтому делаем следующее;
![](https://i.imgur.com/0sRMSHe.png)

1.10 Теперь работает!
![](https://i.imgur.com/iXS1D89.png)


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

2.1 Установим fail2ban и ipset
![](https://i.imgur.com/qZmwM0b.png)

2.2 Переходим сюда, здесь находится стартовая страница nginx;
![](https://i.imgur.com/cXwfdd3.png)

2.3 Добавляем данную строчку;
![](https://i.imgur.com/VK3QHuK.png)
Если скорость поступления запросов превышает описанную в зоне, то их обработка задерживается так, чтобы запросы обрабатывались с заданной скоростью.

2.4 Далее переходим в конфигурационный файл nginx.conf;
![](https://i.imgur.com/9kH1nhi.png)
Позволяют в среднем не более 3 запросов в секунду.
То есть поставили ограничения по скорости запросов.

2.5 После чего вбиваем ip-адрес сервера в браузере, переходим в режим разработчика и далее делаем многочисленные запросы. Ctrl+R;
![](https://i.imgur.com/NfNYghr.png)

2.6 Данные ошибки будут отображаться в log файле.
cat /var/log/nginx/error.log;
![](https://i.imgur.com/Gzr0kjR.png)
Данный log файл даст нам нужную информация для настройки фильтрации fail2ban.

### Часть 3. Настройка fail2ban от DDoS атак на наш сервер

3.1 Во вновь созданном файле jail.local внесём следующие параметры;
![](https://i.imgur.com/6YeDG6i.png)

3.2 Также добавим;
![](https://i.imgur.com/ZECZWSg.png)

3.3 Далее переходим в другой файл;
![](https://i.imgur.com/3joAu9W.png)

3.4 Настройки конфигурационных файлов поумолчанию могут быть перезаписаны при обновлении, поэтому создаём новый файл .local;
![](https://i.imgur.com/aOZd7BK.png)

![](https://i.imgur.com/NEaRJRR.png)

3.5 Перезапустим, чтобы настройки применились;
![](https://i.imgur.com/XUOXcIS.png)

3.6 Теперь нам нужно посмотреть, что iptables отрабатывает;
![](https://i.imgur.com/FGkcEH5.png)

3.7 Убедимся. что настройки в fail2ban применились;
![](https://i.imgur.com/srzsSwp.png)

3.8 Также проверим, что сейчас нет заблокированных ip-адресов;
![](https://i.imgur.com/uLIrO8m.png)

3.9 Теперь проведем Ddos;
![](https://i.imgur.com/qwwQclT.png)

Результат;
![](https://i.imgur.com/Gu63cn9.png)

3.10 Вот, что показывает iptables;
![](https://i.imgur.com/4JLesnP.png)

3.11 Вот, что показывает fail2ban;
![](https://i.imgur.com/Ipe7vdz.png)

3.12 Разблокировать нужный ip-адрес возможно с помощью слудующей команды;
![](https://i.imgur.com/Bbqe8NJ.png)

3.13 После разблокировки есть доступ;
![](https://i.imgur.com/QtHtvH1.png)

