メインメニュー
Powered By

vine linux4.~
apache2.~
php5.~
Mysql5.~
xoops cube2.~
hp
自宅サーバより発信しています

 TOP  >  Vine linux  >  SMTP-AUTH設定手順
トップ  >  SMTP-AUTH設定手順



Maildir を作製する

Maildir方式を使用するにあたり /home/ユーザー名 の中にMaildir と言うディレクトリを作成する必要があります。

# mkdir /home/ユーザー名/Maildir

/home/ユーザー名/Maildir のアクセス権を変更

# chown -R 所有者:グループ名 /home/ユーザー名/Maildir

例)
# chown -R isapa:isapa /home/isapa/Maildir ← 所有者、グループ名が isapa の場合

※ 所有者、グループ名が同じの場合。


※ Maildir を自動作製する
/etc/skel/の中身のディレクトリがユーザーを追加した時に自動で作成されます
なので skel の中に Maildir フォルダを作成しておくといちいち、後からディレクトリを作ったり、アクセス権を
変更する手間が省かれます。


Cyrus SASLのインストールと設定

SMTP-AUTHを導入するには Cyrus SASLが必要ですが、Yosiの場合は最初からcyrus-saslだけインストールされていました。


# apt-get install cyrus-sasl cyrus-sasl-devel cyrus-sasl-md5 cyrus-sasl-plain db4-devel ← インストール
パッケージリストを読みこんでいます... 完了
依存情報ツリーを作成しています... 完了
* db4-devel は既に最新バージョンがインストールされています。
以下のパッケージが新たにインストールされます:
cyrus-sasl-devel cyrus-sasl-md5 cyrus-sasl-plain
アップグレード: 0 個, 新規インストール: 3 個, 削除: 0 個, 保留: 1 個
643kB のアーカイブを取得する必要があります。
展開後に 1809kB のディスク容量が追加消費されます。
取得:1 http://updates.vinelinux.org 3.2/i386/devel cyrus-sasl-devel 2.1.18-0vl3 [560kB]
取得:2 http://updates.vinelinux.org 3.2/i386/updates cyrus-sasl-md5 2.1.18-0vl3 [58.7kB]
取得:3 http://updates.vinelinux.org 3.2/i386/updates cyrus-sasl-plain 2.1.18-0vl3 [24.5kB]
643kB を 1s 秒で取得しました (451kB/s)
変更を適用しています...
準備中... ########################################### [100%]
1:cyrus-sasl-devel ########################################### [ 33%]
2:cyrus-sasl-md5 ########################################### [ 66%]
3:cyrus-sasl-plain ########################################### [100%]
完了

saslデータベースの設定

# vi /usr/lib/sasl2/smtpd.conf ← 新規作成
 i キー(入力モード)
下記を追記します
pwcheck_method: auxprop
auxprop_plugin: sasldb
mech_list: cram-md5 digest-md5 plain login

記載したら Esc キー(コマンドモード) :wq で保存

Postfixがsasldbを利用できるようにグループ、パーミッションを変更します。
※ ファイルやディレクトリが無いというエラーが出る場合は認証ユーザーの登録後に行ってください。

# chown -R root:postfix /etc/sasldb2
# chmod 640 /etc/sasldb2

# /etc/rc.d/init.d/saslauthd start ← saslの起動
saslauthdを起動中: [ OK ]

# /sbin/chkconfig saslauthd on ← sasl自動起動設定

# /sbin/chkconfig --list saslauthd ← 自動起動設定の確認
saslauthd 0:off 1:off 2:off 3:on 4:on 5:on 6:off ← ランベル3〜5 が on か確認



認証ユーザーの登録と削除



※ ユーザ名IDは実在するユーザ名を指定

# /usr/sbin/saslpasswd2 -u xxxxx.com -c ユーザーID ← ユーザー登録
Password: ← パスワード
Again (for verification): ← パスワード確認

1度目の登録でエラーがでる場合はもう一度登録を行って下さい。
2度目で多分いけると思います。


設定したユーザ名・パスワードを削除する場合

# /usr/sbin/saslpasswd2 -u xxxxx.com -d ユーザーID ← ユーザー削除


登録している認証ユーザーの確認

# /usr/sbin/sasldblistusers2 ← 認証ユーザー確認
yosi@xxxxx.com: userPassword ← このように表示されればOK




Postfixのリビルド

Vine標準でインストールされているPostfixではSMTP-AUTHが使えませんので、SRPMをリビルドしてアップグレードと
いうかたちでインストールすることにします。



