/etc/sysctl.d の sysctl 設定を確認する
前のステップでは、sysctl
を使用してカーネルパラメータを確認し一時的に変更する方法と、これらのパラメータが /proc/sys
ファイルシステムにどのように反映されるかを学びました。ただし、sysctl -w
で行った変更は永続的ではありません。カーネルパラメータの変更を再起動後も保持するには、特定の設定ファイルでそれらを設定する必要があります。
永続的な sysctl
設定の主な場所は /etc/sysctl.conf
ファイルです。さらに、Linux システムでは /etc/sysctl.d/
ディレクトリを使用して、設定の断片を個別のファイルに保存することがよくあります。このモジュール方式により、異なるアプリケーションやシステムコンポーネントの設定を管理しやすくなります。
/etc/sysctl.d/
ディレクトリの内容を確認しましょう。このディレクトリ内のファイルを一覧表示するには、ls
コマンドを使用できます。
ターミナルを開き、次のコマンドを入力します。
ls /etc/sysctl.d/
Enter キーを押します。
設定ファイルのリストが表示されます。これらのファイルは通常 .conf
拡張子を持っています。出力は次のようになるかもしれません。
10-console-messages.conf 10-kernel-hardening.conf 10-tcp-congestion-control.conf 99-sysctl.conf
これらの各ファイルには、parameter = value
の形式で sysctl
パラメータ設定を含めることができます。システムが起動すると、/etc/sysctl.conf
を読み込み、その後 /etc/sysctl.d/
内のすべてのファイルをアルファベット順に読み込んで、永続的なカーネルパラメータ設定を適用します。
これらの設定ファイルの 1 つ、たとえば 10-kernel-hardening.conf
の内容を表示しましょう。その内容を表示するには、cat
コマンドを使用できます。
次のコマンドを入力します。
cat /etc/sysctl.d/10-kernel-hardening.conf
Enter キーを押します。
このファイルで設定されたカーネルパラメータが表示されます。内容は異なりますが、セキュリティやシステムの動作に関連する設定が含まれている場合があります。
#
## sysctl settings for kernel hardening
#
## Disable unprivileged user namespaces
kernel.unprivileged_userns_clone=0
## Protect against symlink attacks
fs.protected_hardlinks=1
fs.protected_symlinks=1
## Disable kexec
kernel.kexec_load_disabled=1
## Disable bpf JIT
net.core.bpf_jit_enable=0
## Disable ptrace access to other processes
kernel.yama.ptrace_scope=1
kernel.unprivileged_userns_clone
や fs.protected_hardlinks
などのカーネルパラメータがここでどのように設定されているかがわかります。
vm.overcommit_memory=1
の設定を永続的にするには、通常、vm.overcommit_memory = 1
という行を /etc/sysctl.d/
の新しいまたは既存のファイル(または /etc/sysctl.conf
)に追加します。ただし、この入門実験の目的上、この変更を永続的にはしません。
/etc/sysctl.d/
ディレクトリを理解することは、Linux システムで永続的なカーネルパラメータ設定を構成するために重要です。
続ける をクリックしてこの実験を完了します。