GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

So konfigurieren Sie Selinux unter Cent OS

Einführung

Security Enhanced Linux oder SELinux ist ein fortschrittlicher Zugriffskontrollmechanismus, der in die meisten modernen Linux-Distributionen integriert ist. Es wurde ursprünglich von der US-amerikanischen National Security Agency entwickelt, um Computersysteme vor böswilligem Eindringen und Manipulation zu schützen. Im Laufe der Zeit wurde SELinux gemeinfrei veröffentlicht und verschiedene Distributionen haben es seitdem in ihren Code integriert

Viele Systemadministratoren halten SELinux für ein etwas unbekanntes Gebiet. Das Thema kann entmutigend und manchmal ziemlich verwirrend erscheinen. Ein richtig konfiguriertes SELinux-System kann jedoch Sicherheitsrisiken erheblich reduzieren, und wenn Sie ein wenig darüber wissen, können Sie zugriffsbezogene Fehlermeldungen beheben. In diesem Tutorial lernen wir die Konzepte hinter SELinux kennen – seine Pakete, Befehle und Konfigurationsdateien

Installieren von SELinux-Paketen

In SELinux werden eine Reihe von Paketen verwendet. Einige werden standardmäßig installiert. Hier ist eine Liste für Red Hat-basierte Distributionen:

  • policycoreutils (stellt Dienstprogramme zum Verwalten von SELinux bereit)
  • policycoreutils-python (stellt Dienstprogramme zum Verwalten von SELinux bereit)
  • selinux-richtlinie (stellt SELinux-Referenzrichtlinie bereit)
  • selinux-policy-targeted (stellt eine SELinux-Zielrichtlinie bereit)
  • libselinux-utils (bietet einige Tools zum Verwalten von SELinux)
  • setroubleshoot-server (stellt Tools zum Entschlüsseln von Audit-Log-Meldungen bereit)
  • settools (bietet Tools für die Überwachung von Prüfprotokollen, die Abfrage von Richtlinien und die Verwaltung von Dateikontexten)
  • setools-console (bietet Tools für die Überwachung von Prüfprotokollen, die Abfrage von Richtlinien und die Verwaltung von Dateikontexten)
  • mcstrans (Werkzeuge, um verschiedene Ebenen in ein leicht verständliches Format zu übersetzen)

Einige davon sind bereits installiert. Um zu überprüfen, welche SELinux-Pakete auf Ihrem CentOS 7-System installiert sind, können Sie einige Befehle wie den folgenden ausführen (mit unterschiedlichen Suchbegriffen nach grep). ) als Root-Benutzer:

rpm -qa | grep selinux

Die Ausgabe sollte in etwa so aussehen:

libselinux-utils-2.2.2-6.el7.x86_64
libselinux-2.2.2-6.el7.x86_64
selinux-policy-targeted-3.12.1-153.el7.noarch
selinux-policy-3.12.1-153.el7.noarch
libselinux-python-2.2.2-6.el7.x86_64

Sie können fortfahren und alle Pakete mit dem folgenden Befehl installieren (yum aktualisiert nur alle, die Sie bereits haben), oder nur die, die auf Ihrem System fehlen:

yum install policycoreutils policycoreutils-python selinux-policy selinux-policy-targeted libselinux-utils setroubleshoot-server setools setools-console mcstrans

Jetzt sollten wir ein System haben, das mit allen SELinux-Paketen geladen ist.

SELinux-Modi

Es ist an der Zeit, mit SELinux herumzuspielen, also fangen wir mit den SELinux-Modi an. SELinux kann sich jederzeit in einem von drei möglichen Modi befinden:

  • Durchsetzen
  • Zulässig
  • Deaktiviert

Im Erzwingungsmodus wird SELinux erzwingen seine Richtlinie auf dem Linux-System und stellen Sie sicher, dass alle unbefugten Zugriffsversuche von Benutzern und Prozessen verweigert werden. Die Zugriffsverweigerungen werden auch in entsprechende Protokolldateien geschrieben. Wir werden später über SELinux-Richtlinien und Prüfprotokolle sprechen.

