# Занятие 4. Безопасность Linux серверов #
ip ubuntu 192.168.1.21

ip debian 192.168.1.20

ip kali 192.168.1.12

ip windows

# Практическая работа “Настройка файлового сервера в корпоративной инфраструктуре” #
Прежде всего следует обновить локальную базу пакетов

Далее установите пакеты из главного репозитория: apt-get install -y samba samba-client

Добавим samba в автозагрузку.

Проверим что сервис запустился.

Создайте резервную копию файла конфигурации Samba: cp /etc/samba/smb.conf /etc/samba/smb.conf.bak

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

Перейдите к этому каталогу и измените режим доступа и владельца: chmod -R 0755 public

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

Создадим учётные записи

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


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

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

Откроем файл конфигурации на редактирование с помощью текстового редактора, например nano: Внесём следующие изменения в конфигурационный файл и перезапустим сервис



Проверим что нет ошибок в конфигурации



Перезапустим сервис

Создадим два документа

Любой пользователь может подключится к public и посмотреть наличие файлов в директории, но не может подключится к private

Были введены учётные данные пользователя


На Debian установим smbclient

Видим доступные сетевые ресурсы на Debian

Получение доступа к сетевому ресурсу

Пользователь не может получить доступ к private

А пользователь из группы smbgrp может

Настроим Samba, ресурс с названием share и дать права на чтение группе пользователей users, но предоставить возможность записи для группы с именем admins, а также пользователю PT


Создадим нужные группы

Создадим нужного пользователя


Добавим пользователи в группу users и admins


Настройка smb по заданию




Создадим файлы

Зайдём под пользователм ptuser

Пользователь может вносить изменения в файл.
Зайдём под пользователм vlad


У пользователя нет права на измения только на чтение.
Настройка корзины для общего доступа: введём в глобальной конфигурации следующие строчки

Перезапустим сервис

Команда smbstatus выводит отчет о текущих соединениях к директориям, кто присоеденился, когда, с какого ip-address, какую директорию используют

Установим iptables позволяет изменят настройки iptables и штатный пакет, позволяющий сохранить правила после перезагрузки системы iptables-persistent

Посмотрим правила iptables, для этого достаточно опции -L

Настроить firewall iptables, открыв порты, которые использует SAMBA. Разрим подключения только из локального диапазона IP-адресов


Чтобы сохранить текущие настройки брандмауэра нужно ввести команду netfilter-persistent save

Перезапустим службу и убедимся что настройки сохранились

# Практическая работа "Fail2Ban-SSH и Brute-force attack" #
Обновим репозиторий

Далее давайте установим Fail2Ban

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

После установки сервис запускается автоматически

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

Откроем файл конфигурации jail.conf


И первое, что мы видим - это то, что нам рекомендуют создать дополнительный файл с .local расширением так как при обновлении Fail2Ban файл jail.conf может тоже обновиться и настройки будут возвращены поумолчанию. (если нужно настраивать фильтры для многих сервисов, то можно использовать jail.conf (но следить за обновлениями) или скопировать его с разрешением. local)


Создадим фильтр для ssh в файле конфигурации


Сохраняем изменения

Проверим, что fail2ban работает

Теперь давайте попробуем подключиться по ssh и ввести три раза неправильно пароль

Увидим, что используется одно правило. Ip адрес был добавлен в бан лист

В конфигурации iptables есть новая цепочка f2b-sshd, на которую ссылается правило цепочки INPUT
Теперь выполнить вход не получится

Чтобы убрать бан по ip нужно ввести следующую команду

Установим hydra на debian

Запустим атаку hydra


Был получен бан

Остановим подбор паролей. Удалим ip из бана и выключим сервис fail2ban


Запустим подбор паролей снова. Чтобы обнаружить подбор паролей выведем последние строчки файла логов ратификации


В качестве демонстрации работы программы пароль пользователя vlad был задан 11, чтобы ускорить подбор пароля

Выбран собственный словарь пароля ключ -x. 2:2:1 - пароль размером четыре символа, состоящий только из цифр. А именно все пароли в диапазоне 0000-9999

После того как пароль будет наёден он будет записан в файл ключ -o

При запуске fail2ban адрес будет автоматически помещён в бан, так как по логам увидит большое количество попыток неверного ввода пароля


Уберём адрес из бана

# Fail2Ban и Dos/DDoS attack на примере nginx #
Установите пакеты, необходимые для подключения apt-репозитория

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

Проверьте, верный ли ключ был загружен. Ключ совпадает с тем что указан в методичке

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


Установим nginx



Устанавливаем fail2ban и ipset


Сервис запущен

Выключим apache2



Теперь страница nginx доступна

Далее переходим: nano /etc/nginx/sites-enable/default - тут находится стартовая страничка nginx

далее переходим в конфигурационный файл nginx.conf: `nano /etc/nginx/nginx.conf` - в данном файле нам надо внести следующие изменения

Перезапустим сервис

Отроем страничку nginx запустим режим разработчик после зажатия ctrl+r - выйдет ошибка 503

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

Настройке fail2ban от DDoS атак на наш сервер


После чего нам необходимо изменить настройку, что iptables не отсылал reject а отсылал drop, так как для борьбы с ботами - это более эффективно


Далее переходим в файл nano /etc/fail2ban/action.d/iptables-common.conf

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

В созданном файле пропишем touch iptables-blocktype.local

Затем перезапустим fail2ban

Теперь нам нужно посмотреть, правила iptables

Пока что в правилах нет запрещённых ip адресов.
Убедимся. что настройки в fail2ban применились и введём

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

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

Теперь переходим на нашу страничку и вводим ip-адрес сервера в браузере, переходим в режим разработчика и далее делаем многочисленные запросы: в Chrome это - ctrl+r

Адрес был добавлен в бан лист

В iptables можно увидеть запись

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