ConohaVpsを使ってみる【初めてのVPS】

Conohaにて、初めてのVPSに挑戦。メモ的な備考録です。

Conohaでメールサーバーを立ててみる【CentOS Apache Postfix】

*1

1,DNS設定

名称:mail.example.com
TYPE:A
値:IPアドレス

名称: example.com
TYPE :MX
Point先: mail.example.com
優 先:10
状 態:有効

2,Port開放

# vi /etc/sysconfig/iptables

//SMTP
-A INPUT -p tcp --dport 25 -j ACCEPT

//SMTPS
-A INPUT -p tcp --dport 465 -j ACCEPT

//IMAPS
-A INPUT -p tcp --dport 995 -j ACCEPT

//POP3S
-A INPUT -p tcp --dport 993 -j ACCEPT

//POP3
-A INPUT -p tcp --dport 110 -j ACCEPT

 

# service iptables restart

3,SSL

//SSL証明書発行(LetsEncrypt利用)

cd /usr/local/
cd certbot/
./certbot-auto certonly --standalone -d mail.example.com -m MailAddress
利用規約同意
※-m 連絡用アドレス

sudo service httpd stop
./certbot-auto certonly --standalone -d mail.example.com -m MailAddress
sudo service httpd start
sudo ls -1 /etc/letsencrypt/live/mail.example.com

//更新日確認
sudo openssl x509 -in /etc/letsencrypt/live/mail.example.com/fullchain.pem -noout -dates

//更新

cd /usr/local/
cd certbot/
./certbot-auto renew

 


4、Postfix設定(送信サーバー)

sudo cp -ip /etc/postfix/main.cf /etc/postfix/main.cf.org
sudo vi /etc/postfix/main.cf

#メールサーバーのHost名
myhostname = mail.example.com

#メールサーバーのドメイン
mydomain = example.com

#メールアドレスをユーザー名@ドメイン名に変更
myorigin = $mydomain

#全てのホストからのメールを受信
inet_interfaces = all

# mydomain = で指定したドメイン宛のメールを受信する
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain

# 存在しないメールアドレス(ユーザ)宛のメールの受信を拒否する
local_recipient_maps = proxy:unix:passwd.byname $alias_maps

# 中継を許可する宛先ドメインを指定
relay_domains = $mydestination

home_mailbox = Maildir/

smtpd_banner = $myhostname ESMTP

※以下追加

# VRFYコマンドの使用を禁止する
disable_vrfy_command = yes

mailbox_size_limit = 1073741824

# 接続元の制限(スパムメール対策)
#当環境の場合(,)で区切る

smtpd_client_restrictions = check_client_access hash:/etc/postfix/access,reject_rbl_client zen.spamhaus.org,reject_rbl_client all.rbl.jp,reject_non_fqdn_sender,reject_unknown_sender_domain


# エンベロープアドレス(MAIL FROM)による制限(スパムメール対策)
#当環境の場合(,)で区切る

smtpd_sender_restrictions = reject_rhsbl_sender zen.spamhaus.org,reject_unknown_sender_domain

########## SMTP-Auth関連 ##########

# SASL認証を有効化

smtpd_sasl_auth_enable = yes

# Dovecot SASL ライブラリを指定
smtpd_sasl_type = dovecot

# Dovecot SASL ライブラリの認証ソケットファイル /var/spool/postfix/ からの相対>パスで記述
smtpd_sasl_path = private/auth

# 古いバージョンの AUTH コマンド (RFC 2554) を実装した SMTP クライアントとの相互
運用性を有効にする
broken_sasl_auth_clients = yes

smtpd_sasl_local_domain = $myhostname

#当環境の場合(,)で区切る
smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination

 

########## TLS/SSL関連 ##########
# TLSを有効化
smtpd_use_tls = yes

# 宛先のメールサーバがTLSに対応していれば、通信を暗号化する

smtp_tls_security_level = may

# サーバ証明書秘密鍵を指定

