ServerAdmin.ru
28.7K subscribers
276 photos
34 videos
12 files
2.6K links
Авторская информация о системном администрировании.

Информация о рекламе: @srv_admin_reklama_bot
Автор: @zeroxzed

Второй канал: @srv_admin_live
Сайт: serveradmin.ru
Download Telegram
Технический пост, который уже давно нужно было сделать, но всё руки не доходили. На канале много содержательных заметок по различным темам. Иногда сам через поиск ищу то, о чём писал. Ниже набор наиболее популярных тэгов по которым можно найти что-то полезное (и не очень).

#remote - все, что касается удалённого управления компьютерами
#helpdesk - обзор helpdesk систем
#backup - софт для бэкапа и некоторые мои заметки по теме
#zabbix - всё, что касается системы мониторинга Zabbix
#мониторинг - в этот тэг иногда попадает Zabbix, но помимо него перечислено много различных систем мониторинга
#управление #ITSM - инструменты для управления инфраструктурой
#devops - в основном софт, который так или иначе связан с методологией devops
#kuber - небольшой цикл постов про работу с kubernetes
#chat - мои обзоры на популярные чат платформы, которые можно развернуть у себя
#бесплатно - в основном подборка всяких бесплатностей, немного бесплатных курсов
#сервис - сервисы, которые мне показались интересными и полезными
#security - заметки, так или иначе связанные с безопасностью
#webserver - всё, что касается веб серверов
#gateway - заметки на тему шлюзов
#mailserver - всё, что касается почтовых серверов
#elk - заметки по ELK Stack
#mikrotik - очень много заметок про Mikrotik
#proxmox - заметки о популярном гипервизоре Proxmox
#terminal - всё, что связано с работой в терминале
#bash - заметки с примерами полезных и не очень bash скриптов или каких-то команд. По просмотрам, комментариям, сохранениям самая популярная тематика канала.
#windows - всё, что касается системы Windows
#хостинг - немного информации и хостерах, в том числе о тех, кого использую сам
#vpn - заметки на тему VPN
#perfomance - анализ производительности сервера и профилирование нагрузки
#курсы - под этим тэгом заметки на тему курсов, которые я сам проходил, которые могу порекомендовать, а также некоторые бесплатные курсы
#игра - игры исключительно IT тематики, за редким исключением
#совет - мои советы на различные темы, в основном IT
#подборка - посты с компиляцией нескольких продуктов, объединённых одной тематикой
#отечественное - обзор софта из реестра отечественного ПО
#юмор - большое количество каких-то смешных вещей на тему IT, которые я скрупулезно выбирал, чтобы показать вам самое интересное. В самом начале есть шутки, которые придумывал сам, проводил конкурсы.
#мысли - мои рассуждения на различные темы, не только IT
#разное - этим тэгом маркирую то, что не подошло ни под какие другие, но при этом не хочется, чтобы материал терялся, так как я посчитал его полезным
#дети - информация на тему обучения и вовлечения в IT детей
#развитие_канала - серия постов на тему развития данного telegram канала

Остальные тэги публикую общим списком без комментариев, так как они про конкретный софт, понятный из названия тэга:
#docker #nginx #mysql #postgresql #gitlab #asterisk #openvpn #lxc #postfix #bitrix #икс #debian #hyperv #rsync #wordpress #zfs #grafana #iptables #prometheus #1с #waf #logs #netflow
​​🛡 Продолжаю тему безопасности. Существует класс продуктов для защиты веб приложений под названием Web Application Firewall. Они работают на прикладном уровне модели OSI, анализируют входящий и исходящий трафик приложения и принимают решение о предоставлении доступа или запрете.

Одним из таких продуктов является Nemesida WAF. Рассказать именно про неё я решил, потому что есть функциональная бесплатная версия, которой можно нормально пользоваться. Работает она примерно следующим образом. Можно либо зеркалить на неё весь трафик, делая только анализ и какие-то действия в будущем на основе анализа. А можно сразу принимать трафик на WAF и тут же отсекать неподходящий.

Функционал бесплатной версии:
- Выявление атак сигнатурным методом
- Автоматическая блокировка атакующего по IP-адресу
- Вывод информации об атаках, генерация отчетов и статистики работы
- Веб интерфейс для управления и просмотра отчётов

Установить Nemesida WAF просто, так как есть репозитории с пакетами под все популярные системы (Centos Stream, Debian, Ubuntu). Сам продукт состоит из следующих компонентов:
1. Динамический модуль для Nginx. Установка.
2. Nemesida WAF API. Этот компонент собирает информацию об атаках и уязвимостях. Установка.
3. Личный кабинет. Используется для визуализации и систематизации информации об атаках и выявленных уязвимостях. Установка.

