2013/08/18

centos 6 設定 postfix

環境:Centos 6.4 ×86_64
目標:SSLを使用してメーラーからメールサーバまでの経路暗号化を行う
目標:SMTPSIMAPSを使用して送受信を行う
参考:http://morizyun.github.io/blog/postfix-centos-sakura-vps-aws/参考:http://ascii.jp/elem/000/000/431/431263/
postfixインストール
#yum install postfix 
自己署名証明書の作成(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: 秘密鍵のパスワード設定再入力
# 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
: 空白エンター
# 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
# 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
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
smtp-authの設定で下記に書き換え
# 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
dovecotのインストール
# yum install dovecot 
SSLの設定 
# vi /etc/dovecot/conf.d/10-ssl.conf
 
ssl_cert = ssl_key = ssl = yesssl_key_password = “証明書作成時のPASSWORD”
認証設定
# vi /etc/dovecot/conf.d/10-auth.conf
auth_mechanisms = plain login
ポート設定
# 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/dovecot.conf
protocols = imap lmtp
listen = * 
・新規ユーザーのメールボックス作成
# mkdir -p /etc/skel/Maildir/{new,cur,tmp} # chmod -R 700 /etc/skel/Maildir/ 
新規ユーザーの追加# useradd -s /sbin/nologin ユーザー名# passwd ユーザー名
DBへの登録とSMTPパスワード設定
# saslpasswd2 -u mail.example.com ユーザー名
DBから削除する場合
# saslpasswd2 -u mail.example.com -d ユーザー名
設定の確認# sasldblistusers2  > ユーザー名@mail.example.com: ユーザーパスワード
認証DBの所有権変更
# 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
iptablesでメールが送受信出来るように設定
SMTP:TCP:25
SMTPS:TCP:465
IMAPS:TCP:993 
・STARTTLSとover SSLの違い
TARTTLSSMTPPOP3で通信を始めて途中でSSLに切り換える方式
SMTPPOP3 over SSLは最初からSSLによって
SMTPPOP3を「くるんだ」状態で通信を始める方式
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
mail.example.comでもexample.comでもメールが送れる理由
メールは複数のメールサーバを経由して目的のユーザーのメールボックスに送られる。
中継するサーバは配送先のメールサーバを宛先のメールアドレスから判断する。
DNSを使用して配送先のメールサーバを検索する。
DNSのMXレコードを利用して、
メールアドレスの[@]よりも後ろのドメイン名をキーにして
MXレコードを検索して配送先のメールサーバを知ることが出来る。
下記の場合は、mail.example.comのメールサーバへ転送する
example.comをキーにしてMXレコードを引く。
②MXレコードに含まれているサーバのAレコードとネームサーバのAレコードを引く。
③そのAレコードを頼りに配送先のサーバへ転送する。

0 件のコメント:

コメントを投稿

L2TP/IPSEC-VPN IX2025 リモートアクセス.

リモートアクセス VPN テスト シナリオ 想定1:インターネット VPN を使用したリモートアクセス VPN 想定2: VPN 構築後に iphone からインターネットに接続する 機器: NEC  IX2025(8.11.11) と iphone 目標1: LTE 通信の i...