предговор
Нашето „приятелство“ започна преди две години. Дойдох на ново място на работа, където предишният администратор небрежно ми остави този софтуер като наследство. Не успях да намеря нищо в интернет освен официална документация. Дори и сега, ако потърсите в Google „рулдър“, в 99% от случаите ще излезе: корабни кормила и квадрокоптери. Успях да намеря подход към него. Тъй като общността на този софтуер е незначителна, реших да споделя моя опит и рейк. Мисля, че това ще бъде полезно за някого.
Така че Кормилото
Rudder е помощна програма за одит и управление на конфигурацията с отворен код, която помага за автоматизирането на конфигурацията на системата. Работи на принципа на инсталиране на агент за всеки краен потребител. Чрез удобен интерфейс можем да следим доколко нашата инфраструктура отговаря на всички посочени политики.
Употреба
По-долу ще изброя за какво използвам Rudder.
-
Контрол на файлове и конфигурации: ./ssh/authorized_keys ; /etc/hosts ; iptables; (и след това докъдето ви води въображението)
-
Контрол на инсталираните пакети: zabbix.agent или друг софтуер
Сървърна инсталация
Наскоро актуализирах от версия 5 на 6.1, всичко мина добре. По-долу са командите за Deban/Ubuntu, но има и поддръжка:
Ще скрия инсталацията в спойлери, за да не ви разсейвам.
Спойлер
зависимости
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) <[email protected]>
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
Създайте потребителски администратор
rudder server create-user -u admin -p "Ваш Пароль"
В бъдеще можем да управляваме потребителите чрез конфигурацията
Това е всичко, сървърът е готов.
Настройка на сървъра
Сега трябва да добавите IP адресите на агентите или цяла подмрежа към кормилния агент, ние се фокусираме върху политиката за сигурност.
Настройки -> Общи
В полето „Добавяне на мрежа“ въведете адреса и маската във формат xxxx/xx. За да позволите достъп от всички адреси на вътрешната мрежа (Освен разбира се, това не е тестова мрежа и сте зад NAT) въведете: 0.0.0.0/0
Важно - след като добавите ip адреса, не забравяйте да щракнете върху Запазване на промените, в противен случай нищо няма да бъде запазено.
пристанища
Отворете следните портове на сървъра
-
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) <[email protected]>
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 server ip or hostname> #Без скобок. Можно также использовать доменное имя
Като изпълним следната команда, ще изпратим заявка за добавяне на нов агент към сървъра, след няколко минути той ще се появи в списъка с нови агенти, ще обясня как да добавя в следващия раздел
rudder agent inventory
Можем също да принудим агента да стартира и той незабавно ще изпрати заявката
rudder agent run
Нашият агент е готов, да продължим.
Добавяне на агенти
Влизам
https://127.0.0.1/rudder/index.html
Вашият агент ще се появи в секцията „Приемане на нови възли“, поставете отметка в квадратчето и щракнете върху Приемам
Трябва да отнеме известно време, докато системата провери сървъра за съответствие
Създаване на сървърни групи
Нека създадем група (това все още е забавление), нямам представа защо разработчиците са направили такова отвратително групово формиране, но доколкото разбирам, няма друг начин. Отидете в секцията Управление на възли -> Групи и щракнете върху Създаване, изберете статична група и име.
Ние филтрираме сървъра, от който се нуждаем, по специални функции, например по ip адрес, и запазваме
Групата е създадена.
Създаване на правила
Отидете на Конфигурационна политика → Правила и създайте ново правило
Добавете групата, подготвена по-рано (това може да стане по-късно)
И ние съставяме нова директива
Нека създадем директива за добавяне на публични ключове към .ssh/authorized_keys. Използвам това, когато нов служител напусне или за презастраховане, например, ако някой случайно изреже ключа ми.
Отидете на Конфигурационна политика → Директиви отляво виждаме „Библиотека с директиви“ Намерете „Отдалечен достъп → SSH разрешени ключове“, отдясно щракнете върху Създаване на директива
Въвеждаме информация за потребителя и добавяме неговия ключ. След това изберете политиката на приложението
-
Глобално - Политика по подразбиране
-
Налагане - Изпълнение на избрани сървъри
-
Одит - Ще извърши одит и ще каже кои клиенти имат ключа
Не забравяйте да посочите нашето правило
След това запишете и сте готови.
проверите
Ключът е добавен успешно
Кифлички
Агентът предоставя пълна информация за сървъра. Списъци с инсталирани пакети, интерфейси, отворени портове и много други, които можете да видите на екранната снимка по-долу
Можете също така да инсталирате и управлявате софтуера не само на Linux, но и на Windows, не го проверих последния, нямаше нужда..
От автора
Може би се питате защо да изобретяваме колелото, ако анзибълът и марионетката вече са изобретени преди много време?
Отговарям: Ansible има някои недостатъци, например не виждаме в какво състояние е тази конфигурация в момента или познатата ситуация, когато стартирате роля или книга за игра и се появят грешки при срив и започнете да се качвате на сървъра и виждате кой пакет къде е актуализиран. И просто не съм работил с кукла..
Има ли някакви недостатъци на Rudder? Много.. Като започнем от това, че агентите падат и трябва да ги инсталирате наново или да използвате командата rudder reset. (но между другото, все още не съм виждал това във версия 6), което води до изключително сложна настройка и нелогичен интерфейс.
Има ли предимства? Има и много предимства: За разлика от добре познатия Ansible, ние имаме уеб интерфейс, в който можете да видите съответствието, което сме приложили. Например портовете стърчат ли в света, какво е състоянието на защитната стена, инсталирани ли са агенти за сигурност или други джаджи.
Този софтуер е идеален за отдела за информационна сигурност, тъй като състоянието на инфраструктурата винаги ще бъде пред очите ви и ако някое от правилата свети в червено, това е причина да посетите сървъра. Както казах, използвам Rudder вече 2 години и ако го пушите малко, животът става по-добър. Най-трудното нещо в голяма инфраструктура е, че не помните в какво състояние е сървърът, дали Джун е пропуснал да инсталира агенти за сигурност или дали е конфигурирал правилно iptables, но rudder ще ви помогне да сте в крак с всички събития. Осъзнат значи въоръжен! )
PS Оказа се много повече, отколкото планирах, няма да описвам как да инсталирам пакети, ако изведнъж има заявки, ще напиша втора част.
PSS Статията е с информационна цел, реших да я споделя, тъй като има много малко информация в интернет. Може би това ще бъде интересно за някого. Приятен ден, скъпи приятели)
Относно правата на рекламата
Епични сървъри -
Източник: www.habr.com