sysctl.confおよびsysctl.dに関連するカーネルオプション値の検索

sysctl.confおよびsysctl.dに関連するカーネルオプション値の検索

私のUbuntuコンピュータの/etc/sysctl.confファイルでは、デフォルトで次のようにリバースパスフィルタリングオプションをコメントアウトしました。

#net.ipv4.conf.default.rp_filter=1
#net.ipv4.conf.all.rp_filter=1

しかし、/etc/sysctl.d/10-network-security.conf(基本的に)コメントされていません。

net.ipv4.conf.default.rp_filter=1
net.ipv4.conf.all.rp_filter=1

もしそうなら、リバースパスフィルタリングは有効ですか?どの設定場所が優先的に適用されますか?これらのカーネルオプションと他のカーネルオプションの現在の値をどのように確認できますか?

答え1

sysctl変数の値を確認するのは簡単です。

sysctl <variable name>

ところで、sysctl変数を設定することは次のとおりです。

sudo sysctl -w <variable name>=<value>

ただし、この方法で変更した内容は、次回の再起動まで維持されます。

/etc/sysctl.conf設定場所または/etc/sysctl.d/優先順位の/etc/sysctl.d/READMEファイルの内容は次のとおりです。

エンドユーザーはバージョン60-*.conf以降を使用するか、次のものを使用できます。/etc/sysctl.conf まっすぐ、このディレクトリのすべてのエントリを上書きします。

任意の場所で設定を編集したら、変更を適用できます。

sudo sysctl -p

答え2

/procこれらのコンテンツは通常、カーネルインタフェースおよび/またはカーネルインタフェースにあります/sys(まず、このディレクトリのどれも通常のディスクファイルではなく、すべてカーネルへの直接的な行であることを覚えておいてください)。

たとえば、次のようになります。

»for x in /proc/sys/net/ipv4/conf/*/rp_filter; do echo -ne "$x "`cat $x`"\n"; done
/proc/sys/net/ipv4/conf/all/rp_filter 0
/proc/sys/net/ipv4/conf/default/rp_filter 1
/proc/sys/net/ipv4/conf/em1/rp_filter 1
/proc/sys/net/ipv4/conf/lo/rp_filter 0
/proc/sys/net/ipv4/conf/wlan0/rp_filter 1

em1、wlan0、および「default」にrp_filterが設定されているようです。ファイルハンドルに書き込むだけで設定または設定解除できます。

»cd /proc/sys/net/ipv4/conf/lo
»echo 1 > rp_filter
»cat rp_filter
1
»echo 0 > rp_filter
»cat rp_filter
0

前述したように、これはカーネルとの直接通信なので、すぐに適用されます。これらいいえ構成ファイル。何か間違ったことをしようとした場合:

»echo whatever > rp_filter
bash: echo: write error: Invalid argument

もちろん、このように仕事を台無しにすることはできません。以下のコメントを必ずお読みください。

答え3

完了する受け入れられた回答/etc/sysctl.confの設定はの設定よりも優先されますが、/etc/sysctl.d/元の質問に示されている例は、コメントアウトされた2つの変数を示しています/etc/sysctl.conf

#net.ipv4.conf.default.rp_filter=1
#net.ipv4.conf.all.rp_filter=1

そして同じ変数はコメントアウトされません/etc/sysctl.d/10-network-security.conf

net.ipv4.conf.default.rp_filter=1
net.ipv4.conf.all.rp_filter=1

コメントが正しいため、誤解を招く可能性があります。いいえ設定ですが、コメント設定かもしれません。

この場合、変数は実際にはすべて1に設定されますが、より強力な構成ファイルではコメントアウトされます。

次の場合/etc/sysctl.conf

net.ipv4.conf.default.rp_filter=0
net.ipv4.conf.all.rp_filter=0

その後、変数は最終的にゼロに設定されます。

関連情報