特定のSSHDイベントを記録しない簡単な方法はありますか?

特定のSSHDイベントを記録しない簡単な方法はありますか?

私のホストの監視ツールは、サービスが動作していることを確認するためにポート22でSSHを介して定期的に接続しています。

これにより、私の/var/log/messagesに次のメッセージがあふれました。

Dec 13 22:20:17  sshd[29487]: Did not receive identification string from 80.xx.xx.xx

その特定のIPに対して「識別文字列を受け取らない」メッセージを無音に設定する簡単な方法はありますか?

答え1

見たことある?文書

LogLevel QUIET|FATAL|ERROR|INFO情報にはデフォルト値があります。

LogLevel ERRORスパムログインメッセージをオフにします。

答え2

これらの行を解析して削除するスクリプトを作成せずに/var/log/messages(実行することもできますcron)、すべての出力を無効またはリダイレクトしますssh。あなたが見たいいくつかの関連ログを得ることができるので、これは最善のアイデアではありません。

私は何をしますか?次のように書くことです。

#! /bin/bash
sed "/$search/d" /var/log/messages >/var/log/tmp
mv /var/log/tmp /var/log/messages

安全な場所に保管し、1cron日1回実行してください。あなたのプロバイダがどれくらいの頻度で実行されるかわからないsshdので、あなたのニーズに合わせて実行時間を調整できます。 cron(cronjob)にルールを追加する方法の詳細については、以下を参照してください。これはとても良いチュートリアルです

代わりに、起動されたスクリプトにアクセスしてssh(おそらくそれが予想される)、それを編集できる場合(可能であると予想される)call sshを使用できますssh -q。このパラメータは実行を「静かに」しますq。つまり、何も記録されません。sshこれは危険なので避けてください。ファイルを編集できる場合は、ホスティングプロバイダに連絡して、そのファイルがあなたの契約に準拠していることを確認してください。

sshまたは、プロバイダに連絡して問題を説明し、デーモンを修正できるか(または修正できるか)尋ねることもできます。


長い話を短く私が知っている限り、から送信されたメッセージを1つだけブロックすることは不可能ですssh。ただし、特定の間隔でメッセージファイルを解析してこれらの行をクリーンアップしたり、プロバイダが起動する場所を見つけることができる場合は、静かなsshdコマンドを送信できます。

答え3

私はこれを行う簡単な方法がないと思いますsshd

私はこれが作者(通常OpenBSDユーザー)側のデザイン選択だと思います。なぜなら、彼らはほぼ常にセキュリティの観点から「間違っている」からです。この場合、重要な情報を抑制するためのハンドルは提供されません。情報。

あなたは「簡単」と言ったので、おそらくそれはあなたに必要な答えのすべてです。

しかし、あまり簡単なオプションを考慮していない場合は、私のアドバイスは次のようになります。これをしないでください。、そうだからです。

あなたが私と同じであれば、この質問をする根本的な動機は、実行可能な項目をログで目立たせ、騒音を減らすことです。あなたは一人ではありません。 :-)

実際、メッセージにはさまざまな種類があります。

  • 有名な、
  • 終了しにくく、
  • 決して行動に移すことができない

...それはあなたです。本物私が望むもの フィルタリング。それではそうしてください。

たとえば、私は前日のログで「興味深い」エントリをフィルタリングして毎日のレポートを送信するスクリプトを作成しました。あなたはする必要があります非常にフィルタの使用に注意してください。ただし、正しく実行すると時間を節約できます。本当に注意が必要な項目を目立たせてください。

もちろん、時々生のログを見てみましょう。ただし、毎日手動でログを再確認するのに十分な時間はありません。特に見なければならないボックスがいくつかありますが、リポジトリが大規模なログ処理を保証するのに十分な大きさでない場合は、これがさらに重要です。

つまり、万が一の場合に備えて本物これを行う必要がある説得力のある理由があります(MaxMackieのソリューションはユースケースと一致しないため、これらのメッセージが消えるようにし、メッセージがbeforesyslogに到達する必要があります)。 2つのオプションがあると思います。

.1.ソースコードを修正します。

しかし、これもしないでください。オーバーヘッドとリスクが多すぎます - 脆弱性の公開と機能のアップグレードの間の遅延が長すぎます。

.2.sshd出力を別の場所に送信し、直接syslogに送信します。

FreeBSDでは、値を使用してsshd起動時/etc/rc.confまたは渡す必要があるパラメータを指定できます。オプション(デバッグ)とオプション(stderrにログ)を使用して実行するように指示します。/etc/rc.conf.localsshd_flagssshd-d-e

sshd_flags="-d -e"

その後、出力をloggerPerlまたはPerlにパイプすることができますSys::Syslog(奇妙な状況をクリーンアップするためにラッパーを使用します)。デーモンをデーモンではないと指定することは、多くの機能を直接再作成する必要があることを意味するので、これは些細なことではありません。必要に応じて詳細をお知らせします。

しかし、最良の方法はフィルタリングです。

関連情報