CentOS 7: Verschachtelung von SELinux-Regeln

CentOS 7: Verschachtelung von SELinux-Regeln

Nachdem ich nunherausgefunden, dass Dateien den Dateikontext .sshbenötigenssh_home_t, jetzt muss ich herausfinden, wie ich SELinux-Regeln verschachteln kann.

Mein erstes Problem ist, dass ich keine Liste mit SELinux-Dateikontexten finden kann, die ihren Verwendungszweck beschreiben. Vielleicht liege ich hier falsch. Ich denke, ich muss drei Dinge in dieser Reihenfolge tun:

  1. Setzen Sie jedes passende Verzeichnis /exports/home/$USERaufnfs_t ohneauch alle Unterverzeichnisse darunter werden abgeglichen $USER. Dadurch wird meinem NFS-Server mitgeteilt, dass Home-Verzeichnisse legal exportiert werden dürfen.
  2. Alles Passende /exports/home/$USER/.*auf... etwas setzen? Hier wäre eine umfassende Liste mit Beschreibungen hilfreich. Verfügt SELinux über einen Dateikontext, der im Allgemeinen Dateien im Home-Verzeichnis eines Benutzers bezeichnet?
  3. Alles passend einstellen/exports/home/$USER/\.ssh(/.*) nurauf ssh_home_t, damit SSHD die Verwendung von zulassen kann authorized_keys.

Ich muss alle drei Regeln vom NFS-Server aufrufen. Und ich muss die zweite und dritte Regel aufrufenals Einzelnutzerauf die Dateien dieses einzelnen Benutzers von jedem Host aus, der das Home-Verzeichnis mountet. Denn natürlich hoffe ich, dass ich Root-Rechte auf jedem Host habe, der eines dieser Home-Verzeichnisse mountet. Ein Benutzer erstellt höchstwahrscheinlich Dateien, einschließlich SSH-Dateien, von einem Host aus, der nicht der NFS-Server ist.


AKTUALISIEREN

Ich glaube, ich habe die richtigen Dateikontexte herausgefunden. Jetzt muss ich nur noch die richtigen regulären Ausdrücke herausfinden.

# semanage fcontext -a nfs_t '<regexp 1>'

# semanage fcontext -a user_home_t '<regexp 2>'

# semanage fcontext -a ssh_home_t '<regexp 3>'

Wo

  • <regexp 1>bleibt hängen /exports/home/$USERund geht nicht weiter.
  • <regexp 2>fängt/exports/home/$USER\.* ausser für exports/home/$USER/\.ssh(/.*)?.
  • <regexp 3>fängt exports/home/$USER/\.ssh(/.*)?.

und $USERist string-agnostisch (d. h. jeder Benutzer) undErweiterte reguläre Ausdrücke für POSIXscheinen nicht zulässig zu sein.

Antwort1

Eine einfache, verblüffende Antwort:

SELinux hat bereits eine Standardregel für `/export/home/*. Lassen Sie einfach das „s“ weg und das Problem ist gelöst.

verwandte Informationen