mondoo.client

Pakiet Mondoo - Rola Ansible

Przegląd

Ta rola instaluje cnquery i cnspec na serwerach z systemem Linux i Windows.

Ona:

  • Instaluje podpisane pliki binarne cnquery i cnspec
  • Rejestruje cnquery i cnspec w platformie Mondoo
  • Włącza usługę cnspec na systemach Linux i Windows

Obsługuje:

  • Amazon Linux
  • Debian
  • Red Hat Enterprise Linux i pochodne (CentOS/AlmaLinux/Rocky Linux)
  • SUSE oraz openSUSE
  • Ubuntu
  • Windows 10, 11, 2016, 2019, 2022

Rola jest publikowana na Ansible Galaxy: Rola Mondoo/Client.

Wymagania

  • Ansible > 2.5

Zmienne roli

Nazwa Wartość Domyślna Opis
registration_token_retrieval manual manual wymaga ustawienia registration_token
registration_token n/a ręcznie ustaw token rejestracji na platformie Mondoo, używany do rejestracji cnquery i cnspec
force_registration false wymusza ponowną rejestrację przy każdym uruchomieniu

Zależności

Ta rola nie ma zależności od innych ról

Przykład: Zastosowanie playbooka Ansible na instancji Amazon EC2 z systemem Linux

Ten playbook pokazuje, jak użyć roli Mondoo Package, aby zainstalować cnquery i cnspec na wielu instancjach:

  1. Utwórz nową inwentarz hosts. Dodaj swoje hosty do grupy.
[linux_hosts]
54.172.7.243  ansible_user=ec2-user
  1. Utwórz playbook.yml i zmień registration_token:
---
- hosts: linux_hosts
  become: yes
  roles:
    - role: ansible-mondoo # jeśli korzystasz z galaxy: mondoo.client
      vars:
        registration_token: "changeme"

Dodatkowo wspieramy następujące zmienne:

zmienna opis
force_registration: true ustaw na true, jeśli chcesz ponownie zarejestrować cnquery i cnspec
ensure_managed_client: true zapewnia, że skonfigurowane klienci są skonfigurowane jako zarządzani klienci w Mondoo
proxy_env['https_proxy'] ustaw proxy dla klienta cnspec
annotations ustaw adnotacje/tagi dla węzła
update_linux_enabled ustaw na true, jeśli chcesz włączyć zadanie aktualizacji dla Linuxa przez cron
update_linux_cron_day zdefiniuj interwał aktualizacji w dniach dla aktualizacji cnspec, przykład */3 co 3 dni
update_linux_cron_hour zdefiniuj godzinę, o której zadanie ma być wykonywane
update_linux_cron_minute zdefiniuj minutę, o której zadanie ma być wykonywane
update_windows_enabled ustaw na true, jeśli chcesz włączyć zadanie aktualizacji dla Windowsa przez zaplanowane zadanie
update_windows_interval zdefiniuj interwał aktualizacji w dniach dla aktualizacji cnspec
update_windows_time zdefiniuj czas, o której zadanie ma być wykonywane
timer zdefiniuj interwał skanowania w minutach. Domyślnie wynosi 60.
splay zdefiniuj opóźnienie w czasie skanowania
---
- hosts: linux_hosts
  become: yes
  roles:
    - role: ansible-mondoo # jeśli korzystasz z galaxy: mondoo.client
      vars:
        registration_token: "changeme"
        force_registration: true
        ensure_managed_client: true
        annotations: "[email protected],env=production"

Jeśli chcesz używać cnspec za proxy

---
- hosts: linux_hosts
  become: yes
  vars:
    proxy_env:
      http_proxy: "http://192.168.56.1:3128"
      https_proxy: "http://192.168.56.1:3128"

  roles:
    - role: ansible-mondoo # jeśli korzystasz z galaxy: mondoo.client
      vars:
        registration_token: "changeme"
        force_registration: true
        ensure_managed_client: true
      environment: "{{proxy_env}}"

Jeśli chcesz używać zadania aktualizacji Windows

---
- hosts: windows_hosts
  become: yes

  roles:
    - role: ansible-mondoo # jeśli korzystasz z galaxy: mondoo.client
      vars:
        registration_token: "changeme"
        force_registration: true
        ensure_managed_client: true
        update_windows_enabled: true
        update_windows_interval: "1"
        update_windows_time: "15:04"

Jeśli chcesz używać zadania aktualizacji Linux

---
- hosts: linux_hosts
  become: yes

  roles:
    - role: ansible-mondoo # jeśli korzystasz z galaxy: mondoo.client
      vars:
        registration_token: "changeme"
        force_registration: true
        ensure_managed_client: true
        update_linux_enabled: true
        update_linux_cron_day: "*"
        update_linux_cron_hour: "11"
        update_linux_cron_minute: "40"
  1. Uruchom playbook z lokalnym plikiem hosta