Для тех, кто не хочет самостоятельно заниматься настройкой, есть готовый образ VM для запуска.

Посмотреть на панель управления Nemesida WAF можно на демо стенде:
https://demo.lk.nemesida-waf.com/
demo@pentestit.ru / pentestit

#security #webserver #waf
​​Затрагивал уже ранее тему WAF (Web Application Firewall), решил её развить, так как актуальность подобных продуктов в последнее время выросла. Как мне кажется, наиболее известным представителем фаерволов веб приложений является Modsecurity.

Это open source продукт, который может работать с популярными веб серверами. Как минимум, я видел упоминания, что он умеет работать в связке с Nginx, Apache, IIS. Я обычно его видел в работе с Nginx. У него для этого есть отдельный модуль. В сети есть много инструкций на эту тему, так что непосредственно установка не представляет какой-то большой сложности, хотя и не сказать, что она простая. Нужно будет взять исходники Nginx, ModSecurity, Nginx Connector и всё это собрать вместе.

В комплекте с модулем есть готовые наборы правил, так что для включения базовой защиты не требуется сразу погружаться в их написание. Просто взять и написать какое-то правило самому будет не так просто. Там куча регекспов, а ещё и язык свой для этих правил. Хорошая новость в том, что в репозитории наборы правил уже разбиты на отдельные файлы, относящиеся к наиболее популярным движкам сайтов, например для wordpress или cpanel.

Вначале можно запустить только обнаружение атак без выполнения каких-то действий, а потом уже принимать решение и том, какие правила оставлять и как реагировать на срабатывание защиты. И ещё сразу предупрежу, что использование любых WAF сильно нагружает систему. Так что нужно подходить аккуратно к настройке и запуску подобных продуктов на реальных веб проектах.

Видео по сборке и настройке - https://www.youtube.com/watch?v=XzeO2EL4sLU
Инструкция от Nginx - https://www.nginx.com/blog/compiling-and-installing-modsecurity-for-open-source-nginx/
Исходники: https://github.com/SpiderLabs/ModSecurity
https://github.com/SpiderLabs/ModSecurity-nginx

#security #waf
​​Я давно уже получил рекомендацию на хороший бесплатный WAF (Web Application Firewall) - VultureProject. Только сейчас дошли руки на него посмотреть и попробовать. Это оказалось не так просто, как я думал. Потратил очень много времени. Сейчас расскажу обо всём по порядку.

Vulture основан на Freebsd, внутри у него известные компоненты, собранные воедино:
haproxy в качестве tcp балансировщика
apache в качестве http балансировщика
darwin в качестве artificial Intelligence и machine learning, то есть фреймфорк для автоматизации поиска угроз
redis, в том числе для сбора логов из Elasticsearch beats, таких как winlogbeat, filebeat, auditbeat, metricbeat, используется redis output
mongodb в качестве БД
BSD Packet Filter в качестве фаервола
ModSecurity v3 для веб фильтрации

Всё вместе это организует шлюз для входящих запросов на различные приложения. Запросы анализируются и отправляются дальше на настроенные сервера с самими сайтами и приложениями. При этом Vulture умеет принимать не только запросы и выступать в качестве proxy, но и анализировать чужие логи, которые на него можно направить через различные протоколы.

К сожалению, у меня не получилось полноценно проверить работу этой системы. Недавно была анонсирована 4-я версия, которая в настоящий момент полностью не доделана. При этом изменился сайт и вся информация о 3-й версии, которая наиболее функциональна и которую мне рекомендовали, была удалена с сайта. Я даже не понял, где и как скачать 3-ю версию.

В настоящий момент на сайте есть 4-я версия. Для её установки предлагается скачать готовый образ виртуальной машины, что я и сделал. Скачал образ для KVM и развернул его на Proxmox. Достаточно создать виртуалку и заменить её диск на скачанный образ qcow2.

Далее загружаем систему и логинимся в неё. Учётка vlt-adm / vlt-adm. Далее в системе нужно обязательно войти в панель управления, введя в терминале:
# admin
Там необходимо настроить сетевой интерфейс и изменить имя хоста. Причём у меня не получилось настроить ip через dhcp. Почему-то адрес применился, а шлюз нет. В итоге пришлось отключить dhcp и настроить руками этот же адрес. В этой же панели управления рекомендую установить все обновления. Там и по самому продукту они прилетят.

После того, как настроите сеть и имя хоста (! это важно, измените дефолтное имя, иначе ничего не заработает), нужно выполнить команду:
# sudo /home/vlt-adm/gui/cluster_create.sh
После этого можно идти в веб интерфейс по адресу https://10.20.1.49:8000. Дальнейшая настройка производится через веб интерфейс. А это самое интересное, так как полноценной документации для 4-й версии нет. Кое-что открывается в описании к настройкам в веб интерфейсе, но не везде. Пришлось смотреть для 3-й версии, чтобы примерно понять концепцию и саму настройку.

