質問 :一部のシナリオでは、rpm インストールからのシステム内のファイルが変更、変更、または改ざんされていることが疑われます。たとえば、システムがハッキングされ、ssh のバイナリ ファイルが改ざんされました。インストール以降と比較して、変更が加えられたかどうかを確認する方法は?
次のコマンドを使用して、rpm または yum を使用してシステムにインストールされたファイルがインストール後に変更されたかどうかを検証および確認するには:
# rpm -V [PACKAGE_NAME]
インストール後に rpm で変更されたファイルがある場合は、上記のコマンド出力にリストされます。各行は、変更を示す特定のフラグで始まります。各フラグの意味は以下の表に記載されています:
フラグ | 意味 |
---|---|
S | ファイルサイズが異なります |
M | モードが異なります (権限とファイルの種類を含む) |
5 | MD5 合計が異なります |
D | デバイスのメジャー/マイナー番号の不一致 |
L | readLink(2) パスの不一致 |
う | ユーザーの所有権が異なります |
G | グループの所有権が異なります |
T | mTime が異なります |
例
1.SSHサーバーが改ざんされた疑いがあります。それでは、まずファイルを配布する rpm を確認しましょう:
# yum provides */sshd openssh-server
だから openssh-server システムで ssh バイナリを提供する rpm です。
2. 次に、openssh-server rpm によって提供されるファイルに変更がないか確認します。
# rpm -V openssh-server
いずれかのファイルが改ざんされている場合、上記のコマンド出力にリストされます。以下のようなもの:
S.5....T. /usr/sbin/sshd
ここでのフラグは、SSH サーバーのバイナリ ファイルが改ざんされたことを意味します。
S file Size differs 5 MD5 sum differs T mTime differs
このファイルのサイズ、MD5 チェックサム、変更タイムスタンプは、RPM で配布されたものとは異なります。
3. ここで、yum を使用してパッケージを再インストールし、リポジトリから元の配布ファイルを取得できます。
# yum reinstall openssh-server
この特定の例では。 SSH サーバーを再起動する必要があります。
# service sshd restart
systemd ベースのディストリビューションの場合、systemctl を使用してサービスを再起動します:
# systemctl restart sshd