sendmail SMTP認証ロギングを制御する方法は何ですか?

sendmail SMTP認証ロギングを制御する方法は何ですか?

SMTPログインに失敗することがよくあります。私は本当にそれを守りたいのですが、これらの試みの記録は悪いです。

私はsendmail 8.15、cyrus-sasl 2.1.26を使用しています。 SASL 設定は最も簡単な方法であり、デフォルトでは pam_unix を使用して認証に使用します。

私はしばしば次のログメッセージを受け取ります。

saslauthd[8292]: pam_unix(smtp:auth): check pass; user unknown
saslauthd[8292]: pam_unix(smtp:auth): authentication failure; logname= uid=0 euid=0 tty= ruser= rhost=
saslauthd[8292]: DEBUG: auth_pam: pam_authenticate failed: Authentication failure
saslauthd[8292]: do_auth         : auth failure: [user=colby] [service=smtp] [realm=] [mech=pam] [reason=PAM auth error]

つまり、偽のログイン試行が発生していることがわかりますが、Fail2banを刑務所に閉じ込めるなど、これについて私ができることは何もありません。

Sendmailがpam_unixに情報を渡してダンプするのが問題なのか、それともsendmailがpamに試している場所を知らせないのが問題なのかはわかりません。

私が望むのは、そのIPアドレスを使用して認証試行を記録することです。したがって、失敗が多い場合、fall2banはそのIPを刑務所に入れることができます。

答え1

ここのセッションは、メール転送エージェントと次に区別されますsaslauthd

testhost saslauthd[17177]: do_auth         : auth failure:
  [user=AzureDiamond] [service=smtp] [realm=] [mech=pam]
  [reason=PAM auth error]

必要なログ全体をデフォルトで使用できないか、一部のログ集約サービスで再構成する必要があります。 (Postfixを使用するとロギングもひどいですsaslauthd。一部のログはメールログに残り、他のログは別の場所に表示されます。)Sendmailはカスタムsyslogルールをサポートしています。ただし、クライアントが、、、、EHLO nurse失敗(配信または単に切断)のみを発行した場合。 ) 一般的なルールセットフックを実行する機会を提供しない場合があります。AUTH LOGINQXp1cmVEaWFtb25kSHVudGVyMg==quit

11(またはそれ以上)に達すると、LogLevelリレーアドレスを含むログインが失敗します。

testhost sendmail[20684]: wA6KuRRJ020684: AUTH failure
  (LOGIN): authentication failure (-13) SASL(-13):
  authentication failure: checkpass failed,
  relay=localhost [127.0.0.1]

これはsendmail/srvrsmtp.c次の時点で発生しますLogLevel > 9。あるいは、増加を避けるためにファイルをパッチすることもできますが、LogLevelこれは他の問題を引き起こす可能性があります。

SMTP AUTHを制限する他の方法は次のとおりです。

pamは特定のグループを制限します

PAM設定を調整し、SMTP AUTHユーザーが特定のグループに属していない限り無効にします。これはほとんどのパスワード推測攻撃を防ぎますが、少数の予測可能なユーザーしか使用する必要がない場合は可能ですSMTP AUTH

account     required      pam_access.so accessfile=/etc/security/smtp_access.conf

それから/etc/security/smtp_access.conf

+ : ok-sasl : ALL
- : ALL : ALL

次に、ユーザーをok-saslグループに入れます。

SMTP AUTHサービスを隠す

別のオプションは、インターネット上でサービスを利用できないように、VPNなどをSMTPの前に配置することです。これにより、現在のパブリックサービスが受信するログノイズが減少します。

pam_tally

私もそれを試しましたが、pam_tally2ログイン時に明白なエラーがない合法的なアカウントを含むアカウントをロックするのに役立ちます。

答え2

少し役に立つ解決策があります。あなたがリストしたメッセージは/var/log/secure(少なくともRedHat / Centosでは)から来るようです。

ご存知のように、IPがないため、これらの項目では多くの操作を実行できません。

しかし、/var/log/maillogを見ると、次のようなものが見つかります。

Apr 11 13:58:48 alpha sendmail[23712]: x3BKwjij023712: [118.24.45.165] did not issue MAIL/EXPN/VRFY/ETRN during connection to MSA

これらの接続は認証(または2回)、失敗、および切断を試みます。 /var/log/secureのpamメッセージとこれらのメッセージとの間にはほぼ100%の相関関係があります。

私はこれをFail2ban刑務所への入力として使用します。多くの自動化されたシステムプローブは、クラスC(または必要に応じて/ 24)のアドレス空間を使用し、アドレスが再表示されるまでかなり長い時間がかかるため、単一の発生によって禁止が発生します。

現在、IPがあちこちに散在しているボットネットを使用しているように見える誰か/物があります。これらの症状は数日後にのみ繰り返されるように見え、まったく繰り返されないことがあります。結局、多くのFail2banエントリが発生します。しかし、何もしないよりも優れています。

答え3

残念ながら、答えは制御なしでsendmailとcyrus-saslを使用するようです。 Sendmailはsaslに情報を送信しているように見えますが、cyrus-saslはこれに対して何もしません。

上記のThrigの回答は他の人に役立つ可能性があり、いつか誰かがこれを見てより良い回答を提供します。

関連情報