guidugli.kernel_config

Ansible Rolle: kernel_config

Eine Ansible Rolle, die sysctl auf RHEL/CentOS, Fedora und Debian/Ubuntu installiert und konfiguriert. Diese Rolle kann auch Kernel-Module deaktivieren, auf die Blacklist setzen oder so einstellen, dass sie automatisch starten. Außerdem können UDEV-Regeln für das Energiemanagement festgelegt werden.

HINWEIS: Das Deaktivieren von Kernel-Modulen oder das Einstellen von Geräten auf Schlafmodus (udev-Einstellungen) kann das Funktionieren des Systems beeinträchtigen und eine Wiederherstellung des Systems erfordern (Einzelbenutzer-Login oder sogar Live-Boot).

Anforderungen

Betriebssystem, das auf Bare Metal oder auf einer Hypervisor-Virtualisierung läuft. Je nach Einstellungen funktioniert diese Rolle möglicherweise nicht richtig auf containerisierten Systemen.

Variablen der Rolle

Verfügbare Variablen sind unten aufgeführt, zusammen mit Standardwerten (siehe defaults/main.yml):

kernel_disable_modules: ['cramfs', 'freevxfs', 'jjfs2', 'hfs', 'hfsplus', 'udf', 'squashfs',
                         'dccp', 'sctp', 'rds', 'tipc']

Verwenden Sie diese Variable, um die Kernel-Module aufzulisten, die deaktiviert werden sollen. Sie können usb-storage zur Liste hinzufügen, aber dies verhindert, dass USB-Speichergeräte funktionieren. Ziehen Sie die Verwendung von USBGuard in Betracht. Die Standardwerte funktionieren auf den meisten Systemen. Wenn das System einige dieser Module verwenden muss, überschreiben Sie diese Variable mit der gewünschten Konfiguration.

kernel_blacklist_modules: ['cramfs', 'freevxfs', 'jjfs2', 'hfs', 'hfsplus', 'udf', 'squashfs',
                           'dccp', 'sctp', 'rds', 'tipc']

Module, die auf die Blacklist gesetzt werden sollen. Die Standardwerte funktionieren auf den meisten Systemen. Wenn das System einige dieser Module verwenden muss, überschreiben Sie diese Variable mit der gewünschten Konfiguration.

#kernel_autostart_modules: ['br_netfilter']

Module, die automatisch gestartet werden sollen.

kernel_sysctl:
  • { name: fs.suid_dumpable, value: "0" }
  • { name: fs.protected_hardlinks, value: "1" }
  • { name: fs.protected_symlinks, value: "1" }
  • { name: fs.inotify.max_user_instances, value: "1024" }
  • { name: kernel.dmesg_restrict, value: "1" }
  • { name: kernel.yama.ptrace_scope, value: "1" }
  • { name: kernel.randomize_va_space, value: "2" }
  • { name: kernel.kptr_restrict, value: "1" }
  • { name: kernel.nmi_watchdog, value: "0" }
  • { name: net.ipv4.ip_forward, value: "0" }
  • { name: net.ipv4.conf.all.forwarding, value: "0" }
  • { name: net.ipv4.conf.all.send_redirects, value: "0" }
  • { name: net.ipv4.conf.default.send_redirects, value: "0" }
  • { name: net.ipv4.conf.all.accept_source_route, value: "0" }
  • { name: net.ipv4.conf.default.accept_source_route, value: "0" }
  • { name: net.ipv4.conf.all.accept_redirects, value: "0" }
  • { name: net.ipv4.conf.default.accept_redirects, value: "0" }
  • { name: net.ipv4.conf.all.secure_redirects, value: "0" }
  • { name: net.ipv4.conf.default.secure_redirects, value: "0" }
  • { name: net.ipv4.conf.all.log_martians, value: "1" }
  • { name: net.ipv4.conf.default.log_martians, value: "1" }
  • { name: net.ipv4.icmp_echo_ignore_broadcasts, value: "1" }
  • { name: net.ipv4.icmp_ignore_bogus_error_responses, value: "1" }
  • { name: net.ipv4.conf.all.rp_filter, value: "1" }
  • { name: net.ipv4.conf.default.rp_filter, value: "1" }
  • { name: net.ipv4.tcp_syncookies, value: "1" }
  • { name: net.ipv6.conf.all.disable_ipv6, value: "1" }
  • { name: net.ipv6.conf.default.disable_ipv6, value: "1" }

