■ SMTP-AUTHとは
送信者認証、ともいいます。■Cyrus-SASLのインストール
メールサーバを使ってメールを送信する際に、
IDとパスワードを送信して、それがあっている場合だけ送信を許可し
合致しないものはすべて拒否します。
毎度、送信する時に相手が正規のユーザなのかを確かめるので、とてもセキュリティが高いです。似たようなものではPOP before SMTPというのがあります。
Yahoo!メールもこれですが送信する前にボックスが空であってもPOP受信をしてから
送信するというもの。POP受信したときのIPアドレスで、一定時間、そのIPから送信できるというもので
採用しているサーバも結構あるのですがIPと時間で管理するよりも送信時に認証したほうが
セキュアであり、今後はSMTP-AUTHが普及してくると推測しています。
過半数が仕様しているであろうOutlookもこれに対応しているため、対応性もあるでしょう。
ここではPostfixを使って、SMTP-AUTHを使う方法を書きますなお、先にrpm -e postfix、rpm -e fetchmailとコマンドを打ち既存のを消して置いてください。
#POP before SMTP(PbS)はいちいち送信前に受信するのが面倒でもある・・・
#Vine Linux2.5/2.6での場合で記述します。3.xでは通用しませんので、こちらを参照
SMTP認証で使用するデーモンをインストールします■Postfixの再構築
Project Cyrusにソースがありますが
Vine Plus にRPMがあるので、今回はこちらを使います。cyrus-saslとcyrus-sasl-develの2種類をとってきてください。
# rpm -ivh cyrus-sasl-1.5.27-17vl1.i386.rpm
# rpm -ivh cyrus-sasl-devel-1.5.27-17vl1.i386.rpm
VineLinuxでは標準でインストールされているPostfixは対応していませんので■main.cfの編集
ソースからコンパイルするか、今回述べるようにSRPMをリビルドする必要性があります
今回もまた利便性やもし失敗してもrpm -eでさっくり消せる安心を考えてRPMを使います
どうも環境によっては思うようにリビルドがうまくいかないことがあるらしく
こちらでVineな冒険様にご協力いただきSMTP-AUTH対応にリビルドしてあるものを用意しました。
確実・スピードを急ぐのであれば以下のRPMをどうぞ。(DLして普通にrpm -iでインストール)
→postfix-1.1.13-0vl0.26-SMTP-auth.i386.rpm (2004.10現在、最新)
≫自作リビルド方法
先にSRPMSから postfix-1.1.13-0vl0.26.src.rpmをダウンロードしておいてください。
$ rpm -ivh postfix-1.1.13-0vl0.26.src.rpm
$ cd ~/rpm/SPECS
$ vi postfix.spec
(/%build などで、以下の部分を編集する)
%build make makefiles CCARGS=-DUSE_SASL_AUTH" \ -I/usr/include" AUXLIBS="-L/usr/lib -lsasl" make DEBUG="" OPT="$RPM_OPT_FLAGS"
:wq
$ rpm -bb postfix.spec (コンパイルされるので、しばし待ちます)
$ su
# rpm -ivh ../RPMS/i386/postfix-1.1.11-0vl3.i386.rpm
まずは基本部分を編集しましょう。■SASLデータベースの設定
既にある場合は修正、ない場合は追加。次に、同じくmain.cfへSMTP認証するという設定を付け加えます。
# サーバのドメイン、DDNS名を入力
myhostname = scne.jp
mydomain = scne.jpmyorigin = $mydomain
inet_interfaces = all
alias_maps = hash:/etc/postfix/aliases
alias_database = hash:/etc/aliases
smtpd_banner = $myhostname ESMTP demon
mynetworks = 192.168.0.0/24, 127.0.0.0/8
allow_percent_hack = yes
swap_bangpath = yes
smtpd_helo_required = yes
disable_vrfy_command = yes
strict_rfc821_envelopes = yes
allow_untrusted_routing = no
smtpd_client_restrictions = permit_mynetworks, reject_unknown_client, permit# メールアドレスの@より右を入力
mydestination = $myhostname, mail2.scne.jp# Courier-IMAP使用中の場合、先頭に#をつける。
そうでない場合は#をつけず以下のように記述
mail_spool_directory = /var/spool/mail# Virtual domainを使っている場合、#をはずす
virtual_alias_maps = hash:/etc/postfix/virtual
以下のような文章を、/etc/postfix/main.cfに追記してください
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname
smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, check_relay_domains, reject
■ SASLユーザの管理
まずはパスワード保存用のファイルの作成をします
# vi /usr/lib/sasl/smtpd.conf
pwcheck_method: sasldb
:wq次に、SMTP送信のための認証ユーザを作成します。
これがメーラーから送信するときに使用するID、パスワードです。
※初回の登録は失敗しますので、一番最初に限って、2回ほど設定してください
上記のscne.jpは、先ほどmain.cfで入力したmyhostnameと同じものを入力してください。
# /usr/sbin/saslpasswd -c -h scne.jp USER-ID
Password: Again (for verification):
USER-IDは登録するユーザ名なので、お好きな名前を。(基本的にシステムに登録されたユーザでないとエラー)
Password、Againの後にパスワードを入力しEnterを押します。(入力中、何も出ませんが不具合ではありません)↓一番はじめだけ、もう1度おなじコマンドで再登録します。
# /usr/sbin/saslpasswd -c -u -h scne.jp USER-ID
Password: Again (for verification):このデータベースをPostfixが使えるように権限変更をして、再起動します
# chgrp postfix /etc/sasldb # chmod 640 /etc/sasldb
# /etc/rc.d/init.d/postfix restart以上でサーバ側の設定は完了です。
送信者としてみとめるユーザの管理方法です。■ メーラーの設定方法
≫パスワードを変更する場合
先ほどの登録するときと同じコマンドをうち、Passwordに新しいものを。≫登録されているユーザを確認する場合
/usr/sbin/sasldblistusers とコマンドを打ちます≫登録されているユーザを削除する場合
# /usr/sbin/saslpasswd -d -u -h scne.jp USER-ID
と打ちます。scne.jp、USER-IDは前途のとおり、削除したいものに当てはめてください。≫SMTP-AUTHになっていることを確認したい
telnet localhost 25 とコマンドを押すと、SMTPサーバに接続します。
220 (server.jp) ESMTP Postfixなどと接続が出来たら
EHLO localhostとタイピングしてEnter!
250-AUTH PLAIN LOGIN DIGEST-MD5 CRAM-MD5と出てくれば設定OKです
確認したらquitと打ちEnterキーで終了してください
サーバ側は対応していても、送信するクライアントで設定・対応しなければ、当然使えません。
ということで使用者の多いであろうメーラーの設定方法を書きます。≫Outlook Express (Windows標準メーラー)
1.上側メニューから[ツール]→[アカウント]とクリック
ここでアカウントの設定を管理できますが、
存在しない場合は先に、作成しておいてください。
すでにサーバアカウントのメール設定があるもの、として次へ進みます2.SMTP-AUTHとして使うアカウント名をダブルクリックしてください。
3. サーバータブをクリック
4. 「このサーバーは認証が必要」のチェックをONにする
5. ログインするIDと、先ほど設定の送信IDが一致する場合、ここでOKで閉じて設定完了
違う場合はその右側にある「設定」をクリック
6.「次のアカウントとパスワードでログオンする」にチェック(クリック)
7. アカウント名、パスワードは先ほどSASLユーザを作成した時のを入力
8. すべてOKで閉じる。≫Becky! 2.x (企業などでも使われることがあるシェアウェア)
すでに使用中のアカウントをSMTP−AUTHにする場合、
そのアカウント名の上で右クリックし、プロパティを選びます。
1.詳細タブをクリック
2.「SMTP認証」にチェックを入れる
3.ユーザーID、パスワードにはSASLに登録したときのものを入力
4.OKをクリック