新しいConoHaでメールサーバを立ち上げる

新しいConoHaでは、メールサーバのサービスも加わりましたが
以前と同じように、独自にメールサーバを立ち上げてみました。

手順
0,VPSサービスの前提
1,SSHで接続を確認する
2,dovecotをインストール
3,FileZillaにて接続を確認する
4,Postfixの設定ファイルの編集
5,Dovecotの設定ファイルの変更
6,SSLキーの作成
7,ドメイン名の設定を行う
8,Hostnameの変更
9,メールアカウントの作成
10,メールポートの開放
11,サービスの起動
12,OS再起動時、サービスの自動起動設定
13,送信確認
14,メーラからの動作確認
となります。

0,VPSサービスの前提
ConoHaのサービスは、CentOS 6.6 64bit
SSHキーを使用
とします。

1,SSHで接続を確認する
ssh -i /home/xxxx/key-2015-0x-xx-0x-xx.pem

2,dovecotをインストール
yum -y install dovecot

3,FileZillaにて接続を確認する

作業用フォルダを作成する

サブフォルダ
postfix
dovecot

を作成する

/etc/postfix/main.cf
/etc/postfix/master.cf

/etc/dovecot/conf.d/10-mail.conf
/etc/dovecot/conf.d/10-auth.conf
/etc/dovecot/conf.d/10-ssl.conf
/etc/dovecot/conf.d/10-master.conf
をダウンロードする

4,Postfixの設定ファイルの編集
すでに、Postfixは、インストール済なため、
Postfixの設定ファイルの編集を行います

# vi /etc/postfix/main.cf

76行目近くを編集
:76 Enter

変更前
myhostname = virtual.domain.tld

i(挿入モード)
変更後
myhostname = xxxxx.com

83行目近くを編集
変更前
mydomain = domain.tld
変更後
mydomain = xxxxx.com

99行近く、先頭の#を削除
変更前
#myorigin = $mydomain
変更後
myorigin = $mydomain

116行近く
変更前
#inet_interfaces = localhost

変更後
inet_interfaces = all

119行近く
変更前
inet_protocols = all

変更後
inet_protocols = ipv4

164行近く
変更前
#mydestination = $myhostname, localhost.$mydomain, localhost

変更後
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain

264行近く
変更前
#mynetworks = 168.100.189.0/28, 127.0.0.0/8

変更後
mynetworks = 192.168.0.0/23,127.0.0.0/8

419行近く、コメントをはず
変更前
#home_mailbox = Maildir/
変更後
home_mailbox = Maildir/

569行近く、コメント解除して $mail_name を unknownに
変更前
#smtpd_banner = $myhostname ESMTP $mail_name
変更後
smtpd_banner = $myhostname ESMTP unknown

最終行に以下を追加

smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname
smtpd_recipient_restrictions =
 permit_mynetworks
 permit_sasl_authenticated
 reject_unauth_destination
mailbox_size_limit = 1073741824

smtpd_use_tls = yes
smtpd_tls_cert_file = /etc/pki/tls/certs/server.crt
smtpd_tls_key_file = /etc/pki/tls/private/server.key
smtpd_tls_session_cache_database =         btree:/etc/postfix/smtpd_scache
smtpd_tls_session_cache_timeout = 3600s

[esc]:wq
で、終了

# vi /etc/postfix/master.cf

17行ちかく
変更前
#smtps inet n – n – – smtpd
# -o smtpd_tls_wrappermode=yes
# -o smtpd_sasl_auth_enable=yes
# -o smtpd_client_restrictions=permit_sasl_authenticated,reject

変更後
smtps inet n – n – – smtpd
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
-o smtpd_client_restrictions=permit_sasl_authenticated,reject

5,Dovecotの設定ファイルの変更
10-mail.confを変更
vi /etc/dovecot/conf.d/10-mail.conf
i(挿入モード)で、編集
30行近く、先頭の「#」を削除し、設定ファイルを指定
変更前
#mail_location =
変更後
mail_location = maildir:~/Maildir
[esc]:wq
で、終了

