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.
Disable kernel modules and configure sysctl settings on linux
ansible-galaxy install guidugli.kernel_config