【Postfix】送信メールサーバーの不正アクセス対策

Postfixで構築した送信メールサーバーの不正アクセス対策についてまとめました。

PostfixとDovecot

Postfix(ポストフィックス)とは、「メール転送エージェント(MTA)」と呼ばれるソフトウェアの1つです。
メールサーバーを構築する場合、送信メールサーバー(SMTPサーバー)と受信メールサーバー(POP/IMAPサーバー)の構築が必要となります。

  • 送信メールサーバーの構築に採用される代表的なソフトウェア
    • Postfix、sendmail、qmailなど
  • 受信メールサーバーの構築に採用される代表的なソフトウェア
    • Dovecotなど

不正アクセス対策①何度もSMTP Auth(SASL認証)してくる不審なIPアドレスをブロック

postfixのメールログを調査し、SMTP Auth(SASL認証)を繰り返し試行してくるユーザーは、スパムメールの業者による不正アクセスの可能性が高いです。

ログの例

アクセスログ(/var/log/maillog)からSASL認証が失敗(authentication failed)しているログをgrepコマンドで抽出した例です。
不審な時間帯に「xxx.xxx.xxx.xxx」という送信元IPアドレスが、短時間で何度もログインを試みて失敗しており、さらにログインパスワードには「12345678」「11111111」「password」といった単純なものを使用しているため、プログラムによる辞書型攻撃である可能性が高いと判断できます。

$ sudo  grep "authentication failed" /var/log/maillog | head -3
Oct  1 01:23:35 mailsv1 postfix/smtpd[30764]: warning: unknown[XXX.XXX.XXX.XXX]: SASL LOGIN authentication failed: 12345678
Oct  1 01:23:45 mailsv1 postfix/smtpd[30764]: warning: unknown[XXX.XXX.XXX.XXX]: SASL LOGIN authentication failed: 11111111
Oct  1 01:23:55 mailsv1 postfix/smtpd[30764]: warning: unknown[XXX.XXX.XXX.XXX]: SASL PLAIN authentication failed: password

特に送信元IP[XXX.XXX.XXX.XXX]を逆引きして調べた結果、「海外のIPアドレス」であったり、「RBL」にリストアップされていれば不正アクセスの可能性が高いと判断できます。

  • RBL
    • Real-time Blackhole Listの略で、スパムメールを送信している疑いのあるIPアドレスをまとめたブラックリスト。
      -代表例はAbuseIPDBなど

アクセス拒否

不正アクセスの可能性が高いと判断したIPアドレスに対しては、アクセス拒否を行います。
まずは、アクセスログ(/var/log/maillog)から、「authentication failed」のあるIPアドレスを抽出します。

$ sudo cat /var/log/maillog | grep 'authentication failed' | awk '{print $7}' 
unknown[XXX.XXX.XXX.XXX]:
unknown[XXX.XXX.XXX.XXX]:
unknown[XXX.XXX.XXX.XXX]:

抽出したIPアドレスを「iptable」やsmtpd_client_restrictions =check_client_access:hash:【ファイ名】」等でアクセス拒否します。

SMTP-AUTHのパスワード変更

もしアクセスログ(/var/log/maillog)を調査して、不審なユーザーがSASL認証に成功していた場合、SMTP-AUTHのパスワードを変更します。
パスワード変更後、SMTP-AUTHのプロセスを一度キルし、再起動します。
理由は、ログインに成功している不審なユーザーとメールサーバーのセッションは確立したままであり、パスワード変更後でも引き続き不正な操作をされる恐れがあるためです。

関連ページ

429 Too Many Requests
LinuCの試験対策と例題まとめ
LinuCの試験対策と例題(学習サイト)についてまとめました。
LPICの試験対策と例題まとめ
LPICの試験対策と例題(学習サイト)についてまとめました。
【Linux超入門】システムの基礎とよく使うコマンドなど徹底解説
Linuxシステムの基礎とよく使うコマンドなどについて入門者向けに解説します。

コメント