В условиях постоянной нехватки человеческих ресурсов и времени мы всегда задаемся вопросами:
- Как быстро выполнять большой объем простых монотонных действий?
- Как избежать при этом ошибок?
В статье мы разберемся, как платформа автоматизации Red Hat Ansible Automation помогает решить все эти задачи.
1. Зачем автоматизировать?
В условиях постоянной нехватки человеческих ресурсов и времени мы всегда задаемся вопросом: «Как выполнить определенное действие быстрее и качественнее?».
Если говорить про область информационной безопасности, то здесь важна и скорость принятия решения, и скорость его реализации. Если мы смогли в короткий срок детектировать угрозу, но ответные меры заняли продолжительное время или наоборот, в спешке мы изменили политику на каком-либо средстве защиты и заблокировали доступ к критически важным ресурсам для бизнеса, то это можно назвать «неидеальным» результатом.
Таким образом, мы видим, что есть ситуации, в которых нам необходимо действовать быстро и без ошибок (исключим человеческий фактор в виде «в спешке удалили не то правило») и автоматизация нам может в этом помочь.
Примеры:
- Автоматизация «рутины» - в нашей работе есть множество простых повторяющихся действий, выполнение которых можно возложить на системы автоматизации и тем самым освободить себе время для более сложных/важных задач
- Ускорение процессов – многие процессы в организации (к примеру, процесс внесения изменений в политику определенного средства защиты) регламентированы, и в них четко определено, кому и какое действие необходимо выполнять. Автоматизация позволит как уменьшить время на выполнение задачи, так и добавить дополнительную проверку корректности действий (сотрудник использует заранее подготовленный шаблон, и шанс опечататься/ошибиться снижается)
- «Hardening» - мы можем автоматизированно выставлять или проверять параметры безопасности как IT ресурсов, так и, к примеру, средств защиты
2. Red Hat Ansible Automation
В качестве платформы автоматизации рассмотрим Red Hat Ansible Automation:
Платформа Red Hat Ansible Automation состоит из нескольких компонентов:
Red Hat Ansible Engine – система для управления конфигурациями, установки программного обеспечения и выполнения более сложных IT-задач. Одни из интересных особенностей данного продукта:
- Не требуется установка агента на целевую систему
- Для выполнения каких-либо действий используются такие сущности как playbooks — это документ в «формате» YAML («дружественный» формат сериализации данных, концептуально близкий к языкам разметки, но ориентированный на удобство ввода-вывода типичных структур данных многих языков программирования» (c) Википедия), что довольно удобно, так как YAML довольно прост в изучении
- Коллекции – существует большое количество различных коллекций, которые содержат playbooks, roles, modules, plugins. Мы можем использовать их, добавив их простой командой “ansible-galaxy collection install”
Red Hat Ansible Tower - графический интерфейс для управления и мониторинга работы Red Hat Ansible Engine. Несколько важных особенностей:
- RBAC – мы можем разграничивать доступ к системе для наших команд и сотрудников
- Запуск задач по расписанию и использование web-hooks для интеграции с gitlab и github
- Workflow – мы можем задать последовательность операций в виде комбинации шаблонов заданий
3. Автоматизация работы с NGFW Check Point
Рассмотрим одну из задач платформы автоматизации: автоматизация «рутины».
Для этого нам потребуется:
- NGFW Check Point с включенным Management API
- Red Hat Ansible Engine c коллекцией check_point.mgmt
Management API устанавливается как часть Check Point Management Server, но может быть не активирована:
- API server включен, если у Check Point Management Server есть как 4GB RAM или у stand-alone server имеется 8GB RAM
- Если у Check Point Management Server меньше 4GB RAM ,то API server можно активировать через SmartConsole (Manage & Settings > Blades > Management API > Advanced Settings)
Проверим, запущен ли Management API, командой “api status”:
Для добавления коллекции check_point.mgmt на Red Hat Ansible Engine воспользуемся командой “ ansible-galaxy collection install check_point.mgmt ” и добавим переменные:
[check_point]
%CHECK_POINT_MANAGEMENT_SERVER_IP%
[check_point:vars]
ansible_httpapi_use_ssl=True
ansible_httpapi_validate_certs=False
ansible_user=%CHECK_POINT_MANAGEMENT_SERVER_USER%
ansible_password=%CHECK_POINT_MANAGEMENT_SERVER_PASSWORD%
ansible_network_os=check_point.mgmt.checkpoint
После этого мы сможем воспользоваться множеством готовых модулей для работы с Check Point и задействовать их в наших playbooks.
Ниже представлен пример playbook, который добавляет хост и подсеть с заданными настройками NAT в Check Point Management Server:
Используя подобный playbook как шаблон и добавив в него необходимые параметры объектов (имя, адреса, итп), мы можем автоматизированно создать большое количество сетевых объектов, даже не заходя на консоль управления Check Point SmartConsole. Это может быть полезно, к примеру, при добавлении нового филиала со своей инфраструктурой к средству защиты, в нашем примере Check Point.
4. Автоматизация работы с NGFW FortiGate
На данном примере рассмотрим другую задачу автоматизации – это «Hardening» и выполним её для другого продукта – NGFW FortiGate. Для этого нам также потребуется отдельная коллекция, в данном случае это “fortinet.fortios:1.0.9”. Установим её командой “ansible-galaxy collection install fortinet.fortios:1.0.9”.
С помощью соответствующего playbook настроим параметр “admintimeout” - «Number of minutes before an idle administrator session times out (5 - 480 minutes (8 hours)). A shorter idle timeout is more secure»:
Даже если кто-то из администраторов системы изменил её параметры и сделал менее безопасной, запуская подобный playbook, мы всегда можем вернуть исходное значение.
5. Автоматизация работы, используя Red Hat Ansible Tower
До этого момента мы создавали различные playbook и запускали их по отдельности из командной строки Red Hat Ansible (ansible-playbook “playbook.yml”). Но это может быть не очень удобно, поэтому воспользуемся возможностями Red Hat Ansible Tower, чтобы еще больше облегчить себе жизнь.
В качестве примера рассмотрим задачу: нам необходимо выполнять проверку настроек средств защиты (hardening) с какой-либо периодичностью. Возможные решения:
1. Создаем необходимые playbooks и руками запускаем их в нужном порядке с определенной периодичностью
2. Создаем необходимые playbooks и настраиваем их автозапуск средства ОС и Red Hat Ansible Engine
3. Создаем необходимые playbooks и настраиваем необходимый нам workflow с помощью Red Hat Ansible Tower
Вариант №3 предпочтительнее. Далее рассмотрим его подробнее.
Создаем workflow:
В данной цепочке мы запускаем необходимые нам playbooks:
- forti_admin_timeout – playbook из предыдущего примера, где мы выставляем время таймаута сессии администратора для NGFW Forti Gate
- cp_must_have_access_rules – в данном playbook мы проверяем, есть ли в политике доступа для NGFW Check Point необходимые нам правила (например, Stealth и CleanUp правила)
Если хоть один из необходимых нам playbook не может быть выполнен, то мы запускаем другой playbook – telegram (оповещение о том, что workflow не выполнился в канал telegram). Также настроим автозапуск нашего workflow каждую неделю в определенное время:
6. Заключение
Используя платформу автоматизации Red Hat Ansible Automation, мы получаем инструмент, который позволяет нам быстро выполнять большой объем простых монотонных действий, контролировать различные процессы внесения изменений, проверку эталонных параметров в системах, и в итоге выполнять наши задачи быстрее и с меньшим риском ошибок.
Коллеги, благодарим за прочтение статьи!
Приглашаем вас узнать больше о решении, приняв участие в вебинаре "Автоматизация средств ИБ с помощью Red Hat Ansible Automation на примере Check Point"
#системное администрирование #кибербезопасность #сетевые технологии #it #информационная безопасность