PostfixにDKIMを設定する / Rocky Linux9.4 on さくらのVPS
篠原 隆司
アフィリエイト広告を利用しています
このページの内容が役に立ったら X (旧twitter) でフォローして頂けると励みになります
挨拶や報告は無しで大丈夫です
さくらのVPSにRockyLinux9.4をインストールした覚書です。
今回は、PostfixにDKIMを設定し、メールの送信者認証を強化する手順をまとめます。
OpenDKIMを導入し、Postfixと連携させることで、送信メールにDKIM署名を付与し、受信側での信頼性を向上させる設定を行います。
なお本番環境で利用される場合はここにある内容だけを鵜呑みにせずセキュリティ専門家に相談されることをお勧めします。
環境
実施日 | 2025-02-06 |
サーバ | さくらのVPS 2G
![]() |
OS | Rocky Linux9.4 |
cat /etc/redhat-release
Rocky Linux release 9.5 (Blue Onyx)
前提
下記のページを行い、postfix がインストールされている状態で本記事は進めます。
メールサーバのPostfixをインストール / Rocky Linux9.4 on さくらのVPS
opendkimのインストール
dnfからインストールします。
dnf --enablerepo=epel install opendkim opendkim-tools
変数設定
DKIMで設定するドメインは、送信メールの From の @ の後ろです。
本記事では「sample@sub.example.com」を From とするメール設定を行う流れで進めます。
メールアドレス部分は読みかえてください。
【注意】
@sub.example.com のようにサブドメインの場合は example.com で進めてください
DKIMはドメイン単位で設定を行います
# コピペせず、設定したいドメインに書き換えてください
# サブドメイン部分は外します
DKIM_MAIL_ADDRESS=example.com
opendkim のディレクトリを作成
まず、opendkim の鍵ファイルを保存するディレクトリを作成し、適切な権限を設定します。
mkdir -p /etc/opendkim/keys/$DKIM_MAIL_ADDRESS
chown -R opendkim:opendkim /etc/opendkim
DKIM 鍵(秘密鍵・公開鍵)を生成
次に、DKIM の秘密鍵と公開鍵を生成します。
opendkim-genkey -b 2048 -d $DKIM_MAIL_ADDRESS -s default -D /etc/opendkim/keys/$DKIM_MAIL_ADDRESS
chown opendkim:opendkim /etc/opendkim/keys/$DKIM_MAIL_ADDRESS/default.private
chmod 600 /etc/opendkim/keys/$DKIM_MAIL_ADDRESS/default.private
秘密鍵(default.private)と公開鍵(DNS用)(default.txt)が作られます
ls -la /etc/opendkim/keys/$DKIM_MAIL_ADDRESS
/etc/opendkim.conf を編集
opendkim.conf を編集し、Postfix と連携するように設定します。
# Mode を置換
sed -i "s|^Mode[[:space:]]\+.*$|Mode sv|" /etc/opendkim.conf
# Domain を置換
sed -i "s|^#\s*Domain[[:space:]]\+.*$|Domain $DKIM_MAIL_ADDRESS|" /etc/opendkim.conf
# KeyFile を置換
sed -i "s|^KeyFile[[:space:]]\+.*$|KeyFile /etc/opendkim/keys/$DKIM_MAIL_ADDRESS/default.private|" /etc/opendkim.conf
chroot を使用している場合は Socket も変えておいたほうが良いです
# Socket を置換
sed -i "s|^Socket[[:space:]]\+.*$|Socket inet:8891@localhost|" /etc/opendkim.conf
Postfix に opendkim を設定
Postfix に opendkim を連携させるため、main.cf を編集します。
vi /etc/postfix/main.cf
次の内容を末尾に追加します。
# DKIM
milter_default_action = accept
milter_protocol = 6
smtpd_milters = local:/var/run/opendkim/opendkim.sock
non_smtpd_milters = local:/var/run/opendkim/opendkim.sock
DKIM の公開鍵を DNS に登録
DKIM の公開鍵を DNS に TXT レコードとして登録 します。
生成された公開鍵を確認
cat /etc/opendkim/keys/$DKIM_MAIL_ADDRESS/default.txt
出力例
default._domainkey IN TXT "v=DKIM1; k=rsa; p=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
表示された内容を使って、DNSに登録を行います。

サブドメインに注意
本記事では前提に書いたとおり「sample@sub.example.com」を設定する流れで説明を進めています
サブドメインの場合は、DNSに設定するホスト名が変わります
default._domainkey.sub.example.com
こちらのように「default._domainkey」に「sub.example.com」を付ける形とします。
opendkim を起動
opendkim を起動し、サービスを有効化します。
# 起動
systemctl start opendkim
# 有効化
systemctl enable opendkim
# 確認
systemctl status opendkim
DKIM の設定を確認
コマンドから確認する
nslookup -type=txt default._domainkey.sub.example.com
WEBから確認する
次のページで DKIM の設定が正しく登録されているか確認できます。
https://toolbox.googleapps.com/apps/dig/?lang=ja#TXT
「名前」に default._domainkey.aulta.net のように入力します。
正しく設定されていれば、v=DKIM1; k=rsa; p=XXXXXX のような情報が表示されます。
メール送信テスト
ここまでできたら、実際にメールを送信して確認します。
gmail 宛に送信して、DKIMが付いたか確認するのが手軽でオススメです。
うまくいかないとき
maillog に Permission denied
次のようにパーミッションを調整します
chown opendkim:postfix /var/run/opendkim/opendkim.sock
chmod 660 /var/run/opendkim/opendkim.sock
chmod 770 /var/run/opendkim
chown opendkim:postfix /var/run/opendkim
usermod -aG opendkim postfix
# 変更後は再起動
systemctl restart opendkim
systemctl restart postfix