Инсталиране и експлоатация на "Rudder"

Инсталиране и експлоатация на "Rudder"

Предговор

Нашето „приятелство“ започна преди две години. Постъпих на нова работа, където предишният администратор без усилие ми остави този софтуер в наследство. В интернет, освен официалната документация, не можех да намеря нищо. Дори сега, ако потърсите „rudder“, в 99% от случаите ще получите: штурвали на кораби и квадрокоптери. Успях да намеря подхода. Тъй като общността на този софтуер е значително малка, реших да споделя опита си и трудностите. Мисля, че на някой ще му бъде полезно.

И така, Rudder

Rudder е инструмент за одит и управление на конфигурацията с отворен код, който помага за автоматизиране на настройката на системата. Той работи на принципа на инсталиране на агент на всеки крайния потребител. Чрез удобния интерфейс можем да наблюдаваме доколко нашата инфраструктура отговаря на зададените политики.

Използването

По-долу ще изредя за какво използвам Rudder.

  • Контрол на файлове и конфигурации: .\/ssh\/authorized_keys ; \/etc\/hosts ; iptables ; (а нататък където въображението води)

  • Контрол на инсталираните пакети: zabbix.agent или друг софтуер

Инсталация на сървъра

Наскоро се обнових от версия 5 до 6.1, всичко мина успешно. По-долу ще бъдат представени командите за Debian/Ubuntu, но има и поддръжка за: RHEL/CentOS и Sles.

Ще скрия инсталацията в спойлер, за да не ви разсейвам.

Спойлер

Зависимости

За rudder-server е необходима Java RE минимум версия 8, може да бъде инсталирана от стандартния репозиторий:

Проверяваме дали не е инсталирана

java -version

ако изходът е

-bash: java: command not found

тогава инсталираме

apt install default-jre

Сървър

Импортираме ключа

wget --quiet -O- "https://repository.rudder.io/apt/rudder_apt_key.pub" | sudo apt-key add -

Ето и самият отпечатък

pub  4096R\/474A19E8 2011-12-15 Rudder Project (release key) 
      Key fingerprint = 7C16 9817 7904 212D D58C  B4D1 9322 C330 474A 19E8

Тъй като нямаме платен абонамент, добавяме следния репозиторий

echo "deb http:\/\/repository.rudder.io\/apt\/6.1\/ $(lsb_release -cs) main" > \/etc\/apt\/sources.list.d\/rudder.list

Актуализираме списъка с репозиторите и инсталираме сървъра

apt update
apt install rudder-server-root

Създаваме потребител admin

rudder server create-user -u admin -p "Вашата Парола"

Впоследствие можем да управляем потребителите чрез конфигурацията

Всичко, сървърът е готов.

Конфигуриране на сървъра

Сега е необходимо да добавим в агента на Rudder IP адресите на агентите или целия подмрежа, ориентирайки се по политиката за сигурност.

Настройки —> Общо

Инсталиране и експлоатация на "Rudder"

В полето «Add a network» вписваме адреса и маската във формат x.x.x.x/xx. За да разрешим достъпа от всички адреси на вътрешната мрежа (ако разбира се това е тестова мрежа и сте зад NAT), вписваме: 0.0.0.0/0.

Важно е — след добавяне на IP адрес не забравяйте да натиснете Save changes, в противен случай нищо няма да се запази.

Портове

На сървъра отваряме следните портове

  • 443 — tcp

  • 5309 — tcp

  • 514 — udp

С първоначалната настройка на сървера се справихме.

Инсталиране на агента

Спойлер

Добавяме ключ

wget --quiet -O- "https://repository.rudder.io/apt/rudder_apt_key.pub" | sudo apt-key add -

Отпечатък на ключа

pub  4096R\/474A19E8 2011-12-15 Rudder Project (release key) 
      Key fingerprint = 7C16 9817 7904 212D D58C  B4D1 9322 C330 474A 19E8

Добавяме репозиторий

echo "deb http:\/\/repository.rudder.io\/apt\/6.1\/ $(lsb_release -cs) main" > \/etc\/apt\/sources.list.d\/rudder.list

Инсталираме агента

apt update
apt install rudder-agent

Настройка на агента

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

rudder agent policy-server  #Без скобки. Може също да се използва домейн името. 

С изпълнението на следната команда ще изпратим заявка за добавяне на нов агент на сървъра и след няколко минути той ще се появи в списъка с нови агенти. Как да добавим ще обясня в следващия раздел.

rudder agent inventory

Също така можем да задействаме агента принудително и той ще изпрати заявка незабавно.

rudder agent run

Нашия агент е настроен, минаваме нататък.

Добавяне на агенти

