LinuCレベル3 303試験の例題と解説
326.1ホストの堅牢化
LinuCレベル3 303試験の試験範囲から「326.1 ホストの堅牢化」についての例題を解いてみます。今回は、カーネルパラメータの設定方法について取り上げます。sysctlや/etc/sysctl.confの使い方について理解しましょう。
例題
サーバのネットワーク設定においてIPv6の無効化を恒久的に行いたい。
以下の選択肢から正しい設定方法を選択してください。
- # sysctl -w net.ipv6.conf.default.disable_ipv6=1
# sysctl -w net.ipv6.conf.all.disable_ipv6=1 - # echo 1 > /proc/sys/net/ipv6/conf/default/disable_ipv6
# echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6 - # echo "net.ipv6.conf.default.disable_ipv6=1" >> /etc/sysctl.conf
# echo "net.ipv6.conf.all.disable_ipv6=1" >> /etc/sysctl.conf
# sysctl -p - # sysctl -w /proc/sys/net/ipv6/conf/default/disable_ipv6 1
# sysctl -w /proc/sys/net/ipv6/conf/all/disable_ipv6 1
# systcl -p
※この例題は実際の試験問題とは異なります。
解答と解説
正解は、
- # echo "net.ipv6.conf.default.disable_ipv6=1" >> /etc/sysctl.conf
# echo "net.ipv6.conf.all.disable_ipv6=1" >> /etc/sysctl.conf
# sysctl -p
です。
sysctlは、カーネルパラメータの表示や一時的に設定変更を行うことができるコマンドです。設定値は/proc/sysディレクトリ配下に格納されています。/procはストレージではなく、メモリ上に存在する疑似的なファイルシステムです。
sysctlコマンドは、設定されているカーネルパラメータの表示や変更に利用します。設定の恒久的な変更には/etc/sysctl.confファイルを利用します。
sysctlコマンドの主な書式とオプションは以下の通りです。
書式
sysctl [オプション] [カーネルパラメータ]=[値]
オプション
オプションなし(カーネルパラメータのみ):
現在設定されているカーネルパラメータの値を表示します。
-a:
設定されているすべてのカーネルパラメータ値を表示します。
-w:
カーネルパラメータの値を一時的に変更します。
-p:
/etc/sysctl.confに設定されているカーネルパラメータを恒久的に反映します。
sysctlで設定した値は一時的ですので、注意が必要です。
OSの再起動で元の設定に戻るため、恒久的に設定したい場合は/etc/sysctl.confへの設定が必要です。
/etc/sysctl.confの書式はsysctl -wと同様、[カーネルパラメータ]=[値]です。
設定後、sysctl -pで反映を行います。
例題の各設定値について解説をします。
- # sysctl -w net.ipv6.conf.default.disable_ipv6=1
# sysctl -w net.ipv6.conf.all.disable_ipv6=1
不正解です。
sysctlコマンドのため、一時的に設定は行われますが、OS再起動で元の設定に戻ります。
- # echo 1 > /proc/sys/net/ipv6/conf/default/disable_ipv6
# echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6
不正解です。
こちらも選択肢1と同様、一時的な設定です。
- # echo "net.ipv6.conf.default.disable_ipv6=1" >> /etc/sysctl.conf
# echo "net.ipv6.conf.all.disable_ipv6=1" >> /etc/sysctl.conf
# sysctl -p
正解です。
/etc/sysctl.confへ設定追加後に、sysctl -pを実行することで恒久的な反映が行われます。
- # sysctl -w /proc/sys/net/ipv6/conf/default/disable_ipv6 1
# sysctl -w /proc/sys/net/ipv6/conf/all/disable_ipv6 1
# systcl -p
不正解です。
sysctlコマンドの書式エラーになります。
カーネルパラメータの設定でより安全なシステムを構築することができます。
sysctlコマンドと/etc/sysctl.confの役割や違いを理解し、正しい使い分けをしましょう。
例題作成者
株式会社デージーネット OSS研究室 加藤 大嗣