Firewall-Konfiguration, SELinux und grundlegende ACL-Regeln
1. Schritt 1: Installation und Konfiguration der Firewall
Hi! Heute machen wir ein bisschen praktische Arbeit und setzen alles um, was ihr den ganzen Tag über Linux-Sicherheit gelernt habt. Wir richten eine Firewall ein, werfen einen Blick auf die Funktionsweise von SELinux und diskutieren, wie man ACL für die Verwaltung von Dateizugriffen nutzen kann. Diese Vorlesung ist euer "Trainingsgelände". Zeit, unsere Admin-"Schulterklappen" aufzusetzen und loszulegen!
Ihr wisst schon, dass eine gute Firewall wie ein Türsteher ist. Sie entscheidet, wer rein darf und wer nicht. Als Erstes schützen wir unser System, indem wir den Zugriff nur auf die Dienste SSH und HTTP beschränken.
Arbeiten mit UFW
Überprüfe den Status von UFW. Nicht installiert? Dann installieren wir es!
# Status von UFW überprüfen sudo ufw status
UFW installieren und starten.
# Installation (falls nötig) sudo apt install ufw # Firewall aktivieren sudo ufw enable
Zugriff konfigurieren. Wir möchten nur SSH (Port 22) und HTTP (Port 80) erlauben und alles andere blockieren. Die Logik ist klar: Der Server ist kein Drei-Sterne-Hotel für alle.
# SSH erlauben sudo ufw allow 22 # HTTP erlauben sudo ufw allow 80 # Einstellungen überprüfen sudo ufw status
Überprüfung: Nach der Einrichtung solltet ihr etwa Folgendes sehen:
Status: aktiv Zu Aktion Von -- ------ ---- 22 ERLAUBEN Überall 80 ERLAUBEN Überall
Wenn der Befehl sagt, dass die "Firewall deaktiviert" ist, dann müssen wir das ändern.
Wenn ihr iptables
verwendet, ist die Einrichtung etwas komplizierter, aber die Logik bleibt dieselbe: Regeln für SSH und HTTP erstellen und alles andere blockieren.
2. Schritt 2: Arbeiten mit SELinux
SELinux ist wie ein strenger Lehrer, der das Verhalten von Dateien und Nutzern auf deinem Server überwacht. Sein Motto: „Vertrauen ist gut, Kontrolle ist besser“. Lass uns SELinux aktivieren und seine Funktionalität überprüfen.
SELinux aktivieren
Status überprüfen:
# Herausfinden, ob SELinux aktiviert ist sestatus
Wenn der Modus
disabled
angezeigt wird, muss er über die Konfigurationsdatei aktiviert werden.SELinux über die Konfiguration aktivieren:
Die SELinux-Konfigurationsdatei befindet sich unter
/etc/selinux/config
. Öffne sie mit einem Texteditor (zum Beispielnano
).sudo nano /etc/selinux/config
Finde die Zeile:
SELINUX=disabled
Ändere sie zu:
SELINUX=enforcing
Speichere die Änderungen und starte das System neu, damit die Änderungen wirksam werden:
sudo reboot
Überprüfung nach dem Neustart.
Nachdem das System neu gestartet wurde, überprüfe erneut den Status von SELinux:
getenforce
Wenn das System Enforcing antwortet, herzlichen Glückwunsch, du bist auf dem Weg zur Sicherheit!
Beispiel mit SELinux und einem Webserver
Angenommen, du hast einen Webserver, der Dateien im Verzeichnis /var/www/html
speichert. Überprüfen wir, wie SELinux ihn schützt.
Dateikontext anzeigen: SELinux verwendet Kontexte zur Verwaltung des Zugriffs. Lass uns sehen, welchen Kontext das Verzeichnis
/var/www/html
hat.ls -Z /var/www/html
Beispielausgabe:
drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 /var/www/html
Wenn etwas nicht stimmt, kannst du den Kontext vorübergehend ändern:
sudo chcon -t httpd_sys_content_t /var/www/html
Webserver überprüfen: Nach der Konfiguration des Kontexts überprüfe, ob dein Server funktioniert und ob es keine Zugriffsfelder gibt.
3. Schritt 3: Rechteverwaltung mit ACL
ACL (Access Control List) – das ist wie ein "zusätzlicher Schlüssel" zur Zugriffskontrolle. Wenn die Standardrechte rwx
dich einschränken, erlaubt ACL dir, den Zugriff für bestimmte Benutzer genauer einzustellen.
Erstelle ein Testverzeichnis
Lass uns ein Verzeichnis project_dir
erstellen und es so konfigurieren, dass zwei Benutzer darauf zugreifen können: user1
und user2
.
Erstelle das Verzeichnis:
sudo mkdir /project_dir
Setze die Zugriffsrechte:
Wir erlauben
user1
vollen Zugriff unduser2
nur Lesezugriff:# Voller Zugriff für user1 sudo setfacl -m u:user1:rwx /project_dir # Nur Lesezugriff für user2 sudo setfacl -m u:user2:r-- /project_dir
Überprüfe ACL:
# Überprüfung der aktuellen Rechte getfacl /project_dir
Die Ausgabe sollte deine Einstellungen anzeigen:
# file: /project_dir user::rwx user:user1:rwx user:user2:r--
Setze Standardrechte:
Damit alle neuen Dateien im Verzeichnis automatisch die ACL-Rechte erben, setzen wir sie als Standard:
sudo setfacl -d -m u:user1:rwx /project_dir sudo setfacl -d -m u:user2:r-- /project_dir
4. Überprüfung der endgültigen Konfiguration
Firewall:
- Stelle sicher, dass die SSH- und HTTP-Ports zugänglich sind und alle anderen blockiert werden. Versuche, dich per SSH mit dem Server zu verbinden und die Website im Browser zu öffnen.
SELinux:
- Überprüfe die Dateikontexte, um sicherzustellen, dass SELinux den Zugriff korrekt einschränkt.
ACL:
- Melde dich als
user1
unduser2
an und versuche, Dateien im Verzeichnis/project_dir
zu lesen und zu schreiben.
- Melde dich als
Praktische Aufgaben
- Konfiguriere die Firewall so, dass nur auf SSH und HTTP zugegriffen werden kann.
- Aktiviere SELinux im
enforcing
-Modus und stelle sicher, dass der Webserver korrekt funktioniert. - Richte ACLs für das Verzeichnis
/project_dir
ein, sodassuser1
vollen Zugriff hat unduser2
nur Leserechte besitzt. - Prüfe die aktiven Benutzer im System mit dem Befehl
who
.
Diese Übungen helfen dir, dein Wissen zu festigen und zu verstehen, wie du es in der Praxis anwenden kannst. Und denk daran: Sicherheit in Linux bedeutet nicht nur Konfigurationen, sondern auch ständige Aufmerksamkeit für Details. Viel Erfolg!
GO TO FULL VERSION