「広告」

Postfix 3.3 on Amazon Linux 2 メール受信、シングルドメイン版

「広告」
記事内に広告が含まれています。
「広告」

Postfix 3.3 作成の続き。
メールが外部から届くようにする。
シングルドメイン版、つまり、Unixのユーザ名=(イコール)メールアドレスとなります。

「広告」

postfix 3.3 受け入れるドメイン名を指定

vi /etc/postfix/main.cf

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#mydomain = domain.tld
mydomain = (ドメイン名)
#mydomain = domain.tld mydomain = (ドメイン名)
#mydomain = domain.tld
mydomain = (ドメイン名)

↑「mydomain」にドメインを指定します

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#myhostname = host.domain.tld
#myhostname = virtual.domain.tld
myhostname = mail.(ドメイン名)
#myhostname = host.domain.tld #myhostname = virtual.domain.tld myhostname = mail.(ドメイン名)
#myhostname = host.domain.tld
#myhostname = virtual.domain.tld
myhostname = mail.(ドメイン名)

↑「myhostname」にも追加します

「広告」

ネットワーク、すべてから受信を可能にする

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#inet_interfaces = localhost
inet_interfaces = all
#inet_interfaces = localhost inet_interfaces = all
#inet_interfaces = localhost
inet_interfaces = all

↑すべてのネットワークから、メールが受信できるように「all」と指定します。

「広告」

リレーの設定をする

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# systemctl restart postfix
# systemctl restart postfix
# systemctl restart postfix

postfix、再起動をする。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# telnet mail.(ドメイン名) 25
Trying (IPアドレス)...
Connected to mail.(ドメイン名).
Escape character is '^]'.
# telnet mail.(ドメイン名) 25 Trying (IPアドレス)... Connected to mail.(ドメイン名). Escape character is '^]'.
# telnet mail.(ドメイン名) 25
Trying (IPアドレス)...
Connected to mail.(ドメイン名).
Escape character is '^]'.

↑外からのリレーで反応なし

/var/log/maillog
にエラーが出ていた。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
fatal: in parameter smtpd_relay_restrictions or smtpd_recipient_restrictions, specify at least one working instance of: reject_unauth_destination, defer_unauth_destination, reject, defer, defer_if_permit or check_relay_domains
fatal: in parameter smtpd_relay_restrictions or smtpd_recipient_restrictions, specify at least one working instance of: reject_unauth_destination, defer_unauth_destination, reject, defer, defer_if_permit or check_relay_domains
fatal: in parameter smtpd_relay_restrictions or smtpd_recipient_restrictions, specify at least one working instance of: reject_unauth_destination, defer_unauth_destination, reject, defer, defer_if_permit or check_relay_domains

smtpd_relay_restrictions

smtpd_recipient_restrictions
を設定しないとけないみたい!

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination

↑という行を、inet_interfacesの行の後ろあたりに付け加える。

permit_mynetworks
「mynetworksからのリレーを許可」
permit_sasl_authenticated
「SASL認証経由のリレーを許可」
defer_unauth_destination
「宛先不明のリレーを拒否」

「広告」

外からのメール受信をチェック

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# systemctl restart postfix
# systemctl restart postfix
# systemctl restart postfix

再び再起動

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# telnet mail.(ドメイン名) 25
Trying (IPアドレス)...
Connected to mail.(ドメイン名).
Escape character is '^]'.
220 mail.(ドメイン名) ESMTP Postfix
# telnet mail.(ドメイン名) 25 Trying (IPアドレス)... Connected to mail.(ドメイン名). Escape character is '^]'. 220 mail.(ドメイン名) ESMTP Postfix
# telnet mail.(ドメイン名) 25
Trying (IPアドレス)...
Connected to mail.(ドメイン名).
Escape character is '^]'.
220 mail.(ドメイン名) ESMTP Postfix

↑と、反応があった

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#mydestination = $myhostname, localhost.$mydomain, localhost
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
#mydestination = $myhostname, localhost.$mydomain, localhost mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
#mydestination = $myhostname, localhost.$mydomain, localhost
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain

↑上が有効だったが、下を有効にする。

そのほか、AWSのセキュリティグループで25番を解放する

