linux-system-roles.selinux

SELinux

Oczekiwana funkcjonalność

Podstawowa funkcjonalność polega na zapewnieniu mechanizmów do zarządzania lokalnymi dostosowaniami:

  • Ustawianie trybu egzekwowania/zezwolenia
  • Przywracanie kontekstu na częściach systemu plików
  • Ustawianie/uzyskiwanie zmiennych boolean
  • Ustawianie/uzyskiwanie kontekstów plików
  • Zarządzanie logowaniami
  • Zarządzanie portami

Uwaga: Jeśli chcesz zarządzać dostosowaniami SELinux w trybie disabled, musisz mieć zainstalowaną politykę SELinux targeted.

Wymagania

Patrz poniżej.

Wymagania dotyczące zbiorów

Rola wymaga zewnętrznych zbiorów. Użyj następującego polecenia, aby je zainstalować:

ansible-galaxy collection install -vv -r meta/collection-requirements.yml

Moduły dostarczane przez to repozytorium

selinux_modules_facts

Zbiera stan modułów SELinux.

Zmienne roli

usunięcie lokalnych modyfikacji

Domyślnie modyfikacje określone w selinux_booleans, selinux_fcontexts, selinux_ports i selinux_logins są stosowane na już istniejących modyfikacjach. Aby usunąć lokalne modyfikacje przed ustawieniem nowych, ustaw następujące zmienne na true:

  • selinux_booleans_purge - zmienne boolean SELinux
  • selinux_fcontexts_purge - konteksty plików SELinux
  • selinux_ports_purge - porty SELinux
  • selinux_logins_purge - mapowanie użytkowników SELinux

Możesz usunąć wszystkie modyfikacje, stosując selinux_all_purge: true:

selinux_all_purge: true

selinux_policy, selinux_state

Zarządzanie typem polityki SELinux oraz trybem.

selinux_policy: targeted
selinux_state: enforcing

Dopuszczalne wartości dla selinux_state to disabled, enforcing i permissive.

Jeśli selinux_state nie jest ustawione, stan SELinux nie zmienia się. Jeśli selinux_policy nie jest ustawione, a SELinux ma być włączony, domyślnie przyjmuje wartość targeted. Jeśli SELinux jest już włączony, polityka nie jest zmieniana.

Używa to modułu selinux do zarządzania trybem i polityką SELinux.

selinux_booleans

Zarządzanie stanem zmiennych boolean SELinux. To jest lista dict, gdzie każdy dict jest w tym samym formacie, co używany przez moduł seboolean.

selinux_booleans:
  - name: samba_enable_home_dirs
    state: true
  - name: ssh_sysadm_login
    state: true
    persistent: true

selinux_fcontexts

Zarządzanie stanem definicji mapowania kontekstów plików SELinux. To jest lista dict, gdzie każdy dict jest w tym samym formacie, co używany przez moduł sefcontext.

selinux_fcontexts:
  - target: '/tmp/test_dir(/.*)?'
    setype: 'user_home_dir_t'
    ftype: d
    state: present

Użytkownicy mogą również przekazać następujące opcjonalne parametry:

  • seuser: aby ustawić użytkownika SELinux
  • selevel: aby ustawić zakres bezpieczeństwa MLS/MCS (tylko systemy MLS/MCS). Zakres SELinux dla mapowania logowania SELinux domyślnie odpowiada zakresowi rekordu użytkownika SELinux.

Indywidualne modyfikacje mogą być usunięte poprzez ustawienie state na absent.

selinux_ports

Zarządzanie stanem polityki portów SELinux. To jest lista dict, gdzie każdy dict jest w tym samym formacie, co używany przez moduł seport.

selinux_ports:
  - ports: 22100
    proto: tcp
    setype: ssh_port_t
    state: present
    local: true

selinux_restore_dirs

To jest lista ciągów, gdzie każdy ciąg to drzewo systemu plików, w którym chcesz uruchomić restorecon:

selinux_restore_dirs:
  - /tmp/test_dir

selinux_logins

Zarządzanie mapowaniem użytkownika linux na użytkownika SELinux. To jest lista dict, gdzie każdy dict jest w tym samym formacie, co używany przez moduł selogin.

