Ubuntu 22.04 に postfix + dovecot をインストール

Pocket

メールサーバを構築するメモです。
※ 勉強のために EC2 にメールサーバを構築した備忘録です。
構築後は EC2 は停止しているので外部公開を目的にはしていません。

Ref.

Postfix を導入

【初心者向け】EC2を利用したメールサーバーの構築( Postfix + Dovecot ) を参考にして作業しました。

インストール

$ sudo apt install -y  postfix
$ sudo systemctl status postfix.service
● postfix.service - Postfix Mail Transport Agent
     Loaded: loaded (/lib/systemd/system/postfix.service; enabled; vendor preset: enabled)
     Active: active (exited) since Mon 2023-09-11 15:33:35 JST; 2min 35s ago
       Docs: man:postfix(1)
    Process: 3398 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
   Main PID: 3398 (code=exited, status=0/SUCCESS)
        CPU: 1ms

Sep 11 15:33:35 xxxxxx systemd[1]: Starting Postfix Mail Transport Agent...
Sep 11 15:33:35 xxxxxx systemd[1]: Finished Postfix Mail Transport Agent.

設定ファイルを編集

/etc/postfix/main.cf を以下のように編集しました。
末尾の home_mailbox = Maildir/ は新規に追加しました。

# See /usr/share/postfix/main.cf.dist for a commented, more complete version


# Debian specific:  Specifying a file name will cause the first
# line of that file to be used as the name.  The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname

myorigin=example.com
myhostname=example.com
mydomain=example.com

# smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
smtpd_banner = $myhostname ESMTP unknown
biff = no

# appending .domain is the MUA's job.
# append_dot_mydomain = no
append_dot_mydomain = yes

# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h

readme_directory = no

# See http://www.postfix.org/COMPATIBILITY_README.html -- default to 3.6 on
# fresh installs.
compatibility_level = 3.6



# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_tls_security_level=may

smtp_tls_CApath=/etc/ssl/certs
smtp_tls_security_level=may
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache


smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
# myhostname = ip-xxxxx.ap-northeast-1.compute.internal
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
# myorigin = /etc/mailname
mydestination = $myhostname, $domain, localhost.$domain, localhost
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = all

# Maildir 形式に変更
home_mailbox = Maildir/

設定値を確認

デフォルトとの差分を表示します。

$ sudo postconf -n

設定ファイルをチェックします。

$ sudo postfix check

Postfix をリスタート

$ sudo systemctl enable --now postfix

ユーザーを追加

ユーザー登録( adduser )でホームディレクトリに Maildir を作成するように雛形を設定します。

$ sudo mkdir -p /etc/skel/Maildir/{new,cur,tmp}
$ chmod -R 700 /etc/skel/Maildir/

ユーザー mail-example を追加します。

$ sudo adduser mail-example

// ユーザー mail-example を追加します
// グループ mail-example を追加します
// ホームディレクトリを作成します

※ Ubuntu(や Debian )は adduseruseradd で機能が異なります。
useradd はホームディレクトリを作成しません。
※ Ubuntu(や Debian )は deluseruserdel で機能が異なります。

$ userdel ユーザー名 // ユーザーを削除
$ userdel -r ユーザー名 //ユーザーのホームディレクトリも削除
$ deluser --remove-home ユーザー名 // ↑と同じくユーザーのホームディレクトリも削除

sudo を有効化

mail-example を adm, sudo グループに追加して sudo を有効化します。

$ sudo gpasswd -a mail-example adm
$ sudo gpasswd -a mail-example sudo

メール送信をテスト

ubuntu でログインします。

  • 送信元 ubuntu@example.com
  • 送信先 mail-example.example.com
$ echo "test mail" | sudo mail -s "test subject" -r "ubuntu@example.com" mail-example@example.com

/home/mail-example/Maildir/new にメールが届きます。

sshd のパスワード認証を有効化

sshd のパスワード認証を有効化します。

$ sudo vim /etc/ssh/sshd_config
- PasswordAuthentication no
+ PasswordAuthentication yes

devcot を導入

Ref.

インストール&設定

【初心者向け】EC2を利用したメールサーバーの構築( Postfix + Dovecot )を参考に作業しました。

$ sudo apt -y install dovecot-core dovecot-pop3d dovecot-imapd

Ubuntu は dovecot を上記パッケージで提供されています。
その他は /etc/postfix/master.cf で -o smtpd_sasl_auth_enable=yes のコメントアウトを保持する以外は記事のとおりに作業しました。

POP3 の接続を確認

telnetの代わりにcurl、ncを参考にして cURL を使用して POP3 の接続を確認しました。

$ curl telnet://example.com:110
User {{ユーザー名}}
Pass {{パスワード}}
RETR 1 // 最初のメールを取得

コメント

No comments yet.

コメントの投稿

改行と段落タグは自動で挿入されます。
メールアドレスは表示されません。