Kernel – Variablen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

Kernel Variablen und sysctl

Kernel-Variablen sind wichtige Parameter, die das Verhalten und die Leistung des Betriebssystemkernels steuern. Sie können mithilfe des `sysctl`-Dienstprogramms geändert werden, um das Systemverhalten anzupassen und die Systemleistung zu optimieren.

sysctl

Das `sysctl`-Dienstprogramm ist ein mächtiges Werkzeug, das es Administratoren ermöglicht, Kernel-Parameter während der Laufzeit zu lesen und zu ändern. Die `sysctl`-Einstellungen können in zwei Arten gespeichert werden: temporär und permanent. Temporäre Änderungen werden bis zum nächsten Neustart beibehalten, während permanente Änderungen in der Konfigurationsdatei `/etc/sysctl.conf` oder in den entsprechenden Dateien im Verzeichnis `/etc/sysctl.d/` gespeichert werden.

Kernel-Variablen bearbeiten mit sysctl

Zum Anzeigen der aktuellen Konfiguration kann man den Befehl `sysctl -a` oder `sysctl -A` verwenden. Um eine spezifische Variable zu ändern, verwendet man `sysctl -w`. Zum Beispiel, um die maximale Anzahl von offenen Dateien zu ändern, könnte man folgenden Befehl verwenden:

sysctl -w fs.file-max=100000

perl Copy code

Einige wichtige Kernel-Variablen

  • `vm.swappiness`: Bestimmt, wie aggressiv das System den Swap-Speicher nutzt.
  • `fs.file-max`: Legt die maximale Anzahl von Dateien fest, die gleichzeitig geöffnet sein können.
  • `net.ipv4.ip_forward`: Steuert, ob das System IP-Pakete zwischen Netzwerken weiterleiten kann.
  • `kernel.shmmax`: Bestimmt die maximale Größe eines gemeinsam genutzten Speichersegments.
  • `net.core.somaxconn`: Legt die Obergrenze für die Warteschlange eingehender Verbindungsanfragen fest.

Sicherheitsaspekte

Die Kernel-Variablen können auch aus Sicherheitsgründen angepasst werden. Zum Beispiel kann durch Deaktivieren von IP Forwarding (`net.ipv4.ip_forward`) das System vor bestimmten Arten von Netzwerkangriffen geschützt werden.


Weitere Kernel Variablen und Funktionen

kernel.domainname

Dies ist der NIS/YP-Domainname des Systems. Normalerweise nicht notwendig, außer das System ist Teil eines NIS-Domains.

kernel.printk

Dies steuert, welche Kernel-Meldungen auf die Konsole ausgegeben werden. Es kann verwendet werden, um den Informationsfluss zu reduzieren und nur wichtige Meldungen zu zeigen.

net.ipv4.conf.default.rp_filter und net.ipv4.conf.all.rp_filter

Diese Einstellungen aktivieren den Spoof-Schutz (Reverse-Path-Filter). Sie können dazu beitragen, einige Arten von Spoofing-Angriffen zu verhindern.

net.ipv4.tcp_syncookies

Diese Einstellung aktiviert TCP/IP SYN-Cookies, die dazu dienen, SYN-Flooding-Angriffe abzuwehren.

net.ipv4.ip_forward und net.ipv6.conf.all.forwarding

Diese Einstellungen steuern, ob das System IP-Pakete (IPv4 bzw. IPv6) weiterleiten kann. Das Aktivieren dieser Option deaktiviert die Stateless Address Autoconfiguration auf Basis von Routeranzeigen für diesen Host.

net.ipv4.conf.all.accept_redirects und net.ipv6.conf.all.accept_redirects

Diese Einstellungen steuern, ob das System ICMP-Redirects akzeptiert. Das Deaktivieren dieser Einstellung kann dazu beitragen, Man-in-the-Middle-Angriffe zu verhindern.

net.ipv4.conf.all.send_redirects

Diese Einstellung steuert, ob das System ICMP-Redirects sendet. Das Deaktivieren dieser Einstellung ist sinnvoll, wenn das System kein Router ist.

net.ipv4.conf.all.accept_source_route und net.ipv6.conf.all.accept_source_route

Diese Einstellungen steuern, ob das System IP-Quellroutenpakete akzeptiert. Das Deaktivieren dieser Einstellung ist sinnvoll, wenn das System kein Router ist.

net.ipv4.conf.all.log_martians

Diese Einstellung steuert, ob das System "martianische" Pakete protokolliert, d.h. Pakete mit unmöglichen Adressinformationen.

kernel.sysrq

Diese Einstellung steuert die SysRq-Funktion des Kernels, die eine Art "Notfall-Eingabe" für den Kernel bietet. Verschiedene Werte aktivieren verschiedene Funktionen, wie z.B. das Erzwingen eines Systemneustarts oder das Dumpen von Debug-Informationen.

Bitte beachten Sie, dass das Aktivieren oder Deaktivieren dieser Einstellungen erhebliche Auswirkungen auf das Verhalten und die Sicherheit des Systems haben kann. Jede Änderung sollte sorgfältig geprüft und getestet werden.



Fazit

Die richtige Konfiguration der Kernel-Variablen kann entscheidend für die Leistung und Sicherheit eines Systems sein. Das `sysctl`-Dienstprogramm ist ein mächtiges Werkzeug zur Anpassung dieser Einstellungen. Jedoch sollte seine Verwendung mit Sorgfalt erfolgen, um unbeabsichtigte Auswirkungen auf das System zu vermeiden.