vi /etc/dovecot/conf.d/10-auth.conf
10-auth.confを編集
9行付近のコメントの#削除し、yesをnoに
変更前
#disable_plaintext_auth = yes
変更後
disable_plaintext_auth = no

97行付近の末尾に login を追加
変更前
auth_mechanisms = plain
変更後
auth_mechanisms = plain login
[esc]:wq
で、終了

vi /etc/dovecot/conf.d/10-master.conf
10-master.confを、編集

17行
変更前
inet_listener imap {
#port = 143
}
inet_listener imaps {
#port = 993
#ssl = yes
}
変更後
inet_listener imap {
port = 143
ssl = no
}
inet_listener imaps {
port = 993
ssl = yes
}

38行目
変更前
service pop3-login {
inet_listener pop3 {
#port = 110
}
inet_listener pop3s {
#port = 995
#ssl = yes
}
}

変更後
service pop3-login {
inet_listener pop3 {
#port = 110
port = 0
}
inet_listener pop3s {
port = 995
ssl = yes
}
}

88行目
変更前
# Postfix smtp-auth
#unix_listener /var/spool/postfix/private/auth {
# mode = 0666
#}

変更後
# Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
mode = 0666
user = postfix
group = postfix
}

:wq Enter で終了

vi /etc/dovecot/conf.d/10-ssl.conf
10-ssl.confを、編集

12行目
変更前

ssl_cert = </etc/pki/dovecot/certs/dovecot.pem
ssl_key = </etc/pki/dovecot/private/dovecot.pem

変更後

ssl = yes
ssl_cert = </etc/pki/dovecot/certs/server.crt
ssl_key = </etc/pki/dovecot/private/server.key

6,SSLキーの作成

server.keyを作成し
パスワードを設定する
(パスワードxxxxxxは忘れないように)

cd /etc/pki/tls/certs
make server.key
Enter pass phrase:xxxxxxxx
Verifying – Enter pass phrase:xxxxxxxx

opensslにパスワードを設定
openssl rsa -in server.key -out server.key
先ほど設定したパスワード(xxxxxxxx)を設定
Enter pass phrase for server.key:xxxxxxxx
writing RSA key

server.csrを作成
make server.csr

Country Name (2 letter code) [XX]:JP(例:JP)
State or Province Name (full name) [](例:Tokyo)
Locality Name (eg, city) [Default City]:(例:Shinjuku)
Organization Name (eg, company) [Default Company Ltd]:(例:xxxx.com)
Organizational Unit Name (eg, section) []:(例:admin)
Common Name (eg, your name or your server’s hostname) []:(例:xxxx.com)
Email Address []:(例:webmaster@xxxx.com)
Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []:(空)
An optional company name []:(空)

openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 3650

所定のフォルダーに複写

cp /etc/pki/tls/certs/server.crt /etc/pki/dovecot/certs/server.crt
cp /etc/pki/tls/certs/server.key /etc/pki/dovecot/private/server.key
cp /etc/pki/tls/certs/server.key /etc/pki/tls/private/server.key

saslauthdを起動

chkconfig saslauthd on && service saslauthd start

7,ドメイン名の設定を行う

ドメイン名は、お名前.comなどで、
DNS登録は、お名前.com側に、
ConoHaのDNSを登録

お名前側で、
ドメインNavi
ネームサーバの設定にて、
他のネームサーバを使用から
ConoHaのDNSサーバを設定する

お名前で取得したドメイン名をConoHa側に登録
属性追加
・A(通常)   XXX.XXX.XXX.XXX
・MX      ポイント先 xxx.com(ドメイン名) 優先度10
・TXT     v=spf1 +ip4:xxx.xxx.xxx.xxx ~all

VPS設定の
IPアドレス 逆引きホスト名にドメイン名を登録する

8,Hostnameの変更
hostname
で、現状を確認
xxx.xxx.xxxx.xxx
IPで表示される