Der zulässige Modus ist wie ein halb aktivierter Zustand. SELinux wendet seine Richtlinie nicht im zulässigen Modus an, sodass kein Zugriff verweigert wird. Jede Richtlinienverletzung wird jedoch weiterhin in den Überwachungsprotokollen protokolliert. Es ist eine großartige Möglichkeit, SELinux zu testen, bevor Sie es erzwingen.

Der deaktivierte Modus ist selbsterklärend – das System wird nicht mit erhöhter Sicherheit ausgeführt.

Überprüfen von SELinux-Modi und -Status

Wir können die getenforce ausführen Befehl, um den aktuellen SELinux-Modus zu überprüfen.

getenforce

SELinux sollte derzeit deaktiviert sein, daher sieht die Ausgabe so aus:

Disabled

Wir können auch den sestatus ausführen Befehl:

sestatus

Wenn SELinux deaktiviert ist, zeigt die Ausgabe:

SELinux status:        disabled

SELinux-Konfigurationsdatei

Die Hauptkonfigurationsdatei für SELinux ist /etc/selinux/config. Wir können den folgenden Befehl ausführen, um seinen Inhalt anzuzeigen:

cat /etc/selinux/config

Die Ausgabe sieht in etwa so aus:

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

Es gibt zwei Direktiven in dieser Datei. Die SELINUX-Direktive bestimmt den SELinux-Modus und kann drei mögliche Werte haben, wie wir zuvor besprochen haben.

Aktivieren und Deaktivieren von SELinux

Das Aktivieren von SELinux ist ziemlich einfach; Im Gegensatz zur Deaktivierung sollte dies jedoch in einem zweistufigen Prozess erfolgen. Wir gehen davon aus, dass SELinux derzeit deaktiviert ist und dass Sie alle SELinux-Pakete aus dem vorherigen Abschnitt installiert haben.

Als ersten Schritt müssen wir die Datei /etc/selinux/config bearbeiten Datei, um die SELINUX-Direktive in den zulässigen Modus zu ändern.

vi /etc/sysconfig/selinux
...
SELINUX=permissive
...

Setzen Sie den Status auf zulässig first ist notwendig, da jede Datei im System mit ihrem Kontext gekennzeichnet werden muss, bevor SELinux erzwungen werden kann. Wenn nicht alle Dateien ordnungsgemäß gekennzeichnet sind, können Prozesse, die in eingeschränkten Domänen ausgeführt werden, fehlschlagen, weil sie nicht auf Dateien mit den richtigen Kontexten zugreifen können. Dies kann dazu führen, dass der Startvorgang fehlschlägt oder mit Fehlern startet. Wir werden Kontexte einführen und Domains später im Tutorial.

Führen Sie nun einen Systemneustart durch:

reboot

Beim Neustartvorgang werden alle Dateien auf dem Server angezeigt, die mit einem SELinux-Kontext gekennzeichnet sind.

In der zweiten Phase müssen wir die Konfigurationsdatei bearbeiten, um die SELINUX-Anweisung von zulässig zu ändern zu erzwingen in der /etc/sysconfig/selinux Datei:

...
SELINUX=enforcing
...

Als nächstes starten Sie den Server erneut neu.

reboot

Sobald der Server wieder online ist, können wir den sestatus ausführen Befehl, um den SELinux-Status zu überprüfen. Es sollte jetzt mehr Details über den Server zeigen:

SELinux status:                 enabled
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:         /etc/selinux
Loaded policy name:             targeted
Current mode:                   permissive
Mode from config file:          error (Success)
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
Max kernel policy version:      28

Cent OS
  1. So installieren Sie Bugzilla 5.0 unter CentOS 7

  2. So konfigurieren Sie Greylisting in SmarterMail

  3. So konfigurieren Sie IMAP mit SSL

  4. So konfigurieren Sie OpenSSH unter CentOS 7

  5. So installieren und konfigurieren Sie „setroubleshootd“ unter CentOS/RHEL

So konfigurieren Sie die IP-Adresse in CentOS 7 / RHEL 7 und CentOS 6 / RHEL 6

So deaktivieren Sie SELinux unter CentOS

So deaktivieren Sie SELinux auf AlmaLinux 8

So konfigurieren Sie Nginx mit SSL

Wie konfiguriere ich „Maustasten“?

Wie konfiguriere ich Skeleton Directory?