01.メールサーバ構築 – 準備編[さくらのクラウド/CentOS8]

1. ツールのインストールと設定

#-- ホスト名の確認
# hostname
mail.sacloud.ma3ki.net

#-- 必要なツールのインストールとアップデート
# dnf config-manager --set-enabled PowerTools
# dnf install -y telnet jq expect sysstat mailx
# dnf update -y

#-- usacloud のインストール
# curl -fsSL https://releases.usacloud.jp/usacloud/repos/install.sh | bash
# usacloud config --token <APIキー アクセストークン>
# usacloud config --secret <APIキー アクセストークンシークレット>
# usacloud config --zone $(dmidecode -t system | awk '/Family/{print $NF}')

#-- certbot で使用するアクセストークンとシークレットを設定
# cat <<_EOL_> ~/.sakura
dns_sakuracloud_api_token = "<APIキー アクセストークン>"
dns_sakuracloud_api_secret = "<APIキー アクセストークンシークレット>"
_EOL_
# chmod 600 ~/.sakura

#-- rsyslog の ratelimit の制限を解除
# sed -i '/^module(load="imjournal"/a \       ratelimit.interval="0"' /etc/rsyslog.conf

2.DNSレコードの設定(1)

#-- 変数設定
# DOMAIN=sacloud.ma3ki.net
# source /etc/sysconfig/network-scripts/ifcfg-eth0

#-- DNSレコードの登録
# usacloud dns record-add -y --name @ --type A   --value ${IPADDR} ${DOMAIN}
# usacloud dns record-add -y --name @ --type MX  --value ${DOMAIN}. ${DOMAIN}
# usacloud dns record-add -y --name @ --type TXT --value "v=spf1 +ip4:${IPADDR} -all" ${DOMAIN}
# usacloud dns record-add -y --name mail --type A --value ${IPADDR} ${DOMAIN}
# usacloud dns record-add -y --name _adsp._domainkey --type TXT --value "dkim=discardable" ${DOMAIN}
# usacloud dns record-add -y --name _dmarc --type TXT --value "v=DMARC1; p=reject; rua=mailto:dmarc-report@${DOMAIN}" ${DOMAIN}
# usacloud dns record-add -y --name _mta-sts --type TXT --value "v=STSv1; id=$(date +%Y%m%d%H%M%S);" ${DOMAIN}
# usacloud dns record-add -y --name _smtp._tls --type TXT --value "v=TLSRPTv1; rua=mailto:sts-report@${DOMAIN}" ${DOMAIN}
# usacloud dns record-add -y --name mta-sts --type A --value ${IPADDR} ${DOMAIN}
# usacloud dns record-add -y --name autoconfig --type A --value ${IPADDR} ${DOMAIN}
# usacloud ipv4 ptr-add -y --hostname mail.${DOMAIN} ${IPADDR}

DNSレコードの設定(1)後の状態

3.SSL証明書の取得

#-- certbot のインストール
# dnf install -y certbot python3-certbot-dns-sakuracloud

#-- SSL 証明書の取得
# certbot certonly --dns-sakuracloud --dns-sakuracloud-credentials /root/.sakura --dns-sakuracloud-propagation-seconds 90 -d *.${DOMAIN} -d ${DOMAIN} -m admin@${DOMAIN} --manual-public-ip-logging-ok --agree-tos

#-- SSL 証明書の更新と更新時に nginx と postfix を再起動する cron を設定
# echo "$((${RANDOM}%60)) $((${RANDOM}%24)) * * $((${RANDOM}%7)) root certbot renew --post-hook 'systemctl reload nginx postfix'" > /etc/cron.d/sacloud

次の投稿では clamav と rspamd をセットアップします。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)