# apt-get build-dep postfix ← リビルドに必要なファイルをインストール
パッケージリストを読みこんでいます... 完了
依存情報ツリーを作成しています... 完了
以下のパッケージが新たにインストールされます:
MySQL-devel openldap-devel postgresql-devel postgresql-libs
アップグレード: 0 個, 新規インストール: 4 個, 削除: 0 個, 保留: 1 個
2285kB のアーカイブを取得する必要があります。
展開後に 6653kB のディスク容量が追加消費されます。
続行しますか? [Y/n]y ← y応答
取得:1 http://updates.vinelinux.org 3.2/i386/plus postgresql-libs 7.4.10-0vl1 [163kB]
取得:2 http://updates.vinelinux.org 3.2/i386/plus MySQL-devel 4.0.25-0vl0 [930kB]
取得:3 http://updates.vinelinux.org 3.2/i386/plus openldap-devel 2.1.30-0vl1 [536kB]
取得:4 http://updates.vinelinux.org 3.2/i386/plus postgresql-devel 7.4.10-0vl1 [656kB]
2285kB を 1s 秒で取得しました (1816kB/s)
変更を適用しています...
準備中... ########################################### [100%]
1:postgresql-libs ########################################### [ 25%]
2:MySQL-devel ########################################### [ 50%]
3:openldap-devel ########################################### [ 75%]
4:postgresql-devel ########################################### [100%]
完了

ここからの作業(リビルド)は一般ユーザーで行います。

$ apt-get source postfix ← ソースパッケージのダウンロード
パッケージリストを読みこんでいます... 完了
依存情報ツリーを作成しています... 完了
1721kB のソースアーカイブを取得します。
取得:1 http://updates.vinelinux.org 3.2/i386/main postfix 2.0.20-0vl5.1 (srpm) [1721kB]
1721kB を 0s 秒で取得しました (2064kB/s)
1:postfix ########################################### [100%]

$ vi rpm/SPECS/postfix.spec ← SPECSファイル編集
 i キー(入力モード)

Release: 0vl5.1sasl ← saslを追記(AUTHバージョン)

112行目付近
%build
make tidy
make makefiles \\
CCARGS=\"-DMAX_DYNAMIC_MAPS \\
-DUSE_SASL_AUTH -I/usr/include/sasl \\ ← 追記
-DHAS_LDAP \\
-DHAS_PCRE -I/usr/include/pcre \\
-DHAS_MYSQL -I/usr/include/mysql \\
-DHAS_PGSQL -I/usr/include/pgsql\" \\
AUXLIBS=\"-L/usr/lib/sasl2 -lsasl2\" ← 追記

記載したら Esc キー(コマンドモード) :wq で保存

$ rpmbuild -bb rpm/SPECS/postfix.spec ← ビルド開始