smtpd_tls_cert_file = /etc/letsencrypt/live/mail.example.com/fullchain.pem
smtpd_tls_key_file = /etc/letsencrypt/live/mail.example.com/privkey.pem

# TLSログレベルの設定
# 0:出力しない 1:TLSハンドシェイクと証明書情報 2:TLSネゴシエーションの全て
smtpd_tls_loglevel = 1

# 暗号に関する情報を "Received:" メッセージヘッダに含める
smtpd_tls_received_header = yes

# 接続キャッシュファイルの指定
smtpd_tls_session_cache_database = btree:/var/lib/postfix/smtpd_scache

# キャッシュの保持時間の指定
smtpd_tls_session_cache_timeout = 3600s

# 認証を通過したものはリレーを許可する(permit_sasl_authenticated)
smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination

smtps(SMTP-Auth over SSL)を有効化

sudo vi /etc/postfix/master.cf

#以下をコメントアウト

smtps inet n - n - - smtpd

-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes

-o smtpd_recipient_restrictions=permit_sasl_authenticated,reject

ルックアップテーブルの作成

postmap /etc/postfix/access

設定に誤りがないかチェック(なにも表示されなければOKです)

postfix check

Postfixの起動

service postfix start

自動起動の設定

chkconfig postfix

# chkconfig saslauthd on && service saslauthd start
Starting saslauthd: [ OK ]

# service postfix start
Starting postfix: [ OK ]  

 

5,Dovecotインストール

sudo yum -y install dovecot

sudo vi /etc/dovecot/dovecot.conf

protocols = imap pop3 

sudo vi /etc/dovecot/conf.d/10-mail.conf

 

mail_location = maildir:~/Maildir 

sudo vi /etc/dovecot/conf.d/10-master.conf

#平文で通信する imappop3 は「port = 0」を設定し無効に

service imap-login {
inet_listener imap {
#port = 143
 ↓
port = 0
}
inet_listener imaps {
#port = 993
#ssl = yes
 ↓
port = 993
ssl = yes
}
}

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

#Dovecot SASL ライブラリの認証ソケットファイルを指定

unix_listener /var/spool/postfix/private/auth {
mode = 0660
user = postfix
group = postfix
}  

sudo vi /etc/dovecot/conf.d/10-auth.conf

disable_plaintext_auth = no
auth_mechanisms = plain login

SSL/TLSの有効化とサーバ証明書秘密鍵を指定
sudo vi /etc/dovecot/conf.d/10-ssl.conf

ssl = yes

ssl_cert = </etc/letsencrypt/live/mail.example.com/fullchain.pem
ssl_key = </etc/letsencrypt/live/mail.example.com/privkey.pem

# ログの出力先を変更

sudo vi /etc/dovecot/conf.d/10-logging.conf

log_path = /var/log/dovecot/dovecot.log

mkdir /var/log/dovecot

自動起動&&起動の設定

# chkconfig dovecot on && service dovecot start

認証ソケットファイルが作成されているのを確認

ls -F /var/spool/postfix/private/auth
---(下記表示があればOK)---

/var/spool/postfix/private/auth =

 

6,mail User追加
sudo useradd -s /sbin/nologin user_name
sudo passwd user_name #パスワードを設定

デバグ
sudo mail user_name@example.com

Third Party Relay Check RBL.JP第三者中継チェック RBL.JP

 

7,SPF

DNS TXT

example.com. IN TXT "v=spf1 ip4:IPアドレス -all"

 

参考サイト

SSLメールサーバ構築メモ Let’s Encrypt+Postfix+Dovecot | あぱーブログ

https://www.conoha.jp/download/books/conoha-book-02-postfix.pdf

Postfixによる、セキュリティに配慮したメールサーバの構築方法 | OXY NOTES

 

 

 

 

*1:CentOS6.8-64bit

cat /etc/redhat-release

arch

Apache2.2.15

sudo httpd -v