RHEL System Roles: nbde_server
In diesem Artikel stelle ich euch die RHEL System Role nbde_server
vor, mit welcher sich Tang-Server für Network Bound Disk Encryption (NBDE) installieren lassen. Er ist Bestandteil einer losen Serie, in der ich eine Reihe von System Roles vorstelle, mit denen häufig anfallende Aufgaben in der Systemadministration erledigt werden können.
Wer sich zuerst über die genannten Begriffe informieren möchte, lese zuerst:
- Network Bound Disk Encryption im Überblick und
- Vorstellung der Red Hat Enterprise Linux (RHEL) System Roles
Im folgenden Text verwende ich die Begriffe NBDE-Server und Tang-Server synonym. Bitte lasst euch dadurch nicht verwirren.
Umgebung
Für das folgende Beispiel verwende ich eine Umgebung, bestehend aus:
- Einem Ansible-Controller mit den Paketen (RHEL 9)
ansible-core
rhel-system-roles
- Jeweils einem RHEL 8 und RHEL 9 Server mit Minimalinstallation
Die Installation von RHEL sowie der genannten Pakete sind nicht Bestandteil dieses Artikels. Wer hierzu einen Einstieg sucht, findet entsprechende Dokumentation unter:
- Performing a standard RHEL 8 installation
- Performing a standard RHEL 9 installation
- Installing packages using DNF
Die Rolle
Durch die Installation des Pakets rhel-system-roles
existiert diese Rolle bereits auf meinem System und muss nur noch konfiguriert werden. Die Rolle selbst findet man im Pfad /usr/share/ansible/roles/rhel-system-roles.nbde_server/
und die Dokumentation in /usr/share/doc/rhel-system-roles/nbde_server/README.md
. Letztere enthält verschiedene Beispiele für häufige Anwendungsfälle.
Ich möchte mit dieser Rolle Folgendes erreichen:
- Installation von Tang auf den beiden Zielsystemen
- Konfiguration von SELinux im Modus
enforcing
- Konfiguration der Host-Firewall
Das Playbook
Das Playbook ist recht übersichtlich. tang
bezeichnet eine Gruppe aus meinem Ansible-Inventory, welche die Systeme enthält, die ich als NBDE-Server konfigurieren möchte.
---
- name: Manage nbde server with selinux and firewall
hosts: tang
vars:
nbde_server_manage_firewall: true
nbde_server_manage_selinux: true
roles:
- rhel-system-roles.nbde_server
Nach der Anwendung der Rolle lauscht der Tang-Service auf Port 80/tcp
der Zielsysteme und ist aus dem Netzwerk erreichbar.
Probleme
Leider läuft es dieses Mal nicht ganz so rund wie üblich. Der Task [redhat.rhel_system_roles.selinux : Set an SELinux label on a port]
schlägt auf dem RHEL 8 Host mit folgender Fehlermeldung fehl: „Failed to import the required Python library (libselinux-python)“
Das Problem und die Lösung beschreibt Red Hat in dem Solution Article: Ansible playbook fails with libselinux-python aren’t installed on RHEL8 (Login required)
Fazit
Diesmal lief es nicht ganz so reibungslos wie gewohnt.
Letztendlich konnten die beiden NBDE-Server dennoch schneller konfiguriert werden, als wäre ich der manuellen Prozedur in Chapter 12. Configuring automated unlocking of encrypted volumes using policy-based decryption gefolgt.
Die Server sind damit aufgesetzt, nächste Woche beschreibe ich, wie die Clients konfiguriert werden.
Quellen und weiterführende Links
- Red Hat Enterprise Linux (RHEL) System Roles {en}
- Ansible Documentation: Role Directory Structure {en}
- Red Hat Software and Download Center {en}
- Die Vorteile einer Red Hat Subskription
- RHEL System Roles: selinux
- RHEL System Roles: timesync
- RHEL System Roles: sshd
- RHEL System Roles: firewall
- RHEL System Roles: rhc