環境:Centos 6.4 ×86_64
目標:SSLを使用してメーラーからメールサーバまでの経路暗号化を行う
目標:SMTPSとIMAPSを使用して送受信を行う
参考:http://morizyun.github.io/blog/postfix-centos-sakura-vps-aws/参考:http://ascii.jp/elem/000/000/431/431263/
目標:SSLを使用してメーラーからメールサーバまでの経路暗号化を行う
目標:SMTPSとIMAPSを使用して送受信を行う
参考:http://morizyun.github.io/blog/postfix-centos-sakura-vps-aws/参考:http://ascii.jp/elem/000/000/431/431263/
・自己署名証明書の作成(SSL用)
key 秘密鍵
csr 証明書要求(証明書と所有者情報)
crt 電子証明書
# cd /etc/pki/tls/certs/秘密鍵を作成
# make server.key
umask 77 ; \
/usr/bin/openssl genrsa -aes128 2048 > server.key
Generating RSA private key, 2048 bit long modulus
………………………………………………………………………………………….+++
………………………………………………………………………………………+++
e is 65537 (0x10001)
Enter pass phrase: 秘密鍵のパスワード設定
Verifying – Enter pass phrase: 秘密鍵のパスワード設定再入力
key 秘密鍵
csr 証明書要求(証明書と所有者情報)
crt 電子証明書
# cd /etc/pki/tls/certs/秘密鍵を作成
# make server.key
umask 77 ; \
/usr/bin/openssl genrsa -aes128 2048 > server.key
Generating RSA private key, 2048 bit long modulus
………………………………………………………………………………………….+++
………………………………………………………………………………………+++
e is 65537 (0x10001)
Enter pass phrase: 秘密鍵のパスワード設定
Verifying – Enter pass phrase: 秘密鍵のパスワード設定再入力
# openssl rsa -in server.key -out server.key
Enter pass phrase for server.key: 秘密鍵のパスワード入力
writing RSA key
# make server.csr
umask 77 ; \
/usr/bin/openssl req -utf8 -new -key server.key -out server.csr
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 : 空白エンター
Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password : 空白エンター
An optional company name : 空白エンター
Enter pass phrase for server.key: 秘密鍵のパスワード入力
writing RSA key
# make server.csr
umask 77 ; \
/usr/bin/openssl req -utf8 -new -key server.key -out server.csr
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 : 空白エンター
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
Signature ok
subject=/C=XX/L=Default City/O=Default Company Ltd/CN=example.com
Getting Private key
Signature ok
subject=/C=XX/L=Default City/O=Default Company Ltd/CN=example.com
Getting Private key
# chmod 400 server.*
・postfixの設定
# vi /etc/postfix/main.cf myhostname = mail.example.commydomain = example.commyorigin = $mydomainhome_mailbox = Maildir/smtpd_banner = $myhostname ESMTP unknown
message_size_limit = 10485760
#SMTP-Auth系の設定
disable_vrfy_command = yes
smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostnamesmtpd_sender_restrictions = reject_unknown_sender_domain
smtpd_client_restrictions = permit_mynetworks,reject_unknown_client,permit
smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination
# TLS を利用するために自己証明書を指定 smtpd_tls_cert_file = /etc/pki/tls/certs/server.crt smtpd_tls_key_file = /etc/pki/tls/certs/server.key smtpd_use_tls = yes # 外部からのメール受信を許可
inet_interfaces = all
# ipv4に限定
inet_protocols = ipv4
# 自ドメイン宛メールを受信できるようにするmydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
# vi /etc/postfix/main.cf myhostname = mail.example.commydomain = example.commyorigin = $mydomainhome_mailbox = Maildir/smtpd_banner = $myhostname ESMTP unknown
message_size_limit = 10485760
#SMTP-Auth系の設定
disable_vrfy_command = yes
smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostnamesmtpd_sender_restrictions = reject_unknown_sender_domain
smtpd_client_restrictions = permit_mynetworks,reject_unknown_client,permit
smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination
# TLS を利用するために自己証明書を指定 smtpd_tls_cert_file = /etc/pki/tls/certs/server.crt smtpd_tls_key_file = /etc/pki/tls/certs/server.key smtpd_use_tls = yes # 外部からのメール受信を許可
inet_interfaces = all
# ipv4に限定
inet_protocols = ipv4
# 自ドメイン宛メールを受信できるようにするmydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
smtps(465)を使用するために#を外す
# vi /etc/postfix/master.cf
smtps inet n – n – – smtpd
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
-o milter_macro_daemon_name=ORIGINATING
# vi /etc/postfix/master.cf
smtps inet n – n – – smtpd
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
-o milter_macro_daemon_name=ORIGINATING
smtp-authの設定で下記に書き換え
# vi /etc/sasl2/smtpd.conf
pwcheck_method: auxprop
auxprop_plugin: sasldb
mech_list: plain login
# vi /etc/sasl2/smtpd.conf
pwcheck_method: auxprop
auxprop_plugin: sasldb
mech_list: plain login
saslauthd起動
# /etc/rc.d/init.d/saslauthd start
saslauthd を起動中: [ OK ]
# chkconfig saslauthd on
# chkconfig –list saslauthd
saslauthd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
# /etc/rc.d/init.d/saslauthd start
saslauthd を起動中: [ OK ]
# chkconfig saslauthd on
# chkconfig –list saslauthd
saslauthd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
SSLの設定
# vi /etc/dovecot/conf.d/10-ssl.conf ssl_cert = ssl_key = ssl = yesssl_key_password = “証明書作成時のPASSWORD”
# vi /etc/dovecot/conf.d/10-ssl.conf ssl_cert = ssl_key = ssl = yesssl_key_password = “証明書作成時のPASSWORD”
ポート設定
# vi /etc/dovecot/conf.d/10-master.confservice imap-login { inet_listener imap { port = 143 } inet_listener imaps { port = 993 ssl = yes }}
# vi /etc/dovecot/conf.d/10-master.confservice imap-login { inet_listener imap { port = 143 } inet_listener imaps { port = 993 ssl = yes }}
メールの保存場所を設定
# vi /etc/dovecot/conf.d/10-mail.conf
mail_location = maildir:~/Maildirvalid_chroot_dirs = /home
# vi /etc/dovecot/conf.d/10-mail.conf
mail_location = maildir:~/Maildirvalid_chroot_dirs = /home
新規ユーザーの追加# useradd -s /sbin/nologin ユーザー名# passwd ユーザー名
DBから削除する場合
# saslpasswd2 -u mail.example.com -d ユーザー名
# saslpasswd2 -u mail.example.com -d ユーザー名
認証DBの所有権変更
# chgrp postfix /etc/sasldb2
# chgrp postfix /etc/sasldb2
既存ユーザーのメールボックスの設定# mkdir /home/ユーザー名/Maildir# chmod 700 /home/ユーザー名/Maildir# chown ユーザー名:ユーザーグループ /home/ユーザー名/Maildir
postfix起動# /etc/rc.d/init.d/postfix start# chkconfig postfix on# chkconfig –list postfix > postfix 0:off 1:off 2:on 3:on 4:on 5:on 6:off
dovecot起動
# /etc/rc.d/init.d/dovecot start
Dovecot Imap を起動中: [ OK ]
# chkconfig dovecot on
# chkconfig –list dovecot
dovecot 0:off 1:off 2:on 3:on 4:on 5:on 6:off
# /etc/rc.d/init.d/dovecot start
Dovecot Imap を起動中: [ OK ]
# chkconfig dovecot on
# chkconfig –list dovecot
dovecot 0:off 1:off 2:on 3:on 4:on 5:on 6:off
・STARTTLSとover SSLの違い
TARTTLSはSMTP/POP3で通信を始めて途中でSSLに切り換える方式
SMTP/POP3 over SSLは最初からSSLによって
SMTP/POP3を「くるんだ」状態で通信を始める方式
TARTTLSはSMTP/POP3で通信を始めて途中でSSLに切り換える方式
SMTP/POP3 over SSLは最初からSSLによって
SMTP/POP3を「くるんだ」状態で通信を始める方式
DNS設定
宛先がXXX@example.comのメールはmail.example.comサーバへ送るように設定
#vi /var/named/chroot/var/named/XXXX.zone
IN MX 10 mail.example.com.
mail IN A XXX.XXX.XXX.XXX
宛先がXXX@example.comのメールはmail.example.comサーバへ送るように設定
#vi /var/named/chroot/var/named/XXXX.zone
IN MX 10 mail.example.com.
mail IN A XXX.XXX.XXX.XXX
mail.example.comでもexample.comでもメールが送れる理由
メールは複数のメールサーバを経由して目的のユーザーのメールボックスに送られる。
中継するサーバは配送先のメールサーバを宛先のメールアドレスから判断する。
DNSを使用して配送先のメールサーバを検索する。
DNSのMXレコードを利用して、
メールアドレスの[@]よりも後ろのドメイン名をキーにして
MXレコードを検索して配送先のメールサーバを知ることが出来る。
メールは複数のメールサーバを経由して目的のユーザーのメールボックスに送られる。
中継するサーバは配送先のメールサーバを宛先のメールアドレスから判断する。
DNSを使用して配送先のメールサーバを検索する。
DNSのMXレコードを利用して、
メールアドレスの[@]よりも後ろのドメイン名をキーにして
MXレコードを検索して配送先のメールサーバを知ることが出来る。
下記の場合は、mail.example.comのメールサーバへ転送する
①example.comをキーにしてMXレコードを引く。
②MXレコードに含まれているサーバのAレコードとネームサーバのAレコードを引く。
③そのAレコードを頼りに配送先のサーバへ転送する。
①example.comをキーにしてMXレコードを引く。
②MXレコードに含まれているサーバのAレコードとネームサーバのAレコードを引く。
③そのAレコードを頼りに配送先のサーバへ転送する。
0 件のコメント:
コメントを投稿