LinuCレベル3 303試験の例題と解説

326.1ホストの堅牢化

LinuCレベル3 303試験の試験範囲から「326.1 ホストの堅牢化」についての例題を解いてみます。今回は、カーネルパラメータの設定方法について取り上げます。sysctlや/etc/sysctl.confの使い方について理解しましょう。

Linucレベル3 303試験 出題範囲


例題

サーバのネットワーク設定においてIPv6の無効化を恒久的に行いたい。
以下の選択肢から正しい設定方法を選択してください。

  1. # sysctl -w net.ipv6.conf.default.disable_ipv6=1
    # sysctl -w net.ipv6.conf.all.disable_ipv6=1
  2. # echo 1 > /proc/sys/net/ipv6/conf/default/disable_ipv6
    # echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6
  3. # echo "net.ipv6.conf.default.disable_ipv6=1" >> /etc/sysctl.conf
    # echo "net.ipv6.conf.all.disable_ipv6=1" >> /etc/sysctl.conf
    # sysctl -p
  4. # sysctl -w /proc/sys/net/ipv6/conf/default/disable_ipv6 1
    # sysctl -w /proc/sys/net/ipv6/conf/all/disable_ipv6 1
    # systcl -p

※この例題は実際の試験問題とは異なります。


解答と解説

正解は、

  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

です。

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で反映を行います。

例題の各設定値について解説をします。

  1. # sysctl -w net.ipv6.conf.default.disable_ipv6=1
    # sysctl -w net.ipv6.conf.all.disable_ipv6=1

不正解です。
sysctlコマンドのため、一時的に設定は行われますが、OS再起動で元の設定に戻ります。

  1. # echo 1 > /proc/sys/net/ipv6/conf/default/disable_ipv6
    # echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6

不正解です。
こちらも選択肢1と同様、一時的な設定です。

  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を実行することで恒久的な反映が行われます。

  1. # 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研究室 加藤 大嗣

ページトップへ