設定ファイルを変更する
vi /etc/sysconfig/network

i(挿入モード)で、変更
変更前
HOSTNAME=localhost.localdomain

変更後
HOSTNAME=xxxx.com
に変更
:wq Enter で終了

サーバを再スタート
shutdown -r now
または、
ConoHaのコントロールパネルで、再起動ボタンを押す

再起動後、変更されたか確認

hostname
で、確認
xxxx.com
設定内容に変更された事を確認

9,メールアカウントの作成
メールアカウントを作成します
メール用のユーザとパスワードを設定

ユーザの追加
useradd userxxxx ← 新規ユーザ名

パスワード設定
passwd userxxxx

xxxxx ← パスワードを設定
xxxxx ← 確認で再度入力

10,メールポートの開放
ConoHa
コントロールパネルから開放を設定

11,サービスの起動
service postfix restart
service dovecot restart

12,OS再起動時、サービスの自動起動設定
chkconfig dovecot on

13,送信確認

mail xxxx@xxxx.com ← 確認できるメールアドレスを指定

Subject:メールテストです ←題名を入力 
メールの送信確認を行います ← 本文を入力
よろしくお願いします
. ← .のみで、本文終了

送信されたかの確認
(rootの場合、root@ドメイン で送信されます)

メールアカウントで送信確認

ユーザに切り替える
su xxxxxx ← ユーザ名
mail xxxx@xxxx.com ← 確認できるメールアドレスを指定

Subject:メールテストです ←題名を入力 
メールの送信確認を行います ← 本文を入力
よろしくお願いします
. ← .のみで、本文終了

送信されたかの確認
(ユーザ名 xxxx@ドメイン で送信されます)

作成した、アカウント(ユーザ)に、メールが届いているか確認

メールが届いているか
#ls /home/(ユーザ名)/Maildir/new

届いたメールの内容を確認
#cat /home/(ユーザ名)/Maildir/new/xxxxx.Vfdyyyy.xxx.com:2

telnetで確認

telnetをインストール
yum install -y telnet

localhost ポート 25で接続

# telnet localhost 25

Trying ::1…
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1…
Connected to localhost.
Escape character is ‘^]’.
220 xxxxx.com ESMTP unknown
HELO xxxxxx.com ← 入力
250 xxxxx.com
MAIL From: user02@xxxxx.com ← 送信元を入力
250 2.1.0 Ok
RCPT To:userxx@gmail.com ← 宛先を入力
250 2.1.5 Ok
DATA ← データ入力指定
354 End data with .
よろしくお願いします ← データ入力
. ← .でデータ入力終了を指定
250 2.0.0 Ok: queued as 93735A0D5E
quit
221 2.0.0 Bye
Connection closed by foreign host.

パスワード設定を確認

perl -MMIME::Base64 -e ‘print encode_base64(“user_name\0user_name\0user_pass”);’
dXNlcl9uYWXXXXXQB1c2VyX3BFertD=

パスコードを確認

telnet localhost 25 ← 25で接続
Trying ::1…
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1…
Connected to localhost.
Escape character is ‘^]’.
220 xxxxx.com ESMTP unknown
EHLO localhost ← localhostで指定
250-xxxxx.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH LOGIN PLAIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
AUTH PLAIN dXNlcl9uYWXXXXXQB1c2VyX3BFertD= 調べたパスコードをはりつける
235 2.7.0 Authentication successful
QUIT
221 2.0.0 Bye
Connection closed by foreign host.

・235 2.7.0 Authentication successful
にならない場合、
server.crt
server.key
のパスがあっているか
パスにファイルがあるか
saslauthdが起動しているか
(chkconfig saslauthd on && service saslauthd start)
などを確認して下さい

14,メーラからの動作確認
メーラへの設定
Thunderbirdの場合

受信サーバ IMAP XXXX.com 993 SSL/TLS 通常のパスワード認証
送信サーバ SMTP XXXX.com 465 SSL/TLS 通常のパスワード認証

で、設定を行う