どのように私はUnixとのSendmailからの送信メールを監視することができますか?
質問
私は、FreeBSDサーバを実行していると私はスパムが私のサーバーから送られてきたことを示す警告が送信されています。私はそれがオープンリレーとして設定し、私はsendmailの設定をカスタマイズしていません。私は、ユーザー名、電子メールの件名だけでなく、彼らが送信されているどのくらいのメールの要約と一緒に何電子メールを送信している人知っているしたいと思います。私は、Apacheサーバのログを処理するときに、それがどのように行われるかのようなログでレポートを実行したいと思います。
私のオプションは何ですか?
解決
ひとつのアイデアは、通常の方法では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やカットのいずれかでそれらに目を通すことであろうだと思います。また、あなたが正しい正規表現を持っていたら、それを自動化するPerlスクリプトを書くことができます。これが最良の選択肢となります。
、あなたは/etc/mail
であなたを通してsendmailのシステムを送信するかどうか確認する、出力メールを処理する唯一の方法があります。
すべての出力メールが/var/log/maillog
でログインしている必要があります。