Postfix メールアドレス制御
ハイフン「-」で始まるメールアドレスの許可
Postfixではハイフン「-」で始まるメールアドレスをコマンドからの引数と判別するため、
デフォルトでは無効化されている
許可させる場合
# vim main.cf
allow_min_user = yes
RFC違反しているメールアドレスの許可
一般的に下記に記してあるようにRFCに準拠していないメールアドレスはデフォルトで拒否されます
ヘッダー例 | 備考 |
---|---|
RCPT TO: .user@domain.name | 頭に "." |
PT TO: user.@domain.name | ユーザ名末尾が "." |
RCPT TO: user..name@domain.name | "."が連続している |
RCPT To: Hogemoge Taro taro@domain.name | ヘッダのTo:を丸ごとコピー。sendmailは これでも動いてしまう |
RCPT TO: |
空白をクオートしていない。 サーバによって解釈が異なるので危険 |
RCPT TO: user@.domain.name | ドメイン頭に"." |
RCPT TO: <@domain.name> | ユーザ名が空。 PostfixではMAILER-DAEMONに配送 |
MAIL FROM: まぁまぁww@domain.name | 8bit文字。UTF-8もダメ。 クオートしてもダメ。 |
MAIL FROM: #@[] | qmail の doublebounce。 []は空のIPアドレス |
RFCチェックを無効化する場合
# vim main.cf
strict_rfc821_envelopes = no
メールアドレス整合性をチェックしなくなってしまうため無効化する場合には注意
特殊メールアドレス送信の挙動について
拒否とはどのようにされるのか
# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 dev-winf01 ESMTP
helo test
250 dev-winf01
mail from:<test@localhost.localdomain>
250 2.1.0 Ok
rcpt to:<-hogehoge@gmail.com>
501 5.1.3 Bad recipient address syntax
quit
221 2.0.0 Bye
Connection closed by foreign host.
ハイフンから始まるアドレスは確かに上記のように拒否される
# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 dev-winf01 ESMTP
helo test
250 dev-winf01
mail from:<testplocalhost.localdomain>
250 2.1.0 Ok
rcpt to:<hoge..hoge@gmail.com>
250 2.1.5 Ok
data
354 End data with <CR><LF>.<CR><LF>
From:test@localhost.localdomain
To:hoge..hoge@gmail.com
Subject:test
testmail
.
250 2.0.0 Ok: queued as 6179380686
quit
221 2.0.0 Bye
Connection closed by foreign host.
ドットが連続しているアドレスはそのまま行けてしまう
]# mailq
-Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient-------
6179380686* 355 Wed Feb 18 17:22:02 testplocalhost.localdomain
"hoge..hoge"@gmail.com
メールキューを見てみるとダブルクオートが補完されている
ダブルクオートやでくくれば大体のアドレスはスルーするらしく、
postfixはドット始まりやドット連続のアドレスはダブルクオートを自動補完してしまう