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

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

1,VPSサービスを登録する
ConoHaのサービスは、CentOS 6.6 64bit
SSHキーを使用
とします。

接続許可ポート IPv4
全てのチェックを外し
SSH,メール(25/110/143/465/587/993/995)
にチェックを入れる
ネームタグに分かりやすい文言を入れ
作成する

2,SSHで接続を確認する

ssh -i /home/xxxx/key-2015-0x-xx-0x-xx.pem root@xxx.xxx.xxx.xxx

3,dovecotとpostfixの設定を一括で行う

dovecotをインストール

yum -y install dovecot

postfixの設定ファイルを変更

作業用データと(例:main.cf2)
バックアップを取る(例:main.cf3)

cd /etc/postfix/

cp main.cf main.cf2
cp master.cf master.cf2

cp main.cf main.cf3
cp master.cf master.cf3

ホスト名の設定を行う
xxxxx.com
は、設定のホスト名にする

sed -i -e '76c\myhostname = xxxxx.com' main.cf2
sed -i -e '83c\myhostname = xxxxx.com' main.cf2

設定ファイルを一括で変更する

sed -i -e '99c\myorigin = $mydomain' main.cf2
sed -i -e '116c\inet_interfaces = all' main.cf2
sed -i -e '119c\inet_protocols = ipv4' main.cf2
sed -i -e '164c\mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain' main.cf2
sed -i -e '264c\mynetworks = 192.168.0.0/23,127.0.0.0/8' main.cf2
sed -i -e '419c\home_mailbox = Maildir/' main.cf2
sed -i -e '569c\smtpd_banner = $myhostname ESMTP unknown' main.cf2
sed -i -e '$a\smtpd_sasl_auth_enable = yes' main.cf2
sed -i -e '$a\smtpd_sasl_local_domain = $myhostname' main.cf2
sed -i -e '$a\smtpd_recipient_restrictions =' main.cf2
sed -i -e '$a\ permit_mynetworks' main.cf2
sed -i -e '$a\ permit_sasl_authenticated' main.cf2
sed -i -e '$a\ reject_unauth_destination' main.cf2
sed -i -e '$a\mailbox_size_limit = 1073741824' main.cf2
sed -i -e '$a\smtpd_use_tls = yes' main.cf2
sed -i -e '$a\smtpd_tls_cert_file = /etc/pki/tls/certs/server.crt' main.cf2
sed -i -e '$a\smtpd_tls_key_file = /etc/pki/tls/private/server.key' main.cf2
sed -i -e '$a\smtpd_tls_session_cache_database = btree:/etc/postfix/smtpd_scache' main.cf2
sed -i -e '$a\smtpd_tls_session_cache_timeout = 3600s' main.cf2
sed -i -e "17,20s/#//" master.cf2

diff main.cf main.cf2 > diffpostfix.txt
diff master.cf master.cf2 >> diffpostfix.txt

変更内容を確認

cat diffpostfix.txt

問題がなければ変更上書きする

cp main.cf2 main.cf

上書きの確認にyで答える

cp master.cf2 master.cf

上書きの確認にyで答える

正しく複写できたか確認する
diffがなければOK

diff main.cf main.cf2
diff master.cf master.cf2

dovecotの設定ファイルを変更

cd /etc/dovecot/conf.d

cp 10-mail.conf 10-mail.conf2
cp 10-auth.conf 10-auth.conf2
cp 10-ssl.conf 10-ssl.conf2
cp 10-master.conf 10-master.conf2

cp 10-mail.conf 10-mail.conf3
cp 10-auth.conf 10-auth.conf3
cp 10-ssl.conf 10-ssl.conf3
cp 10-master.conf 10-master.conf3

sed -i -e '30c\mail_location = maildir:~/Maildir' 10-mail.conf2
sed -i -e '9c\disable_plaintext_auth = no' 10-auth.conf2
sed -i -e '97c\auth_mechanisms = plain login' 10-auth.conf2

sed -i -e "19s/#//" 10-master.conf2
sed -i -e '20i    ssl = no' 10-master.conf2
sed -i -e "23,24s/#//" 10-master.conf2
sed -i -e '41c\    port = 0' 10-master.conf2
sed -i -e "44,45s/#//" 10-master.conf2
sed -i -e "89,91s/#//" 10-master.conf2
sed -i -e '91i    user = postfix' 10-master.conf2
sed -i -e '92i    group = postfix' 10-master.conf2
sed -i -e "6s/#//" 10-ssl.conf2
sed -i -e '12c\ssl_cert = </etc/pki/dovecot/certs/server.crt' 10-ssl.conf2
sed -i -e '13c\ssl_key = </etc/pki/dovecot/private/server.key' 10-ssl.conf2

diff 10-mail.conf 10-mail.conf2 > diffdovecot.txt
diff 10-auth.conf 10-auth.conf2 >> diffdovecot.txt
diff 10-ssl.conf 10-ssl.conf2 >> diffdovecot.txt
diff 10-master.conf 10-master.conf2 >> diffdovecot.txt

