さくらの VPS での Postfix と Dovecot によるメールサーバーの構築法を説明します。 記事を書いた後に間違いがないか一応検証済みです。 うまく動かない場合にはコメント欄からご指摘ください。
この記事を書くに当たり使用したバージョンはそれぞれ以下の通りである。
- Postfix 2.6.6
- Dovecot 2.0.9
インストール後であれば、次のコマンドでバージョンを確認できる。
$ postconf mail_version
mail_version = 2.6.6
$ dovecot --version
2.0.9
Dovecot のバージョン 1 と 2 では設定ファイルの構成や設定の内容に差異があるので注意が必要である。
設定方針
- バーチャルメールボックスを利用し、メールアカウントと Unix ユーザーアカウントとを分けて管理する。
- 自サーバ宛のメールの配送と、サブミッションポート経由で SSL + SMTP AUTH で認証されたクライアントからの外部へのリレーのみを許可する。
- SMTP AUTH の認証に使うアカウントとバーチャルメールボックスのアカウントは Dovecot で一元管理する。
※全ての設定が完了し、メールの送受信ができるようになったら、最後にもう一度 /var/log/maillog を見て、warning などが無いか確認してください!
ホスト名の設定
まずはサーバーのホスト名を設定する。デフォルトの localhost.localdomain
のままでは、spamhaus.org のリストに載ってしまい、そのリストを利用しているメールサーバー(例えば Windows Live Hotmail)にメールが届かなくなってしまうためである。
/etc/sysconfig/network の HOSTNAME=localhost.localdomain
のところを www9999xx.sakura.ne.jp 形式のドメインに変更すれば良い。
HOSTNAME=www9999xx.sakura.ne.jp
※後で設定する virtual_mailbox_domains と mydestination の重複を防ぐため、ここには独自ドメインを指定しない。
設定の変更を反映させるためにサーバーを再起動する。
$ reboot
この設定を行わず、spamhaus.org のリストに載ってしまった状態で hotmail にメールを送ると、次のようなメッセージが返ってくる。
550 OU-001 (SNT0-MC4-F25) Unfortunately, messages from xxx.xxx.xxx.xxx weren't sent.
この場合、リストから消してもらう手続きが必要になる。
参考
hotmailにメール送ったら550 OU-001とか言って戻ってくる
パッケージのインストール
yum でインストールする。cyrus-sasl-md5 は SMTP AUTH で CRAM-MD5 による認証を行う為に必要となる。
$ yum install postfix dovecot cyrus-sasl-md5
次に、sendmail が動いている場合にはそれを停止し、自動起動の設定を解除し、さらにサーバーで使う MTA を postfix に設定する。 ただし、さくらの VPS には最初から sendmail がインストールされていないので、この手順は飛ばしてよい。
$ /etc/init.d/sendmail stop
$ chkconfig sendmail off
$ alternatives --config mta
There are 2 programs which provide 'mta'.
Selection Command
-----------------------------------------------
*+ 1 /usr/sbin/sendmail.sendmail
2 /usr/sbin/sendmail.postfix
Enter to keep the current selection[+], or type selection number: 2
それではさっそくローカルでの配送が出来るかテストしてみよう。 まずは postfix を起動し、ついでに自動起動の設定も行っておく。
$ /etc/init.d/postfix start
$ chkconfig postfix on
次に sendmail コマンドで root ユーザー宛にメールを送ってみる。
$ sendmail root
From: root
To: root
Subject: test
test
.
受け取ったメールは mail コマンドで確認できる。 次の様にメールが届いていれば成功である。
$ mail
Heirloom Mail version 12.4 7/29/08. Type ? for help.
"/var/spool/mail/root": 1 messages 1 unread
>N 1 root@www9999ue.sakur Wed May 16 12:30 14/473 "test"
& q
メールが届いていなかった場合には、/var/log/maillog を見て問題を解決する。
※この後の設定においても、期待通りに動かなかった場合にはこのログファイルを見て対処していくことになる。
それではわかりやすいところから準備を進めて行こう。
バーチャルメールボックス管理ユーザーの作成
バーチャルメールボックスを読み書きするための Unix ユーザーを作成する。 ここでは vmail というユーザーを作成し、UID/GID はわかりやすいように 10000 にする。 また、バーチャルメールボックスのメールは /var/mail/virtual ディレクトリ以下に保存することにし、ホームディレクトリをそこに設定する。 ログイン出来る必要は無いので、シェルは /sbin/nologin に設定する。
$ groupadd -g 10000 vmail
$ useradd -u 10000 -g 10000 -d /var/mail/virtual -r -s /sbin/nologin vmail
$ mkdir /var/mail/virtual
$ chown vmail:vmail /var/mail/virtual
$ chmod 700 /var/mail/virtual
これらの設定はこの通りでなくても構わないが、後の設定で使うので、変更した場合には設定内容を適切に読み替えること。
バーチャルメールボックスのアカウントの設定
それでは次にバーチャルメールボックスのアカウント、即ち、メールアカウントの設定を行う。 バーチャルメールボックスのアカウントは Unix ユーザーとは別に /etc/dovecot/passwd というファイルで管理していくことにする。 (このファイル名が気に入らなければ好きなファイル名に変更して良いが、その場合は後の設定を適切に読み替えること。) メールクライアントとのメール送受信時の認証に、ここで設定したユーザー名とパスワードを使うことになる。
/etc/dovecot/passwd ファイルにはパスワードのハッシュ値を記述するため、まずはそれを取得しよう。 それには doveadm pw コマンドを使用する。(Dovecot の以前のバージョンでは dovecotpw コマンドが使われていた。)
$ doveadm pw
Enter new password:
Retype new password:
{CRAM-MD5}836e14f966d9af5b2c7a1a07a45292b4b0a1805bc050343491cbc18f0539962f
それでは /etc/dovecot/passwd ファイルを作成する。 このファイルにはユーザー名とパスワードのハッシュ値を ":" で区切って記述する。 後の設定で、このファイルを Dovecot が認証に使う情報として指定する。[詳細]
test@example.com:{CRAM-MD5}836e14f966d9af5b2c7a1a07a45292b4b0a1805bc050343491cbc18f0539962f
test2@example.com:{CRAM-MD5}836e14f966d9af5b2c7a1a07a45292b4b0a1805bc050343491cbc18f0539962f
上記の例では、test@example.com と test2@example.com の二つのメールアカウントを作成している。
ここからの設定例では、メールアドレスに使う独自ドメインを example.com としている。
※したがって、実際の設定では example.com の箇所を各自がメールアドレスに使う独自ドメインに置き換えること。
また、メールアドレスとメールを保存するディレクトリとの対応を記述したファイルを用意する必要がある。 /etc/postfix/vmailbox ファイルを作成し、以下の内容を記述する。
test@example.com example.com/test/Maildir/
test2@example.com example.com/test2/Maildir/
このファイルを編集した後は postmap コマンドでデータベースに変換する。
$ postmap /etc/postfix/vmailbox
エイリアスの設定
.forward の様にメールの転送を行いたい時、この設定を行う。バーチャルメールボックスに届いたメールを転送するには、/etc/postfix/virtual ファイルで設定を行う。 次のように転送元と転送先を空白(半角スペースやタブ)で区切って指定すればよい。 転送先はカンマで区切って複数指定できる。 受信メールアドレスに指定するメールアドレスは、「バーチャルメールボックスのアカウントの設定」をしていないものでも良い。 [詳細]
(受信メールアドレス) (転送先1), (転送先2), ...
転送しつつ、元のメールボックスにもメールを残しておきたい場合には、転送先に転送元のメールアドレスを書いておけば良い。(転送の無限ループにはなりません。)
このファイルを変更した後は次のコマンドを実行する。
$ postmap /etc/postfix/virtual
SSL 自己署名証明書と秘密鍵の作成
メールサーバーとメールクライアントの間の通信を暗号化するため、openssl コマンドで自己署名証明書と秘密鍵を作成する。 Common Name には、後で DNS に MX レコードを登録するドメイン名を指定しておくと、 (セキュリティ証明書 (.der) ファイルをメールクライアントにインポートすることで) 自己署名証明書の警告を抑制できる。 次のようにワイルドカードを使って *.example.com の様に指定しておけば良い。
$ cd /etc/pki/tls/certs
$ openssl req -new -x509 -nodes -days 365 -out mail.crt -keyout mail.key
Generating a 2048 bit RSA private key
...+++
....+++
writing new private key to 'mail.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:
State or Province Name (full name) []:
Locality Name (eg, city) [Default City]:
Organization Name (eg, company) [Default Company Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:*.example.com
Email Address []:
$ chmod 600 mail.key
セキュリティ証明書 (.der) は次のコマンドで作成できる。
$ openssl x509 -in mail.crt -outform der -out mail.der
Postfix の設定
準備ができたので、次は Postfix の設定を行う。
基本的な設定は
/etc/postfix/main.cf
で行い、さらに細かい設定は
/etc/postfix/master.cf
で行う。以下のコマンドを使うとデフォルト値と異なる設定を一覧で確認できる。
$ postconf -n
これらの設定についての詳しい情報は以下のリンク先から得られる。
main.cf の設定
main.cf で次の設定を行う。
inet_interfaces = all
smtpd_banner = $myhostname ESMTP unknown
smtpd_client_restrictions =
reject_rbl_client all.rbl.jp,
reject_rbl_client bl.spamcop.net
# SASL
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/dovecot-auth
smtpd_sasl_security_options = noanonymous
# TLS
smtpd_tls_security_level = may
smtpd_tls_key_file = /etc/pki/tls/certs/mail.key
smtpd_tls_cert_file = /etc/pki/tls/certs/mail.crt
# Virtual
virtual_mailbox_domains = example.com
virtual_mailbox_base = /var/mail/virtual
virtual_mailbox_maps = hash:/etc/postfix/vmailbox
virtual_uid_maps = static:10000
virtual_gid_maps = static:10000
virtual_alias_maps = hash:/etc/postfix/virtual
設定の意味
- inet_interfaces [ja] メールを受信するインターフェース。
- smtpd_banner [ja] メールサーバーソフト名を隠蔽する設定を行っている。
- smtpd_client_restrictions
[ja]
迷惑メールの受信を拒否する為の設定を行っている。
- smtpd_sasl_type [ja] Postfix SMTP サーバが認証に Dovecot を使うように設定している。
- smtpd_sasl_path [ja] Dovecot に認証を依頼するための追加の設定を行っている。
- smtpd_sasl_security_options
[ja]
匿名での認証を禁止する設定を行っている。
- smtpd_tls_security_level [ja] Postfix SMTP サーバーの SMTP TLS セキュリティレベルの設定。 STARTTLS のサポートをクライアントに通知するが、強要はしないように設定している。
- smtpd_tls_key_file [ja] 作成しておいた秘密鍵を指定する。(PEM フォーマット、暗号化無し)
- smtpd_tls_cert_file
[ja]
自己署名証明書を指定する。
- virtual_mailbox_domains [ja] ドメインのリストを指定する。それらはこのメールサーバーが最終配送先となる。
- virtual_mailbox_base [ja] $virtual_mailbox_maps テーブル検索結果の全てのパスに付けられるプレフィックス。
- virtual_mailbox_maps [ja] 受信したメールのアドレス毎の、保存するディレクトリの参照方法を指定する。 $virtual_mailbox_base がプレフィックスとして付加される。
- virtual_uid_maps [ja] MTA が受信者のメールボックスへの書き込みに使用する受信者ごとの uid を持つ検索テーブル。
- virtual_gid_maps [ja] MTA が受信者のメールボックスへの書き込みに使用する受信者ごとの gid を持つ検索テーブル。
- virtual_alias_maps [ja] メール転送の設定を記述したファイルを指定する。
master.cf の設定
submission ポートを使って送信する時の設定を次のようにする。 ほとんどは既に記述されているので、コメントアウトを解除すれば良い。
submission inet n - n - - smtpd
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
-o smtpd_recipient_restrictions=permit_sasl_authenticated,reject_unauth_destination
設定の意味
- smtpd_tls_security_level [ja] TLS による暗号化を強制する。
- smtpd_sasl_auth_enable [ja] Postfix SMTP サーバの SASL 認証を有効にする。
- smtpd_client_restrictions [ja] 認証に成功したクライアントからのメールのみ受け取る。
- smtpd_recipient_restrictions
[jp]
認証に成功したクライアントのみ SMTP 接続を許可する。
smtpd_sasl_auth_enable=yes
を指定したときは、smtpd_recipient_restrictions
にpermit_sasl_authenticated
を指定できる。
設定の変更を反映させるため、Postfix を再起動する。
$ /etc/init.d/postfix restart
inet_interfaces
などの設定変更は reload では反映されないので、必ず restart すること。
Dovecot の設定
Dovecot の設定ファイルの場所は以下のコマンドで確認できる。
$ dovecot -n | head -1
最近のさくらの VPS であれば、それは /etc/dovecot/dovecot.conf のはずである。 そのファイルから /etc/dovecot/conf.d ディレクトリにある複数の設定ファイルが読み込まれるようになっている。 現在の設定を、幾つもの設定ファイルに順番に目を通す手間を掛けずに、確認するために次のコマンドを利用できる。
$ dovecot -n
このコマンドはデフォルト値と異なる設定を一覧で表示する。
Dovecot の設定に関する詳しい情報は以下のリンク先から得られる。
しかし、Dovecot version 1 の Main Configuration にあたるリファレンスが Dovecot 2 にはまだ用意されていないようだ。(2012-05-20 現在)
以下の設定はすべてまとめて dovecot.conf に書いても良いが、せっかく設定ファイルが分かれているので、その意に沿って設定する。
dovecot.conf の設定
これは SMTP AUTH 認証のために必要な設定である。
Postfix の smtpd_sasl_path
の設定と関係している。
# Postfix SMTP Auth
service auth {
unix_listener /var/spool/postfix/private/dovecot-auth {
group = postfix
mode = 0660
user = postfix
}
}
したがって、これを記述しておかないと次の様なログが /var/log/maillog に出力され、メールを送信できない。
warning: SASL: Connect to private/dovecot-auth failed: Connection refused
fatal: no SASL authentication mechanisms
conf.d/10-mail.conf の設定
メールを保存する場所を $mail_home からの相対パスで指定する。
mail_location = maildir:~/Maildir
conf.d/10-ssl.conf の設定
作成しておいた SSL 自己証明書と秘密鍵を登録する。
ssl_cert = </etc/pki/tls/certs/mail.crt
ssl_key = </etc/pki/tls/certs/mail.key
conf.d/10-auth.conf の設定
コメントアウトを解除し、次のように設定する。
auth_mechanisms = cram-md5 plain login
!include auth-passwdfile.conf.ext
!include auth-static.conf.ext
conf.d/auth-passwdfile.conf.ext の設定
認証に使うパスワードファイルを指定する。 即ち、「バーチャルメールボックスのアカウントの設定」で用意したファイルを指定する。 このファイルに最初から書いてある内容は、コメントアウトなどで無効化しておこう。
passdb {
driver = passwd-file
args = scheme=CRAM-MD5 username_format=%u /etc/dovecot/passwd
}
conf.d/auth-static.conf.ext の設定
userdb の設定で、メールにアクセスするために使うシステムユーザーとグループ、および、ホームディレクトリを指定する。
Postfix の virtual_mailbox_base
, virtual_mailbox_maps
の設定に、Dovecot の mail_home
(home
), mail_location
の設定を合わせる。
userdb {
driver = static
args = uid=vmail gid=vmail home=/var/mail/virtual/%d/%n
}
Dovecot を起動し、また、自動起動の設定を行う。
$ /etc/init.d/dovecot start
$ chkconfig dovecot on
iptables の設定
メールの送受信に使用するポートへの接続を許可する。 具体的には、SMTP(25, 587), POP3(110), POP3s(995), IMAP4(143), IMAP4s(993) である。
設定例: /etc/sysconfig/iptables の適切な位置に次の行を追加する。
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 110 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 143 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 587 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 993 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 995 -j ACCEPT
設定の変更を反映させるため、iptables を再起動する。
$ /etc/init.d/iptables restart
DNS の設定
pop, imap, smtp, mail などのサブドメインを使うのが一般的なようだ。次の様に設定する。
a * IPアドレス
mx mail.example.com. 10
IPアドレス のところには、サーバーの IP アドレスを指定する。
クライアントの設定
自己署名証明書の警告を抑制するため、セキュリティ証明書 (.der) をメールクライアントにインポートする。 例として Thunderbird の場合を説明する。
[ツール] → [オプション] → [詳細] → [証明書] タブを選択し、[証明書を表示] ボタンを押し、[証明書マネージャ] を開く。
[サーバ証明書] タブで [インポート] ボタンを押し .der ファイルをインポートする。
インポートした証明書を選択し、[信頼性の設定] ボタンを押す。
[信用する] を選択し、[OK] ボタンを押す。
これで警告が表示されなくなるはずだ。
参考
- PostfixとDovecotでさくらVPS上にバーチャルメールボックスが利用できるメールサーバを作る
- ◇Postfixについて◇初心者のためのLinuxサーバー構築講座
- メールの送受信を暗号化するPOP3s/IMAP4s/SMTPs(over SSL)とは
※このページはリンク先の画像をポップアップ表示するブックマークレットを使っています。
[amazon asin="479811930X" /]
(unknown user: "test")ってなってしまいます
testで送信(test→gmail)→OK test宛に送信(gmail→test)→NG
どうなんでしょうか・・・
/etc/dovecot/passwd ファイルの内容を再度ご確認ください。
test@your.domain に関する設定が記述されていますか?
/etc/dovecot/passwd内で設定はしていたのですが改行していなかったためでした 改行したらすんなり行きました
お騒がせしてスミマセン・・・
なるほど、うまくいって何よりです。
なんとか、さくらVPS(Centos6.3 32bit)で設定できました。とてもいいメール設定だと思い、自宅のサーバーCentos6.3 64bitに設定しようとしているのですが、なかなかできません。設定する違いとかあるのでしょうか?よろしくお願い致します。
CentOS ならば 64bit でも基本的には同じ手順で良いと思います。 ただ、デフォルトでインストールされているソフトウェアがさくらの VPS とは異なるはずですので、その点は注意が必要です。 Sendmail の停止などが必要かもしれません。
> なかなかできません。
どこがうまくいきませんか?
Sendmailは、入ってません。SElinuxは、無効にしたのですが。/var/log/maillogには、dovecot: pop3-login: Aborted login (no auth attempts)という警告がでています。認証での問題でしょうか?
POP で接続する時の認証がうまくいっていないようです。 認証に関係ありそうな設定(/etc/dovecot/passwd やメールクライアントも含む)を確認し、それらをわざと変更したときの maillog の内容の変化を参考に対応するのが良いと思います。
> dovecot: pop3-login: Aborted login (no auth attempts)
このログだけでは原因の特定が難しいと思いましたので
こちらの設定では、windows live mail では 認証が通らないようなんですが、なにがまちがっているのでしょうか?
Windows Live Hotmail へ送るためには、最近この記事に追加した「ホスト名の設定」を行う必要があります。一番上の方に書いてあるので参考にしてください。 また、既に spamhaus.org のリストに shotaro kawaguchi さんのドメインが登録されていると考えられます。その場合、リストから消してもらう手続きが必要になります。これは「ホスト名の設定」のところの [参考] のリンク先の記事を参考に行えば良いです。
確認したところ、is not listed in the とかえってきました。 また、ホスト名の設定に関しては、先にさせていただきました。
他に考えらえる理由がなかなか見つからなくて。。。
たびたびすみません。 windows live mail の認証方式が APOP か PLAIN とみたのですが、これは関係ありますか?
少し勘違いしておりました。
> windows live mail では 認証が通らない…
とのことですが、何の認証のことでしょうか?
thinderbird は問題なく、送受信できたのですが、 windows live mail で設定すると、 設定時に入力したユーザーとパスワードを聞かれます。
で、いろいろ調べていると、windows live mail や outlook などは、 APOP か PLAIN しか対応していないみたいな記事があったのですが、これが関係しているのかどうかをしりたくて、ご連絡させていただいた次第です。
私のマシンで試してみたところ、確かに Thunderbird では簡単にアカウント追加と送受信ができましたが、Outlook ではうまく設定できませんでした。 Outlook 2010 では、メニューバーの [ファイル] → [情報] → [アカウントの追加] → [自分で電子メールや・・・(手動設定)] → [インターネット電子メール] → [詳細設定] → [詳細設定]タブ の辺りで暗号化の種類などを選択できましたが、どうも「アカウント設定のテスト」がうまくいきませんでした。
暗号化接続の種類として SSH や TLS も選択できましたが、軽く調べただけでは正しい設定方法はわかりませんでした。
早速回答いただいたにもかかわらず、お返事おそくなってすみません。
おそらくですが、下記参考サイトをご覧ください。
■メジャーなメールクライアントとプロトコル http://satospo.sakura.ne.jp/blog_archives/tech/tool/windows_mail.html
この辺が関連しているのでは、とおもったので、記載しておきます。
おそらくPlainでしかだめで、SSLとかで対応みたいな感じなんでしょうかね。
調べてやってみます。
もし、調査された結果を記事にされたときは、拝見したいです。
ピンバック: Hello world! | KHe7@WWW
はじめまして。VPSの勉強中の者です。 さくらのVPS CentOS 6 x86_64 でメールサーバ設定を試みており、ここにたどり着きました。
最初のroot ユーザー宛にテストメールを送るところで、上手く動作せず(puttyが止まってしまいます)、エラーログには
error reading input: Input/output error
と表示されています。 原因は何か考えられますでしょうか?
puttyが止まってしまうというのが不思議です。
私はそのケースに遭遇したことがありません。
普通なら書き込み権限などを疑いますが、今回は Putty の接続にまで影響があることから、ネットワークに何らかのトラブルが発生していると考えられます。
以下をご確認ください。
(設定内容、および、設定変更後の再起動)
ご回答、ありがとうございます!
早速、下記の手順を繰り返し行なって見たのですが、やはりputtyが止まり、コマンド入力出来なくなってしまいます。
■手順
ご指摘頂いた、確認事項は以下です。
ホスト名
→ HOSTNAME=www9999xx.sakura.ne.jp の形で設定しています。
再現性
→ 今回も同様に、puttyが止まってしまいました。。
→ 以下のエラーが表示されていました。
Apr 24 15:00:00 www9999xx postfix/sendmail[1446]: fatal: root(0): error reading input: Input/output error
大変恐縮なのですが、何かヒントでも頂けるととてもありがたいです。
宜しくお願い致します。
PuTTY が止まってしまうという現象についてですが、これは接続が断たれることにより止まっているのでしょうか?
入力待ちなど、他の原因で止まっているということはありませんか?
Ctrl + Z や Ctrl + C などにも反応しないのでしょうか?
ご返信ありがとうございます。
ご指摘頂いた、Ctrl + Zが普通に使えたので、止まるというより入力まちだったようです。 よくよく確認したところ、sendmail コマンドの使い方を間違っておりました。。 (最後の.が抜けていたのです。。) お手数かけて申し訳ありません。
引き続き、設定を進めてみたいと思います!
原因がわかって良かったです!
わからない点があります。
お答えいただければ幸いです。
この部分はどの設定ファイルを変更すればよいのですか?
それとも、このページの
http://muumuu-domain.com/?mode=guide&state=custom_setup
の辺りを設定すればよいのですか?
設定する場所は、ドメインをどこでどのように管理しているかによって変わってきます。
例えば ValueDomain でドメインを取得した場合には、ValueDomain の管理ページで設定できます。 また、場合によってはレンタルサーバーの管理画面で設定できるかもしれません。 自分でDNSサーバーを用意した場合には、その設定ファイルなどです。
遅くなって申し訳ありません 返信ありがとう御座います
お陰様で、おそらくドメインの設定についての疑問は解決しました
ところが、 postmap /etc/postfix/vmailbox を実行し、 conf.d/auth-passwdfile.conf.ext で passdb { driver = passwd-file args = scheme=CRAM-MD5 username_format=%u /etc/dovecot/passwd }
のように設定したにもかかわらず、 Thunderbirdで接続を試みると次のようなエラーが出て困っています。
May 25 17:55:52 [ホスト名] postfix/smtpd[1745]: fatal: open database /etc/postfix/virtual.db: No such file or directory May 25 17:55:52 [ホスト名] dovecot: auth: Error: passwd-file /etc/dovecot/users: Can't open file: No such file or directory May 25 17:55:52 [ホスト名] dovecot: master: Error: service(auth): command startup failed, throttling May 25 17:55:52 [ホスト名] dovecot: log: Error: service(auth): child 1746 returned error 89 (Fatal failure) May 25 17:55:53 [ホスト名] postfix/master[1655]: warning: process /usr/libexec/postfix/smtpd pid 1745 exit status 1 May 25 17:55:53 [ホスト名] postfix/master[1655]: warning: /usr/libexec/postfix/smtpd: bad command startup -- throttling May 25 17:56:04 [ホスト名] dovecot: imap-login: Disconnected (no auth attempts): rip=[自宅のIP], lip=[VPSのIP] May 25 17:56:04 [ホスト名] dovecot: imap-login: Disconnected (no auth attempts): rip=[自宅のIP], lip=[VPSのIP] May 25 17:56:04 [ホスト名] dovecot: imap-login: Disconnected (no auth attempts): rip=[自宅のIP], lip=[VPSのIP] May 25 17:56:04 [ホスト名] dovecot: imap-login: Disconnected (no auth attempts): rip=[自宅のIP], lip=[VPSのIP] May 25 17:56:04 [ホスト名] dovecot: imap-login: Disconnected (no auth attempts): rip=[自宅のIP], lip=[VPSのIP] May 25 17:56:04 [ホスト名] dovecot: imap-login: Disconnected (no auth attempts): rip=[自宅のIP], lip=[VPSのIP] May 25 17:56:27 [ホスト名] dovecot: pop3-login: Error: Timeout waiting for handshake from auth server. my pid=1753, input bytes=0 May 25 17:56:27 [ホスト名] dovecot: pop3-login: Error: Timeout waiting for handshake from auth server. my pid=1754, input bytes=0 May 25 17:56:27 [ホスト名] dovecot: pop3-login: Error: Timeout waiting for handshake from auth server. my pid=1751, input bytes=0 May 25 17:56:27 [ホスト名] dovecot: pop3-login: Error: Timeout waiting for handshake from auth server. my pid=1747, input bytes=0 May 25 17:56:27 [ホスト名] dovecot: pop3-login: Error: Timeout waiting for handshake from auth server. my pid=1749, input bytes=0 May 25 17:56:27 [ホスト名] dovecot: pop3-login: Error: Timeout waiting for handshake from auth server. my pid=1744, input bytes=0 May 25 17:56:52 [ホスト名] dovecot: auth: Error: passwd-file /etc/dovecot/users: Can't open file: No such file or directory May 25 17:56:52 [ホスト名] dovecot: log: Error: service(auth): child 1758 returned error 89 (Fatal failure) May 25 17:56:52 [ホスト名] dovecot: master: Error: service(auth): command startup failed, throttling May 25 17:56:53 [ホスト名] postfix/smtpd[1759]: fatal: open database /etc/postfix/virtual.db: No such file or directory May 25 17:56:54 [ホスト名] postfix/master[1655]: warning: process /usr/libexec/postfix/smtpd pid 1759 exit status 1 May 25 17:56:54 [ホスト名] postfix/master[1655]: warning: /usr/libexec/postfix/smtpd: bad command startup -- throttling May 25 17:57:22 [ホスト名] dovecot: pop3-login: Error: Timeout waiting for handshake from auth server. my pid=1751, input bytes=0 May 25 17:57:23 [ホスト名] dovecot: pop3-login: Error: Timeout waiting for handshake from auth server. my pid=1749, input bytes=0 May 25 17:57:23 [ホスト名] dovecot: pop3-login: Error: Timeout waiting for handshake from auth server. my pid=1744, input bytes=0 May 25 17:57:23 [ホスト名] dovecot: pop3-login: Error: Timeout waiting for handshake from auth server. my pid=1753, input bytes=0 May 25 17:57:23 [ホスト名] dovecot: pop3-login: Error: Timeout waiting for handshake from auth server. my pid=1754, input bytes=0 May 25 17:57:23 [ホスト名] dovecot: pop3-login: Error: Timeout waiting for handshake from auth server. my pid=1747, input bytes=0
また、何もしていない時にも May 25 18:01:58 [ホスト名] postfix/smtpd[1774]: fatal: open database /etc/postfix/virtual.db: No such file or directory May 25 18:01:59 [ホスト名] postfix/master[1655]: warning: process /usr/libexec/postfix/smtpd pid 1774 exit status 1 May 25 18:01:59 [ホスト名] postfix/master[1655]: warning: /usr/libexec/postfix/smtpd: bad command startup -- throttling May 25 18:02:59 [ホスト名] postfix/smtpd[1777]: fatal: open database /etc/postfix/virtual.db: No such file or directory May 25 18:03:00 [ホスト名] postfix/master[1655]: warning: process /usr/libexec/postfix/smtpd pid 1777 exit status 1 May 25 18:03:00 [ホスト名] postfix/master[1655]: warning: /usr/libexec/postfix/smtpd: bad command startup -- throttling May 25 18:04:00 [ホスト名] postfix/smtpd[1786]: fatal: open database /etc/postfix/virtual.db: No such file or directory May 25 18:04:01 [ホスト名] postfix/master[1655]: warning: process /usr/libexec/postfix/smtpd pid 1786 exit status 1 ... のように永遠に繰り返しています。
どうすれば良いのでしょうか?
を実行していかいからではないでしょうか?
同じエラーが出たので調べたところ、 Dovecotの設定でauth-passwdfile.conf.extのuserdbのセクションも上のpassdbと同じ設定に変えてあげないといけないようでした。
ピンバック: 認証。。。。
ピンバック: sshでvpsにメールサーバー入れちゃう | IT勉強するコタツネコ
ピンバック: さくらVPSでメールサーバ構築方法 – Postfix+Dovecot+SSL – | スタヂオねこまねき
はじめまして。メールサーバーの構築方法、参考にさせていただきました。 無事、メール送信はできるようになったのですが、受信ができません。
/var/log/maillogを見ると
postfix/smtpd[9469]: NOQUEUE: reject: RCPT from mail-pa0-f48.google.com[IPアドレス]: 55 4 5.7.1 <作ったメールアドレス>: Relay access denied; from=
とあり、受信はできているけど、サーバーではじいているようです。
saslauthd がすべてOffだったので
/etc/rc.d/init.d/saslauthd start
chkconfig saslauthd on
とし、postfixも再起動しましたが、同様の症状です。
main.cfのsmtpd_client_restrictions を削除してみたり 色々やってみましたが、うまくいきません。
同じメールサーバー内でメール送受信しましたが、 送信はできますが、やはり、受信ができません。
何か気づいたことがあれば、教えていただけないでしょうか? どうぞよろしくお願いいたします。
main.cf の virtual_mailbox_domains の設定が、<作ったメールアドレス> のドメインと同じになっていることを確認してください。
NORIさん、お返事ありがとうございます!
メールアドレスは、 「xxxx@mail.ドメイン」にしたのですが、
virtual_mailbox_domains =ドメイン から
virtual_mailbox_domains =mail.ドメイン
に変更して、
/etc/init.d/postfix restart
したら、無事、受信できるようになりました。
すごく助かりました。 本当にありがとうございました!!!
うまくいってよかったです!!
はじめまして。 さくらVPSをしようしているため、こちらを参考にメールサーバーを構築中なのですが、 指針として違う箇所は、SSLを使用しないことです。 そのことで、御サイトの設定箇所と異なる点を教えて頂けますと嬉しいです。 一応自分なりにSSL関係の所は、一切触らずに設定したのですが、 クライアントメールソフト(秀丸メール)でメールを受信しようとしたところ、 タイムアップとなり、うまくメールを受信することができませんでした。
その際のmaillogの内容としましては、
「dovecot: pop3-login: Fatal: Couldn't parse private ssl_key: error:0906D06C:PEM routines:PEM_read_bio:no start line: Expecting: ANY PRIVATE KEY」
と表示されております。 sslを完全に無効にするには、どこか変更しないといけないのでしょうか。 サーバー構築初心者のため、分かりやすく教えて頂けると嬉しいです。
dovecot の conf.d/10-ssl.conf の設定があやしいです。 このファイルで SSL/TLS の設定をしています。
と設定したらどうでしょうか?
ご返答いただきありがとうございます。 10-ssl.confで「ssl = no」にすると、「Disconnected:Auth proccess broken」というエラーが返ってきたので、更に10-auth.confの「!include auth-system.conf.ext」を無効にしてやると正常に受信できるようになりました! お手数をおかけし申し訳ございませんでした。。
度々すみません。 10-auth.confの「!include auth-system.conf.ext」を無効にすることでセキュリティーホールはできるのでしょうか? ちょっと心配になったもので。。。
すみません、それはちょっとわかりません。
まずは /var/log/maillog を見て、warning などが無いか確認すると良いと思います。