|
メールサーバーの構築
|
メールサーバーについて電子メールシステムについてメールアカウントの作成POP/IMAPサーバーの設定Sendmailの設定Postfixの設定ユーザー認証によるメール送信SMTP AUTHの設定POP/IMAP before SMTP
dracによるPBS構築
|
SMTP AUTH(SMTP認証)とは電子メールを送信するときに メールサーバー に対してユーザー名とパスワードを送信し、認証が行われればメールサーバーがそのメールの転送を受け付ける、という最も解りやすい認証方法です。 しかしSMTP AUTHは、メール送信の認証方法としては2000年ごろから標準化が進められてきていていますが、まだSMTP AUTHに非対応の MUA のユーザーが多く存在することから完全な標準化には至っていないというのが現状です。 ところで、 「どうしてそんなあたりまえの認証方法が最初から使われなかったの?」 という素朴な疑問が湧いてくることと思います。
こちら
でしたから、メールの送信 プロトコル である SMTP に「ユーザーを認証するという概念が存在しなかった」ため、認証システムの組み込みが後付けになってしまったから、というのがその疑問に対する答えです。
このことはIPv4における
グローバルIPアドレス
の枯渇問題
とはいえ、余程のこだわりがある人を除けば、世の中の大部分のユーザーが利用するMUAは既にSMTP AUTHに対応していると考えても差し支えのない状況になっていますから、むしろ積極的にSMTP AUTHを利用し、完全標準化の一翼を担うことも社会貢献の一つではないでしょうか。 WBEL や CentOS でのSMTP AUTHの構築は、 SASL で認証を担うアプリケーション "cyrus-sasl" と MTA である Postfix または Sendmail との連携で行います。 cyrus-saslは非常に多機能で、一般的な テキスト 認証の他に暗号化認証も扱うことができますし、 構築中のLinuxサーバー の ユーザーアカウント 名とパスワードをそのまま認証に使うことも、別の データベース を使って認証を行うこともできるようになっています。 ただ、自宅サーバーでの電子メールの利用では必要以上に高度な セキュリティ やパスワード管理は不要と思われますので、ここでは「サーバー上のユーザーアカウントに対してテキストで認証する。」という一番簡単な方法でのSMTP AUTHの設定を説明します。 ところで、既に一通りメールサーバーの構築が終わっている環境では、「部分的なメール送信許可の設定」あるいは「SMTP AUTH以外の認証」が少なからず有効になっていると思われます。 しかしこれらの仕組みが機能していると、外部からメールが送信できたのが、これから構築するSMTP AUTHの機能によるものなのかどうかがハッキリしなくなります。 そこで、 ■ MTAとしてPostfixをご利用の場合
主設定ファイル
"/etc/postfix/main.cf"
■ MTAとしてSendmailをご利用の場合
転送許可設定ファイル
"/etc/mail/local-host-names"
■ POP/IMAP-before-SMTPをご利用の場合
ご利用のサーバー環境に合わせて、WBEL3及びCentOS3の場合はこちら
|
|||||||||
なお、これらの設定を変更した場合は、MTAや関係アプリケーションの再起動や設定の再読み込みなどを行い、変更した設定がきちんと反映されるように注意してください。忘れがちなので老婆心ながら。 |
などの一時的な事前の設定変更を行い、「SMTP AUTHがなければメールが送信できない」状況を作ったたうえでSMTP AUTHの構築作業を行うことをおススメします。 ![]() ![]()
|
|||||||||
MUA(ローカルメーラー)の設定手順としては逆になりますが、 メールサーバー 側での SMTP AUTH の設定は、途中で MUA からの送信確認を行いながら作業を進めるとやりやすいので先にMUA側の設定について説明します。 |
||||||||||
|
SMTA AUTHは電子メールシステムにおいては後から追加された関係で、メール アカウント の設定ウィザードでダイレクトに設定可能なMUAは少なく、ウィザードで基本的な設定を行った後に、作成されたアカウントの送信設定を変更するものが大部分です。 またMUAの種類ごとで「SMTP AUTH」の設定に使われる用語は異なりますから、詳しくはご利用のMUAのマニュアルなどで確認する必要があります。 代表的なMUAのSMTP AUTHの設定は以下のようになります。 ■ Outlook、OutlookExpress、WindowsMail、WindowsLiveMailなど 「アカウント設定」→「サーバー」→「このサーバーは認証が必要」または「送信サーバーは認証が必要」にチェックを入れる。 ![]() のSMTP AUTHを有効にする(WindowsLiveMail)
↓
![]() SMTP AUTHを有効にする(WindowsLiveMail) ■ ThunderBird →「送信(SMTP)サーバの設定」から「セキュリティと認証」の「ユーザ名とパスワードを使用する」にチェックを入れる。 ■ Eudora →「ツール」→「オプション」→「メールの送信」→「認証を許可」にチェックを入れる ■ Becky! →「ツール」→「メールボックスの設定」→「詳細」タブ→「SMTP認証」にチェックを入れる MUAの設定が終わったら、 構築中のLinuxサーバー を送信メールサーバーアドレスに指定したうえで、ISP等のメールアドレスに宛てにテスト送信を行い、ご自身のメールサーバーが外部に中継送信できないことを確認してから以降のSMTP AUTHの構築作業を行ってください。 ![]() ![]()
|
|||||||||
cyrus-saslの確認と自動起動設定この コンテンツ の説明に従って WBEL 、 CentOS の インストール を行っている場合、 SMTP AUTH の構築に必要な SASL アプリケーション として "cyrus-sasl" がインストールされているはずです。 |
||||||||||
|
まず、
サブネット
内の適当な
クライアント機
から
SSHクライアント
で
構築中のLinuxサーバー
に
ログイン
します
それから su コマンドで アカウント を "root" に変更し、 rpm コマンドで "cyrus-sasl" を含む RPM を一覧します。 この例はCentOS5の場合です。 ディストリビューション によってバージョンとパッケージ構成が若干異なりますが、少なくとも、
の3種類がインストールされていればOKです。それ以外のパッケージは外部 データベース の参照や暗号化などに必要なものです。 もしも必要なパッケージのインストールが確認できないときは、 yum を利用してインストールを行ってください。 次にcyrus-saslの基本設定ファイルの内容を確認します。 |
|||||||||
WBEL及びCentOSのアーキテクチャについては、こちら、
![]() ![]() ![]() ![]() ![]() |
cyrus-saslの基本設定ファイルは、インストールしたWBEL及びCentOSがx86用(32 ビット アーキテクチャ )の場合は "/usr/lib/sasl2/smtpd.conf" 、AMD64またはEMT64用(64ビットアーキテクチャ)の場合は "/usr/lib64/sasl2/smtpd.conf" と場所が異なりますので注意してください。 内容を cat コマンドで表示してみると、設定ファイルの内容は以下の一行だけになっているはずです。 |
|||||||||
この設定の内容を修正することで、外部のデータベースを参照したり、暗号化を有効にしたりすることができます。 |
直接の意味としては 「パスワードチェック方法としてに"saslauthd"を用いる」 となります。
WBELやCentOSのインストールで
"cyrus-sasl"が
導入されると、
デフォルト
で
"/etc/init.d/saslauthd"
という起動
スクリプト
が作成されますが、この起動スクリプトは
"/etc/shadow"
「サーバーのアカウント名とパスワードで認証する」 という動作となります。もちろん設定の修正を行う必要はありません。 設定の内容を確認したら、 "/etc/init.d/saslauthd" を起動します。
saslauthd
の起動、停止、再起動などの操作については、
![]() ![]()
|
|||||||||
SendmailのSMTP AUTHの設定Sendmail で SMTP AUTH を利用するには、主設定ファイルである "/etc/mail/sendmail.mc" を編集して、 "/etc/mail/sendmail.cf" を作り直してSendmailの再起動を行います。 |
||||||||||
|
"/etc/mail/sendmail.mc"
の編集については
SMTP AUTHを有効にする設定(Sendmail)WBEL3 及び CentOS3 では 47行目 、WBEL4及びCentOS4では 48行目 、CentOS5では 52行目 あたりに記述があります。 デフォルト の "/etc/mail/sendmail.mc" では、
と、SMTP AUTHを利用するための設定が先頭の "dnl" で無効化されていますから、これを削除して、
と、有効化します。 一行目は認証許可の仕組みに関する指定、二行目はSendmailが利用する認証方法の指定となります。 記述には暗号化認証などの不必要なものも含まれますが、cyrus-saslで有効にしていない認証方法は実質的に動作しませんのでそのままで構いません。
編集が終わったら
"/etc/mail/sendmail.mc"
を保存して、
"/etc/mail/sendmail.cf"
の作成を行い、Sendmailの再起動を行うと設定が有効になります。
前述の "saslauthd" が起動していれば、ここでSMTP AUTHは利用可能になっているはずです。 前述でSMTP AUTHによる送信設定を行った クライアント MUA から、外部のメールアドレスに対して送信を行ってみて、きちんと送信できれば設定完了です。 ![]() ![]()
|
|||||||||
PostfixのSMTP AUTHの設定Postfix で SMTP AUTH の利用を設定するには、主設定ファイルである "/etc/postfix/main.cf" を編集します。
まず、
サブネット
内の適当な
クライアント機
から
SSHクライアント
で
構築中のLinuxサーバー
に
ログイン
します
それから
su
コマンドで
アカウント
を
"root"
に変更し、
cp
コマンドでバックアップを作成した後、
nano
エディタで
"/etc/postfix/main.cf"
を開きます
↓
![]() nanoで"/etc/postfix/main.cf"を開く |
||||||||||
後でチェックしやすいように、設定ファイルの末尾に記述しておくと良いでしょう。 |
"/etc/postfix/main.cf"には、SMTP AUTHに関して予め記述されている設定例はありませんので、以下のように追加記述します。
"smtpd_sasl_auth_enable = yes" は、「 SASL による認証を利用する」という宣言で、これを記述しないとcyrus-saslとの連携が行われませんので必ず記述します。 |
|||||||||
"smtpd_recipient_ restrictions" ディレクティブの詳細についてはこちら ![]() |
"smtpd_recipient_restrictions" ディレクティブ は、Postfixのメール中継制御を担うものですが、既に記述があるときは、 "permit_sasl_authenticated" は「SASLで認証されたメールの送信を受け付ける」という設定を、 "permit_mynetworks" と "reject_unauth_destination" の間に追記します。 |
|||||||||
|
"smtpd_recipient_restrictions" の記述がない場合は、上の全文を新規に記述してください。 またこのディレクティブは本来一行に記述すべきものを、 ",(カンマ)" で区切って改行したものです。 従って、"/etc/postfix/main.cf"の記述ルールに従って、2行目以降の行の先頭には必ず スペース を入れなければならない点に注意してください。 以下にコピー&ペースト用の テキスト ファイルの掲載しますので、必要に応じて利用してください。
編集が終わったら、ファイルを保存してnanoエディタを終了してください
Postfixの再起動または設定の再読み込みを行うと設定が有効になります。
Postfixの再起動、設定ファイルの再読み込みについては、
前述の "saslauthd" が起動していれば、ここでSMTP AUTHは利用可能になっているはずです。 前述でSMTP AUTHによる送信設定を行った クライアント MUA から、外部のメールアドレスに対して送信を行ってみて、きちんと送信できれば設定完了です。 ![]() ![]()
|
|
ユーザー認証によるメール送信
<<Previous
|
Next>>
POP/IMAP before SMTP
|
このサイトは既に更新を終了していますが、今のところ店じまいの予定はありません。 リンクフリー ですので、趣味や勉強のためでしたら、引用、転用、コピー、朗読、その他OKです。このサイトへのリンクについては こちら をご覧ください。 |
”Linux”は、Linus Torvalds 氏の各国における登録商標です。”Red Hat”及びRed Hatのロゴおよび Red Hat をベースとしたすべての商標とロゴは、各国におけるRed Hat, Inc. 社の商標または登録商標です。その他のプログラム名、システム名、製品名などは各メーカー、ベンダの各国における登録商標又は商標です。 |