###### 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)