これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、または MAC OS オンライン エミュレーターなどの複数の無料オンライン ワークステーションの XNUMX つを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド ステルスです。
プログラム:
NAME
ステルス - ステルスファイル整合性スキャナー
SYNOPSIS
` ' は、使用される Unix ドメイン ソケットの場所を表します。
stealth - デーモン--ドライラン --ログ--logmail
--最大サイズ[BKMG] --no-mail --parse-policy-file
--ランダム間隔 - 繰り返す
--スキップファイル--syslog
--syslog-facility --syslog-優先順位--syslog-タグ
--冗長性ポリシー
stealth --ドライラン --ログ--logmail
--最大サイズ[BKMG] --no-mail --parse-policy-file
--ランダム間隔 - 繰り返す
--実行コマンド--スキップファイル--stdout --syslog
--syslog-facility --syslog-優先順位--syslog-タグ
--冗長性ポリシー
stealth {--ping、--リロード、--再実行、--再開、--一時停止、--終了}
stealth --ヘルプ --バージョン
DESCRIPTION
の名前 stealth プログラムは次の頭字語です。
SSHベース 信頼 執行 獲得した a ローカルで 信頼されている ホスト。
Stealth によるアイデアに基づいています Hans Kol ガンケマ キース ネジ、両方ともセンターで
フローニンゲン大学の情報技術。 ホプコ メイジェリング 価値のあるものを提供した
改善のための提案。
Stealthの主なタスクは、ファイルの整合性テストを実行することです。 ただし、テスト自体は
テストされたコンピューターに沈殿物が残らないようにします。 したがって、 stealth 持っています 内密の
特徴。 これはセキュリティを向上させる重要な機能と考えられています
監視対象のコンピュータのソフトウェアの(完全性) stealth.
それを認識してください stealth 単なる別のセキュリティ ツールであることを目的としています: その他のセキュリティ
ファイアウォール、ポートスキャナ、侵入検知システム、暗号化されていないデータのドロップなどの対策
通常、プロトコルなどは、コンピュータのグループのセキュリティを向上させるために必要です。
インターネットに接続されています。 Stealth ファイル整合性スキャナーであり、ファイル整合性
スキャナーは、これらのツールに代わるものではありません (そして同様に)。
Stealth はポリシー ファイルを使用して、実行するアクションを決定します。 各ポリシー ファイルは、
監視対象のホストに一意に関連付けられます。 このホスト (と呼ばれる) クライアント 以下)
がインストールされているコンピュータを信頼します stealth と呼ばれる実行されます。 モニター (したがって: ローカルで 信頼されている
主催者)。 モニターは、次のタスク (通常はファイル整合性テスト) を実行します。 施行 信頼
クライアントコンピュータにあります。 ほとんどすべての整合性テストはクライアント上で実行できるため、
モニター自体が古いハードウェアやハードウェアを使用している場合でも、XNUMX 台のモニターで多数のクライアントを制御できます。
ソフトウェアコンポーネント。
モニターとクライアントは別のコンピューターである (つまり、そうであるべき) ため、モニターは次のことを行う必要があります。
安全な方法でクライアントと通信します。 これは SSH を通じて実現されます。 それで、あります
ここには「ローカル信頼」のもう XNUMX つの要素が含まれます。クライアントはモニターに次のことを許可する必要があります。
セキュアな SSH 接続をセットアップして、モニターが内部の機密要素にアクセスできるようにします。
クライアントのファイル システム。
It is 重要 〜へ 確保 それ 公共 アクセス 〜へ モニター is 防止されました。 いいえ 入ってきます
サービス すべき be ことができました。 当学校区の の アクセス 〜へ モニター すべき be 、 その コンソール
モニター すべき be 配置 in a 物理的に 安全に 場所。 センシティブ 情報 of
クライアント 保存され in モニターの file システム。 に アクセス クライアント stealth in デーモン
モード できる つかいます a パスフレーズで保護された SSHキー、 許可 stealth 〜へ 実行する その タスク
その後。 この、 あまりにも、 MAKES it 重要 〜へ 防ぐ モニター from さ アクセス by
無許可 人。
もし、実行する代わりに stealth デーモンモードでは、 stealth 実行する
単一ですが自動化された整合性スキャン、その後新しい ssh(1)接続がしにくい場合があります
使用されている ssh キーがパスフレーズで保護されているかどうかを確認します。 このシナリオを実装するには (つまり、
パスフレーズで保護された SSH キーを使用した自動整合性スキャン) プログラム ssh-cron(1)できます
有利に利用される。
Stealthがクライアントに接続する現在の方法では、単一の ssh(1) 接続、
結果は XNUMX つだけになります sshd(1) クライアントのログファイル内のエントリ。
の期間 stealthが走ります。 使用するとき stealth デーモンモードでは、これも最小化されます
「足跡」 stealth クライアントホスト上にあります。
モニター自体は通常、次の XNUMX 種類の発信サービスのみを必要とします。 SSH そのに到達する
クライアント、および一部のメール転送エージェント (例: sendmail(1)) 送信メールを転送する
どこかのメールハブ。
次のような場合に何が起こりますか stealth 最初の概要を使用して実行します。
o まず、 方針 ファイルが読み取られます。 クライアントごとにポリシー ファイルが定義されます。
実行するアクションを指定し、いくつかの値を指定します。
によって使用される変数 stealth.
o コマンドライン オプション --daemon の場合指定されており、 stealth デーモンとして実行される
Unix ドメイン ソケット ( )との通信のため stealth
IPC モードで実行されているプロセス。
デーモン モードで実行されているステルスによって定義された Unix ドメイン ソケットにアクセスする場合
制限する必要がある場合は、次のユーザーのみがアクセスできるディレクトリに定義できます。
ステルスを実行しているユーザー (これは多くの場合 root ユーザーです)。
デーモンモードで実行する場合、--repeat を再実行するように指定できます。
整合性スキャン間隔秒。 整合性スキャンが実行されている場合
繰り返し間隔に従って、次の整合性スキャンの期限が来ると、
現在のスキャンが最初に完了します。 完了すると、次の整合性スキャンが実行されます。
秒数秒後に実行されます。
o 次に、モニターは次を使用してクライアント上でコマンド シェルを開きます。 ssh(1)とコマンド
モニターコンピューター自体のシェルを使用して shとします。
o コマンド シェルが使用可能になると、ポリシー ファイルで定義されたコマンドが使用可能になります。
出現順に実行されます。 以下に例を示します。 通常は戻ります
プログラムの値がテストされます。 戻り値をテストする場合 stealth
ゼロ以外の戻り値が検出されると終了します。 このような場合は、メッセージが表示されます
理由を述べる stealth 終了した内容はレポート ファイル (および
から送られたメール stealth)。 場合によっては(レポート ファイルを保存できなかった場合など)、
書き込まれた場合)、メッセージは標準エラー ストリームに書き込まれます。
o 非常に多くの場合、整合性テストは次の方法で制御できます。 find(1)、次のようなプログラムを呼び出します。
ls(1) sha256sum(1) またはファイル整合性関連を生成する独自の -printf メソッド
統計。 これらのプログラムのほとんどは、生成された行の末尾にファイル名を書き込みます。
この特性は次のいずれかによって使用されます。 stealth変更を検出するための の内部ルーチン
生成された出力内。 このような変更は、次のような有害な意図を示している可能性があります。
インストール ルートキット.
o 変更が検出されると、変更がログに記録されます。 レポート file、どの情報へ
が常に追加されます。 Stealth レポート ファイルのサイズを削減したり、レポート ファイルを書き換えたりすることはありません。
コンテンツ。 レポート ファイルに情報が追加されるとき (通常のタイムスタンプを超えて)
新しく追加された情報は、設定可能な電子メール アドレスに電子メールで送信されます。
さらに(人間による)処理が行われます。 通常、電子メールはシステム管理者に送信されます。
テストされたクライアント。 Stealth ないという意味で「ダークコックピット」アプローチに従います。
変更が検出されなかった場合、メールが送信されます。
o レポートおよびその他のログ ファイルは、--suppress と --suppress のペアの間で安全にローテーションできます。
--resume コマンド (以下の「レポート ファイルのローテーション」セクションを参照)。
If stealth デーモン プロセスとして実行しないでください。XNUMX 番目の概要を使用できます。 この中で
場合 stealth XNUMX つ以上の整合性スキャンを実行します (後者は --repreat オプションを使用した場合)
指定されていました)。 単一の整合性スキャンが要求された場合 stealth の後に終了します
スキャン。 --repeatを指定した場合 stealth プロンプト (つまり `? ') を表示し、その後終了します
Enter キーを押します。
XNUMX 番目のシノプシスは、 stealth デーモン。 この場合、
によって定義された Unix ドメイン ソケット stealth デーモンプロセスは、
要求されたコマンドを指定するオプション。
OPTIONS
短いオプションは、長いオプションの直後に括弧内に指定されます。
同等物。
(C) を示すオプションの説明はコマンドラインでのみ使用でき、次の場合は無視されます。
ポリシー ファイルの XNUMX 番目のセクションで指定されます。
オプションの概要 ` ' は名前を表します Unixの ドメイン ソケット 使用するには、
そして「」 ' は、ファイルの場所の (相対または絶対) 指定を指します。
最初と XNUMX 番目の概要では、(Unix ドメイン ソケットと
他のファイル仕様) は、現在の作業ディレクトリを基準として解釈されます。
コマンドライン オプションは、ポリシー ファイルで定義されたオプションを無効にします。
--デーモン (-d) : (C) バックグラウンド (デーモン) プロセスとして実行します。 ステルスのとき
デーモン プロセスが開始され、Unix ドメイン ソケット (tt ) はまだ存在しない可能性があります。
o --dry-run: (C) 整合性スキャンやリロードは実行されませんが、OK とみなされます。
残りのタスクは通常どおり実行されます。
o --help (-h): (C) ヘルプ情報を表示して終了します。
o --log (-L) : ログメッセージは「file-spec」に追加されます。 file-spec がそうする場合
存在しない場合は、最初に作成されます。
o --logmail: 送信されたメール stealth ログに記録されます (--log または --syslog が必要)。
o --最大サイズ[BKMG]: GET コマンドによって取得されるファイルには、最大でも
バイト (B)、KBytes (K)、MBytes (M)、GBytes (G)。 デフォルトのサイズは 10M です。
単位はBです。
o --no-mail: メールは送信されません。 デフォルトでは、メールは設定に従って送信されます。
ポリシーファイル (--logmail は --no-mail とは独立して指定できます);
o --parse-policy-file (-p): (C) ポリシー ファイルを解析します。 stealth 終了します。
番号付きコマンドを表示するには、XNUMX 回指定します。
XNUMX 回クリックすると、ポリシー ファイルの解析手順も確認できます。
結果は標準ファイルに書き込まれます。 出力。
o --ping : (C) アクションは実行しませんが、 stealth デーモン
Unix ドメイン ソケット ( )。 デーモンは次のような場合でも応答します。
現在整合性スキャンを実行中です。 /usr/bin/stealthcron によって使用されます。
を検証するスクリプト stealth デーモンは生きています。
--ランダム間隔 (-i) [m]>: ランダムな間隔でスキャンを開始します。
秒 (または「m」が追加される場合 (ブランクなし) は分) )
--repeat で指定された遅延に従います (下記を参照)。 このオプションには次のものが必要です
--repeat および --daemon オプションの指定。
o --リロード: (C) 設定とスキップファイルをリロードし、スキャンを再開します。
stealth デーモンプロセス。 ポリシーファイルで定義されたオプションも
リロードされました。 ただし、コマンドライン オプションは、定義されたオプションよりも常に優先されます。
ポリシー ファイル内にあるため、起動時にコマンド ライン オプションが使用された場合 stealth in
デーモン モードでは、ポリシー ファイルをリロードしても変更できません。
o --繰り返します: ウェイクアップして、割り込み時または割り込み後に整合性スキャンを実行します。
秒 (または「m」が追加される場合 (ブランクなし) は分) ) 後
前回の整合性スキャンが完了しました。 オプション --random-interval を使用すると、
ランダムな遅延を追加する次の整合性スキャンが実行されるまで。 これ
オプションには、 --daemon オプションの指定が必要です。
o --再実行: (C) で指定された整合性スキャン コマンドの実行を開始します。
stealth デーモンプロセスのポリシーファイル。
o --再開: (C) 一時停止を再開する stealth プロセス、つまり --rerun を意味します。
--run-command (-r) : (C) コマンド番号のみを実行(自然数)。
コマンド番号は、 stealth ---解析ポリシーファイル。 このオプションは次の場合のみ可能です
XNUMX 番目の概要を使用して指定します。
o --skip-files (-s) : のすべてのエントリスキップされます。 彼らの
完全性は監視されません。 エントリがログ ファイルにすでに存在する場合は、
stealth アドレスに送信されるメールに IGNORING メッセージが一度生成されます
ポリシーファイルのEMAILで指定します。 file-spec で言及されている各エントリは、
独自の行であり、絶対ファイル パスを使用して指定する必要があります。 エントリー終了
スラッシュ内のは、完全な内容をスキップする必要があるディレクトリであると想定されます。 他の
エントリは、スキップするファイルの名前として解釈されます。 最初と最後の空白、
空行と、最初の非空白文字が # である行は無視されます。 ここ
いくつかの例を示します。
# ユーザーのメールディレクトリ内のすべてのファイルをスキップします
/ホーム/ユーザー/メール/
# ユーザーの .history ファイルをスキップします
/home/user/.history
o --stdout (-o): メッセージは (また) std に書き込まれます。 出力ストリーム (のみ
XNUMX 番目の概要で利用可能)。
o --一時停止: (C) 現在アクティブなサービスを一時停止します。 stealth プロセス。 続く
--suspend --resume を使用して再アクティブ化します。 stealth デーモンまたは --terminate を使用して終了します
stealth デーモン;
o --syslog: syslog メッセージを書き込みます。
--syslog-facility : 使用する syslog 機能。 デフォルトのファシリティ DAEMON
使用されている;
o --syslog-優先順位: 使用する syslog の優先順位。 デフォルトでは、NOTICE の優先順位は
中古;
o --syslog-tag : syslog にプレフィックスとして付ける識別子を指定します
メッセージ。 デフォルトでは、タグ「STEALTH」が使用されます。次のセクションも参照してください。
o --終了: (C) 現在アクティブなプログラムを終了します stealth プロセス;
o --タイムスタンプ (-t) : 使用するタイムスタンプ。 デフォルトでは UTC。 ローカルを使用するには
時刻は --time-stamp LT を指定します。 --time-stamp オプションはタイムスタンプには適用されません
syslog によって生成されます (次のセクションも参照)。
o --usage: (C) ヘルプ情報を表示して終了します。
o --冗長性: ログに記録される情報の量を決定します。 オプションが必要です
--log または --syslog。 可能な値は次のとおりです。
0: 何も記録されません
1: (デフォルト) モードレポートおよびポリシーコマンド
2: また: ipc コマンドとアクション
3: また: 整合性スキャンの情報メッセージ
o --version (-v): (C) 表示 stealthのバージョン情報を確認して終了します。
o ポリシー: ポリシーファイルのファイル仕様。 相対位置を指定した場合
この場合、この場所は現在の作業ディレクトリを基準にして解釈されます。
Stealth この相対指定をファイルの絶対位置に変換し、
--reload のようなオプションは、このように決定された絶対ファイルからポリシー ファイルを再ロードします。
ファイルパス。
オプション --daemon、--reload、--resume、--suspend、または --terminate のいずれか XNUMX つだけを使用できます。
指定。 オプション --reload、--rerun、--resume、--suspend、および --terminate は、
別のオプション。
次のオプションは、下位互換性のために引き続き認識されます。 stealth
3.00 より前のバージョンは将来削除される予定です stealth バージョン。 エラーが発生します
代替案を提案するメッセージ:
o --echo-commands (-e): コマンドが処理されるときに標準エラーにコマンドをエコーします。 --log を使用する
を代わりにお使いください。
o --keep-alive: デーモンとして実行します。 代わりに --daemon を使用してください。
o --only-stdout: スキャン レポートは stdout に書き込まれます。 代わりに --stdout を使用してください。
--quiet (-q): stderr に書き込まれる進行状況メッセージを抑制します。 --verbosity 0 を使用します
を代わりにお使いください。
o --抑制する: 現在アクティブな stealth プロセス; --suspend を使用する
を代わりにお使いください。
以下のオプションは、 stealth バージョン3.00.00:
o --debug (オプション --verbosity または --dry-run を代わりに使用できます);
o --子プロセスなし;
o --parse-config-file。
ポリシー ファイルで長いオプションを指定する場合は、最初のハイフンを省略する必要があります。 ここにあります
いくつかの例:
%%
ログ/tmp/stealth.log
冗長性 3
EXIT ステータス
IPCコマンド要求時または起動時 stealth デーモンとして、次の場合に 0 が返されます。
コマンドは正常に完了しました。 それ以外の場合は、0 以外の値が返されます。
OPEN SSH LINK に 顧客
Once stealth ファイル整合性スキャンを実行するフォアグラウンドまたはデーモン プロセスとして開始されました
ssh(1) は、監視されているクライアントに接続するために使用されます。 stealth。 同時に stealth 実行のみ
XNUMXつ ssh(1) 各クライアントに対して接続が開かれます。 この接続は、次の期間中アクティブのままです。
stealthの数を最小限に抑えるための の寿命 sshd クライアントのログ ファイルのエントリ。
、 ポリシー FILE
ポリシー ファイルは XNUMX つのセクションで構成され、XNUMX 番目のセクションはオプションであり、
%% のみを含む行。
ポリシー ファイルの最初のセクションは、次の XNUMX つのデータ セットで構成されます。 つかいます ディレクティブ (起動
キーワードで USE)と コマンド。 空白行およびハッシュマーク (#) 以降の情報は、
無視されますが、バックスラッシュ (\) で終わる行に続く行は連結されます (en
パッシング これらの末尾のバックスラッシュを削除します)。 ポリシー行の先頭の空白
ファイルは無視されます。
(オプションの) XNUMX 番目のセクションは、%% のみを含む行から始まります。 これに続いて
区切り線には、いくつかの長いオプション仕様を入力できます (以下のセクションを参照)
OPTIONS)。 コマンドラインで指定されたオプションは、コマンドラインで指定されたオプションよりも優先されます。
ポリシーファイル。 --reload オプションはポリシー ファイルを再ロードしますが、変更されません。
もともとコマンドライン オプションとして指定されていたオプション値。 このセクションには以下が含まれる可能性があります
スキップファイルとログオプションの仕様。 指定された相対ファイルの場所
これらのオプションは、ポリシー ファイルの場所を基準にして解釈されます。 たとえば、
ポリシー ファイルの引数は /root/client/policy として指定され、仕様ログは次のようになります。
client.log の結果は次のとおりです stealth ログをファイル /root/client/client.log に書き込みます。
定義する 指令
定義する ディレクティブは、長いテキスト文字列を特定のシンボルに関連付けるために使用されます。 例えば、
DEFINE FINDARGS -xdev -type f -exec の後 /usr/bin/sha256sum {} \; 仕様
${FINDARGS} は以下で使用できます。 USE 指令 コマンド (下記参照) テキストを使用するには
に関連付けられている ファインダーグ シンボル。
注意してください 定義する 記号は他のものの定義にも使用される場合があります。 定義する としての記号
良い。 直接的または間接的な循環定義は避けるべきです。
不完全に拡張されました。
USE 指令
以下 USE ディレクティブを指定できます (ディレクティブは大文字で書かれ、
以下に記述されているとおりに正確に表示される必要があります: 大文字と小文字は保持されます)。 の仕様
山かっこ (例: ) によって提供される仕様を表します。 stealthさん
ユーザー:
o USE BASE
BASE そこからディレクトリを定義します stealth 動作します。 それ以降のすべての親戚
ポリシー ファイル内のパス指定 (ポリシー ファイル内の相対パス指定を含む)
ポリシーの XNUMX 番目の部分) は相対的に解釈されます。 BASE. By デフォルト これは
ディレクトリ stealth 始められた。
BASE その他の存在しないパスは、によって自動的に作成されます。 stealth まだであれば
既存。
例:
BASE /root/clientを使用する
o USE DD
当学校区の DD 仕様の用途 /bin/dd デフォルトとして、の場所を定義します。 dd(1)
サーバーとクライアントの両方でプログラムを実行します。 の DD ファイルをコピーするためにプログラムが使用されます
既存の ssh 接続を介してクライアントとモニター間を接続します。 プログラム
ここで指定されたものは、次のユーザーのみが使用します。 stealth PUT および GET コマンドを実行するとき
(以下で説明します)。
デフォルトを示す例:
DDを使用する /bin/dd
o USE 違い
デフォルト 違い 仕様の用途 / usr / bin / diff、の場所を定義します。
差分(1) モニター上のプログラム。 の 差分(1) プログラムは以前のものを比較するために使用されます。
整合性チェックの作成されたログファイルと新しく作成されたログファイル。
デフォルトを示す例:
差分を使用する / usr / bin / diff
o USE DIFFREFIX
当学校区の DIFFREFIX 仕様は、DIFF によって追加されるプレフィックスのサイズを定義します
コマンドから実行されたコマンドによって生成された行へ stealth.
デフォルト / usr / bin / diff プログラムは行の先頭に `> ' または `< ' を付けます。 の
のデフォルト値したがって、 は 2 に等しくなります。
デフォルトを示す例:
DIFFPREFIX 2 を使用する
o USE Eメール
当学校区の Eメール 仕様では、レポートを受信する電子メール アドレスを定義します。
クライアントの整合性スキャン。 「ダークコックピット」の哲学はここで踏襲されています: mail
変更が検出された場合にのみ送信されます。
デフォルトを示す例 (モニター上の電子メール アドレスと思われる):
電子メールのルートを使用する
o USE メイラー
当学校区の メイラー 仕様では、電子メールを送信するプログラムを定義します。
Eメール-住所。 に反して 違い DD そして(以下を参照) SH SSH, メイラー として実行されます
a /bin/sh コマンドを使用して、シェルスクリプトでもメールを処理できるようにします。 デフォルトでは
メイラー として定義される / usr / bin / mail. メイラー 次の引数を使用して呼び出されます。
-------------------------------------------------- --------
郵便物、 下記参照;
Eメール、メールの宛先。
-------------------------------------------------- --------
デフォルトを示す例:
メーラー /usr/bin/mail を使用する
代わりに、スクリプト ステルスメールが提供されています。 便利な機能を提供します
フィルタソート stealthの出力とテキスト ADDED を含む行のみを保持します。
変更、削除、またはステルス。 通常、これらの行はシステム管理者が使用する行です。
レポートとログ ファイルをいつでも参照して、
変化の実際の性質。
o USE 郵便物
当学校区の 郵便物 仕様では MAILER に渡される引数を定義します。
その後に EMAIL の仕様が続きます。
デフォルトを示す例:
MAILARGS を使用 -s "STEALTH スキャン レポート"
件名指定にはブランクが使用できることに注意してください。double または single を使用してください。
空白を含む要素を定義するには引用符を使用します。 二重引用符を使用するには、\" を使用します。
二重引用符で区切られた文字列。 内で一重引用符を使用するには、\' を使用します。
それ自体が一重引用符で区切られた文字列。
o USE レポート
レポート レポートファイルの名前を定義します。 情報は常にこれに追加されます
ファイル。 それぞれに stealth 整合性スキャン 時間 マーカー ライン レポートに書かれている
ファイル。 (マーカーラインに加えて)追加情報が付加される場合のみ
レポートファイルにレポートファイルの追加内容がメールで送信されます
で指定されたアドレス USE Eメール 仕様。 相対ファイルの場合
仕様が使用されると、USE BASE を基準とした相対的な位置が解釈されます。
仕様。
デフォルトを示す例:
使用レポートレポート
o USE SH
当学校区の SH 仕様の用途 /bin/sh デフォルトとして、使用されるコマンド シェルを定義します。
モニター自体に対してコマンドを実行します。 これは絶対パスでなければなりません
仕様。
デフォルトを示す例:
SHを使用する /bin/sh
o USE SSH
当学校区の SSH 仕様 持っています いいえ デフォルト, しなければなりません 指定されること。 これはきっと
絶対パス指定。
クライアントを想定すると 信頼する モニター (結局のところ、これがこのプログラムのすべてです)
についてなので、これはあまり強い仮定ではありません)、できればパブリック ssh
モニターのキーはクライアントのルートの .ssh/authorized_keys ファイルに配置する必要があります。
モニターにクライアントへの root アクセスを許可します。 通常、root アクセスが必要になるのは、
クライアントのファイル システムのすべてのディレクトリとファイルにアクセスできるようになります。
実際には、 sh(1) シェルが好ましい。 いつ
別のシェルがそのアカウントによってすでに使用されているため、そのシェルが
標準入力と標準出力に対する独自のリダイレクトは定義しません。 一方通行
それを達成することは、強制的に実行することです /bin/sh 会場は USE SSH
仕様。 例:
# root のシェルは /bin/sh:
SSH を使用 root@client -T -q
# root は別のシェルを使用しますが、 /bin/bash 強制されます:
SSH を使用 root@client -T -q exec /bin/bash
# 代替案:
SSH を使用 root@client -T -q exec /bin/bash --プロファイルなし
一部のインストールでは stealth モニター自体を検査するために使用されますが、
の主な理由の XNUMX つを解消するため、推奨されます。 stealthの存在。 しかし、
それらの状況(だから、どこで stealth ローカルホストの整合性を監視するために使用されます)、
/bin/bash USE SSH ディレクティブで指定できます。 例えば:
# localhost をステルス検査する場合:
SSHを使用する /bin/bash --プロファイルなし
コマンド
以下 USE 仕様、 コマンド を指定することができます。 コマンドは次の場所で実行されます。
ポリシー ファイル内での出現順序。 最後のコマンドまで処理が続行されます
処理が完了するか、テストされたコマンド (以下を参照) がゼロ以外の戻り値を返すまで。
LABEL コマンド
以下 LABEL コマンドが利用可能です:
o LABEL
これは、に書き込まれるテキストラベルを定義します。 レポート ファイルの前に、
次に生成される出力 チェック-指図。 次だったら チェック-コマンドは何も生成しません
出力では、テキストラベルは書き込まれません。 レポート-ファイル。 一回 LABEL されています
定義されると、次の定義によって再定義されるまで使用されます。 LABEL。 空のものを使用する LABEL
ラベルの印刷を抑止する仕様です。
テキストには、\n 文字 (XNUMX 文字) が含まれる場合があります。
改行文字。
例:
LABEL 内のファイルを検査しています の/ etc\nサブディレクトリを含む
LABEL
(この例では前者 LABEL 仕様は後者によって消去されます LABEL
コマンド)。
LOCAL コマンド
LOCAL コマンドはモニター自体で実行されます。
o LOCAL
を使用してモニター上でコマンドを実行します。 SH コマンドシェル。 コマンドは次のとおりです。
成功します (つまり、ゼロの終了値を返さなければなりません)。
例:
ローカル scp rootsh@client:/usr/bin/sha256sum / tmpに
このコマンドはクライアントの sha256sum(1) モニターにプログラムします。
o LOCAL ノート
を使用してモニター上でコマンドを実行します。 SH コマンドシェル。 コマンドは、
成功しない。
例:
ローカル ノート mkdir /tmp/subdir
このコマンドは、モニター上に /tmp/subdir を作成します。 ディレクトリが次の場合、コマンドは失敗します。
作成できませんが、終了しません stealth.
o LOCAL チェック [LOG =】 [パスオフセット]
を使用してモニター上でコマンドを実行します。 SH コマンドシェル。 コマンドは次のとおりです。
成功した。 このコマンドの出力は、このコマンドの出力と比較されます。
によって実行された前回の整合性チェック中に生成されました stealth.
フレーズ LOG = はオプションです。 相対的なファイルの場所を指定した場合
これは、USE BASE パスの指定に応じて解釈されます。
PathOffset もオプションです。 指定した場合、(0 ベースの) オフセットを定義します。
検査されたファイルのパス名は、次のように生成された行で始まります。 。 デフォルトでは
stealth スラッシュの最初の出現によって最初のスラッシュが定義されると想定します。
検査されるファイルのパス名の文字。
たとえば、diff-output が次のようになったとします。
01234567890123456789012345678901234567890 (列オフセット)
33c33
< 90d8b506d249634c4ff80b9018644567 filename-specification
---
> b88d0b77db74cc4a742d7bc26cdd2a1e filename-specification
それから仕様
LOCAL CHECK ログファイル 36 実行するコマンド
インフォーム stealth diff 出力内のファイル名の仕様はどこで確認できますか。 使用する
標準 / usr / bin / diff コマンドの場合、このオフセットは 2 + のオフセットに等しくなります。
実行コマンドにファイル名指定が見つかりました。
以前の出力と現在の出力の違いはすべて次の場所に書き込まれます。 レポート。 場合
違いが見つかった場合、既存のログファイル名は次のように変更されます。
logfile.YYMMDD-HHMMSS、YYMMDD-HHMMSS はその時点の (UTC) 日時スタンプです。
stealth 実行されました。
最終的には、多数の logfile.YYMMDD-HHMMSS ファイルが作成される可能性があることに注意してください。
古い日時スタンプをどうするかはモニターのシステム管理者が決定します
ログファイル。
ログファイルの指定では、相対パスと絶対パスを使用できます。 相対パスの場合
が使用されている場合、これらのパスは相対パスです BASE。 ディレクトリが暗黙的に指定されている場合、
ログファイル仕様はまだ存在しないため、最初に作成されます。
例:
ローカルチェックログ = local/sha256sum sha256sum /tmp/sha256sum
このコマンドは、/tmp/sha256sum プログラムの SHA256 サムをチェックします。 結果として
出力は次の場所に保存されます BASE/local/sha256sum。 プログラムは成功する必要があります (つまり、sha256sum
ゼロの終了値を返す必要があります)。
o LOCAL ノート チェック [パスオフセット]
を使用してモニター上でコマンドを実行します。 SH コマンドシェル。 コマンドは、
成功しない。 それ以外の場合、コマンドは次のコマンドとまったく同じように実行されます。 LOCAL チェック ...
コマンド、上で説明しました。
例:
ローカルノートチェックログ=local/sha256sum sha256sum /tmp/sha256sum
このコマンドは、/tmp/sha256sum プログラムの SHA256 サムをチェックします。 結果として
出力は次の場所に保存されます BASE/local/sha256sum。 プログラムは成功する必要があります (つまり、sha256sum
ゼロの終了値を返す必要があります)。
なお、 scp(1) コマンドを使用してクライアントとモニター間でファイルをコピーできます。
ローカルコマンドを使用して。 ただし、これは別個の方法として推奨されません。 ssh(1)-接続は
それぞれに必要な scp(1) コマンド。 この繊細さは作者にもたらされました
Hopko Meijerink による注目 ([メール保護]).
クライアントとモニター間でファイルをコピーするには、GET コマンドと PUT コマンド (説明
これらのコマンドは既存の ssh(1)接続。 の
一般に、LOCAL コマンドは追加の確立に使用しないでください。 ssh(1) への接続
クライアント。
遠隔地 コマンド
リモート コマンドは、クライアント上で実行されるコマンドです。 SSH シェル。 これらのコマンド
に設定された標準の PATH を使用して実行されます。 SSH シェル。 ただし、次のことをお勧めします。
「トロイの木馬の接近」を防ぐために、実行するプログラムへのフルパス名を指定します。
ここで、トロイの木馬は、PATH 仕様の「以前の」ディレクトリにインストールされます。
目的のプログラム。
XNUMX つの特別なリモート コマンドは GET と PUT で、これらを使用して、サーバー間でファイルをコピーできます。
クライアントとモニター。 内部的には、GET と PUT は DD 仕様を使用します。 もし
デフォルト以外の仕様が使用されている場合は、代替プログラムがそれを受け入れることを確認する必要があります。
dd(1) の if=、of=、bs=、count= オプション。 GET の場合、オプション bs=、count=、および of= は次のとおりです。
PUT ではオプション bs=、count=、および if= が使用されます。 通常は必要ないはずですが
デフォルトの DD 仕様を変更します。
GET コマンドは次のように使用できます。
o GET
クライアントの client-path で示されたファイルをモニターの local-path にコピーします。
ここで、 client-path はクライアント上の既存のファイルのフルパスである必要があります。
local-path はローカル ディレクトリのいずれかです。この場合、クライアントのファイル名は次のようになります。
使用するか、別のファイル名を指定することもできます。その場合、クライアントのファイルは
指定されたローカル ファイル名にコピーされます。 ローカル ファイルがすでに存在する場合は、
コピー手順によって上書きされます。
例:
GET /usr/bin/sha256sum / tmpに
プログラム /usr/bin/sha256sumクライアントで利用可能な、モニターのにコピーされます。
/ tmpに ディレクトリ。 何らかの理由でコピーに失敗した場合は、 stealth 終了します。
o GET ノート
クライアントの client-path で示されたファイルをモニターの local-path にコピーします。
ここでも、 client-path はクライアント上の既存のファイルのフル パスである必要があります。
local-path はローカル ディレクトリのいずれかです。この場合、クライアントのファイル名は次のようになります。
使用するか、別のファイル名を指定することもできます。その場合、クライアントのファイルは
指定されたローカル ファイル名にコピーされます。 ローカル ファイルがすでに存在する場合は、
コピー手順によって上書きされます。
例:
メモを取得 /usr/bin/sha256sum / tmpに
プログラム /usr/bin/sha256sumクライアントで利用可能な、モニターのにコピーされます。
/ tmpに ディレクトリ。 ポリシー ファイル内の残りのコマンドは、
コピー処理が成功しませんでした。
PUT コマンドは次のように使用できます。
o PUT
モニターのローカルパスで指定されたファイルをクライアントのリモートパスにコピーします。
引数 local-path は、モニター上の既存のファイルのフル パスである必要があります。
引数リモートパスは、クライアント上のファイルへのフルパスである必要があります。 もし
リモート ファイルがすでに存在する場合、PUT によって上書きされます。
例:
PUT /tmp/sha256sum /usr/bin/sha256sum
モニターで利用可能なプログラム /tmp/sha256sum は、次のようにクライアントにコピーされます。
usr/bin/sha256sum。 コピーに失敗した場合は、 stealth 終了します。
o PUT ノート
モニターのローカルパスで指定されたファイルをクライアントのリモートパスにコピーします。
引数 local-path は、モニター上の既存のファイルのフル パスである必要があります。
引数リモートパスは、クライアント上のファイルへのフルパスである必要があります。 もし
リモート ファイルがすでに存在する場合、PUT によって上書きされます。
例:
注記 /tmp/sha256sum /usr/bin/sha256sum
モニターのローカルパスで指定されたファイルをクライアントのリモートパスにコピーします。
引数 local-path は、モニター上の既存のファイルのフル パスである必要があります。
引数リモートパスは、クライアント上のファイルへのフルパスである必要があります。 もし
リモート ファイルがすでに存在する場合、PUT によって上書きされます。 残りのコマンドは、
コピープロセスが成功しなかった場合でも、ポリシーファイルは実行されます。
通常のコマンドは指定するだけでクライアントコンピュータ上で実行できます。 の
もちろん、これは、LABEL、LOCAL、またはなどの名前が付けられたクライアント上のプログラムを意味します。
USE は、これらの名前が別の方法で解釈されるため、実行できません。 stealth。 イッツ
この制限が大きな問題を引き起こす可能性は低いです...
次のコマンドをクライアントで実行できます。
ああ
を使用してクライアント上でコマンドパスを実行します。 SSH コマンド シェル (強力です)
実行するコマンドへのフルパスを指定することをお勧めします)。 コマンドは成功する必要があります
(つまり、ゼロの終了値を返さなければなりません)。 ただし、によって生成される出力はすべて、
コマンドは無視されます。
例:
/usr/bin/find / tmpに -タイプ f -exec /bin/rm {} \;
このコマンドは、クライアントの下にあるすべての通常のファイルを削除します。 / tmpに ディレクトリにあります。
o ノート
クライアント上でコマンドパスを実行します。 SSH コマンドシェル。 コマンドは、または
成功しないかもしれない。
例:
ノート /usr/bin/find / tmpに -タイプ f -exec /bin/rm {} \;
前のコマンドと同じですが、今回は終了値が /usr/bin/find ではありません
通訳。
o チェック [LOG =】 [パスオフセット]
クライアント上でコマンドパスを実行します。 SSH コマンドシェル。
フレーズ LOG = はオプションです。 相対的なファイルの場所を指定した場合
これは、USE BASE パスの指定に応じて解釈されます。
PathOffset もオプションであり、LOCAL CHECK と同じ意味を持ちます。
前述のコマンド。 コマンドは成功する必要があります。 このコマンドの出力は次のとおりです
前回の実行中に生成されたこのコマンドの出力との比較
stealth。 相違点はすべて次の場所に書き込まれます レポート。 相違点が見つかった場合、
既存のログファイル名は logfile.YYMMDD-HHMMSS に変更され、YYMMDD-HHMMSS は
当時の日時スタンプ stealth 実行されました。
コマンドはクライアント上で実行されますが、ログファイルはクライアント上に保持されることに注意してください。
モニター。 このコマンドは、によって実装されるメソッドの中核を表します。 stealth:
によって実行されたアクションの残留物は存在しません。 stealth クライアント上で
コンピュータ。
いくつかの例 (行継続文字としてバックスラッシュが使用されていることに注意してください):
チェックログ = リモート/ls.root \
/usr/bin/find /\
-xdev -perm /6111 -type f -exec / bin / ls -l {} \;
すべての suid/gid/実行可能ファイルは、ルート ディレクトリ (/) と同じデバイス上にあります。
クライアント コンピューターが、そのアクセス許可、所有者、サイズ情報とともにリストされます。 の
結果のリストはファイルに書き込まれます BASE/リモート/ls.root。
リモート/sha256.root \を確認してください
/usr/bin/find /\
-xdev -perm /6111 -type f -exec /usr/bin/sha256sum {} \;
同じデバイス上のすべての suid/gid/実行可能ファイルの SHA256 チェックサム
クライアントコンピュータ上のルートディレクトリ(/)が決定されます。 結果のリストは次のとおりです
ファイルに書かれている BASE/リモート/sha256.root。
o ノート チェック [LOG =】 [パスオフセット]
クライアント上でコマンドパスを実行します。 SSH コマンドシェル。
フレーズ LOG = はオプションです。 相対的なファイルの場所を指定した場合
これは、USE BASE パスの指定に応じて解釈されます。
PathOffset もオプションであり、LOCAL CHECK と同じ意味を持ちます。
前述のコマンド。 コマンドは成功する場合も失敗する場合もあります。 それ以外の場合は、
プログラムは、 チェック ... 前述のコマンド。
例:
注記チェックログ = リモート/sha256.root \
/usr/bin/find /\
-xdev -perm /6111 -type f -exec /usr/bin/sha256sum {} \;
同じデバイス上のすべての suid/gid/実行可能ファイルの SHA256 チェックサム
クライアントコンピュータ上のルートディレクトリ(/)が決定されます。 結果のリストは次のとおりです
ファイルに書かれている BASE/リモート/sha256.root。 stealth の場合は終了しません
/usr/bin/find プログラムはゼロ以外の終了値を返します。
最大ダウンロード サイズ (GET または CHECK を使用) は、--max-size を使用して指定できます。
オプションについては、以下を参照してください。 デフォルトでは、このサイズは 10M に設定されています。
レポート FILE 回転
Since stealth レポート ファイルに情報を追加するだけなので、レポート ファイルのサイズは
最終的には法外に大きくなり、ログローテーションが望ましい場合があります。 それは当然です
--terminate コマンドを発行し、ログファイルをローテーションし、再起動することが可能 stealth、 だけど
stealth によって実行される整合性スキャンを一時的に中断する機能も提供します。
stealth デーモンプロセス:
o 電話をかける stealth --suspend オプションを使用した場合デーモンの整合性を一時停止します
スキャンします。 もしも stealth --suspend の場合、実際には一連の整合性スキャンが実行されます。
が発行されると、現在実行中のコマンドがまず完了し、その後、
--suspend コマンドが完了します。 一度 stealth デーモンは一時停止されました、自動
または、明示的な整合性スキャン要求が拒否され、デーモンは
スキャンタスクを再開するよう指示されました(stealth - 履歴書) または終了する
(stealth --終了)。
o 一度 `stealth - つるす' が返されました。レポート ファイルは安全にローテーションできます。
(たとえば、 logrotate(1))、オプションで新しい (空の) レポート ファイルを作成することもできます。
ログローテーションプロセスによって作成されます。
o ログローテーションが完了すると、ログローテーションプロセスは
コマンド `stealth - 履歴書'。 これにより休止していた活動が再開されます
stealth デーモン プロセスが実行され、次の整合性スキャンがすぐに実行されます。 続く
これは stealth デーモンは元の整合性スキャン モードに戻ります。 ここは
の例 logrotate(1)回転仕様 stealth ログファイル:
/root/stealth/clienthost/small/report /var/log/stealth/clienthost-small.log {
daily
回転4
圧縮する
ミソク
コピートランケート
共有スクリプト
事前回転
/usr/bin/stealth --suspend /root/stealth/client/small.uds
エンドスクリプト
後回転
/usr/bin/stealth --resume /root/stealth/client/small.uds
エンドスクリプト
}
リロード、 再実行 そして 終了する
次のような場合に何が起こりますか stealth XNUMX 番目の概要を使用して実行されます。
o として開始した場合 stealth --リロード、 stealth デーモンプロセスはそのプロセスをリロードします
ポリシー ファイルと (指定されている場合) --skip-files 仕様ファイル。 次に、 stealth
デーモンプロセスは、再読み取りファイルの情報を使用してファイル整合性スキャンを実行します。
ポリシーファイルとスキップファイルファイル。 Stealth (変更された) コンテンツを再ロードできます。
最初に指定されたポリシー ファイル名とスキップ ファイル名。 別のポリシーや
スキップファイルファイルは別のものを使用する必要があります stealth プロセスを開始する必要があります。
これらの新しいファイル名が指定されます。
o として開始した場合 stealth --再実行、 stealth デーモンが別のスキャンを実行する
(使用して一時停止されている場合を除く) stealth - つるす)。
o として開始した場合 stealth --終了、 stealth デーモンが終了します。
RSYSLOG フィルタリング
使用時 rsyslogd(1) プロパティベースのフィルターを使用して、syslog メッセージをフィルター処理することができます。
それらを選択したファイルに書き込みます。 たとえば、syslog で始まるメッセージをフィルタリングする場合
メッセージタグ(例:STEALTH)の使用
:syslogtag, isequal, "STEALTH:" /var/log/stealth.log
:syslogtag、isequal、「STEALTH:」停止
コロンはタグの一部ですが、syslog-tag オプションでは指定されないことに注意してください。
これにより、STEALTH: タグを持つすべてのメッセージが /var/log/stealth.log に書き込まれます。
その後、それらは破棄されます。 より広範なフィルタリングもサポートされています。たとえば、以下を参照してください。
http://www.rsyslog.com/doc/rsyslog_conf_filter.html
http://www.rsyslog.com/doc/property_replacer.html
rsyslogd によって書き込まれたタイムスタンプは、rsyslogd によって制御されません。 stealthの --time-stamp オプションですが、
たとえば、/etc/default/rsyslog の TZ 仕様によって。 行を追加するだけです
エクスポート TZ=UTC
〜へ /etc/default/rsyslog、続いて rsyslogd を再起動すると、rsyslogd が生成するように設定されます。
UTC を使用したタイムスタンプ。
配備 概要
以下に、ステルスをインストールするときに実行する推奨手順をまとめます。 これらすべて
手順については、以下で詳しく説明します stealthさん ユーザー ガイド (章 Running: 「ステルス」):
o インストール stealth (例:使用 dpkg(1) をインストールする debファイル ファイル);
o XNUMX つ以上のポリシー ファイルを構築します。
o 自動(再)起動 stealth cron(1)または ssh-cron(1) (おそらく電話
ステルスクロン);
o 自動ログ ファイル ローテーションを設定します。たとえば、 ステルスクリーンアップ logrotate(1)
XNUMX つ以上の /etc/logrotate.d/stealth... 構成ファイルを定義します。
onworks.net サービスを使用してオンラインでステルスを使用する