Utilisation de sysctl pour modifier les paramètres du noyau
Utilisez la commande sysctl pour voir et modifier les paramètres du noyau afin de modifier le comportement du système d'exploitation, tels que les paramètres réseau, les fonctions de sécurité et les limites de ressources.
Pour plus d'informations, consultez la page de manuel sysctl(8).
Liste des paramètres et des valeurs du noyau
Utilisez la commande sysctl pour parcourir les paramètres de système de noyau définis dans le système de fichiers virtuel /proc/sys.
Le caractère séparateur dans le nom d'un paramètre est un point (
.) plutôt qu'une barre oblique (/) dans un chemin relatif à /proc/sys. Par exemple, net.ipv4.ip_forward représente net/ipv4/ip_forward. - Pour voir tous les paramètres du noyau et leurs valeurs pour le noyau en cours d'exécution, exécutez
sysctl -a, par exemple :sudo sysctl -a... kernel.sched_cfs_bandwidth_slice_us = 5000 kernel.sched_deadline_period_max_us = 4194304 kernel.sched_deadline_period_min_us = 100 kernel.sched_rr_timeslice_ms = 100 kernel.sched_rt_period_us = 1000000 kernel.sched_rt_runtime_us = 950000 kernel.sched_schedstats = 0 ... - Pour voir un paramètre spécifique et sa valeur, exécutez
sysctlet le nom du paramètre, par exemple :sudo sysctl kernel.dmesg_restrictkernel.dmesg_restrict = 0 - Pour voir une collection de paramètres, exécutez
sysctlet le nom d'une collection, par exemple :sudo sysctl net.ipv4.conf.allnet.ipv4.conf.all.accept_local = 0 net.ipv4.conf.all.accept_redirects = 1 net.ipv4.conf.all.accept_source_route = 0 net.ipv4.conf.all.arp_accept = 0 net.ipv4.conf.all.arp_announce = 0 net.ipv4.conf.all.arp_evict_nocarrier = 1 net.ipv4.conf.all.arp_filter = 0 net.ipv4.conf.all.arp_ignore = 0 net.ipv4.conf.all.arp_notify = 0 net.ipv4.conf.all.bc_forwarding = 0 net.ipv4.conf.all.bootp_relay = 0 net.ipv4.conf.all.disable_policy = 0 net.ipv4.conf.all.disable_xfrm = 0 net.ipv4.conf.all.drop_gratuitous_arp = 0 net.ipv4.conf.all.drop_unicast_in_l2_multicast = 0 net.ipv4.conf.all.force_igmp_version = 0 net.ipv4.conf.all.forwarding = 0 net.ipv4.conf.all.igmpv2_unsolicited_report_interval = 10000 net.ipv4.conf.all.igmpv3_unsolicited_report_interval = 1000 net.ipv4.conf.all.ignore_routes_with_linkdown = 0 net.ipv4.conf.all.log_martians = 0 net.ipv4.conf.all.mc_forwarding = 0 net.ipv4.conf.all.medium_id = 0 net.ipv4.conf.all.promote_secondaries = 0 net.ipv4.conf.all.proxy_arp = 0 net.ipv4.conf.all.proxy_arp_pvlan = 0 net.ipv4.conf.all.route_localnet = 0 net.ipv4.conf.all.rp_filter = 0 net.ipv4.conf.all.secure_redirects = 1 net.ipv4.conf.all.send_redirects = 1 net.ipv4.conf.all.shared_media = 1 net.ipv4.conf.all.src_valid_mark = 0 net.ipv4.conf.all.tag = 0
Mettre à jour les paramètres du noyau
Utilisez la commande sysctl pour modifier les valeurs des paramètres de noyau définis dans le système de fichiers virtuel /proc/sys. Les modifications des paramètres du noyau peuvent être temporaires afin que la modification dure jusqu'au redémarrage de l'instance suivante. Vous pouvez également rendre les modifications des paramètres du noyau permanentes afin qu'elles persistent lors des redémarrages de l'instance.
- Modifier temporairement un paramètre de noyau
- Utilisez la commande
sysctl, le nom du paramètre et sa nouvelle valeur.Par exemple, pour permettre temporairement à l'instance de transmettre les paquets IPv4 reçus sur une interface de réseau à une autre, réglez la valeur du paramètre
net.ipv4.ip_forwardà1:sudo sysctl -w net.ipv4.ip_forward=1net.ipv4.ip_forward = 1La modification du paramètre est annulée lors du prochain redémarrage de l'instance.
- Effectuer une modification des paramètres du noyau qui persiste après le redémarrage de l'instance
- Ajoutez la modification d'un fichier de configuration au répertoire
/etc/sysctl.d. Toutes les modifications que vous apportez aux fichiers de ce répertoire prennent effet lorsque l'instance redémarre ou si vous exécutez la commandesysctl --system.Par exemple, vous pouvez limiter définitivement l'accès aux messages de mémoire tampon en anneau du noyau afin que seuls les utilisateurs disposant d'autorisations racines puissent exécuter la commande
dmesg. Pour ce faire, activezkernel.dmesg_restrictà l'aide d'un fichier de configuration afin que la modification persiste lors des redémarrages.- Naviguez jusqu'au répertoire
/etc/sysctl.d. - Créez un fichier de configuration, par exemple :
sudo touch 99-custom-sysctl.conf - Ouvrez le fichier de configuration en mode de modification. Par exemple, modifiez le fichier avec l'éditeur de texte vi :
sudo vi 99-custom-sysctl.conf - Ajoutez
kernel.dmesg_restrict=1au fichier, enregistrez-le et fermez l'éditeur. - Réinitialisez l'instance afin d'utiliser uniquement les valeurs configurées pour le chargement au démarrage à l'aide de la commande
sysctl --system. Tous les fichiers de configuration ajoutés ou les modifications de configuration apportées aux fichiers existants dans le répertoire/etc/sysctl.dsont lus par le système et appliqués.Important
Les valeurs des paramètres du noyau peuvent être définies à plusieurs emplacements. La commandesysctl --systemapplique immédiatement les modifications de configuration du noyau sans redémarrage, ce qui recharge tous les paramètres à partir de/etc/sysctl.conf,/etc/sysctl.det de tous les autres emplacements tels que/usr/lib/sysctl.d/*.confet/run/sysctl.d/*.conf.sudo sysctl --system* Applying /usr/lib/sysctl.d/01-unprivileged-bpf.conf ... * Applying /usr/lib/sysctl.d/10-default-yama-scope.conf ... * Applying /usr/lib/sysctl.d/50-coredump.conf ... * Applying /usr/lib/sysctl.d/50-default.conf ... * Applying /usr/lib/sysctl.d/50-ipv6.conf ... * Applying /usr/lib/sysctl.d/50-libkcapi-optmem_max.conf ... * Applying /usr/lib/sysctl.d/50-pid-max.conf ... * Applying /usr/lib/sysctl.d/50-redhat.conf ... * Applying /usr/lib/sysctl.d/50-scsi-logging.conf ... * Applying /etc/sysctl.d/99-custom-sysctl.conf ... <--New configuration file * Applying /etc/sysctl.d/99-sysctl.conf ... * Applying /etc/sysctl.conf ... kernel.unprivileged_bpf_disabled = 1 kernel.yama.ptrace_scope = 0 kernel.core_pattern = |/usr/lib/systemd/systemd-coredump %P %u %g %s %t %c %h %d kernel.core_pipe_limit = 16 fs.suid_dumpable = 2 kernel.sysrq = 16 kernel.core_uses_pid = 1 net.ipv4.conf.default.rp_filter = 2 net.ipv4.conf.ens3.rp_filter = 2 net.ipv4.conf.lo.rp_filter = 2 net.ipv4.conf.default.accept_source_route = 0 net.ipv4.conf.ens3.accept_source_route = 0 net.ipv4.conf.lo.accept_source_route = 0 net.ipv4.conf.default.promote_secondaries = 1 net.ipv4.conf.ens3.promote_secondaries = 1 net.ipv4.conf.lo.promote_secondaries = 1 net.ipv4.ping_group_range = 0 2147483647 net.core.default_qdisc = fq_codel fs.protected_hardlinks = 1 fs.protected_symlinks = 1 fs.protected_regular = 1 fs.protected_fifos = 1 net.ipv6.conf.default.disable_ipv6 = 0 net.ipv6.conf.all.disable_ipv6 = 0 net.core.optmem_max = 81920 kernel.pid_max = 4194304 kernel.kptr_restrict = 1 net.ipv4.conf.default.rp_filter = 1 net.ipv4.conf.ens3.rp_filter = 1 net.ipv4.conf.lo.rp_filter = 1 dev.scsi.logging_level = 68 kernel.dmesg_restrict = 1 <--Parameter change read from new configuration file. kernel.unknown_nmi_panic = 1
- Naviguez jusqu'au répertoire