ここでは、メールサーバー設定の考え方について書いておきます。
(下記の説明で誤りなどございましたら、ご連絡いただければ幸いです。)
1.リレーのパターン
基本的に、SMTPでのリレーのパターンは次の四通りがあります。
ローカル to ローカル
外部 to ローカル
ローカル to 外部
外部 to 外部
ローカルというのは、例えば、自サーバーでIPを付与しているネットワークです。
ローカルネットワークでは基本的には身元が判明しています。
例えば、192.168.1.などを内部ネットワークに与えている場合であれば、
そのIPを与えているコンピュータはLAN内のコンピュータですので
その身元は判明しているといえるでしょう。
また、プロバイダの下につながっている場合、
例えば、電話番号などで認証を取っているわけですし、
それに対してIPを与えるわけなので接続してくるユーザは顧客になります。
なので、その人員はとりあえず身元は判明していると考えられます。
一方、外部というのは見ず知らずの人間です。
ローカルではない世界中のあらゆる人間がその中に入ります。
下記の中で接続を許してはいけないのは、
ローカル to ローカル OK・・・知っているメンバーから知っているメンバーへ
外部 to ローカル OK・・・知らない人から、例えば、mydomain.comへ
ローカル to 外部 OK・・・知っている人から、好きなメールアドレスへ
外部 to 外部 NG・・・知らない人から知らない人へ
最後の外部から外部への接続です。
なぜなら、最後を許すということは見ず知らずの誰かが、勝手にサーバーを利用して
メールを送信することができてしまうわけで、しかも、送信していることに責任を取らなければ
ならないのは送信元であるこのサーバーになるからです。
ところで、例えば、出張に出ているとしたら、メールサーバーを外からも使いたいと
思うでしょう。
その場合、通常であれば契約しているプロバイダの持っているプロバイダのアクセスポイントに
接続し、そのプロバイダを通して、mydomain.comのメールサーバーへとアクセスします。
ですが、これを無制限に許すことは外部から外部へのメールの送信を許すことに
他なりません。
したがって、通常、smtpのRELAYを許すのは、127.0.0.1(自サーバ)及び、
192.168.*.*などといったローカルアドレスのみにするのが普通です。
では、外部からsmtpを使いたい時にはどうしたらよいのでしょうか?
その設定法についていくつか述べておきます。
[外部の接続IPが固定である場合]
IPが仮に固定だとしたら、そのPCを使用しているユーザは、AさんならAさんと分かっているため
そのIPからのRELAYを許可するのは楽な方法だといえるでしょう。
仮に使用しているユーザのIPが固定だとしたら、このIPが外部であったとしても
そのIPを使用しているユーザは顧客だと前もって分かっているからです。
この場合は、見かけ上、このIPは外部ですが、実質的には内部ネットワークを扱っているのと
同じものだといえるでしょう。
[ドメインで許可する]
tcpserverの場合、RELAYを許す設定として、192.168.*.*などのIPでの制限のほかに
=mydomain.comなどのドメインを元にした制御も可能なようです。
ですが、インターネット上を調べてみても、この書き方を紹介しているところは
IPでの制限に比べ、あまり多くはないようです。
それは、ドメインは、IPよりも偽証できる可能性が高いからなのではないでしょうか。
IPの場合、インターネットに接続できる状態であれば、 コンピュータは一意に定まり、
他のコンピュータがそれを詐称してもネットワークには届きません。
したがって、IPで許可してもそれを偽装して接続してくる可能性は比較的低いといえます。
(ないとはいえないようです。二つのネットワークカードがあった時、グローバルからの
ローカルアドレスの詐称をフィルタリングするという記述をすることは良くあるようですから。)
ですが、コンピュータが自分勝手に名前を名乗った場合、 IPさえ違えば、インターネットに
接続はできますのでどんな名前を名乗ろうが別にどうでもいいわけです。
なので、接続できるIPを持っている見ず知らずのコンピュータが自分は、
hostA.mydomain.comですよ。
と名乗ってきた場合、上記設定をするとmydomain.comというドメイン名を
持っているからということでそのホストからのメールを中継してしまうことになります。
したがって、domain名でのRELAY許可は避けることが望ましいといえるのでしょう。
[@mydomain.comからのメールを全て転送]
プロバイダの中には、@mydomain.comで来たメールを全て転送するような設定に
なっているところもあるようです。
ですが、これは危険すぎます。
telnet でport 25にアクセスすると分かりますが、smtpの形式ではfromを二回名乗ります。
上記の設定は、最初のfromでmydomainを名乗れば、後のfromでどんなアドレスを名乗っても
自由に転送ができる設定です。
これは、本質的にはSPAMメールを許可してしまう良くない設定だといえるでしょう。
SendmailのOptionにこの設定があるようです。
調べた限りでは、qmailではこの使い方はできないようになっています。
[POP Before SMTP]
以上のような問題は、smtpにtelnetやpopのような認証機能(例えばパスワード)がないことに
よって起こります。
ですからSMTPとは別の何らかの形でユーザが確かに身元がわかっている人間であるという
確認を行うことさえできれば、そのIPから転送を許すことはかまわないわけです。
そこで、pop before smtpが出てきます。
POPはメールを受信するためのプロトコルでユーザIDの他にパスワードでの認証機能がついています。
自分のアドレスに届いているメールを誰もが勝手に受け取れたら困るからです。
そこで、POP before smtpでは、popでの接続を行うことができた人にリレーをすることを許しています。
なぜなら、popで接続できたということは少なくともユーザは、ユーザIDとパスワードを知っていると
いうことになりますから、そのユーザは例えば、userA@mydomain.com
というメールアドレスのユーザIDとパスワードを知っているuserAという人である可能性が
高いわけです。
このことは、例えば、
自分はuserAだぞ。
と不正ユーザが名前を偽装してきたとしてもパスワードを知らなければ、
smtpでの転送ができないことを意味します。
したがって、POPをできたホストに対して、そのIPからの転送を一時的に許可することで
既知のユーザにだけ、自サーバのsmtpの利用を許すことができることになります。
ですが、POPは平文でパスワードを流すのでそれを盗まれてしまうとどうしようもありません。
(これは、例えば、telnetで外部から接続している場合でも同じです。)
したがって、認証としてより安全なのはsmtpのPOP認証の時にsshへのポートフォワーディングをするか、
POPで認証する代わりにAPOPで認証を行うかのどちらかだと思います。
(上については、やり方があるようです。下はまだあるかどうか分かりません。)
この観点から言えば、本来、通常使っているPOPについても安全とは言えないわけで、
本当にセキュリティを考えるなら、POPについてもAPOPのみの接続に限定した方が
良いと考えられます。
|
インターネットセキュリティ
不正アクセスの手法と防御
↑ご購入は、こちらからどうぞ。
出版社/著者からの内容紹介 インターネットという巨大なネットワークには、数多くの恩恵とともに、リスクも存在する。何が危ないのか?
どう守ればよいのか? 技術者・現場の担当者のために、攻撃の原理から、いかにセキュリティを保つかという具体的対策まで徹底的に解説。
内容(「BOOK」データベースより) インターネットという巨大なネットワークには、数多くの恩恵とともに、リスクも存在する。いかにセキュリティを保つか徹底的に解説。
内容(「MARC」データベースより) インターネットという巨大なネットワークには、数多くの恩恵とともにリスクも存在する。そんな中で、いかにセキュリティを保てば良いのかを徹底的に解説。何が危ないのか?
どう守ればよいのか?
(C) Amazon.co.jp
|