Подробно расписывать всё не буду, так как слишком долго, да и всё равно полноценной инструкции не получится. Кому реально интересен подобного рода продукт, думаю, разберётся. Бесплатных аналогов всё равно не так много. Посмотреть их можно по тэгу в конце заметки. Я кое-что уже описывал. Подскажу только, чтобы было понятно куда двигаться. Добавить сайты, на которые будут проксироваться запросы, можно в разделе Applications. Добавляете новое приложение и прописываете все параметры.

Система довольно жирная и на обычном hdd у меня плохо работала. По ошибке закинул туда образ и долго мучался, так как всё тормозило. Лучше диск побыстрее выбрать. Добавлю ещё, что Vulture умеет работать в режиме отказоустойчивого кластера. Настраивается не сложно.

Если у кого-то есть опыт с этим продуктом, то дайте обратную связь. Какую версию сейчас разумнее использовать? Если третью, то где её взять и как правильно поставить? Готовых образов не увидел.

Сайт - https://www.vultureproject.org
Исходники - https://github.com/VultureProject/

#security #waf
​​🛡 Хочу поделиться с вами продуктом на базе Nginx, который мне понравился своей простотой и удобством. Речь пойдёт про Bunkerweb, который реализует в том числе функционал WAF (Web Application Firewall). Это собранный Docker контейнер с Nginx внутри и кучей дополнительного функционала для обеспечения безопасности.

Bunkerweb может работать как непосредственно локальный веб сервер, так и в режиме reverse proxy. Большая часть функционала реализована штатными средствами Nginx и модулями к нему. В качестве WAF используется ModSecurity, для защиты от ботов интеграция с различными каптчами.

📌 Для настройки есть мастер создания конфигурации. Оценить функционал и основные возможности проще всего через него, а не через просмотр описания или доков. Там сразу понятно, что он умеет и как настраивается. Перечислю основные фишки:
есть встроенный веб интерфейс для управления (видео с демонстрацией)
поддержка плагинов (уже есть интеграции с CrowdSec, ClamAV, Discord, Slack, VirusTotal)
WAF на базе ModSecurity и набора правил OWASP
распознавание ботов, их блокировка или показ каптчи
блок ip по странам или внешним списками
поддержка сертификатов let's encrypt

Весь функционал подробно описан в документации. Запускается Bunkerweb в Docker, Kubernetes, локально с ручной установкой или через Ansible. Доступны, по сути, все возможные способы, кому что ближе и удобнее.

Проект оставил очень хорошее впечатление. Он хорошо документирован, описан, понятно сделан, продуман. Мне показалось, что это хорошее решение не только с точки зрения безопасности, но и просто установки и управления Nginx. Можно через конструктор собрать набор опций, запустить Bunkerweb, а потом посмотреть в конфиге, как всё это реализовано. Так как всё собрано на базе open source продуктов, разобраться не трудно. При желании, можно что-то в свои наработки утащить.

Можно рассматривать этот продукт как панель управления для Nginx с базовым набором правил безопасности. Это если его просто с дефолтными настройками запустить. А дальше уже при желании можно наращивать функционал.

Сайт - https://docs.bunkerweb.io
Исходники - https://github.com/bunkerity/bunkerweb
Demo - https://demo.bunkerweb.io/

#waf #security #nginx
​​Наиболее популярным WAF (Web Application Firewall), как платным, так и бесплатным, является ModSecurity. Компания, которая его разрабатывала, поддерживала и обеспечивала платную техническую поддержку давно уже объявила дату End-of-Life (EOL) - 1 июля 2024 года. После этого код полностью переходит на поддержку open source сообщества. Вряд ли без регулярных денежных вливаний продукт продолжит развитие. А так как он основан на статических сигнатурах, без регулярного обновления быстро потеряет актуальность.

В связи с этим появился шанс у других сервисов получить дополнительную аудиторию. Одним из относительно новых проектов (ему примерно год) из этой сферы является open-appsec. Я его установил, настроил и протестировал в реальной работе. Выглядит он неплохо и результат выдал не хуже, чем в среднем показывают подобные программы. Чтобы разобраться и настроить, я потратил много времени, так что не смогу подробно описать. Но попробую рассказать саму суть и дать основные ссылки, чтобы при желании можно было повторить и попробовать.

В основе open-appsec лежит алгоритм машинного обучения. Используются 3 модели, в зависимости от подписки:

