OshiHa.com

ConoHaでAlpine Linux 3.8

Postfix のインストール・設定

2018/09/02  2018/09/03

◆◇◆ 【衝撃価格】VPS512MBプラン!月額630円/1時間1円【ConoHa】 ◆◇◆

ConoHa VPS は OP25B なしのため、Gmail経由でメールを送信するなどの対策は必要なし。
Alpine Linux 3.8の環境に、Let's Encrypt + Postfix + Dovecot を導入して、SSL/TLSメールサーバーを構築する。

1. ポートの開放

暗号化通信ができるよう SSL/TLS を設定する。
SMTPS は 465/TCP、IMAPS は 993/TCP を使用する。

2. Postfix のインストール

alpine:~$ sudo apk add postfix

3. Postfix のバージョン確認

alpine:~$ postconf mail_version
mail_version = 3.3.1

4. SSL/TLS証明書の取得

alpine:~$ sudo rc-service nginx stop
alpine:~$ sudo certbot certonly --standalone -d ****.oshiha.com
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator standalone, Installer None
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for ****.oshiha.com
Waiting for verification...
Cleaning up challenges

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/****.oshiha.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/****.oshiha.com/privkey.pem
   Your cert will expire on 2018-11-30. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot
   again. To non-interactively renew *all* of your certificates, run
   "certbot renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le
alpine:~$ sudo rc-service nginx start

5. Postfix の設定

設定1

alpine:~$ sudo cp /etc/postfix/main.cf /etc/postfix/main.cf.org
alpine:~$ sudo vi /etc/postfix/main.cf
##### Postfix Compatibility level setting #####
# Postfixの互換レベル設定
compatibility_level = 2

##### basic configuration #####
queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix

mail_owner = postfix
# メールサーバーのホスト名(FQDN)を指定
myhostname = ****.oshiha.com
# メールサーバーのドメイン名を指定
mydomain = oshiha.com
# メール送信時の送信元メールアドレス@以降にドメイン名を付加(ユーザ名@ドメイン名の形式にする)
myorigin = $mydomain
# 外部からのメールはすべて受信
inet_interfaces = all
# Postfixサーバーがメッセージの宛先として受け付けるホストを定義
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
# 存在しないメールアドレス宛のメールの受信を拒否
local_recipient_maps = proxy:unix:passwd.byname $alias_maps
# 該当するユーザーなしのため、そのメールは受信できませんというエラーコード550 を返す
unknown_local_recipient_reject_code = 550
# 受信メールの再転送先ファイル
alias_maps = hash:/etc/aliases
# newaliasesコマンドの実行対象
alias_database = hash:/etc/aliases
# メールボックス形式をMaildir形式に
home_mailbox = Maildir/
# メールサーバーソフト名の隠蔽化
smtpd_banner = $myhostname ESMTP
# ローカルマシンからのメールのみ転送
mynetworks = 127.0.0.0/8

debug_peer_level = 2
debugger_command =
	 PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
	 ddd $daemon_directory/$process_name $process_id & sleep 5

# Postfix sendmailコマンドの場所
sendmail_path = /usr/sbin/sendmail
# Postfix newaliasesコマンドの場所
newaliases_path = /usr/bin/newaliases
# Postfix mailqコマンドの場所
mailq_path = /usr/bin/mailq
# set-gid Postfixコマンドおよびグループ書き込み可能な Postfix ディレクトリを所有するグループ
setgid_group = postdrop
html_directory = no
manpage_directory = /usr/share/man
sample_directory = /etc/postfix
readme_directory = /usr/share/doc/postfix/readme
inet_protocols = ipv4
meta_directory = /etc/postfix
shlib_directory = /usr/lib/postfix

# 送受信メールサイズを10M(10*1024*1024)に制限
message_size_limit = 10485760

##### SMTP-Auth #####
# SASL認証を有効化
smtpd_sasl_auth_enable = yes
# Dovecot SASLライブラリを指定
smtpd_sasl_type = dovecot
# Dovecot SASLライブラリの認証ソケットファイル/var/spool/postfix/からの相対パスで記述
smtpd_sasl_path = private/auth
# デフォルトではnoanonymous,noplaintextになる
smtpd_sasl_security_options = noanonymous

smtpd_recipient_restrictions =
	permit_mynetworks
	permit_sasl_authenticated
	reject_unauth_destination

##### TLS/SSL #####
# TLSを有効化
smtpd_use_tls = yes
smtpd_tls_security_level = may
smtp_tls_security_level=may
smtpd_tls_cert_file = /etc/letsencrypt/live/****.oshiha.com/fullchain.pem
smtpd_tls_key_file = /etc/letsencrypt/live/****.oshiha.com/privkey.pem
# 接続キャッシュファイルの指定
smtpd_tls_session_cache_database = btree:/var/lib/postfix/smtpd_scache
# TLSログレベルの設定
smtpd_tls_loglevel = 1
# 暗号情報を "Received:" メッセージヘッダに含める
smtpd_tls_received_header = yes

smtpd_tls_mandatory_protocols=!SSLv2,!SSLv3
smtpd_tls_protocols=!SSLv2,!SSLv3
smtp_tls_mandatory_protocols=!SSLv2,!SSLv3
smtp_tls_protocols=!SSLv2,!SSLv3

設定2

alpine:~$ sudo cp /etc/postfix/master.cf /etc/postfix/master.cf.org
alpine:~$ sudo vi /etc/postfix/master.cf
# コメント解除
- #smtps     inet  n       -       n       -       -       smtpd
- #  -o smtpd_tls_wrappermode=yes
- #  -o smtpd_sasl_auth_enable=yes
+ smtps     inet  n       -       n       -       -       smtpd
+   -o smtpd_tls_wrappermode=yes
+   -o smtpd_sasl_auth_enable=yes

設定の確認

alpine:~$ sudo postfix check

何も表示されなければOK。

6. エイリアスの設定

システムからroot宛に重要なメールが送られてくるので、root宛メールを普段使用しているメールアドレスに転送する。

alpine:~$ sudo cp /etc/postfix/aliases /etc/postfix/aliases.org
alpine:~$ sudo vi /etc/postfix/aliases
# 12行目
- #root:	you
+ root:		*****@*****.com
alpine:~$ sudo cp /etc/postfix/aliases /etc/aliases
alpine:~$ sudo newaliases

7. 起動とサービス登録

alpine:~$ sudo rc-service postfix start
alpine:~$ sudo rc-update add postfix
◆◇◆ 【衝撃価格】VPS512MBプラン!月額630円/1時間1円【ConoHa】 ◆◇◆

ConoHa VPSの攻略
Alpine Linux 3.8

TOP