Scroll to navigation

SYSCTL.D(5) sysctl.d SYSCTL.D(5)

BEZEICHNUNG

sysctl.d - Kernel-Parameter beim Systemstart konfigurieren

ÜBERSICHT

/etc/sysctl.d/*.conf

/run/sysctl.d/*.conf

/usr/lib/sysctl.d/*.conf

key.name.under.proc.sys = ein Wert
key/name/under/proc/sys = ein Wert
key/middle.part.with.dots/foo = 123
key.middle/part/with/dots.foo = 123
-key.that.will.not.fail = Wert
key.pattern.*.with.glob = irgendwas
-key.pattern.excluded.with.glob
key.pattern.overriden.with.glob = angepasst

BESCHREIBUNG

Beim Systemstart liest systemd-sysctl.service(8) Konfigurationsdateien aus den obigen Verzeichnissen, um sysctl(8)-Kernelparameter zu konfigurieren.

KONFIGURATIONSFORMAT

Die Konfigurationsdateien enthalten eine Liste von durch Zeilenumbrüchen getrennten Variablenzuweisungen. Leere Zeilen und Zeilen, deren erstes von Leerraumzeichen verschiedenes Zeichen ein »#« oder »;« ist, werden ignoriert.

Beachten Sie, dass entweder »/« oder ».« als Trenner innerhalb von Sysctl-Variablennamen benutzt werden kann. Falls der erste Trenner ein Schrägstrich ist, werden die restlichen Schrägstriche und Punkte unverändert gelassen. Falls der erste Trenner ein Punkt ist, werden Punkte und Schrägstriche ausgetauscht. »kernel.domainname=foo« und »kernel/domainname=foo« sind äquivalent und führen dazu, dass »foo« nach /proc/sys/kernel/domainname geschrieben wird. Sowohl »net.ipv4.conf.enp3s0/200.forwarding« als auch »net/ipv4/conf/enp3s0.200/forwarding« beziehen sich auf /proc/sys/net/ipv4/conf/enp3s0.200/forwarding. Zum Schreiben des gleichen Wertes in alle passenden Schlüssel kann ein glob(7)-Muster benutzt werden. Schlüssel, für die ein explizites Muster existiert, werden von sämtlichen Glob-Vergleichen ausgeschlossen. Zusätzlich kann das Setzen eines Schlüssels explizit ausgeschlossen werden, indem der Schlüsselname mit vorangestelltem »-« festgelegt wird und ihm kein »=« folgt, siehe ÜBERSICHT.

Sämtliche Berechtigungsfehler und Versuche, Variablen zu schreiben, die auf dem lokalen System nicht vorhanden sind, werden protokolliert, führen aber nicht zum Fehlschlag des Dienstes. Die Protokollstufe »debug« wird verwandt, wodurch die Nachricht standardmäßig nicht auftauchen wird. Wird darüberhinaus einer Variablenzuweisung ein einzelnes »-«-Zeichen vorangestellt, werden alle Fehler, die Variable zu setzen, auf der Stufe »debug« protokolliert, dies wird aber nicht zu einem Fehlschlag des Dienstes führen. Alle anderen Fehler beim Setzen von Variablen werden mit höherer Priorität protokolliert und führen dazu, dass der Dienst am Ende einen Fehlschlag zurückliefert (die anderen Variablen werden weiterhin verarbeitet).

Die mit den sysctl.d-Dateien konfigurierten Einstellungen werden früh während des Systemstarts angewandt. Die Netzwerkschnittstellen-spezifischen Optionen werden auch individuell auf jede Netzschnittstelle angewandt, wenn diese im System auftaucht. (Genauer net.ipv4.conf.*, net.ipv6.conf.*, net.ipv4.neigh.* and net.ipv6.neigh.*).

Viele Sysctl-Parameter werden nur verfügbar, wenn bestimmte Kernelmodule geladen werden. Module werden normalerweise bei Bedarf geladen, z.B. wenn bestimmte Hardware eingesteckt oder das Netz aktiviert wird. Dies bedeutet, dass systemd-sysctl.service(8), das während der frühen Systemstartphase läuft, solche Parameter nicht konfigurieren wird, nachdem es ausgeführt wurde. Um solche Parameter zu setzen, wird empfohlen, eine udev(7)-Regel hinzuzufügen, um diese Parameter zu setzen, wenn diese verfügbar werden. Alternativ ist eine leicht einfachere und weniger effiziente Option, die Module zu modules-load.d(5) hinzuzufügen, wodurch diese statisch geladen werden, bevor die Sysctl-Einstellungen angewandt werden (siehe Beispiel unten).

KONFIGURATIONSVERZEICHNISSE UND RANGFOLGE

Konfigurationsdateien werden aus Verzeichnissen in /etc/, /run/, /usr/local/lib/ und /lib/, in dieser Rangfolge, gelesen, wie im Abschnitt ÜBERSICHT oben aufgeführt. Dateien müssen die Endung ».conf« haben. Dateien in /etc/ setzen Dateien mit dem gleichen Namen in /run/, /usr/local/lib/ und /lib/ außer Kraft. Dateien in /run/ setzen Dateien mit dem gleichen Namen unter /usr/lib/ außer Kraft.

Alle Konfigurationsdateien werden in lexikographischer Reihenfolge sortiert, unabhängig davon, in welchem Verzeichnis sie sich befinden. Falls mehrere Dateien die gleiche Option festlegen, wird der Eintrag in der Datei mit dem lexikographisch letzten Namen Vorrang erhalten. Daher kann die Konfiguration in einer bestimmten Datei entweder komplett ersetzt werden (indem eine Datei mit dem gleichen Namen in einem Verzeichnis mit höherer Priorität abgelegt wird) oder einzelne Einstellungen können geändert werden (indem zusätzliche Einstellungen in einer Datei mit einem anderen Namen, der später angeordnet ist, festgelegt werden).

Pakete sollten ihre Konfigurationsdateien in /usr/lib/ (Distributionspakete) oder /usr/local/lib/ (lokale Installationen) installieren. Dateien in /etc/ sind für den lokalen Administrator reserviert, der diese Logik verwenden kann, um die durch die Lieferantenpakete bereitgestellten Konfigurationsdateien außer Kraft zu setzen. Es wird empfohlen, allen Dateinamen eine zweistellige Zahl und einen Bindestrich voranzustellen, um die Sortierung der Dateien zu vereinfachen.

Falls der Administrator eine vom Lieferanten bereitgestellte Konfigurationsdatei deaktivieren möchte, wird empfohlen, einen Symlink im Konfigurationsverzeichnis in /etc/ mit dem gleichen Dateinamen wie die des Lieferanten auf /dev/null zu setzen. Falls die Lieferantendatei im Initrd-Image enthalten ist, muss das Image neu erstellt werden.

BEISPIELE

Beispiel 1. Den YP-Domain-Namen des Kernels setzen

/etc/sysctl.d/domain-name.conf:

kernel.domainname=example.com

Beispiel 2. Einstellungen nur anwenden, wenn ein bestimmtes Modul geladen ist (Methode eins)

/etc/udev/rules.d/99-bridge.rules:

ACTION=="add", SUBSYSTEM=="module", KERNEL=="br_netfilter", \
      RUN+="/lib/systemd/systemd-sysctl --prefix=/net/bridge"

/etc/sysctl.d/bridge.conf:

net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0

This method applies settings when the module is loaded. Please note that, unless the br_netfilter module is loaded, bridged packets will not be filtered by Netfilter (starting with kernel 3.18), so simply not loading the module is sufficient to avoid filtering.

Beispiel 3. Einstellungen nur anwenden, wenn ein bestimmtes Modul geladen ist (Methode zwei)

/etc/modules-load.d/bridge.conf:

br_netfilter

/etc/sysctl.d/bridge.conf:

net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0

This method forces the module to be always loaded. Please note that, unless the br_netfilter module is loaded, bridged packets will not be filtered with Netfilter (starting with kernel 3.18), so simply not loading the module is sufficient to avoid filtering.

Beispiel 4. Setzen von Netzwerk-Routing-Eigenschaften für alle Schnittstellen

/etc/sysctl.d/20-rp_filter.conf:

net.ipv4.conf.default.rp_filter = 2
net.ipv4.conf.*.rp_filter = 2
-net.ipv4.conf.all.rp_filter
net.ipv4.conf.hub0.rp_filter = 1

Der Schlüssel rp_filter wird für alle Schnittstellen außer »hub0« auf »2« gesetzt. Wir setzen zuerst net.ipv4.conf.default.rp_filter, damit alle später hinzugefügten Schnittstellen diesen Wert erhalten (dies deckt auch alle während des Betriebs erkannten Schnittstellen ab). Der Glob passt auf alle früher erkannten Schnittstellen. Der Glob passt auch auf net.ipv4.conf.all.rp_filter, der überhaupt nicht gesetzt werden soll und daher explizit ausgeschlossen wird. Und »hub0« ist von dem Glob ausgeschlossen, da er eine explizite Einstellung hat.

SIEHE AUCH

systemd(1), systemd-sysctl.service(8), systemd-delta(1), sysctl(8), sysctl.conf(5), modprobe(8)

ÜBERSETZUNG

Die deutsche Übersetzung dieser Handbuchseite wurde von Helge Kreutzmann <debian@helgefjell.de> erstellt.

Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.

Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an <debian-l10n-german@lists.debian.org>.

systemd 245