# pobierz rolę mondoo z github
ansible-galaxy role install git+https://github.com/mondoohq/ansible-mondoo.git

# (alternatywnie) pobierz rolę mondoo z ansible galaxy
ansible-galaxy install mondoo.client

# zastosuj playbook
ansible-playbook -i hosts playbook.yml
  1. Zaloguj się do Konsoli Mondoo, aby zobaczyć wyniki skanowania

Zastosowanie playbooka Ansible na instancji Amazon EC2 z systemem Windows

Jeśli korzystasz z systemu Windows, zapoznaj się z dokumentacją ansible na temat ustawienia WinRM lub ustawienia SSH.

  1. Utwórz nową inwentarz hosts. Dodaj swój host do grupy.
[windows_hosts]
123.123.247.76 ansible_port=5986 ansible_connection=winrm ansible_user=Administrator ansible_password=changeme ansible_shell_type=powershell ansible_winrm_server_cert_validation=ignore

lub jeśli używasz ssh:

3.235.247.76 ansible_port=22 ansible_connection=ssh ansible_user=admin ansible_shell_type=cmd
  1. Utwórz playbook.yml i zmień registration_token:

Jeśli kierujesz do systemu Windows, konfiguracja jest nieco inna, ponieważ become musi być wyłączone:

- hosts: windows_hosts
  roles:
    - role: ansible-mondoo # jeśli korzystasz z galaxy: mondoo.client
      vars:
        registration_token: "changeme"
        force_registration: false
  1. Uruchom playbook z lokalnym plikiem hosta
# pobierz rolę mondoo z github
ansible-galaxy role install git+https://github.com/mondoohq/ansible-mondoo.git

# (alternatywnie) pobierz rolę mondoo z ansible galaxy
ansible-galaxy install mondoo.client

# zastosuj playbook
ansible-playbook -i hosts playbook.yml

Testowanie

Do testowania ta rola używa molecule. Możesz zainstalować zależności za pomocą:

pip install molecule
pip install docker
pip install 'molecule-plugins[docker]'

CLI molecule obejmuje cykl życia testu:

# resetuj molecule
molecule reset
# utwórz maszyny za pomocą ansible
image=geerlingguy/docker-ubuntu2204-ansible molecule converge
# uruchom testy molecule z cnspec
image=geerlingguy/docker-ubuntu2204-ansible molecule verify
# do debugowania, możesz się zalogować do poszczególnych hostów
molecule login --host ubuntu
# zniszcz setup testowy
molecule destroy
image=geerlingguy/docker-ubuntu2204-ansible molecule test
image=rsprta/opensuse-ansible molecule test

UWAGA: aby móc testować na macOS M1, potrzebujesz obrazów dockera zgodnych z architekturą ARM, takich jak rockylinux pokazany powyżej

Do analizy kodu używamy ansible-lint:

pip3 install ansible-lint

Aby zobaczyć wszystkie lokalne problemy, użyj:

ansible-lint

Autor

Mondoo, Inc

FAQ

Błąd 'module' object has no attribute 'HTTPSHandler'

TASK [mondoo : Pobierz klucz RPM Mondoo] ********************************
    fatal: [suse]: FAILED! => {"changed": false, "module_stderr": "Połączenie z 127.0.0.1 zamknięte.\r\n", "module_stdout": "Traceback (most recent call last):\r\n ...
sudo zypper install python python2-urllib3 python3 python3-urllib3

Błąd ansible.legacy.setup w Windows z SSH

fatal: [123.123.247.76]: FAILED! => {"ansible_facts": {}, "changed": false, "failed_modules": {"ansible.legacy.setup": {"failed": true, "module_stderr": "Format parametru nieprawidłowy - ;\r\n", "module_stdout": "", "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error", "rc": 1}}, "msg": "Module 'ansible.legacy.setup' nie udało się wykonać."}

Ansible w połączeniu z wersjami Win32-OpenSSH starszymi niż v7.9.0.0p1-Beta nie działa, gdy powershell jest typem powłoki, ustaw typ powłoki na cmd.

Błąd: Musisz zainstalować 'jmespath' przed uruchomieniem filtru json_query"

Upewnij się, że jmespath jest zainstalowany w tym samym środowisku python co ansible:

pip install jmespath

Chcę to przetestować na nieobsługiwanym systemie operacyjnym

Dodaj następujące do main.yml i wydrukuj ansible_facts, aby zobaczyć, co jest używane i dostosować warunki when:

- name: Print all available facts
  ansible.builtin.debug:
    var: ansible_facts

Dołącz do społeczności!

Dołącz do Społeczności Mondoo na GitHub Discussions, aby współpracować nad polityką jako kod i automatyzacją bezpieczeństwa.

O projekcie

Install and configure cnquery and cnspec

Zainstaluj
ansible-galaxy install mondoo.client
Licencja
other
Pobrania
12.4k
Właściciel
Cloud-Native Security & Vulnerability Management