<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.ixheim.de/index.php?action=history&amp;feed=atom&amp;title=SELinux_Cheat-Sheet</id>
	<title>SELinux Cheat-Sheet - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.ixheim.de/index.php?action=history&amp;feed=atom&amp;title=SELinux_Cheat-Sheet"/>
	<link rel="alternate" type="text/html" href="https://wiki.ixheim.de/index.php?title=SELinux_Cheat-Sheet&amp;action=history"/>
	<updated>2026-06-28T22:44:54Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Xinux Wiki</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>https://wiki.ixheim.de/index.php?title=SELinux_Cheat-Sheet&amp;diff=69408&amp;oldid=prev</id>
		<title>Thomas.will: Die Seite wurde neu angelegt: „= SELinux Cheat Sheet =  == Status &amp; Modus ==  {| class=&quot;wikitable&quot; ! Befehl !! Beschreibung |- | &lt;code&gt;getenforce&lt;/code&gt; || Aktuellen Modus anzeigen (Enforcin…“</title>
		<link rel="alternate" type="text/html" href="https://wiki.ixheim.de/index.php?title=SELinux_Cheat-Sheet&amp;diff=69408&amp;oldid=prev"/>
		<updated>2026-05-04T04:23:49Z</updated>

		<summary type="html">&lt;p&gt;Die Seite wurde neu angelegt: „= SELinux Cheat Sheet =  == Status &amp;amp; Modus ==  {| class=&amp;quot;wikitable&amp;quot; ! Befehl !! Beschreibung |- | &amp;lt;code&amp;gt;getenforce&amp;lt;/code&amp;gt; || Aktuellen Modus anzeigen (Enforcin…“&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= SELinux Cheat Sheet =&lt;br /&gt;
&lt;br /&gt;
== Status &amp;amp; Modus ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Befehl !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;getenforce&amp;lt;/code&amp;gt; || Aktuellen Modus anzeigen (Enforcing / Permissive / Disabled)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;sestatus&amp;lt;/code&amp;gt; || Detaillierter SELinux-Status&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;sestatus -v&amp;lt;/code&amp;gt; || Verbose-Status mit Kontexten&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Modus temporär ändern (bis zum Reboot) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
setenforce 0   # Permissive (nur loggen, nicht blockieren)&lt;br /&gt;
setenforce 1   # Enforcing (aktiv blockieren)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Modus dauerhaft ändern ===&lt;br /&gt;
&lt;br /&gt;
In &amp;lt;code&amp;gt;/etc/selinux/config&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
SELINUX=enforcing     # aktiv&lt;br /&gt;
SELINUX=permissive    # nur Logging&lt;br /&gt;
SELINUX=disabled      # deaktiviert (Reboot nötig)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Kontexte anzeigen ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Befehl !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ls -Z&amp;lt;/code&amp;gt; || Datei-Kontext anzeigen&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ps -eZ&amp;lt;/code&amp;gt; || Prozess-Kontext anzeigen&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;id -Z&amp;lt;/code&amp;gt; || Eigenen Benutzer-Kontext anzeigen&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;netstat -tnlpZ&amp;lt;/code&amp;gt; || Netzwerk-Kontext anzeigen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Ein Kontext hat die Form: &amp;lt;code&amp;gt;user:role:type:level&amp;lt;/code&amp;gt;, z. B.:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
system_u:object_r:httpd_sys_content_t:s0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Kontexte setzen &amp;amp; wiederherstellen ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Befehl !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;chcon -t httpd_sys_content_t /var/www/html/index.html&amp;lt;/code&amp;gt; || Typ temporär setzen&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;chcon -R -t httpd_sys_content_t /var/www/html/&amp;lt;/code&amp;gt; || Rekursiv setzen&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;restorecon -v /var/www/html/index.html&amp;lt;/code&amp;gt; || Kontext auf Standard zurücksetzen&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;restorecon -Rv /var/www/html/&amp;lt;/code&amp;gt; || Rekursiv zurücksetzen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Standard-Kontext dauerhaft anpassen ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Regel hinzufügen&lt;br /&gt;
semanage fcontext -a -t httpd_sys_content_t &amp;quot;/srv/web(/.*)?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Danach anwenden&lt;br /&gt;
restorecon -Rv /srv/web/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Boolesche Werte (Booleans) ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Befehl !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;getsebool -a&amp;lt;/code&amp;gt; || Alle Booleans anzeigen&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;getsebool httpd_can_network_connect&amp;lt;/code&amp;gt; || Einzelnen Boolean anzeigen&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;setsebool httpd_can_network_connect on&amp;lt;/code&amp;gt; || Temporär aktivieren&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;setsebool -P httpd_can_network_connect on&amp;lt;/code&amp;gt; || Dauerhaft aktivieren (&amp;lt;code&amp;gt;-P&amp;lt;/code&amp;gt; = persistent)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Nützliche Booleans:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Boolean !! Zweck&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;httpd_can_network_connect&amp;lt;/code&amp;gt; || Apache darf Netzwerkverbindungen aufbauen&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;httpd_can_sendmail&amp;lt;/code&amp;gt; || Apache darf Mails senden&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;httpd_use_nfs&amp;lt;/code&amp;gt; || Apache darf NFS-Shares nutzen&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;samba_export_all_rw&amp;lt;/code&amp;gt; || Samba darf beliebige Verzeichnisse exportieren&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ftpd_anon_write&amp;lt;/code&amp;gt; || FTP-Anon darf schreiben&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Ports verwalten ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Befehl !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;semanage port -l&amp;lt;/code&amp;gt; || Alle erlaubten Ports auflisten&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;semanage port -l | grep http&amp;lt;/code&amp;gt; || Ports für HTTP anzeigen&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;semanage port -a -t http_port_t -p tcp 8080&amp;lt;/code&amp;gt; || Port 8080 für HTTP freigeben&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;semanage port -d -t http_port_t -p tcp 8080&amp;lt;/code&amp;gt; || Port-Regel löschen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== AVC-Logs &amp;amp; Fehleranalyse ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Befehl !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ausearch -m avc -ts recent&amp;lt;/code&amp;gt; || Aktuelle AVC-Denials anzeigen&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ausearch -m avc -ts today&amp;lt;/code&amp;gt; || Denials von heute&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;journalctl -t setroubleshoot&amp;lt;/code&amp;gt; || SELinux-Troubleshoot-Meldungen&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;sealert -a /var/log/audit/audit.log&amp;lt;/code&amp;gt; || Alle Alerts mit Erklärung anzeigen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== audit2why – Ursache erklären ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ausearch -m avc -ts recent | audit2why&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== audit2allow – Regel generieren ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Regel anzeigen&lt;br /&gt;
ausearch -m avc -ts recent | audit2allow&lt;br /&gt;
&lt;br /&gt;
# Eigenes Modul erstellen und laden&lt;br /&gt;
ausearch -m avc -ts recent | audit2allow -M meinmodul&lt;br /&gt;
semodule -i meinmodul.pp&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Module verwalten ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Befehl !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;semodule -l&amp;lt;/code&amp;gt; || Alle geladenen Module auflisten&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;semodule -i meinmodul.pp&amp;lt;/code&amp;gt; || Modul installieren&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;semodule -r meinmodul&amp;lt;/code&amp;gt; || Modul entfernen&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;semodule -d meinmodul&amp;lt;/code&amp;gt; || Modul deaktivieren&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;semodule -e meinmodul&amp;lt;/code&amp;gt; || Modul aktivieren&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Typische Szenarien ==&lt;br /&gt;
&lt;br /&gt;
=== Webserver: eigenes DocumentRoot ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
semanage fcontext -a -t httpd_sys_content_t &amp;quot;/srv/www(/.*)?&amp;quot;&lt;br /&gt;
restorecon -Rv /srv/www/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Samba: Verzeichnis freigeben ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
setsebool -P samba_export_all_rw on&lt;br /&gt;
# oder gezielt mit Kontext:&lt;br /&gt;
semanage fcontext -a -t samba_share_t &amp;quot;/srv/samba(/.*)?&amp;quot;&lt;br /&gt;
restorecon -Rv /srv/samba/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SSH: anderen Port verwenden ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
semanage port -a -t ssh_port_t -p tcp 2222&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dienst läuft nicht an – schnell debuggen ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# 1. Modus prüfen&lt;br /&gt;
getenforce&lt;br /&gt;
&lt;br /&gt;
# 2. Auf Permissive stellen (testen)&lt;br /&gt;
setenforce 0&lt;br /&gt;
systemctl restart &amp;lt;dienst&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# 3. Logs sichten&lt;br /&gt;
ausearch -m avc -ts recent | audit2why&lt;br /&gt;
&lt;br /&gt;
# 4. Gezielt beheben, dann zurück auf Enforcing&lt;br /&gt;
setenforce 1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
&lt;br /&gt;
* [[Rocky Linux 10]]&lt;br /&gt;
* [[Firewall (nftables)]]&lt;br /&gt;
* [[BIND9 DNS]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Rocky Linux]]&lt;br /&gt;
[[Kategorie:Sicherheit]]&lt;br /&gt;
[[Kategorie:SELinux]]&lt;/div&gt;</summary>
		<author><name>Thomas.will</name></author>
	</entry>
</feed>