Unlisting - Port Knocking for SMTP
Unlisting fights fire-and-forget spam by using a packet filter to block access to all MX hosts unless a connection is attempted to the primary MX first. If a host retries the secondary MX from the same IP address within a specified period, the message is accepted for further processing.
まず前提としてNolisting(日本ではGIONという名前で同様の手法が提案されている)を知ってたほうがわかりやすいのでNolistingの説明。
そのドメインでメールを受け取るサーバを知るには、DNSでMXと指定されているサーバを得るのだが、このMXは複数指定可能で優先順位をつけることが出来るようになっている。
普通はこの優先順位の高い方へと接続を試して、だめだったら次の低いサーバへと接続を試みる、となっている。
一般的なMTAではそういう風にちゃんとコーディングされてるのだけど、スパムソフトではそこまでちゃんと作っていないため、優先順位の一番高いものにアクセスしてダメだったら、あきらめてしまう場合がほとんどだ。
そこで、あえて一番優先順位の高いプライマリをアクセス出来ないIPを指定してやり、セカンダリを真のメールサーバにしておく。
すると、スパムソフトがメールサーバに到達することすら出来ずにスパムが排除されるというものだ。
で、これをもっとしっかりチェックするために、一旦プライマリに接続しにきて、その後ちゃんとセカンダリに接続にきたものだけを通すようしたのが、このUnlistingだ。
Nolistingだと、直接セカンダリに送ってくるスパムソフトは排除できないが、Unlistingなら排除できる。
ただ、IPが2つ必要とか結構めんどくさい構成になるわりに、それほど false negative が減るとは思えないので、まあしっかりやるならこうだな、という程度か。