リビルドは結構時間がかかりますので気長に待ちましょう(^^♪

$ cd rpm/RPMS/i386 ← リビルドしたファイルがある場所に移動

$ su ← rootになる
Password:

# rpm -Uvh postfix-2.0.20-0vl5.1sasl.i386.rpm ← インストール(アップグレード)
準備中... ########################################### [100%]
1:postfix ########################################### [100%]
Shutting down Postfix: [ OK ]
Starting Postfix: [ OK ]


※注意!!
リビルドで作製したPostfixは、Aptでアップグレードした場合、送受信が上手く出来なくなります。
各種対処方法のページを参考に、Aptのアップグレード対象から除外して下さい。


リビルドに失敗する場合は、YosiがリビルドしたSMTP-AUTH対応Postfixをこちらからダウンロードする事が可能です。

postfix-2.0.20-0vl5.1sasl.i386

Postfixの設定



# vi /etc/postfix/main.cf ← 設定ファイル編集

myhostname = server.xxxx.net ←ホスト名.ドメイン名を指定

mydomain = xxxx.net ← ドメイン名を指定

myorigin = $mydomain

inet_interfaces = all

mydestination = $myhostname, localhost.$mydomain $mydomain

# 550を指定し、存在しないユーザー宛てのメールを拒否し、即座にエラーメッセージを返すようします

unknown_local_recipient_reject_code = 550 ← コメントにする (# があれば削除)
#unknown_local_recipient_reject_code = 450 ← # をつけてコメントアウト

mynetworks = 192.168.0.0/24, 127.0.0.0/8 ← 内部ネットワークアドレスとローカルホストアドレスを指定

relay_domains = $mydestination

alias_maps = hash:/etc/postfix/aliases

alias_database = hash:/etc/postfix/aliases

home_mailbox = Maildir/ ← メールボックスをMaildir方式を指定


※ メールボックスと、メールに容量制限する場合以下の二項目を追記します

mailbox_size_limit = 30720000 ←メールボックスの容量制限(例 30Mb)

message_size_limit = 1024000 ←メールのサイズ容量制限(例 1Mb)


smtpd_banner = $myhostname ESMTP unknown ← メールサーバー名を隠す


※メールボックスをMaildir方式を使用するので以下の二項目をコメントアウト

#mail_spool_directory = /var/spool/mail

#mailbox_command = /some/where/procmail -a \"$EXTENSION\"


allow_percent_hack = yes

smtpd_sasl_auth_enable = yes ← 追記(cyrus-saslによるSMTP認証機能を有効に)

broken_sasl_auth_clients = yes ← 追記(Outlook Expressの認証でlogin可能)

smtpd_sasl_local_domain = $mydomain ← 追記(ローカル認証のREALMの指定)


フィルタをかけるの設定をまだしていない場合は下記を追記

smtpd_recipient_restrictions =
permit_mynetworks,
permit_sasl_authenticated, ← SMTP_AUTHに認証されたクライアントを許可
reject_unauth_destination

フィルタをかけるの設定をしている場合はSMTP-AUTHの記述のみ追記

smtpd_recipient_restrictions =
permit_mynetworks,
regexp:/etc/postfix/recipient_checks.reg,
reject_non_fqdn_recipient,
permit_sasl_authenticated, ← 追記(SMTP_AUTHに認証されたクライアントを許可)
reject_unauth_destination

# /etc/rc.d/init.d/postfix restart ← 設定終了後に再起動




Postfixのチェック

Postfixの再インストール後にパーミッションが変わっていることがあるので、チェックと再設定を行います。


# /usr/sbin/postfix check ← チェック
何も表示されなければOK

Yosiの場合、下記のようなエラーが出ました。
postfix/postfix-script: warning: not owned by root: /var/spool/postfix

/var/spool/postfix (main.cfのqueue_directory) はrootがオーナーでないと駄目らしいです。

# chown -R root:root /var/spool/postfix ← rootをオナーに変更

/var/spool/postfix 以下のディレクトリはpostfixがオーナでないと駄目なので変更

# chown -R postfix /var/spool/postfix/* ← postfixをオーナーに変更

# /usr/sbin/postfix check ← チェック

これでいけると思ったのですが今度は下記のエラーが…
postfix/postfix-script: warning: not owned by group postdrop: /var/spool/postfix/public
postfix/postfix-script: warning: not owned by group postdrop: /var/spool/postfix/maildrop

下記コマンドでグループを変更
# chgrp postdrop /var/spool/postfix/maildrop
# chgrp postdrop /var/spool/postfix/public

# /usr/sbin/postfix check ← チェック
何も表示されなくなりました(^^♪

正しいパーミッションはこんな感じです

# ls -la /var/spool/postfix/ ← パーミッションをチェック
合計 60
drwxr-xr-x 15 root root 4096 Mar 23 12:52 ./
drwxr-xr-x 9 root root 4096 Mar 20 18:53 ../
drwx------ 17 postfix root 4096 Mar 23 12:52 active/
drwx------ 5 postfix root 4096 Mar 23 12:52 bounce/
drwx------ 2 postfix root 4096 Mar 23 12:52 corrupt/
drwx------ 2 postfix root 4096 Mar 23 12:52 defer/
drwx------ 2 postfix root 4096 Mar 23 12:52 deferred/
drwx------ 2 postfix root 4096 Mar 23 12:52 flush/
drwx------ 2 postfix root 4096 Mar 20 18:53 hold/
drwx------ 17 postfix root 4096 Mar 23 15:17 incoming/
drwx-wx-wt 2 postfix postdrop 4096 Mar 23 12:52 maildrop/
drwx------ 2 postfix root 4096 Mar 23 12:52 pid/
drwx--x--- 2 postfix root 4096 Mar 23 13:29 private/
drwx--x--- 2 postfix postdrop 4096 Mar 23 13:29 public/
drwx------ 2 postfix root 4096 Mar 23 12:52 saved/



SMTP-AUTHの動作と認証テスト



SMTP-AUTH 動作テスト

$ telnet localhost 25 ← 25番ポートに接続
Trying 127.0.0.1...
Connected to localhost.
Escape character is \'^]\'.
220 server.xxxxx.com ESMTP unknown ← メールサーバー名が非表示になっている事を確認(main.cfの設定)
EHLO localhost ← EHLO localhostと入力
250-server.xxxxx.com
250-PIPELINING
250-SIZE 1024000
250-ETRN
250-AUTH PLAIN LOGIN DIGEST-MD5 CRAM-MD5 ← この2行の表示でSMTP-AUTHの動作はOK
250-AUTH=PLAIN LOGIN DIGEST-MD5 CRAM-MD5
250-XVERP
250 8BITMIME
quit ← 終了
221 Bye
Connection closed by foreign host.


SMTP-AUTH 認証テスト

$ printf \"ユーザーID\\0ユーザーID\\0パスワード\" | mmencode ← ユーザーID、パスワードを入力
dGVzdAB0ZXN0AHRlc3QyMjI= ← エンコードされたパスワードが表示される

$ telnet localhost 25 ← 25番ポートに接続
Trying 127.0.0.1...
Connected to localhost.
Escape character is \'^]\'.
220 server.xxxxx.com ESMTP unknown
EHLO localhost ← EHLO localhostと入力
250-server.xxxxx.com
250-PIPELINING
250-SIZE 1024000
250-ETRN
250-AUTH PLAIN LOGIN DIGEST-MD5 CRAM-MD5
250-AUTH=PLAIN LOGIN DIGEST-MD5 CRAM-MD5
250-XVERP
250 8BITMIME
AUTH PLAIN dGVzdAB0ZXN0AHRlc3QyMjI= ← AUTH PLAIN の後ろにエンコードしたパスワードを入力
235 Authentication successful ← 認証に成功
quit ← 終了
221 Bye
Connection closed by foreign host.

認証に失敗した場合のメッセージ
大体、誤ったユーザ名やパスワードを入力した場合に出ます。

535 Error: authentication failed




Courier-IMAPの導入と設定

※注意!!
今まで、当サイトのcourier-imapでPOP before SMTPを行っていた場合は各種対処方法のページの、
Aptのアップグレード対象から除外にcourier-imapを登録していたと思いますが登録を削除して下さい。


# rpm -e qpopper ← courier-imapをインストールするので削除

# rpm -e imap ← courier-imapと競合するので削除

# apt-get install courier-imap ← インストール
パッケージリストを読みこんでいます... 完了
依存情報ツリーを作成しています... 完了
以下の追加パッケージがインストールされます:
courier-authlib
以下のパッケージが新たにインストールされます:
courier-authlib courier-imap
アップグレード: 0 個, 新規インストール: 2 個, 削除: 0 個, 保留: 0 個
0B/852kB のアーカイブを取得する必要があります。
展開後に 2169kB のディスク容量が追加消費されます。
続行しますか? [Y/n]y ← y応答
変更を適用しています...
準備中... ########################################### [100%]
1:courier-authlib ########################################### [ 50%]
2:courier-imap ########################################### [100%]
完了

※ ここは特に設定する必要がないです。
 参考までに記載していますが、設定したい方は各自の環境で設定してください。

POP3 を使用しない場合
# vi /etc/courier-imap/pop3d ← 設定ファイル編集

POP3DSTART=NO ← NOに変更

POP3 over SSL を使用しない場合
# vi /etc/courier-imap/pop3d-ssl ← 設定ファイル編集

POP3DSSLSTART=NO ← NOに変更

IMAP を使用しない場合
# vi /etc/courier-imap/imapd ← 設定ファイル編集

IMAPDSTART=NO ← NOに変更

MAP over SSL を使用しない場合
# vi /etc/courier-imap/imapd-ssl ← 設定ファイル編集

IMAPDSSLSTART=NO ← NOに変更


各ソフトを起動させる

# /etc/rc.d/init.d/courier-imap start ← 起動
Starting Courier-IMAP server: imap imap-ssl pop3 pop3-ssl

# /etc/rc.d/init.d/courier-authlib start ← 起動
Starting Courier authentication services: authdaemond

自動起動設定の確認

# chkconfig --list courier-imap ← 確認
courier-imap 0:off 1:off 2:on 3:on 4:on 5:on 6:off

# chkconfig --list courier-authlib ← 確認
courier-authlib 0:off 1:off 2:on 3:on 4:on 5:on 6:off
自動起動設定になっていない場合(設定後にもう一度確認)
# chkconfig ソフト名 on
前
Postfix+ courier-imap + SMTP-AUTH用の為のiptables設定
カテゴリートップ
vine linux 覚え書き
次
my.cnfがない


Powered by XOOPS Cube Legacy 2.2 © 2001-2013 The XOOPS Cube Project  .