selinux_logins:
  - login: plautrba
    seuser: staff_u
    state: absent
  - login: default
    seuser: staff_u
    serange: s0-s0:c0.c1023
    state: present

selinux_modules

Możliwe jest zarządzanie modułami SELinux za pomocą zmiennej selinux_modules, która będzie zawierać list dict, np.:

selinux_modules:
  - path: localmodule.pp
    state: enabled
  - path: localmodule.cil
    priority: 350
    state: enabled
  - name: unconfineduser
    state: disabled
  - name: localmodule
    priority: 350
    state: absent
  • path: plik lokalnego modułu (plik .cil lub .pp) do zainstalowania na węźle, używany do instalacji nowych modułów
  • name: nazwa modułu, używana do włączania wyłączonych modułów, wyłączania włączonych modułów, usuwania modułów
  • priority: priorytet modułu SELinux, domyślnie wynosi "400". "100" jest używane dla modułów instalowanych z pakietów selinux-policy, "200" dla innych modułów instalowanych z rpmów ze strony trzeciej, "300" jest używane przez SETroubleshoot
  • state: jedna z następujących wartości
    • enabled: zainstalować lub włączyć moduł
    • disabled: wyłączyć moduł
    • absent: usunąć moduł

Uwaga: Budowanie modułów z źródła na węzłach nie jest wspierane. W wielu przypadkach binarny moduł pp lub cil może być używany na różnych systemach, pod warunkiem, że wszystkie systemy wspierają typy, klasy i uprawnienia używane w module. W przypadku modułu pp musi być on także zbudowany z najniższą wersją obsługiwanego module policydb na docelowych systemach, tzn. na najstarszym systemie.

Uwaga: Priorytety modułów są ignorowane w Red Hat Enterprise Linux 6.

Uwaga: Zarządzanie modułami jest idempotentne tylko na Fedory i EL 8.6 oraz nowszych. Możesz zarządzać modułami na starszych wersjach, ale nie będzie to idempotentne.

selinux_transactional_update_reboot_ok

Ta zmienna jest używana do obsługi restartów wymaganych przez aktualizacje transakcyjne. Jeśli aktualizacja transakcyjna wymaga restartu, rola wykona restart, jeśli selinux_transactional_update_reboot_ok jest ustawione na true. Jeśli ustawione na false, rola powiadomi użytkownika, że wymagany jest restart, pozwalając na dostosowane zarządzanie wymaganiem restartu. Jeśli ta zmienna nie jest ustawiona, rola zakończy działanie, aby upewnić się, że wymaganie restartu nie zostało pominięte.

selinux_transactional_update_reboot_ok: true

Fakty Ansible

selinux_reboot_required

Ten fakt customowy jest ustawiany na true, jeśli konieczny jest restart systemu, gdy SELinux jest ustawiony z disabled na enabled lub odwrotnie. W przeciwnym razie fakt jest ustawiony na false. W przypadku, gdy potrzebny jest restart systemu, zostanie to wskazane przez zwrócenie błędu z roli, co należy obsłużyć za pomocą konstrukcji block:...rescue:. Restart musi być wykonany w playbooku, sama rola nigdy nie restartuje zarządzanego hosta. Po restarcie rolę należy ponownie zastosować, aby zakończyć zmiany.

selinux_installed_modules

Ten fakt customowy reprezentuje strukturę magazynu modułów SELinux.

"selinux_installed_modules": {
  <nazwa modułu>: {
    <priorytet modułu>: ("enabled"|"disabled"),
    ...
  },
  ...
}

np.

"ansible_facts": {
  "selinux_installed_modules": {
    "abrt": {
      "100": "enabled",
      "400": "disabled"
    },
    "accountsd": {
      "100": "enabled"
    },
    "acct": {
      "100": "enabled"
    }
  }
}

UWAGA: Priorytet modułu jest ustawiany na "0", gdy priorytety nie są obsługiwane, np. w Red Hat Enterprise Linux 6.

Przykłady

Ogólne zastosowanie jest demonstrowane w pliku playbook selinux-playbook.yml.

rpm-ostree

Patrz README-ostree.md.

Zainstaluj
ansible-galaxy install linux-system-roles.selinux
Licencja
gpl-3.0
Pobrania
153.5k
Właściciel