1️⃣ Basic model - бесплатная оффлайновая модель, которая лежит в github и используется по умолчанию.
2️⃣ Advanced model - тоже оффлайновая модель, может быть вручную скачана и установлена из личного кабинета сервиса. Регистрация там бесплатная.
3️⃣ Unsupervised model - работает и обновляется в режиме реального времени. Это платная функция.

Open-appsec существует в виде open-source версии с оффлайновой обученной моделью, которую можно скачать и установить из репозитория. Advanced модель можно использовать, если зарегистрироваться и вручную качать её обновления из личного кабинета, которые периодически выходят с уведомлением на email. Ну а третья модель это платная подписка. Она, соответственно, считается самой надёжной.

Сервис монетизируется по модели SaaS. Есть веб панель управления, через которую можно управлять системой. Там же в этой панели хранятся логи и вся аналитика. Если используете бесплатную версию, то всё управление локально через CLI и yaml конфиги. Логи тоже все хранятся у вас локально. В целом, довольно честно.

Я запускал и тестировал open source версию с basic model, потом подключил её к SaaS и уже там посмотрел отчёты. То есть эффективность работы бесплатной версии не сильно хуже платной, а платить предлагают за удобство управления.

Работает Open-appsec в виде модуля к Nginx. Установка простая. Выполняется автоматически. По сути, нужно просто скачать модуль, подключить его к Nginx, установить агент Open-appsec, который всем управляет. Также сервис интегрирован в Kubernetes и его NGINX Ingress Controller.

Все инструкции по установке, настройке и управлению интегрированы в готовые Playground площадки, где можно в режиме реального времени самому всё настроить и попробовать. Все инструкции из этих площадок можно использовать на своём сервере, так как по сути у вас там копия виртуальной машины.

Отдельно отмечу, что у Open-appsec уже есть интеграция с CrowdSec. Что такое CrowdSec, я писал отдельно. Это современный аналог Fail2ban, только намного более развитый и функциональный.

Продукт довольно сложный. Но тут это скорее норма, чем исключение. Я не видел нигде, чтобы WAF легко настраивался. Чтобы комфортно работать с системой, обязательно придётся куда-то выгружать логи, так как они огромные. Работать с ними локально неудобно, а придётся, так как нужно будет анализировать работу и настраивать исключения. По умолчанию сервис будет работать в режиме обучения, изучения, фиксации атак (detect-learn). Потом его можно переключить в режим отражения (prevent-learn).

В целом, мне продукт понравился. Думаю, он получит активное развитие и распространение в будущем. На текущий момент бесплатный Community
Edition тариф в SaaS весьма функциональный. Эффективность, если верить тестам отсюда, на уровне Free тарифа CloudFlare.

Сайт / Исходники

#waf
​​Продолжу тему WAF, раз уж начал. Я ранее писал про Nemesida WAF. Это коммерческий продукт, у которого есть бесплатная версия. Причём вполне функциональная, можно пользоваться. Существенное отличие от платной версии - только сигнатурный анализ. При этом в платной присутствует AI (Искусственный Интеллект) и ML (Машинное обучение). Это бесплатную Nemesida отличает от бесплатной же Open-appsec, где ML есть в open source версии.

Заметку я хочу написать не об этом, а о бесплатном продукте той же Nemesida - WAF Bypass Tool. Это open source утилита для проверки эффективности работы WAF. Она прогоняет через сайт кучу различных запросов на тестирование всевозможных уязвимостей (Cross Site Scripting (XSS), Open Redirect (OR), Remote File Execution (RCE) и т.д.) и в конце сводит результаты в табличный вид. С её помощью можно быстро оценить качество работы того или иного продукта, а также различных режимов настроек.

Для базовой проверки достаточно указать только адрес сайта и запустить любым удобным способом инструмент. Либо скачать python скрипт:

# git clone https://github.com/nemesida-waf/waf_bypass.git /opt/waf-bypass/
# python3 -m pip install -r /opt/waf-bypass/requirements.txt
# python3 /opt/waf-bypass/main.py --host='example.com'

Либо запустить в контейнере из Docker Hub, тогда вообще ничего делать не надо:

# docker run nemesida/waf-bypass --host='example.com'

Ключами можно управлять настройками. Например, использовать прокси, ограничивать число потоков (имеет смысл сделать, так как утилита выполняет около 3000 тысяч запросов, можно получить бан за интенсивность), выводить результаты в json, управлять детализацией вывода, выбирать отдельные наборы тестов и т.д. Можно писать свои тесты, запускать их на постоянку и забирать результаты в мониторинг.

Утилита проверяет количество ложно-положительных (FP - False Positive) и ложно-отрицательных (FN - False Negative) срабатываний. Это один из наиболее значимых критериев работы WAF. Значение PASSED (OK) покажет количество заблокированных проверок.

#waf