Linux 強化では、CIS 基本ルールの実装、「特権コマンド使用の収集を保証する」ルールの 1 つに問題があります。

Linux 強化では、CIS 基本ルールの実装、「特権コマンド使用の収集を保証する」ルールの 1 つに問題があります。

我々は、CISの基本的な規則に従ってLinuxオペレーティングシステムを強化しています。このコマンドプロンプトを使用して、「SSHルートログインが無効になっていることを確認する(自動)」ルールを確認します。

次のコマンドを入力してください。

find <partition> -xdev \( -perm -4000 -o -perm -2000 \) -type f | 
    awk '{print "-a always,exit -F path=" $1 " -F perm=x -F auid>='"$(awk '/^\s*UID_MIN/{print $2}' /etc/login.defs)"' -F auid!=4294967295 -k privileged" }'

出力コマンド:

生成されたすべての行が.rulesファイルにあることを確認して/etc/audit/rules.d/くださいauditctl -l

ansibleの助けを借りてLinux Defenderファイアウォールを設定し、コマンドプロンプトから値を取得しようとしました。ただし、コマンドプロンプトで/etc/audit/rules.d.rulesファイルの内容を変更すると、上記の入力コマンドは使用できなくなり、手動でパーティションを使用してフォルダから権限プロセスを取得することはできません。システムを再起動した後も変更がこのコマンドのauditctl -l途中で。

必要な出力を得るためにansibleスクリプトを書くのに役立ちますか?

ベストアンサー1

<partition>監査ルールを作成するファイルシステムの一部に置き換える必要があります。最も一般的なケースは、システム全体の監査ルールを作成することです。この場合は<partition>/

ここでのコマンド例の表現は少し誤解を招く。この場合<partition>いいえ参考ディスクパーティション同様/dev/sda1ですが、監査ルールを作成したいファイルシステムツリーの部分にのみ適用されます。

このコマンドはルールを標準出力に出力します。これを使用するには、出力を適切なファイルにリダイレクトする必要があります。あなたならどうでしょうか?作る監査ルールの場合、出力を次のようにリダイレクトして/etc/audit/rules.d/cis.rules実行してauditctl -R /etc/audit/rules.d/cis.rulesすぐに適用できます。

find / -xdev \( -perm -4000 -o -perm -2000 \) -type f | 
    awk '{print "-a always,exit -F path=" $1 " -F perm=x -F auid>='"$(awk '/^\s*UID_MIN/{print $2}' /etc/login.defs)"' -F auid!=4294967295 -k privileged" }' \
    > /etc/audit/rules.d/cis.rules

あなたならどうでしょうか?確認する既存のルールの場合は、出力を一時ファイルにリダイレクトしてから、ディレクトリ内の既存のルール/etc/audit/rules.d/ファイルと比較する必要があります。比較を簡単にするために、diff同様のツールを使用して2つのファイルを最初に並べ替えることで、違いを簡単に確認できます。

したがって、単純な検証スクリプトは次のようになります。

#!/bin/sh
ACTUAL_RULES=/etc/audit/rules.d/cis.rules

# Create a temporary directory and set it to auto-delete on script exit   
WORKDIR=$(mktemp -d) && trap "rm -rf $WORKDIR" EXIT

# Create a sorted set of what the rules should be
find / -xdev \( -perm -4000 -o -perm -2000 \) -type f | 
    awk '{print "-a always,exit -F path=" $1 " -F perm=x -F auid>='"$(awk '/^\s*UID_MIN/{print $2}' /etc/login.defs)"' -F auid!=4294967295 -k privileged" }' |
    sort > $WORKDIR/cis.rules.sorted.should-be

# sort the actual rules
sort < $ACTUAL_RULES >$WORKDIR/cis.rules.sorted.actual

# compare expected vs. actual
diff -u $WORKDIR/cis.rules.sorted.should-be $WORKDIR/cis.rules.sorted.actual

スクリプトの出力がない場合(戻りコードは0)、確認に成功しました。

予想ルールと実際のルールの間に違いがある場合、スクリプトはコード1で終了し、出力には追加のルールdiff -u(単一プレフィックスを含む+)と欠落しているルール(シングルプレフィックスを含む-)が表示されます。diffディストリビューションで出力色を指定できる場合、追加のルールは緑色に出力され、欠落しているルールは赤色で出力されます。

おすすめ記事