Audit Linuxu s Ansible

Audit Linuxu s Ansible
« kdy: 07. 05. 2021, 08:59:37 »
Ahoj, potřeboval bych poradit s Ansible a následným procesem.
Zkouším napsat playbook, který by mi plnil informace do centrální evidence informací o serverech.
Říkal jsem si, že Ansible by na to mohl být ideální nástroj a našel jsem, že Ansible sbírá takzvané magic vars, což jsou pod modulem ansible_facts informace o stroji.
Tyto informace ulkádám do souboru output.json překonvertuju pomocí PHP do XML. Následně data projedu xslt procecorem (xsltproc), abych to dostal do databáze (MariaDB).

Můj problém je, že Ansible moc nevládnu a pokud akci udělám pro více hostů zapíše se mi do souboru pouze poslední výsledek.
Dokázal by mě prosím někdo nasměrovat jak udělat, aby se mi informace z ansible_facts sypaly do jednotlivých souborů s například IP-datum.json?

Nebo jsem vymyslel moc velký rovnák na ohýbák?
Znáte nějaký elegantní způsob jak dostat informace o serverech do databáze?

Kód: [Vybrat]
---

- hosts: localhost
  tasks:
  - name: audit
    ansible.builtin.debug:
      var: ansible_facts
    register: audit
  - local_action:
      module: copy
      content: "{{ audit }}"
      dest: /etc/ansible/test/output.json
« Poslední změna: 07. 05. 2021, 10:05:23 od Petr Krčmář »


Re:Audit Linuxu s Ansible
« Odpověď #1 kdy: 07. 05. 2021, 09:16:07 »
Kouknete na https://ansible-cmdb.readthedocs.io/en/latest/usage/.

Pokud byste si to chtel napsat rucne, tak https://docs.ansible.com/ansible/latest/collections/community/mysql/mysql_query_module.html treba s cyklem nad kazdym hostem inventare.
« Poslední změna: 07. 05. 2021, 09:18:32 od czechsys »

Re:Audit Linuxu s Ansible
« Odpověď #2 kdy: 07. 05. 2021, 09:17:54 »
1. Co přesně potřebujete na serverech auditovat?

2. Vyžadujete topologii klient-server?

3. Jako žádaný je výsledný stav, kdy jsou data naparsovaná, nebo stačí raw dump a parsování zvládnete? (možná zbytečná otázka, neboť to zřejmě zvládáte a děláte už teď)

Re:Audit Linuxu s Ansible
« Odpověď #3 kdy: 07. 05. 2021, 10:01:26 »
1. Co přesně potřebujete na serverech auditovat?

2. Vyžadujete topologii klient-server?

3. Jako žádaný je výsledný stav, kdy jsou data naparsovaná, nebo stačí raw dump a parsování zvládnete? (možná zbytečná otázka, neboť to zřejmě zvládáte a děláte už teď)

1. Cílem je vybudování bezpečnostní infrastruktury na odhalování zranitelností a standardizace. Jde o to, že potřebuji vědět jaké servery jsou jak nastavené a co mají nainstalované, aby se dala řídit bezpečnost. Jako use-case bych například chtěl stahovat CVS zranitelnosti porovnat verze balíků a vyhodit alert pomocí Logstash pokud by se zranitelný balík nacháze v našem systému.

2. Topologie není zásadní

3. Parsování dat není problém, z čehokoliv cokoliv :-)

Re:Audit Linuxu s Ansible
« Odpověď #4 kdy: 07. 05. 2021, 10:03:10 »
Kouknete na https://ansible-cmdb.readthedocs.io/en/latest/usage/.

Pokud byste si to chtel napsat rucne, tak https://docs.ansible.com/ansible/latest/collections/community/mysql/mysql_query_module.html treba s cyklem nad kazdym hostem inventare.

Díky, to jsem nenašel mrknu na to, jak je to použitelné.


Re:Audit Linuxu s Ansible
« Odpověď #5 kdy: 07. 05. 2021, 13:51:35 »
1. Co přesně potřebujete na serverech auditovat?

2. Vyžadujete topologii klient-server?

3. Jako žádaný je výsledný stav, kdy jsou data naparsovaná, nebo stačí raw dump a parsování zvládnete? (možná zbytečná otázka, neboť to zřejmě zvládáte a děláte už teď)

1. Cílem je vybudování bezpečnostní infrastruktury na odhalování zranitelností a standardizace. Jde o to, že potřebuji vědět jaké servery jsou jak nastavené a co mají nainstalované, aby se dala řídit bezpečnost. Jako use-case bych například chtěl stahovat CVS zranitelnosti porovnat verze balíků a vyhodit alert pomocí Logstash pokud by se zranitelný balík nacháze v našem systému.

2. Topologie není zásadní

3. Parsování dat není problém, z čehokoliv cokoliv :-)

V tom případě bych se asi držel Ansiblu a řešení, na které poukázal kolega. Původně mě napadlo, jestli by se nedal využít blackbox exporter jako samostatná komponenta a jenom cucat data v rawu. Ale to by neřešilo to, co přesně potřebujete.

Možná bych ještě doporučil mrknout na Nessus (https://www.tenable.com/products/nessus), jestli by to pro Vás nemělo přidanou hodnotu. Používali jsme to v bance a pracovalo se nám s tím dobře (+ mgmt má rád grafy a reporty, že jo).