telnetで、外から25番ポートを叩いてみる。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# telnet mail.(ドメイン名) 25
Trying 13.231.108.239...
Connected to mail.(ドメイン名).
Escape character is '^]'.
220 mail.(ドメイン名) ESMTP Postfix
helo x
250 mail.(ドメイン名)
MAIL FROM:(送信元アドレス)
250 2.1.0 Ok
RCPT TO:info@(ドメイン名)(送信先メールアドレス)
250 2.1.5 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
Subject:test1
test2.
.
250 2.0.0 Ok: queued as 1CB2849E13A
quit
221 2.0.0 Bye
Connection closed by foreign host.
# telnet mail.(ドメイン名) 25 Trying 13.231.108.239... Connected to mail.(ドメイン名). Escape character is '^]'. 220 mail.(ドメイン名) ESMTP Postfix helo x 250 mail.(ドメイン名) MAIL FROM:(送信元アドレス) 250 2.1.0 Ok RCPT TO:info@(ドメイン名)(送信先メールアドレス) 250 2.1.5 Ok DATA 354 End data with <CR><LF>.<CR><LF> Subject:test1 test2. . 250 2.0.0 Ok: queued as 1CB2849E13A quit 221 2.0.0 Bye Connection closed by foreign host.
# telnet mail.(ドメイン名) 25
Trying 13.231.108.239...
Connected to mail.(ドメイン名).
Escape character is '^]'.
220 mail.(ドメイン名) ESMTP Postfix
helo x
250 mail.(ドメイン名)
MAIL FROM:(送信元アドレス)
250 2.1.0 Ok
RCPT TO:info@(ドメイン名)(送信先メールアドレス)
250 2.1.5 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
Subject:test1
test2.
.
250 2.0.0 Ok: queued as 1CB2849E13A
quit
221 2.0.0 Bye
Connection closed by foreign host.

送信はできたようだ

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Aug 9 22:24:55 ip-10-0-0-91 postfix/smtpd[4201]: connect from (送信元)
Aug 9 22:25:21 ip-10-0-0-91 postfix/smtpd[4201]: 1CB2849E13A: client=送信元
Aug 9 22:25:45 ip-10-0-0-91 postfix/cleanup[4205]: 1CB2849E13A: message-id=<>
Aug 9 22:25:45 ip-10-0-0-91 postfix/qmgr[4159]: 1CB2849E13A: from=<送信元メール>, size=207, nrcpt=1 (queue active)
Aug 9 22:25:45 ip-10-0-0-91 postfix/local[4206]: 1CB2849E13A: to=<root@mail.(ドメイン名)>, orig_to=<info@(ドメイン名)>, relay=local, delay=34, delays=34/0.01/0/0, dsn=2.0.0, status=sent (delivered to maildir)
Aug 9 22:25:45 ip-10-0-0-91 postfix/qmgr[4159]: 1CB2849E13A: removed
Aug 9 22:25:52 ip-10-0-0-91 postfix/smtpd[4201]: disconnect from (送信元) helo=1 mail=1 rcpt=1 data=1 quit=1 commands=5
Aug 9 22:24:55 ip-10-0-0-91 postfix/smtpd[4201]: connect from (送信元) Aug 9 22:25:21 ip-10-0-0-91 postfix/smtpd[4201]: 1CB2849E13A: client=送信元 Aug 9 22:25:45 ip-10-0-0-91 postfix/cleanup[4205]: 1CB2849E13A: message-id=<> Aug 9 22:25:45 ip-10-0-0-91 postfix/qmgr[4159]: 1CB2849E13A: from=<送信元メール>, size=207, nrcpt=1 (queue active) Aug 9 22:25:45 ip-10-0-0-91 postfix/local[4206]: 1CB2849E13A: to=<root@mail.(ドメイン名)>, orig_to=<info@(ドメイン名)>, relay=local, delay=34, delays=34/0.01/0/0, dsn=2.0.0, status=sent (delivered to maildir) Aug 9 22:25:45 ip-10-0-0-91 postfix/qmgr[4159]: 1CB2849E13A: removed Aug 9 22:25:52 ip-10-0-0-91 postfix/smtpd[4201]: disconnect from (送信元) helo=1 mail=1 rcpt=1 data=1 quit=1 commands=5
Aug 9 22:24:55 ip-10-0-0-91 postfix/smtpd[4201]: connect from (送信元)
Aug 9 22:25:21 ip-10-0-0-91 postfix/smtpd[4201]: 1CB2849E13A: client=送信元
Aug 9 22:25:45 ip-10-0-0-91 postfix/cleanup[4205]: 1CB2849E13A: message-id=<>
Aug 9 22:25:45 ip-10-0-0-91 postfix/qmgr[4159]: 1CB2849E13A: from=<送信元メール>, size=207, nrcpt=1 (queue active)
Aug 9 22:25:45 ip-10-0-0-91 postfix/local[4206]: 1CB2849E13A: to=<root@mail.(ドメイン名)>, orig_to=<info@(ドメイン名)>, relay=local, delay=34, delays=34/0.01/0/0, dsn=2.0.0, status=sent (delivered to maildir)
Aug 9 22:25:45 ip-10-0-0-91 postfix/qmgr[4159]: 1CB2849E13A: removed
Aug 9 22:25:52 ip-10-0-0-91 postfix/smtpd[4201]: disconnect from (送信元) helo=1 mail=1 rcpt=1 data=1 quit=1 commands=5

info@宛てのメールは届いたが、root宛てに転送された

「広告」

メールボックスを作成、転送を解除