Влизаме в системата

https://127.0.0.1/rudder/index.html

Инсталиране и експлоатация на "Rudder"

В раздела «Accept new nodes» ще се появи вашият агент, поставяме отметка и натискаме Accept.

Инсталиране и експлоатация на "Rudder"

Нужно е да мине малко време, докато системата провери сървъра за съответствие.

Създаване на групи сървъри

Ще създадем група (това е смешно занимание), нямам представа защо разработчиците направиха толкова сложно структуриране на групите, но както разбрах, не може по друг начин. Преминаваме в раздел Node management -> Groups и натискаме на Create, избираме статична група и името.

Инсталиране и експлоатация на "Rudder"

Филтрираме необходимия сървър по специфични признаци, например по IP адрес и запазваме.

Инсталиране и експлоатация на "Rudder"

Групата е настроена.

Настройка на правилата

Преминаваме в Configuration policy → Rules и създаваме ново правило.

Инсталиране и експлоатация на "Rudder"

Добавяме предварително подготвената група (може да го направите и по-късно).

Инсталиране и експлоатация на "Rudder"

И формулираме нова директива.

Инсталиране и експлоатация на "Rudder"

Ще създадем директива за добавяне на публични ключове в .ssh/authorized_keys. Използвам това в случай на нов сътрудник или за предпазна мярка, например ако някой случайно премахне моя ключ.

Преминаваме в Configuration policy → Directives, отляво виждаме «Directive library». Намираме «Remote access → SSH authorised keys», отдясно натискаме Create Directive.

Вписваме данни за потребителя и добавяме неговия ключ. След това избираме политиката на прилагане.

  • Global — Политика, зададена по подразбиране.

  • Enforce — Изпълнява на избраните сървъри.

  • Аудит — Ще проведе одит и ще каже на кои клиенти има ключ.

Инсталиране и експлоатация на "Rudder"

Задължително посочваме нашето правило.

Инсталиране и експлоатация на "Rudder"

След това запазваме и всичко е готово.

Проверяваме.

Инсталиране и експлоатация на "Rudder"

Ключът бе успешно добавен.

Допълнителни предимства

Агентът предоставя пълна информация за сървъра. Списъци на инсталираните пакети, интерфейси, отворени портове и много друго, което можете да видите на екрана по-долу.

Инсталиране и експлоатация на "Rudder"

Също така можете да инсталирате и контролирате софтуер не само на Linux, но и на Windows, последното не съм проверявал, нямаше необходимост.

От автора.

Навярно ще се запитате защо да изобретяваме велосипеда, след като отдавна съществуват Ansible и Puppet?

Отговарям: Ansible има недостатъци, например не виждаме в какво състояние точно се намира този конфиг, или познатата ситуация, когато стартирате роля или playbook и получавате грешки за краш и трябва да отидете на сървъра и да проверите какъв пакет къде е бил обновен. А с Puppet просто не съм работил.

Има ли минуси на Rudder? Много ... Започвайки от това, че агентите отпадат и трябва да ги преинсталирате или да използвате командата rudder reset. (но между другото в версия 6 не съм виждал такова нещо), завършвайки с изключително сложната настройка и нелогичния интерфейс.

Има ли положителни страни? И положителните страни също са много: В отличие от добре познатия Ansible, имаме уеб интерфейс, в който се вижда прилагания от нас комплаенс. Например — отворени ли са портовете към света, какво е състоянието на firewall, инсталирани ли са агенти за сигурност или други подобни.

Този софтуер е отличен за отдела по информационна сигурност, тъй като състоянието на инфраструктурата винаги ще бъде пред очите ви, и ако някое от правилата светне в червено, това е повод да посетите сървъра. Както казах, вече 2 години използвам Rudder, и ако малко го поизучите, животът става по-добър. Най-трудното в голямата инфраструктура е, че не помните в какво състояние се намира сървърът, не сте пропуснали ли инсталацията на агенти за сигурност или правилно ли сте настроили iptables; Rudder ще ви помогне да бъдете в течение на всички събития. Осведомен, значи въоръжен!

P.S. Излезе много повече, отколкото планирах, няма да описвам как се инсталират пакети, ако все пак имате искания, ще напиша втора част.

P.S.S Статията е с информационен характер, реших да споделя, тъй като в интернет има много малко информация. Може би това ще е интересно за някого. Приятно време на всички, уважаеми приятели)

Реклама

Епични сървъри — това е VPS на Linux или Windows с мощни процесори от семейството на AMD EPYC и много бързи NVMe дискове Intel. Поръчайте сега!

Инсталиране и експлоатация на "Rudder"

Източник: habr.com

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster