2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

はじめに

こんにちは。システムエンジニア歴2年目の者です。
最近、メールサーバを1から構築する機会がありました。私自身、インフラ分野には全く触れたことがなく、試行錯誤を繰り返しながらなんとか構築することができました。

この記事では、その際に得た知見や経験を共有したいと思います。これからメールサーバーを構築する方や、同じようにインフラ初心者の方のお役に立てれば幸いです。

サーバー概要

利用したサービス

  • AWS:EC2 AWSが提供しているクラウドサービスを利用
  • Postfix:有名なメール転送エンジン
  • OpenDkim:DKIM認証を実装するためのツール

わからなかったこと

SPFとDKIMとは

  • SPF:「このドメインのメールはこのサーバー(IPアドレス)から送ります」とDNSで宣言する仕組みです
    こちらを利用することで受信側は、送信元のIPアドレスを確認し、不正な送信元からのメールをブロックできます。
  • DKIM:メールに電子署名を付けて、メール送信元が変わっていないかを確認する仕組みです
    秘密鍵を利用して、電子署名を付与し、受け取ったメールサーバーは公開鍵を使って署名を確認し、送信元の正当性を検証します。

テストで確認していた箇所

  • Gmailのソースを確認

Gmailではメールを開いて、右上の3点リーダーから「メッセージのソースを表示」からSPF,DKIM,DMARCが通っているか確認できます
テストで送信したメールが意図したドメインから送られているか、認証は通っているかを確認しましょう(PASSならOKです)
image.png

  • 迷惑メールに入っていないか

今回は既存のIPを利用していたためそこまで重要視していなかったですが、送信したメールが迷惑メールに入っている場合、そのまま放置するとIPレピュテーションが落ちてしまうので、可能な限り開封や迷惑メールではない選択をする必要があります

実際に起きたエラー

1. テスト送信したメールが届かない

作成したメールサーバーからテスト的にメール送信をしようと思ったのですが、なぜか手元にメールが届きませんでした
ログを見てみると以下のログがありました

mail-server postfix/pickup[89246]: 9A0E810000BB: uid=0 from=<root> 
mail-server postfix/trivial-rewrite[92607]: error: open database /etc/postfix/transport.db: No such file or directory   

どうやら「transport.db」とファイルがないためエラーになっていそうでした
調べたところ、こちらのコマンドを実行することで、transport.dbのファイルが作成されました

--transport.dbを生成
postmap /etc/postfix/transport
--postfixの再起動
sudo systemctl reload postfix

なお、postfixで送信先の制限をしない場合は、main.cfのファイルから以下の記載を削除すればtransportの制限を参考にしないで送信できるみたいです
(実践していないので参考程度にしていただければ)

transport_maps = hash:/etc/postfix/transport

最後に

実はこのメールサーバー構築後、別の環境で再度メールサーバーを構築する機会がありました。現在構築中ですが、そちらも機会があったら記事にする予定です!

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?