Geben Sie sysctl-Parameter an, die auf dem System konfiguriert werden sollen. Die Standardkonfiguration ist für Systeme gültig, die nicht als Router fungieren und IPv6 nicht verwenden. Überprüfen Sie die Regeln und überschreiben Sie diese Variable bei Bedarf.

kernel_sysctl_flush_network_routes: yes

Wenn auf ja gesetzt, werden die Einstellungen net.ipv4.route.flush und net.ipv6.route.flush auf 1 gesetzt und neu geladen.

#kernel_udev_sata_link_power_mgmt: med_power_with_dipm

SATA-Link-Energieverwaltungspolitik. Gültige Werte sind min_power, max_performance, medium_power, med_power_with_dipm.

#kernel_udev_autosuspend_ahci_devices: yes

AHCI-Controller und ATA-Geräte automatisch in den Schlafmodus versetzen.

#kernel_udev_autosuspend_scsi_devices: yes

SCSI-Geräte automatisch in den Schlafmodus versetzen, treiber=sd.

#kernel_udev_disable_bluetooth: no

Bluetooth deaktivieren.

#kernel_udev_disable_wake_on_lan: yes

Wake on LAN deaktivieren.

#kernel_udev_usb_autosuspend_devices:

- { vendor: '13fe', product: '5500' } # Silicon Power USB-Stick

- { vendor: '1532', product: '0f13', autosuspend: 120 } # Tastatur

Liste der Geräte, die automatisch in den Schlafmodus versetzt werden sollen. In der Regel stellt Linux bereits den Autosuspend für USB-Hubs und andere Geräte ein, sodass diese Option nicht benötigt wird. Überprüfen Sie, welche Geräte auf Auto oder nicht eingestellt sind, indem Sie /sys/bus/usb/devices/*/power/control ansehen.

#kernel_udev_pci_autosuspend_devices:

- { vendor: '0x8086', device: '0x0c00' }

- { vendor: '0x8086', device: '0x0412' }

Liste der PCI-Geräte, die automatisch in den Schlafmodus versetzt werden sollen.

#kernel_udev_enable_wlan_powersave: yes

WLAN-Energiesparmodus aktivieren?

Die unten aufgeführten Variablen müssen für die Zielsysteme nicht geändert werden (siehe vars/main.yml):

kernel_udev_reload_cmd: "udevadm control --reload-rules && udevadm trigger"

Befehl zum Neuladen der udev-Regeln.

Abhängigkeiten

Keine Abhängigkeiten.

Beispiel-Playbook

- hosts: servers
  vars:
    kernel_disable_modules: ['cramfs', 'freevxfs', 'jjfs2', 'hfs', 'hfsplus', 'udf', 'vfat', 'squashfs']
    kernel_blacklist_modules: ['radeon', 'amdgpu']
    kernel_sysctl:
      - { name: net.ipv4.conf.all.forwarding, value: "0" }
      - { name: net.ipv4.conf.all.send_redirects, value: "0" }
      - { name: net.ipv4.conf.default.send_redirects, value: "0" }
      - { name: net.ipv4.conf.all.accept_source_route, value: "0" }
      - { name: net.ipv4.conf.default.accept_source_route, value: "0" }
      - { name: net.ipv4.conf.all.accept_redirects, value: "0" }
      - { name: net.ipv4.conf.default.accept_redirects, value: "0" }
      - { name: net.ipv4.conf.all.secure_redirects, value: "0" }
      - { name: net.ipv4.conf.default.secure_redirects, value: "0" }
      - { name: net.ipv4.conf.all.log_martians, value: "1" }
      - { name: net.ipv4.conf.default.log_martians, value: "1" }
      - { name: net.ipv4.icmp_echo_ignore_broadcasts, value: "1" }
      - { name: net.ipv4.icmp_ignore_bogus_error_responses, value: "1" }
      - { name: net.ipv4.conf.all.rp_filter, value: "1" }
      - { name: net.ipv4.conf.default.rp_filter, value: "1" }
      - { name: net.ipv4.tcp_syncookies, value: "1" }
    kernel_sysctl_flush_network_routes: yes

  roles:
     - { role: guidugli.kernel_config }

Lizenz

MIT / BSD

Autor

Diese Rolle wurde 2020 von Carlos Guidugli erstellt.

Über das Projekt

Disable kernel modules and configure sysctl settings on linux

Installieren
ansible-galaxy install guidugli.kernel_config
GitHub Repository
Lizenz
mit
Downloads
102
Besitzer