Created: 2023-02-09 Thu 14:54
man
-Pages
ausgeliefertSie können aus den SELinux-Richtlinienquellen hinzugefügt werden
# dnf install -y selinux-policy-devel # sepolicy manpage -a -p /usr/share/man/man8
bind
genannt wird, heißt die Manpage
named_selinux
.
Diese Manpage dokumentiert die named process types
, die neben
BIND 9 auch für den Unbound-Resolver verwendet werden:
# man named_selinux
Um nur das BIND 9 SELinux-Modul zu deaktivieren
# semodule -d bind
Um das BIND 9 SELinux-Modul zu aktivieren
# semodule -ve bind Attempting to enable module 'bind': Ok: return value of 0. Committing changes: Ok: transaction number 6.
ausearch
können Sie die Richtlinienverletzungen
eines bestimmten Prozesses auflisten
-m avc
listet LSM-Richtlinienverstöße auf-x /usr/sbin/named
filtert nach Verstößen dieses Prozesses-i
(interpretieren) gibt die Daten in lesbarer Form aus
/etc
oder /var/named
)
# secon --file /etc/shadow user: system_u role: object_r type: shadow_t sensitivity: s0 clearance: s0 mls-range: s0
# secon --pid $(pgrep dbus) user: system_u role: system_r type: system_dbusd_t sensitivity: s0 clearance: s0:c0.c1023 mls-range: s0-s0:c0.c1023
matchpathcon
(Match Path Context) meldet Dateien, bei
denen das Dateilabel nicht mit der SELinux-Richtlinie übereinstimmen
# matchpathcon -V /var/named/named.localhost /var/named/named.localhost has context system_u:object_r:etc_t:s0, should be system_u:object_r:named_zonefile
Der Befehl chcon
(change SELinux context) kann verwendet werden,
um den Typ des Dateilabel zu ändern:
# chcon --type named_cache_t /var/named/zonefile.db
Der Befehl restorecon
passt das Label einer Datei so an, dass es
mit dem von der SELinux-Richtlinie erwarteten Label übereinstimmt
# restorecon -v /var/named/named.localhost Relabeled /var/named/named.localhost ... from system_u:object_r:etc_t:s0 ... to system_u:object_r:named_zone_t:s0
semanage fcontext -a
fügt einen Dateikontext Label zur
SELinux-Richtlinie hinzu.restrorecon
, um die Dateien neu zu kennzeichnen.
# semanage fcontext -a -t named_zone_t /srv/bind/zones/primary/example.com.db # restorecon -vr /srv/bind/zones Relabeled /srv/bind/zones/primary/example.com.db from unconfined_u:object_r:var_t:s0 to unconfined_u:object_r:named_zone_t:s0
# semanage fcontext -a -t named_zone_t --ftype f "/srv/bind/zones(/.*)?" # semanage fcontext -a -t named_zone_t --ftype d "/srv/bind/zones(/.*)?" # semanage fcontext -a -t named_cont_t --ftype f "/srv/bind/conf(/.*)?" # semanage fcontext -a -t named_conf_t --ftype d "/srv/bind/conf(/.*)?"
restorecond
kann optional installiert und
gestartet werden (Paket policycoreutils-restorecond
), um
Dateilabel von neu angelegten Dateien automatisch an die
SELinux-Policy anzupassen
restorecond
die Sicherheit
beeinträchtigen, da SELinux-Label auf Dateien automatisch
korrigiert werden/etc/selinux/restorecond.conf
listed die Dateien und
Verzeichnisse auf, welche von restorecond
automatisch überwacht
und berichtigt werden sollensemanage
boolean -l
abgerufen werden
SELinux boolean State Default Description abrt_anon_write (off , off) Allow ABRT to modify public files used ... abrt_handle_event (off , off) Determine whether ABRT can run in the ... antivirus_can_scan_system (off , off) Allow antivirus programs to read non ... antivirus_use_jit (off , off) Determine whether antivirus programs ...
getsebool
ist eine alternative Schnittstelle zu den
SELinux Schaltern# getsebool -a abrt_anon_write --> off abrt_handle_event --> off [...] named_tcp_bind_http_port --> off named_write_master_zones --> on [...]
semanage boolean -l --locallist
wird eine
übersicht der lokalen Schalter-Anpassungen ausgegeben
# semanage boolean -l --locallist SELinux boolean State Default Description named_write_master_zones (on , on) Determine whether Bind can write [...]
# semanage boolean --modify --off named_write_master_zones
Als Alternative zu semanage boolean
kann der Befehl setsebool
verwendet werden
setsebool named_write_master_zones off
Um eine Änderung dauerhaft (persistent) im System zu ändern
(Reboot-Fest), muss der Schalter -P
angegeben werden
setsebool -P named_write_master_zones off
semanage port -l
listet alle Port-Definitionen pro
SELinux Type-Label auf
grep
um die
Port-Konfiguration für einen SELinux-Typ zu sehen# semanage port -l | grep ssh ssh_port_t tcp 22
Um einen Netzwerk-Dienst auf einem nicht-standard Port unter SELinux betreiben zu können, muss dieser Port dem SELinux-Type hinzugefügt werden:
# semanage port -a -t ssh_port_t -p tcp 4422 # semanage port -l | grep ssh ssh_port_t tcp 22,4422
httpd_t
für Apache oder NGINX Webserver) in den
permissive Modus setzensemanage permissive -a httpd_t
# semanage permissive -l
semanage permissive -d httpd_t
semanage permissive -D