FreeBSD サーバーを実行していますが、サーバーからスパムが送信されたという警告が送信されました。オープンリレーとして設定しておらず、sendmail 構成をカスタマイズしました。誰がどのメールを送信しているか、ユーザー名、メールの件名、送信したメールの量の概要を知りたいです。Apache サーバーのログを処理するときと同じように、ログに関するレポートを実行したいと考えています。
私のオプションは何ですか?
1 つのアイデアは、sendmail をカスタム スクリプトにエイリアスすることです。これは、通常の方法で sendmail を呼び出す前に、ログの最後に sendmail 引数を単純に分類します。
write
次のコマンドを実行して、 およびread
関数へのすべてのシステム コールを監視することもできます。
ps auxw | grep sendmail | awk '{print"-p " $2}' | xargs strace -s 256 -f 2>&1 | grep -E $'@|(([0-9]+\.){3}[0-9]+)' | tee -a "/var/log/sendmail-logs.log"
これにより、情報に直接アクセスできるようになります。これ以上深く掘り下げることはできません。
サンプルログを教えてください。送信されているソース/宛先も取得するために、grepまたはcutのいずれかでそれらを調べるのが最善の策だと思います。また、正しい正規表現を取得したら、Perl スクリプトを作成して自動化することもできます。これが最良の選択肢です。
FreeBSD にデフォルトの設定がある場合、出力メールを処理する方法は 1 つしかありません/etc/mail
。
すべての出力メールは、/var/log/maillog