Inhaltsverzeichnis
Wenn eine Person (oder ein Programm) Zugriff auf das System erlangen möchte, wird über die Authentifizierung kontrolliert, ob der Identität vertraut werden kann.
![]() |
Warnung |
---|---|
Konfigurationsfehler von PAM können Sie aus Ihrem eigenen System aussperren. Sie müssen eine Rettungs-CD zur Hand haben oder eine alternative Boot-Partition einrichten. Um das System wiederherzustellen, booten Sie das System damit und korrigieren Sie alles Nötige von dort. |
Die normale Unix-Authentifizierung wird über das Modul
pam_unix
(8) von PAM (Pluggable Authentication
Modules) bereitgestellt. Dessen drei wichtige Konfigurationsdateien
(mit durch ":
" getrennten Einträgen) sind:
Tabelle 4.1. Wichtige Konfigurationsdateien für pam_unix
(8)
Datei | Berechtigung | Benutzer | Gruppe | Beschreibung |
---|---|---|---|---|
/etc/passwd |
-rw-r--r-- |
root |
root |
(bereinigte) Informationen zum Benutzerkonto |
/etc/shadow |
-rw-r----- |
root |
shadow |
geschützte Informationen zum Benutzerkonto |
/etc/group |
-rw-r--r-- |
root |
root |
Informationen zur Gruppe |
"/etc/passwd
" enthält Folgendes:
... user1:x:1000:1000:User1 Name,,,:/home/user1:/bin/bash user2:x:1001:1001:User2 Name,,,:/home/user2:/bin/bash ...
Wie in passwd
(5) beschrieben haben die durch
":
" separierten Einträge dieser Datei folgende
Bedeutungen:
Benutzername (Login-Name);
Eintrag zur Passwortspezifikation;
nummerische Benutzer-ID;
nummerische Gruppen-ID;
Name oder Kommentarfeld;
Home-Verzeichnis des Benutzers;
optionale Angabe des Befehlsinterpreters für den Benutzer.
Der zweite Eintrag von "/etc/passwd
" wurde früher für das
verschlüsselte Passwort benutzt. Seit der Einführung von
"/etc/shadow
" enthält er die Passwortspezifikation:
Tabelle 4.2. Inhalt des zweiten Eintrags in "/etc/passwd
"
Inhalt | Bedeutung |
---|---|
(leer) | Konto ohne Passwort |
x | das verschlüsselte Passwort ist in "/etc/shadow " abgelegt |
kein Login für dieses Konto | |
! | kein Login für dieses Konto |
"/etc/shadow
" enthält Folgendes:
... user1:$1$Xop0FYH9$IfxyQwBe9b8tiyIkt2P4F/:13262:0:99999:7::: user2:$1$vXGZLVbS$ElyErNf/agUDsm1DehJMS/:13261:0:99999:7::: ...
Wie in shadow
(5) beschrieben haben die durch
":
" separierten Einträge dieser Datei folgende
Bedeutungen:
Benutzername (Login-Name);
verschlüsseltes Passwort (das "$1$
" am Anfang zeigt die
Verwendung der MD5-Verschlüsselung an; "*" steht für "kein Login");
Datum der letzten Passwortänderung, ausgedrückt als Anzahl der Tage seit dem 1. Januar 1970;
Anzahl der Tage, die der Benutzer vor der erneuten Änderung des Passworts warten muss;
Anzahl der Tage, nach denen der Benutzer das Passwort ändern muss;
Anzahl der Tage vor dem Verfall des Passworts, während derer der Benutzer vor dem Passwortverfall gewarnt wird;
Anzahl der Tage, während derer das Passwort noch akzeptiert wird, obwohl es abgelaufen ist;
Datum, an dem das Konto abläuft, ausgedrückt als Anzahl der Tage seit dem 1. Januar 1970.
…
"/etc/group
" enthält Folgendes:
group1:x:20:user1,user2
Wie in group
(5) beschrieben haben die durch
":
" separierten Einträge dieser Datei folgende
Bedeutungen:
Gruppenname;
verschlüsseltes Passwort (nicht wirklich benutzt);
nummerische Gruppen-ID;
durch "," getrennte Liste von Benutzernamen.
![]() |
Anmerkung |
---|---|
" |
![]() |
Anmerkung |
---|---|
Die aktuelle Gruppenmitgliedschaft eines Benutzers kann dynamisch angepasst
werden, wenn eine Zeile mit " |
![]() |
Anmerkung |
---|---|
Das |
Hier einige erwähnenswerte Befehle zur Verwaltung von Konteninformationen:
Tabelle 4.3. Liste von Befehlen zur Verwaltung von Konteninformationen
Befehl | Funktion |
---|---|
getent passwd benutzername |
Konteninformationen von benutzername
anzeigen |
getent shadow benutzername |
durch shadow geschützte Konteninformationen von
benutzername anzeigen |
getent group gruppenname |
Gruppeninformationen von gruppenname
anzeigen |
passwd |
Passwort für das Konto verwalten |
passwd -e |
Einmal-Passwort für die Kontenaktivierung setzen |
chage |
Alterungsinformationen des Passworts verwalten |
Sie benötigen für einige Funktionen root-Privilegien. Lesen Sie
crypt
(3) für Informationen zur Passwort- und
Datenverschlüsselung.
![]() |
Anmerkung |
---|---|
Auf Systemen, die mit PAM und NSS eingerichtet sind, wie der Debian-Salsa-Maschine, wird der Inhalt der lokalen Dateien
" |
Bei der Erstellung eines Kontos während der Systeminstallation oder mit dem
passwd
(1)-Befehl sollten Sie ein gutes Passwort auswählen, das aus mindestens
sechs bis acht Zeichen besteht und ein oder mehrere Zeichen aus folgenden
Gruppen enthält (gemäß passwd
(1)):
Kleinbuchstaben;
Ziffern zwischen 0 und 9;
Satzzeichen.
![]() |
Warnung |
---|---|
Wählen Sie keine Wörter für das Passwort, die erraten werden könnten: Kontoname, Sozialversicherungsnummer, Telefonnummer, Adresse, Geburtstag, Name von Familienmitgliedern oder Haustieren, Wörter, die in Lexika auftauchen, einfache Zeichenfolgen wie "12345" oder "qwerty", … alle diese sind eine schlechte Wahl für ein Passwort. |
Es gibt mehrere unabhängige Werkzeuge, um verschlüsselte Passwörter mit Salz zu erzeugen:
Tabelle 4.4. Liste der Werkzeuge zur Passworterzeugung
Paket | Popcon | Größe | Befehl | Funktion |
---|---|---|---|---|
whois
|
V:31, I:343 | 364 | mkpasswd |
best-ausgestattetes Frontend für die crypt (3)-Bibliothek |
openssl
|
V:809, I:994 | 1466 | openssl passwd |
Passwort-Hashes berechnen (OpenSSL). passwd (1ssl) |
Moderne Unix-ähnliche Systeme wie Debian stellen dem lokalen Systemadministrator die Mechanismen PAM (Pluggable Authentication Modules) und NSS (Name Service Switch) zur Systemkonfiguration bereit. Deren Funktionen können wie folgt zusammengefasst werden:
PAM bietet flexible Authentifizierungsmechanismen, die von Anwendungen genutzt werden, und integriert daher auch den Austausch von Passwortdaten.
NSS besitzt einen flexiblen Name-Service-Mechanismus, der oft von der C-Standard-Bibliothek genutzt wird, um die
Benutzer- und Gruppennamen für Programme wie ls
(1) und
id
(1) einzuholen.
Diese PAM- und NSS-Systeme müssen konsistent konfiguriert sein.
Hier einige erwähnenswerte Pakete von PAM- und NSS-Systemen:
Tabelle 4.5. Liste von PAM- und NSS-Systemen
Paket | Popcon | Größe | Beschreibung |
---|---|---|---|
libpam-modules
|
V:808, I:999 | 1048 | Pluggable Authentication Modules (grundlegende Dienste) |
libpam-ldap
|
V:1, I:11 | 249 | Pluggable Authentication Module, das LDAP-Schnittstellen erlaubt |
libpam-cracklib
|
I:15 | 117 | Pluggable Authentication Module, um Unterstützung für cracklib zu aktivieren |
libpam-systemd
|
V:503, I:885 | 694 | Pluggable Authentication Module zur Registrierung von Nutzersitzungen für
logind |
libpam-doc
|
I:1 | 1046 | Pluggable Authentication Modules (Dokumentation in html- und Textform) |
libc6
|
V:925, I:999 | 12775 | GNU-C-Bibliothek: Programmbibliothek, die auch einen "Name Service Switch"-Dienst bereitstellt |
glibc-doc
|
I:10 | 3266 | GNU-C-Bibliothek: Handbuchseiten |
glibc-doc-reference
|
I:4 | 12763 | GNU-C-Bibliothek: Referenzhandbuch im info-, pdf- und html-Format (nicht-frei) |
libnss-mdns
|
I:519 | 147 | NSS-Modul für Multicast-DNS-Namensauflösung |
libnss-ldap
|
I:10 | 265 | NSS-Modul, um LDAP als Namensdienst zu verwenden |
libnss-ldapd
|
I:14 | 151 | NSS-Modul, um LDAP als Namensdienst zu verwenden (neue Abspaltung von
libnss-ldap ) |
Der "Linux-PAM System Administrators' Guide" in
libpam-doc
ist zum Erlernen der PAM-Konfiguration
unerlässlich.
Zum Erlernen der NSS-Konfiguration ist der Abschnitt "System Databases and
Name Service Switch" in glibc-doc-reference
unerlässlich.
![]() |
Anmerkung |
---|---|
Eine ausführlichere und aktuellere Liste bekommen Sie mit dem Befehl
" |
![]() |
Anmerkung |
---|---|
PAM ist der grundlegendste Weg, um Umgebungsvariablen für jegliche Programme mit einem systemweiten Standardwert vorzubelegen. |
Unter systemd ist das Paket
libpam-systemd
installiert, um die Login-Informationen
der Benutzer zu verwalten; dazu werden die Nutzersitzungen in der
systemd
-Kontrollgruppen-Hierarchie für logind registriert. Details finden Sie in
systemd-logind
(8), logind.conf
(5) und
pam_systemd
(8).
Hier einige erwähnenswerte Konfigurationsdateien, die von PAM und NSS genutzt werden:
Tabelle 4.6. Liste von Konfigurationsdateien, auf die PAM und NSS zugreifen
Konfigurationsdatei | Funktion |
---|---|
/etc/pam.d/programmname |
Einrichtung der PAM-Konfiguration für das Programm
programmname ; lesen Sie dazu
pam (7) und pam.d (5) |
/etc/nsswitch.conf |
Einrichtung der NSS-Konfiguration mit Einträgen für die jeweiligen Dienste;
lesen Sie dazu nsswitch.conf (5) |
/etc/nologin |
Einschränkung der Benutzeranmeldung über das
pam_nologin (8)-Modul |
/etc/securetty |
Einschränkung des tty für den root-Zugriff durch das
pam_securetty (8)-Modul |
/etc/security/access.conf |
Zugriffsbeschränkungen setzen über das
pam_access (8)-Modul |
/etc/security/group.conf |
Einschränkungen für Gruppen setzen über das
pam_group (8)-Modul |
/etc/security/pam_env.conf |
Umgebungsvariablen setzen über das pam_env (8)-Modul |
/etc/environment |
Zusätzliche Umgebungsvariablen setzen über das
pam_env (8)-Modul mit dem Argument
"readenv=1 " |
/etc/default/locale |
Setzen der Locale (Gebietsschema) über das
pam_env (8)-Modul mit dem Argument "readenv=1
envfile=/etc/default/locale " (Debian) |
/etc/security/limits.conf |
Beschränkungen für Ressourcen (ulimit, core, …) setzen über das
pam_linits (8)-Modul |
/etc/security/time.conf |
Zeitbeschränkungen setzen über das pam_time (8)-Modul |
/etc/systemd/logind.conf |
systemd Login-Manager-Konfiguration setzen (siehe
logind.conf (5) and
systemd-logind.service (8)) |
Einschränkungen bei der Passwortauswahl sind über die PAM-Module
pam_unix
(8) und pam_cracklib
(8)
implementiert. Diese können über deren Argumente konfiguriert werden.
![]() |
Tipp |
---|---|
PAM-Module verwenden den Anhang " |
Ein Lightweight Directory Access Protocol (LDAP)-Server erlaubt modernes zentralisiertes Systemmanagement und somit die Administrierung vieler Unix-ähnlicher und nicht-Unix-Systeme über das Netzwerk. Die quelloffene Implementation des Lightweight Directory Access Protocol ist OpenLDAP.
Der LDAP-Server stellt die Konteninformationen auf Debian-Systemen durch die
Nutzung von PAM und NSS über die libpam-ldap
- und
libnss-ldap
-Pakete bereit. Verschiedene Aktionen sind
nötig, um dies zu aktivieren. (Ich verwende dieses Setup nicht, daher
stammen diese Informationen komplett aus zweiter Hand. Bitte beachten Sie
das beim Lesen dieses Abschnitts.)
Richten Sie einen zentralisierten LDAP-Server ein, indem Sie ein Programm
wie den eigenständigen LDAP-Daemon slapd
(8) starten.
Ändern Sie die PAM-Konfigurationsdateien im Verzeichnis
"/etc/pam.d/
", um "pam_ldap.so
" statt
dem Standard "pam_unix.so
" zu verwenden.
Debian nutzt "/etc/pam_ldap.conf
" als Konfigurationsdatei
für libpam-ldap
und
"/etc/pam_ldap.secret
" als Datei zur Speicherung des
root-Passworts.
Ändern Sie die NSS-Konfiguration in der Datei
"/etc/nsswitch.conf
", um "ldap
" statt
dem Standard ("compat
" oder "file
") zu
verwenden.
Debian nutzt "/etc/libnss-ldap.conf
" als
Konfigurationsdatei für libnss-ldap
.
Richten Sie es so ein, dass libpam-ldap
SSL- (oder TLS-)Verbindungen verwendet, um die
Passwortsicherheit zu gewährleisten.
Richten Sie es so ein, dass libnss-ldap
SSL- (oder TLS-)Verbindungen verwendet, um die
Unversehrtheit der Daten sicherzustellen (auch wenn dies zusätzlichen
LDAP-Netzwerk-Overhead verursacht).
Sie sollten nscd
(8) lokal ausführen, um alle Antworten
auf LDAP-Anfragen zwischenzuspeichern; dies reduziert den
LDAP-Netzwerkverkehr.
Lesen Sie die Dokumentation in pam_ldap.conf
(5) und
"/usr/share/doc/libpam-doc/html/
" aus dem
libpam-doc
-Paket sowie "info libc 'Name Service
Switch'
", bereitgestellt durch das Paket
glibc-doc
.
Ähnlich zu diesem Verfahren können Sie auch alternative zentralisierte Systeme mit anderen Methoden einrichten:
Verflechtung von Benutzer- und Gruppeninformationen mit Windows-Systemen
Zugriff auf Windows Domain-Dienste
mittels der Pakete winbind
- und
libpam_winbind
;
Lesen Sie dazu winbindd
(8) und Integrating MS Windows Networks
with Samba.
Verflechtung von Benutzer- und Gruppeninformationen mit Unix-ähnlichen Systemen
Zugriff auf NIS (ursprünglich YP
genannt) oder NIS+ mittels dem
nis
-Paket;
Lesen Sie dazu das Linux NIS(YP)/NYS/NIS+ HOWTO.
Dies ist eine bekannte Redewendung am Ende der alten "info
su
"-Seite von Richard M. Stallman. Aber keine Sorge: der aktuelle
su
-Befehl in Debian nutzt PAM, so dass man die Erlaubnis
zur Nutzung von su
auf die root
-Gruppe
beschränken kann, indem die Zeile mit "pam_wheel.so
" in
"/etc/pam.d/su
" aktiviert wird.
Installing the libpam-cracklib
package enables you to
force stricter password rule.
On a typical GNOME system which automatically installs
libpam-gnome-keyring
,
"/etc/pam.d/common-password
" looks like:
# here are the per-package modules (the "Primary" block) password requisite pam_cracklib.so retry=3 minlen=8 difok=3 password [success=1 default=ignore] pam_unix.so obscure use_authtok try_first_pass yescrypt # here's the fallback if no module succeeds password requisite pam_deny.so # prime the stack with a positive return value if there isn't one already; # this avoids us returning an error just because nothing sets a success code # since the modules above will each just jump around password required pam_permit.so # and here are more per-package modules (the "Additional" block) password optional pam_gnome_keyring.so # end of pam-auth-update config
![]() |
Anmerkung |
---|---|
Die Informationen hier sind für Ihre Sicherheitsbedürfnisse möglicherweise nicht passend, aber sie sollten für den Anfang eine gute Basis sein. |
Viele beliebte Transport-Layer-Dienste kommunizieren Nachrichten inklusive der Passwort-Authentifizierung im Klartext. Es ist eine sehr schlechte Idee, Passwörter im Klartext über das wilde Internet zu übertragen, wo es abgehört werden kann. Sie können diese Dienste über "Transport Layer Security" (TLS) oder seinen Vorgänger "Secure Sockets Layer" (SSL) betreiben, um die vollständige Kommunikation inklusive des Passworts über die Verschlüsselung zu schützen.
Tabelle 4.7. Liste von unsicheren und sicheren Diensten und Ports
Name des unsicheren Dienstes | Port | Name des sicheren Dienstes | Port |
---|---|---|---|
www (http) | 80 | https | 443 |
smtp (Mail) | 25 | ssmtp (smtps) | 465 |
ftp-data | 20 | ftps-data | 989 |
ftp | 21 | ftps | 990 |
telnet | 23 | telnets | 992 |
imap2 | 143 | imaps | 993 |
pop3 | 110 | pop3s | 995 |
ldap | 389 | ldaps | 636 |
Die Verschlüsselung kostet CPU-Zeit. Als CPU-freundliche Alternative können Sie die Kommunikation im Klartext lassen und nur das Passwort verschlüsseln; verwenden Sie dazu ein sicheres Authentifizierungsprotokoll wie "Authenticated Post Office Protocol" (APOP) für POP oder "Challenge-Response Authentication Mechanism MD5" (CRAM-MD5) für SMTP und IMAP. (Um E-Mail-Nachrichten über das Internet von Ihrem Mail-Client-Programm zum Mail-Server zu übertragen, ist es derzeit verbreitet, den neuen Message-Submission-Port 587 zu nutzen statt dem traditionellen SMTP-Port 25, um zu vermeiden, dass Port 25 vom Netzwerk-Provider geblockt wird, während Sie sich über CRAM-MD5 authentifizieren.)
Das Secure-Shell-(SSH-)Programm bietet
sichere verschlüsselte Kommunikation zwischen zwei nicht vertrauenswürdigen
Rechnern über ein unsicheres Netzwerk mittels sicherer Authentifizierung. Es
besteht aus dem OpenSSH-Client
(ssh
(1)) und dem OpenSSH-Daemon (sshd
(8)). SSH
kann genutzt werden, um mittels der Port-Forwarding-Funktionalität
(Port-Weiterleitung) eine unsichere Protokoll-Kommunikation wie POP oder X
gesichert durch das Internet zu tunneln.
Der Client versucht, sich selbst über eine Host-basierte Authentifizierung gegenüber dem Server zu identifizieren; dazu können verschiedene Verfahren angewandt werden: Public Key Authentication (über einen öffentlichen Schlüssel), Challenge-Response Authentication (es wird eine Aufgabe gestellt, für die die andere Seite die Lösung liefern muss) oder Passwort-Authentifizierung. Die Nutzung der Public Key Authentication ermöglicht eine Anmeldung aus der Ferne ohne Passwort. Lesen Sie dazu Abschnitt 6.3, „Der Server für Fernzugriff (SSH) und Hilfsprogramme“.
Sogar wenn Sie sichere Dienste wie Secure Shell (SSH) und Point-to-point Tunneling Protocol (PPTP) verwenden, bestehen trotzdem noch Chancen für die Einbrecher mittels Brute-Force-Atttacken zum Erraten von Passwörtern usw. über das Internet. Die Nutzung von Firewall-Richtlinien (mehr dazu in Abschnitt 5.6, „Die Netfilter-Infrastruktur“) zusammen mit den folgenden Sicherheitswerkzeugen kann die Situation weiter verbessern.
Tabelle 4.8. Liste von Werkzeugen, die zusätzliche Sicherheitsmaßnahmen ermöglichen
Paket | Popcon | Größe | Beschreibung |
---|---|---|---|
knockd
|
V:0, I:3 | 110 | kleiner Port-Knock-Daemon (horcht auf spezielle Anklopf-Sequenzen für Ports)
knockd (1) und -Client konck (1) |
fail2ban
|
V:109, I:122 | 2092 | IP-Adressen sperren, die vielfache Authentifizierungsfehler verursachen |
libpam-shield
|
V:0, I:0 | 115 | Ferne Angreifer aussperren, die versuchen, Passwörter zu erraten |
Um zu verhindern, dass Leute auf Ihre Maschine mit root-Privilegien zugreifen, müssen Sie folgende Aktionen durchführen:
physikalischen Zugriff auf die Festplatte unterbinden;
Lock UEFI/BIOS and prevent booting from the removable media
ein Passwort für interaktive Sitzungen von GRUB vergeben;
das Editieren des GRUB-Menüs verhindern.
Mit physikalischem Zugriff auf die Festplatte ist das Zurücksetzen des root-Passworts relativ leicht; dies erfordert folgende Schritte:
Move the hard disk to a PC with CD bootable UEFI/BIOS.
Booten Sie das System mit einer Rettungs-CD (Debian Boot-Disk, Knoppix-CD, GRUB-CD, …).
Binden Sie die root-Partition mit Lese-/Schreibberechtigung ein.
Editieren Sie "/etc/passwd
" auf der root-Partition und
verändern Sie den zweiten Eintrag für das root
-Konto, so
dass dieser leer ist.
Wenn Sie beim Booten Schreibzugriff auf den GRUB-Menüeintrag für
grub-rescue-pc
haben (lesen Sie dazu Abschnitt 3.1.2, „Stufe 2: der Bootloader“), ist es mit folgenden Schritten sogar
noch einfacher:
Booten Sie das System, nachdem Sie die Kernel-Parameter etwa wie folgt
geändert haben: "root=/dev/hda6 rw init=/bin/sh
".
Editieren Sie "/etc/passwd
" und verändern Sie den zweiten
Eintrag für das root
-Konto, so dass dieser leer ist.
Starten Sie das System neu.
Die root-Shell des Systems ist jetzt ohne Passwort zugänglich.
![]() |
Anmerkung |
---|---|
Sobald jemand Zugriff auf die root-Shell hat, kann er auf alles auf dem
System zugreifen und jegliche Passwörter auf dem System zurücksetzen. Mehr
noch, er könnte die Passwörter für alle Benutzerkonten kompromittieren,
indem Brute-Force-Werkzeuge zum Knacken von Passwörtern wie
|
Die einzige vernünftige Software-Lösung, um all diese Bedenken auszuräumen,
ist die Verwendung einer Software-verschlüsselten root-Partition (oder
"/etc
"-Partition) mittels dm-crypt und initramfs (lesen Sie dazu Abschnitt 9.9, „Tipps zur Datenverschlüsselung“). Sie benötigen dann allerdings immer ein
Passwort, um das System zu booten.
There are access controls to the system other than the password based authentication and file permissions.
![]() |
Anmerkung |
---|---|
Abschnitt 9.4.15, „Die Alt-SysRq-Tastenkombination“ enthält Informationen, wie Sie die Kernel-Funktion Secure attention key (SAK) einschränken. |
Das Programm sudo
(8) wurde entwickelt, um einem
Systemadministrator die Möglichkeit zu geben, Benutzern eingeschränkte
root-Privilegien zu gewähren sowie um die Aktivitäten rund um das root-Konto
zu protokollieren. sudo
benötigt nur das Passwort eines
normalen Benutzers. Installieren Sie das sudo
-Paket und
aktivieren Sie es, indem Sie passende Optionen in
"/etc/sudoers
" setzen. Konfigurationsbeispiele finden Sie
unter "/usr/share/doc/sudo/examples/sudoers
" und in Abschnitt 1.1.12, „sudo-Konfiguration“.
Die Art, wie ich sudo
auf meinem Einzelbenutzersystem
verwende (lesen Sie Abschnitt 1.1.12, „sudo-Konfiguration“), soll mich selbst
vor meiner eigenen Dummheit schützen. Ich persönlich denke, dass die
Verwendung von sudo
eine bessere Alternative zur
dauerhaften Nutzung des root-Kontos ist. Der folgende Befehl ändert zum
Beispiel den Eigentümer von
"irgendeine_datei
" in
"mein_name
":
$ sudo chown my_name some_file
Wenn Sie das root-Passwort kennen (was bei Benutzern, die sich ihr
Debian-System selbst installieren, immer der Fall ist), können Sie natürlich
jeden Befehl von jeglichem Benutzerkonto aus ausführen, indem Sie
"su -c
" verwenden.
PolicyKit ist eine Komponente des Betriebssystems zur Kontrolle von systemweiten Privilegien auf Unix-ähnlichen Systemen.
Neuere GUI-Anwendungen sind nicht dafür entwickelt, als privilegierte Prozesse zu laufen. Sie kommunizieren mit privilegierten Prozessen über PolicyKit, um administrative Operationen durchführen zu können.
Auf Debian-Systemen beschränkt PolicyKit solche Operationen auf
Benutzerkonten, die der sudo
-Gruppe angehören.
Lesen Sie dazu polkit
(8).
Aus Gründen der Systemsicherheit ist es eine gute Idee, so viele Server-Programme wie möglich zu deaktivieren. Dies ist besonders für Netzwerk-Server kritisch. Ungenutzte Server, die entweder direkt als Daemon oder über den Super-Server aktiviert sind, müssen als Sicherheitsrisiko angesehen werden.
Viele Programme wie sshd
(8) verwenden PAM-basierte
Zugriffskontrollen. Es gibt viele Möglichkeiten, um den Zugriff auf
Server-Dienste einzuschränken:
Konfigurationsdateien:
"/etc/default/programmname
";
Systemd service unit configuration for daemon
"/etc/inetd.conf
" für den Super-Server;
"/etc/hosts.deny
" und
"/etc/hosts.allow
" für TCP-Wrapper (tcpd
(8));
"/etc/rpc.conf
" für Sun
RPC;
"/etc/at.allow
" und "/etc/at.deny
" für
atd
(8);
"/etc/cron.allow
" und "/etc/cron.deny
"
für crontab
(1);
Netzwerk-Firewall aus der netfilter-Infrastruktur.
See Abschnitt 3.5, „System management“, Abschnitt 4.5.1, „Konfigurationsdateien, auf die PAM und NSS zugreifen“, and Abschnitt 5.6, „Die Netfilter-Infrastruktur“.
![]() |
Tipp |
---|---|
Falls Sie Probleme mit dem Zugriff von außen auf ein aktuelles Debian-System
haben, kommentieren Sie blockierende Konfigurationselemente wie "ALL:
PARANOID" in " |
Linux kernel has evolved and supports security features not found in traditional UNIX implementations.
Linux supports extended attributes
which extend the traditional UNIX attributes (see
xattr
(7)).
Linux divides the privileges traditionally associated with superuser into
distinct units, known as capabilities
(7), which can be
independently enabled and disabled. Capabilities are a per-thread attribute
since kernel version 2.2.
The Linux Security Module (LSM) framework provides a mechanism for various security checks to be hooked by new kernel extensions. For example:
Since these extensions may tighten privilege model tighter than the ordinary Unix-like security model policies, even the root power may be restricted. You are advised to read the Linux Security Module (LSM) framework document at kernel.org.
Linux namespaces wrap a global system
resource in an abstraction that makes it appear to the processes within the
namespace that they have their own isolated instance of the global
resource. Changes to the global resource are visible to other processes
that are members of the namespace, but are invisible to other processes.
Since kernel version 5.6, there are 8 kinds of namespaces (see
namespaces
(7), unshare
(1),
nsenter
(1)).
As of Debian 11 Bullseye (2021), Debian uses unified cgroup hierarchy (a.k.a. cgroups-v2).
Usage examples of namespaces with cgroups to isolate their processes and to allow resource control are:
These functionalities can't be realized by Abschnitt 4.1, „Normale Unix-Authentifizierung“. These advanced topics are mostly out-of-scope for this introductory document.