変更内容を確認

cat diffdovecot.txt

問題がなければ変更上書きする

cp 10-mail.conf2 10-mail.conf

上書きの確認にyで答える

cp 10-auth.conf2 10-auth.conf

上書きの確認にyで答える

cp 10-ssl.conf2 10-ssl.conf

上書きの確認にyで答える

cp 10-master.conf2 10-master.conf

上書きの確認にyで答える

正しく複写できたか確認する
diffがなければOK

diff 10-mail.conf 10-mail.conf2
diff 10-auth.conf 10-auth.conf2
diff 10-ssl.conf 10-ssl.conf2
diff 10-master.conf 10-master.conf2

4,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

複写されたことを、確認

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

saslauthdを起動

chkconfig saslauthd on && service saslauthd start

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

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

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

お名前で取得したドメイン名をConoHa側に登録
新規ドメインの場合
サイドメニュー[DNS]>[+追加]
登録済の場合
サイドメニュー[DNS]>[登録済ドメイン選択]
属性追加または編集
・A(通常)   XXX.XXX.XXX.XXX
・MX      ポイント先 xxx.com(ドメイン名) 優先度10
・TXT     v=spf1 +ip4:xxx.xxx.xxx.xxx ~all

VPS設定の
IPアドレス 逆引きホスト名にドメイン名を登録する
サイドメニュー[サーバ]
対象VPS選択
[VPS設定]>[逆引きホスト名]右編集アイコン選択
ドメイン登録

6,Hostnameの変更

hostname

で、現状を確認
xxx.xxx.xxxx.xxx
IPで表示される

設定ファイルを変更する

vi /etc/sysconfig/network

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

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

サーバを再スタート

shutdown -r now

または、
ConoHaのコントロールパネルで、再起動ボタンを押す

再起動後、変更されたか確認
再起動のため、SSHは切断されるため、
しばらくしてから、再度接続する

hostname

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

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

ユーザの追加

useradd userxxxx ← 新規ユーザ名

パスワード設定

passwd userxxxx

ユーザー userxx のパスワードを変更。
新しいパスワード:xxxxx ← パスワードを設定
新しいパスワードを再入力してください:xxxxx ← 確認で再度入力
passwd: 全ての認証トークンが正しく更新できました。

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

9,サービスの起動

service postfix restart
service dovecot start

10,OS再起動時、サービスの自動起動設定

chkconfig dovecot on

11,送信確認

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

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

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

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

ユーザに切り替える

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

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

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

rootに戻り

exit

外部から、作成した、メールアカウントに
メールを送信し、
メールが届くか確認する

外部から、作成アカウントのメールを送信する

メールが届いているか確認する

ls /home/(ユーザ名)/Maildir/new

参考;
メールを受信しないと
/home/(ユーザ名)/Maildir/
のフォルダーは作成されない

外部のメールソフトで接続すると
受信のメールは
/Maildir/new
から
/Maildir/cur
へ移動する

届いたメールの内容を確認

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: userxx@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.

パスワード設定を確認
user_name\0user_name\0user_pass
の中の
user_name
user_pass
を、実際に置き換えて入力

perl -MMIME::Base64 -e 'print encode_base64("user_name\0user_name\0user_pass");'

dXNlcl9uYWXXXXXQB1c2VyX3BFertD=

パスコードを確認

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
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
にならない場合、
503 5.5.1 Error: authentication not enabled
などの場合

サービスの起動を確認

service postfix status
service dovecot status
service saslauthd status

変更した設定ファイル、その他、を正しく複写したか
を確認

cd /etc/postfix/
diff main.cf main.cf2
diff master.cf master.cf2
cd /etc/dovecot/conf.d
diff 10-mail.conf 10-mail.conf2
diff 10-auth.conf 10-auth.conf2
diff 10-ssl.conf 10-ssl.conf2
diff 10-master.conf 10-master.conf2
diff  /etc/pki/tls/certs/server.crt /etc/pki/dovecot/certs/server.crt
diff  /etc/pki/tls/certs/server.key /etc/pki/dovecot/private/server.key
diff  /etc/pki/tls/certs/server.key /etc/pki/tls/private/server.key

などを確認して下さい
diffで、表示がなければ、正しく表示されている
もし、複写の忘れがあれば、複写し再起動をする

service postfix restart
service dovecot restart
service saslauthd restart

サービスの自動起動の設定を確認
(ランレベル 2,3,4,5がONになっているか

chkconfig --list postfix
chkconfig --list dovecot
chkconfig --list saslauthd

自動起動時設定がなければ設定

chkconfig dovecot on
chkconfig saslauthd on

server.crt
server.key
を、一応確認

ls /etc/pki/tls/certs/server.crt -l
ls /etc/pki/dovecot/certs/server.crt -l
ls /etc/pki/tls/certs/server.key -l
ls /etc/pki/dovecot/private/server.key -l
ls /etc/pki/tls/private/server.key -l

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

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

で、設定を行う