info@宛てのメールボックスを作成する

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
mkdir -p /etc/skel/Maildir/new
mkdir -p /etc/skel/Maildir/cur
mkdir -p /etc/skel/Maildir/tmp
chmod -R 700 /etc/skel/Maildir/
mkdir -p /etc/skel/Maildir/new mkdir -p /etc/skel/Maildir/cur mkdir -p /etc/skel/Maildir/tmp chmod -R 700 /etc/skel/Maildir/
mkdir -p /etc/skel/Maildir/new
mkdir -p /etc/skel/Maildir/cur
mkdir -p /etc/skel/Maildir/tmp
chmod -R 700 /etc/skel/Maildir/

useraddで、作成をしたときに、メールボックスが自動的に作成されるようにする。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# /sbin/useradd info
# passwd info
Changing password for user info.
New password:
BAD PASSWORD: The password is shorter than 7 characters
Retype new password:
passwd: all authentication tokens updated successfully.
# cd /home/info/
# ls -al
total 12
drwx------ 3 info info 77 Aug 10 19:06 .
drwxr-xr-x 5 root root 49 Aug 10 19:06 ..
-rw-r--r-- 1 info info 18 Oct 25 2017 .bash_logout
-rw-r--r-- 1 info info 193 Oct 25 2017 .bash_profile
-rw-r--r-- 1 info info 231 Oct 25 2017 .bashrc
drwx------ 5 info info 39 Jul 20 20:36 Maildir
# /sbin/useradd info # passwd info Changing password for user info. New password: BAD PASSWORD: The password is shorter than 7 characters Retype new password: passwd: all authentication tokens updated successfully. # cd /home/info/ # ls -al total 12 drwx------ 3 info info 77 Aug 10 19:06 . drwxr-xr-x 5 root root 49 Aug 10 19:06 .. -rw-r--r-- 1 info info 18 Oct 25 2017 .bash_logout -rw-r--r-- 1 info info 193 Oct 25 2017 .bash_profile -rw-r--r-- 1 info info 231 Oct 25 2017 .bashrc drwx------ 5 info info 39 Jul 20 20:36 Maildir
# /sbin/useradd info
# passwd info
Changing password for user info.
New password:
BAD PASSWORD: The password is shorter than 7 characters
Retype new password:
passwd: all authentication tokens updated successfully.
# cd /home/info/
# ls -al
total 12
drwx------ 3 info info 77 Aug 10 19:06 .
drwxr-xr-x 5 root root 49 Aug 10 19:06 ..
-rw-r--r-- 1 info info 18 Oct 25 2017 .bash_logout
-rw-r--r-- 1 info info 193 Oct 25 2017 .bash_profile
-rw-r--r-- 1 info info 231 Oct 25 2017 .bashrc
drwx------ 5 info info 39 Jul 20 20:36 Maildir

ユーザを作成、パスワードを設定。
/home/info以下に、Maildirができていることを確認

aliasの設定を変更する。
info宛てが転送されないようにする。

/etc/postfix/main.cf
で、

alias_maps = hash:/etc/aliases

となっているのを確認

vi /etc/aliases
で、
info
のところ(先頭にinfoがある行)を削除

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
newaliases
systemctl restart postfix
newaliases systemctl restart postfix
newaliases
systemctl restart postfix
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
ls -al /home/info/Maildir/new/
total 12
drwx------ 2 info info 255 Aug 10 19:28 .
drwx------ 5 info info 39 Jul 20 13:36 ..
-rw------- 1 info info 310 Aug 10 19:26 1533868017.XXXXX.ap-northeast-1.compute.internal
-rw------- 1 info info 691 Aug 10 19:28 1533868114.XXXXX.ap-northeast-1.compute.internal
-rw------- 1 info info 1103 Aug 10 19:28 1533868124.XXXXX.ap-northeast-1.compute.internal
ls -al /home/info/Maildir/new/ total 12 drwx------ 2 info info 255 Aug 10 19:28 . drwx------ 5 info info 39 Jul 20 13:36 .. -rw------- 1 info info 310 Aug 10 19:26 1533868017.XXXXX.ap-northeast-1.compute.internal -rw------- 1 info info 691 Aug 10 19:28 1533868114.XXXXX.ap-northeast-1.compute.internal -rw------- 1 info info 1103 Aug 10 19:28 1533868124.XXXXX.ap-northeast-1.compute.internal
ls -al /home/info/Maildir/new/
total 12
drwx------ 2 info info 255 Aug 10 19:28 .
drwx------ 5 info info 39 Jul 20 13:36 ..
-rw------- 1 info info 310 Aug 10 19:26 1533868017.XXXXX.ap-northeast-1.compute.internal
-rw------- 1 info info 691 Aug 10 19:28 1533868114.XXXXX.ap-northeast-1.compute.internal
-rw------- 1 info info 1103 Aug 10 19:28 1533868124.XXXXX.ap-northeast-1.compute.internal

メールが到着!遅れていたメールも順次到着!

「広告」

まとめ

Postfix 3.3 シングルドメインのメールボックスは、最低限の手順で作成できる。
リレーの設定変更(smtpd_relay_restrictions)がキモのような気がする。

タイトルとURLをコピーしました