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