﻿<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Postfix  |  Web Creators Hub</title>
	<atom:link href="https://web-creators-hub.com/category/linux/postfix/feed/" rel="self" type="application/rss+xml" />
	<link>https://web-creators-hub.com</link>
	<description>WEB技術などの情報をわかりやすく配信するメディア</description>
	<lastBuildDate>Wed, 08 Feb 2023 01:56:31 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.8.2</generator>
	<item>
		<title>Postfix + dovecot バーチャルメールボックスの設定を深堀する</title>
		<link>https://web-creators-hub.com/linux/postfix3/</link>
		<pubDate>Sat, 01 Feb 2020 14:27:09 +0000</pubDate>
		<dc:creator><![CDATA[taizo]]></dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Postfix]]></category>

		<guid isPermaLink="false">https://web-creators-hub.com/?p=607</guid>
		<description><![CDATA[メールサーバは、配送先を1つのドメインのみ設定できるのではなく、複数のドメインを配送先として設定できます。指定された配送先のドメインをどのよ...]]></description>
				<content:encoded><![CDATA[<p>メールサーバは、配送先を1つのドメインのみ設定できるのではなく、複数のドメインを配送先として設定できます。指定された配送先のドメインをどのように仕分けを行うかはいろいろな方法が用意されています。</p>
<p>&nbsp;</p>
<h2>前提</h2>
<p>前提としてメール保管形式は、Maildir形式にします。Postfixとdovecotの設定は、以下に設定してください。</p>
<p><a href="https://web-creators-hub.com/__wordpress/wp-content/uploads/2019/10/postfix4.png"><img src="https://web-creators-hub.com/__wordpress/wp-content/uploads/2019/10/postfix4.png" alt="" width="920" height="426" class="alignnone size-full wp-image-352" srcset="https://web-creators-hub.com/__wordpress/wp-content/uploads/2019/10/postfix4.png 920w, https://web-creators-hub.com/__wordpress/wp-content/uploads/2019/10/postfix4-300x139.png 300w, https://web-creators-hub.com/__wordpress/wp-content/uploads/2019/10/postfix4-768x356.png 768w, https://web-creators-hub.com/__wordpress/wp-content/uploads/2019/10/postfix4-320x148.png 320w" sizes="(max-width: 920px) 100vw, 920px" /></a></p>
<p>&nbsp;</p>
<h3>Postfix　Maildir形式の設定</h3>
<pre class="brush: bash; title: ; notranslate">
vi /etc/postfix/main.cf
</pre>
<pre class="brush: bash; title: ; notranslate">
#MailDir形式に設定
home_mailbox = Maildir/
</pre>
<p>設定の反映は、Postfixを再起動してください。</p>
<p>&nbsp;</p>
<h3>dovecot　Maildir形式の設定</h3>
<p>まずdovecotのインストールします。すでにインストールされている場合は、飛ばしてください。</p>
<pre class="brush: bash; title: ; notranslate">
yum install dovecot
</pre>
<p>以下Maildir形式の設定です。</p>
<pre class="brush: bash; title: ; notranslate">
vi /etc/dovecot/conf.d/10-mail.conf
</pre>
<pre class="brush: bash; title: ; notranslate">
mail_location = maildir:~/Maildir
</pre>
<p>設定の反映は、dovecotを再起動してください。</p>
<p>&nbsp;</p>
<h2>バーチャルメールボックスを設定する方法</h2>
<p>バーチャルメールボックスを実現する方法は、3つあります。それは、<span class="marker-under">mydestinationを利用する方法、バーチャルエイリアスを利用する方法、バーチャルメールボックスを利用する方法</span>です。</p>
<p>&nbsp;</p>
<h2>mydestinationを利用した場合</h2>
<p>mydestinationは、宛先、行先を意味しここにドメインを設定するとメールの宛先を見て、設定されているドメインの場合、自サーバに配送されます。ここからどのユーザーに配送するか仕分けします。仕分けは、ドメインを完全に無視しユーザー名のみで仕分けされます。ユーザーは、Linuxで設定されているユーザーのメールボックスに配送されます。</p>
<p><a href="https://web-creators-hub.com/__wordpress/wp-content/uploads/2019/10/postfix3.png"><img class="alignnone size-full wp-image-351" src="https://web-creators-hub.com/__wordpress/wp-content/uploads/2019/10/postfix3.png" alt="" width="775" height="367" srcset="https://web-creators-hub.com/__wordpress/wp-content/uploads/2019/10/postfix3.png 775w, https://web-creators-hub.com/__wordpress/wp-content/uploads/2019/10/postfix3-300x142.png 300w, https://web-creators-hub.com/__wordpress/wp-content/uploads/2019/10/postfix3-768x364.png 768w, https://web-creators-hub.com/__wordpress/wp-content/uploads/2019/10/postfix3-320x152.png 320w" sizes="(max-width: 775px) 100vw, 775px" /></a></p>
<p><a href="https://web-creators-hub.com/__wordpress/wp-content/uploads/2019/10/postfix5.png"><img class="alignnone size-full wp-image-353" src="https://web-creators-hub.com/__wordpress/wp-content/uploads/2019/10/postfix5.png" alt="" width="734" height="357" srcset="https://web-creators-hub.com/__wordpress/wp-content/uploads/2019/10/postfix5.png 734w, https://web-creators-hub.com/__wordpress/wp-content/uploads/2019/10/postfix5-300x146.png 300w, https://web-creators-hub.com/__wordpress/wp-content/uploads/2019/10/postfix5-320x156.png 320w" sizes="(max-width: 734px) 100vw, 734px" /></a></p>
<p>例としてgmail.comと設定した場合、設定されたサーバから送信すると実際のgmail.com宛には配送されず自サーバに配送されます。</p>
<pre class="brush: bash; title: ; notranslate">
vi /etc/postfix/main.cf
</pre>
<pre class="brush: bash; title: ; notranslate">
mydestination = $myhostname, localhost.$mydomain, localhost,gmail.com
</pre>
<p>また、後に説明するバーチャルエイリアス、バーチャルメールボックスを設定してもmydestinationで設定したほうが優先され、仕分けもvirtual_alias_maps、virtual_mailbox_mapsで設定していても完全に無視され、Linuxのユーザーに仕分けされるので設定には注意が必要です。</p>
<p>&nbsp;</p>
<h2>バーチャルエイリアスを設定した場合</h2>
<p>バーチャルエイリアスは、宛先のドメインがvirtual_alias_domainsで設定されているものと一致した場合、自サーバに配送されます。そしてvirtual_alias_mapsの記載されている内容を基に仕分けされます。virtual_alias_mapsは、宛先のメールアドレスを基に既存のどのLinuxユーザーに配送するかを記載します。</p>
<p><a href="https://web-creators-hub.com/__wordpress/wp-content/uploads/2019/10/postfix6.png"><img class="alignnone size-full wp-image-354" src="https://web-creators-hub.com/__wordpress/wp-content/uploads/2019/10/postfix6.png" alt="" width="734" height="384" srcset="https://web-creators-hub.com/__wordpress/wp-content/uploads/2019/10/postfix6.png 734w, https://web-creators-hub.com/__wordpress/wp-content/uploads/2019/10/postfix6-300x157.png 300w, https://web-creators-hub.com/__wordpress/wp-content/uploads/2019/10/postfix6-320x167.png 320w" sizes="(max-width: 734px) 100vw, 734px" /></a></p>
<p>&nbsp;</p>
<h3>Postfixの設定</h3>
<pre class="brush: bash; title: ; notranslate">
vi /etc/postfix/main.cf
</pre>
<pre class="brush: bash; title: ; notranslate">
virtual_alias_domains = hogehoge.com
virtual_alias_maps = hash:/etc/postfix/virtual
</pre>
<p>&nbsp;</p>
<h3>どのユーザーに配送するか設定する</h3>
<pre class="brush: bash; title: ; notranslate">
vi /etc/postfix/virtual
</pre>
<pre class="brush: bash; title: ; notranslate">
#以下のように[ドメイン] anythingを記述したあとメールアドレスとユーザーを関連付ける
hogehoge.com              anything
newname@hogehoge.com      newname
</pre>
<p>hash化されたDBを作成します。以下のコマンドで設定が反映します。</p>
<pre class="brush: bash; title: ; notranslate">
postmap /etc/postfix/virtual
</pre>
<p>宛先のアカウントはadduserで作成しておきます。</p>
<p>&nbsp;</p>
<h2>バーチャルメールボックスを設定した場合</h2>
<p>バーチャルメールボックスは、Linuxのユーザーを使わず独自にユーザーを作成しメールアドレスと関連付けます。Linuxのユーザーと切り分けができるため独立性が高まり、管理もしやすくなります。ユーザーとメールボックスは、Linuxのユーザーを使わないため独自に用意する必要があります。</p>
<p>バーチャルメールボックスは、宛先のドメインがvirtual_mailbox_domainsで設定されているものと一致した場合、自サーバに配送されvirtual_mailbox_mapsの記載されている内容を基に仕分けします。virtual_mailbox_mapsは、宛先のメールアドレス(ユーザー名)を基にどのメールボックスに配送するかを記載します。メールボックスのディレクトリは、virtual_mailbox_baseで設定します。メールボックスのディレクトの権限を持つユーザー、グループは、virtual_uid_maps、virtual_gid_mapsで定義します。</p>
<p><a href="https://web-creators-hub.com/__wordpress/wp-content/uploads/2020/02/postfix12.png"><img src="https://web-creators-hub.com/__wordpress/wp-content/uploads/2020/02/postfix12.png" alt="" width="768" class="alignnone size-full wp-image-661" srcset="https://web-creators-hub.com/__wordpress/wp-content/uploads/2020/02/postfix12.png 817w, https://web-creators-hub.com/__wordpress/wp-content/uploads/2020/02/postfix12-300x149.png 300w, https://web-creators-hub.com/__wordpress/wp-content/uploads/2020/02/postfix12-768x383.png 768w, https://web-creators-hub.com/__wordpress/wp-content/uploads/2020/02/postfix12-320x159.png 320w" sizes="(max-width: 817px) 100vw, 817px" /></a></p>
<p>&nbsp;</p>
<h3>Postfixの設定</h3>
<pre class="brush: bash; title: ; notranslate">
vi /etc/postfix/main.cf
</pre>
<pre class="brush: bash; title: ; notranslate">
#自サーバに配送するドメイン。複数記述する場合カンマで追加
virtual_mailbox_domains = hogehoge.com
#仕分け時に利用する関連付けファイル
virtual_mailbox_maps = hash:/etc/postfix/vmail
#メールボックスのディレクトの権限を持つユーザーID、グループID
virtual_uid_maps = static:10000
virtual_gid_maps = static:10000
#メールボックスのディレクトリ
virtual_mailbox_base = /var/www/vmailbox
</pre>
<p>&nbsp;</p>
<h3>メールボックスの作成</h3>
<pre class="brush: bash; title: ; notranslate">
#メールボックスのディレクトの権限を持つユーザー、グループを作成
groupadd -g 10000 vmailg
useradd -u 10000 -g vmailg vmail
#バーチャルメールボックスのディレクトリを作成。このディレクトリにユーザーのメールボックスが作成される。
mkdir /var/www/vmailbox
#権限変更
chown -R 10000.10000 /var/www/vmailbox
</pre>
<p>&nbsp;</p>
<h3>どのユーザーに、どこのメールボックスへ配送するか記載する</h3>
<p>ユーザー名と配送先のメールボックスのpathを記入します。ユーザー名はメールアドレスと同一にします。pathは/ドメイン名/@の前のユーザー名/Maildir/にします。これは後に設定するdovecotの設定と合わすためです。</p>
<pre class="brush: bash; title: ; notranslate">
vi /etc/postfix/vmail
</pre>
<pre class="brush: bash; title: ; notranslate">
test@hogehoge.com      hogehoge.com/test/Maildir/
</pre>
<p>hash化されたDBを作成します。以下のコマンドで設定が反映します。</p>
<pre class="brush: bash; title: ; notranslate">
postmap /etc/postfix/vmail
</pre>
<p>&nbsp;</p>
<h2>バーチャルメールボックスに対応したdovecotの設定</h2>
<p>Postfixの設定で送信されてきたメールは、無事メールボックスに配送されます。しかしユーザーがメーラーでメールを受信するためには、バーチャルメールボックスに対応したdovecotの設定が必要です。</p>
<p>&nbsp;</p>
<h3>バーチャルメールボックスの設定</h3>
<p>dovecotの認証関連の設定を変更します。デフォルトの認証方法は、Linuxのユーザーのみになっているので、dovecotで独自のユーザー情報を利用した認証方法に変更します。このユーザーを利用して先ほど設定したPostfixの設定に対応させます。</p>
<p>dovecotのアカウント情報は、ユーザーDBとパスワードDBで構成されています。DBは、外部のアカウントシステムやファイルを参照することで情報を管理します。今回は、ユーザーDBにstatic(静的にメールボックスのpathを定義)とpasswdfile(認証用ユーザー)、パスワードDBにpasswdfile(認証用ユーザーに対応したパスワード)を使用します。</p>
<p><a href="https://web-creators-hub.com/__wordpress/wp-content/uploads/2020/02/dovecot_db.png"><img src="https://web-creators-hub.com/__wordpress/wp-content/uploads/2020/02/dovecot_db.png" alt="" width="840" height="400" class="alignnone size-full wp-image-662" srcset="https://web-creators-hub.com/__wordpress/wp-content/uploads/2020/02/dovecot_db.png 840w, https://web-creators-hub.com/__wordpress/wp-content/uploads/2020/02/dovecot_db-300x143.png 300w, https://web-creators-hub.com/__wordpress/wp-content/uploads/2020/02/dovecot_db-768x366.png 768w, https://web-creators-hub.com/__wordpress/wp-content/uploads/2020/02/dovecot_db-320x152.png 320w" sizes="(max-width: 840px) 100vw, 840px" /></a></p>
<p>以下の設定で認証方法を変更します。</p>
<pre class="brush: bash; title: ; notranslate">
vi /etc/dovecot/conf.d/10-auth.conf
</pre>
<pre class="brush: bash; title: ; notranslate">
#!include auth-deny.conf.ext
#!include auth-master.conf.ext
#認証時のパスフレーズの送信方法を指定。デフォルトは plain。
auth_mechanisms = cram-md5 plain login
#Linuxのアカウントを使って認証を使用する。使わない場合はコメントアウトする。
!include auth-system.conf.ext
#!include auth-sql.conf.ext
#!include auth-ldap.conf.ext
#Dovecotの認証データベースを使用する。#を外す
!include auth-passwdfile.conf.ext
#!include auth-checkpassword.conf.ext
#!include auth-vpopmail.conf.ext
#静的なPathを設定するデータベースを使用する。#を外す。この設定でPostfixのメールボックスに対応させる。
!include auth-static.conf.ext
</pre>
<p>&nbsp;</p>
<h3>dovecot独自のユーザーを設定する</h3>
<p>以下の設定で独自のユーザー情報が記載されたファイルを定義します。</p>
<pre class="brush: bash; title: ; notranslate">
vi /etc/dovecot/conf.d/auth-passwdfile.conf.ext
</pre>
<pre class="brush: bash; title: ; notranslate">
passdb {
  driver = passwd-file
  #args = scheme=CRYPT username_format=%u /etc/dovecot/users
  args = scheme=CRAM-MD5 username_format=%u /etc/dovecot/passwd
}

userdb {
  driver = passwd-file
  #args = username_format=%u /etc/dovecot/users
  args = scheme=CRAM-MD5 username_format=%u /etc/dovecot/passwd
}
</pre>
<p>次は、ユーザーに設定するパスワードを先に作成します。</p>
<pre class="brush: bash; title: ; notranslate">
#パスワード生成コマンド
doveadm pw
Enter new password:←パスワードを入力
Retype new password:←再度パスワードを入力
#生成されたパスワードは後に貼り付けるのでコピーする
{CRAM-MD5}fe8522268d91e485ccac8f36800e4fa6b10363e2a371....
</pre>
<p>最後にユーザーを作成します。</p>
<pre class="brush: bash; title: ; notranslate">
vi /etc/dovecot/passwd
</pre>
<p>ユーザー名は、必ずメールアドレスと同一にします。これは、userdbで「username_format=%u」と設定したからです。%uは、メールアドレス全体を表します。これを「username_format=%n」とすると@の前のユーザー名で定義する必要があります。パスワードは、先ほどコピーしたパスワードを貼り付けます。</p>
<pre class="brush: bash; title: ; notranslate">
#ユーザー名:パスワード　で設定
#userdbでusername_format=%uにした場合
test@hogehoge.com:{CRAM-MD5}fe8522268d91e485ccac8f36800e4fa6b10363e2a371....

#userdbでusername_format=%nにした場合は@以降を削除する
#test:{CRAM-MD5}fe8522268d91e485ccac8f36800e4fa6b10363e2a371....
</pre>
<h3>バーチャルメールボックスのPathを設定する</h3>
<p>Postfixで設定したバーチャルメールボックスからメーラーで受信できるように設定します。<br />
以下の設定でPostfixで設定したバーチャルメールボックス、ユーザーID、グループIDを設定します。<br />
argsのhomeでメールボックスのpathを定義します。ユーザー名をメールアドレスにすることで変数%dと%nを使うことができます。%dは、ユーザー名の@以後のドメイン名を参照し%nは@の前のユーザー名を参照します。これでメールボックスのpathを動的に定義することができます。</p>
<p><a href="https://web-creators-hub.com/__wordpress/wp-content/uploads/2020/02/user_format.png"><img src="https://web-creators-hub.com/__wordpress/wp-content/uploads/2020/02/user_format.png" alt="" width="601" height="337" class="alignnone size-full wp-image-671" srcset="https://web-creators-hub.com/__wordpress/wp-content/uploads/2020/02/user_format.png 601w, https://web-creators-hub.com/__wordpress/wp-content/uploads/2020/02/user_format-300x168.png 300w, https://web-creators-hub.com/__wordpress/wp-content/uploads/2020/02/user_format-320x179.png 320w" sizes="(max-width: 601px) 100vw, 601px" /></a></p>
<pre class="brush: bash; title: ; notranslate">
vi /etc/dovecot/conf.d/auth-static.conf.ext
</pre>
<pre class="brush: bash; title: ; notranslate">
userdb {
  driver = static
  #args = uid=vmail gid=vmail home=/home/%u
  #Postfixで設定したバーチャルメールボックス、ユーザーID、グループIDを記載する
  #%dはユーザー名の@以後のドメイン名、%nは@の前のユーザー名
  args = uid=10000 gid=10000 home=/var/www/vmailbox/%d/%n
}
</pre>
<p>特殊変数の詳しい説明はこちら<br />
<a href="https://doc.dovecot.org/configuration_manual/config_file/config_variables/#config-variables" rel="noopener" target="_blank">https://doc.dovecot.org/configuration_manual/config_file/config_variables/#config-variables</a></p>
<p>dovecotを再起動すると設定が反映され、メーラーからメールを受信することができます。</p>
]]></content:encoded>
			</item>
		<item>
		<title>SMTP-AUTH(認証機能)を使ったメール送信 Postfix + dovecot の設定</title>
		<link>https://web-creators-hub.com/linux/postfix2/</link>
		<pubDate>Wed, 29 Jan 2020 16:08:25 +0000</pubDate>
		<dc:creator><![CDATA[taizo]]></dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Postfix]]></category>

		<guid isPermaLink="false">https://web-creators-hub.com/?p=597</guid>
		<description><![CDATA[前回のつづき 前回までは「mynetworks」で設定したネットワーク内でしか外部送信できませんでしたが、今回は、「mynetworks」以...]]></description>
				<content:encoded><![CDATA[<p>前回のつづき<br />
<div class="linkcard"><table border="1" cellspacing="0" cellpadding="4"><tbody></tr><tr><td><br><a class="lkc-link no_icon" href="https://web-creators-hub.com/linux/postfix-basic/">【基本】理解しながらPostfixの設定を行う</a> - Web Creators Hub</td></tr></tbody></table></div></p>
<p>前回までは「mynetworks」で設定したネットワーク内でしか外部送信できませんでしたが、今回は、「mynetworks」以外から送信をできるようにします。それを実現するためにSMTPに認証機能(SMTP-AUTH)を実装します。まずはSMTP-AUTHとはなにか理解する必要があります。</p>
<p>&nbsp;</p>
<h2>SMTP-AUTHとは</h2>
<p>スパムメールがなかった時代、メール送信サーバは、認証などなくだれでも送信できる状態でした。しかしスパムメールが流行りだすと誰でも送信できないようにメール送信にも認証が必要になりました。当初は、そのような認証機能がなかったため、POP認証の機能を使い代用していました。それが「POP before SMTP」です。そして現在では、送信サーバは、自前の認証機能を持つようになりました。それが「SMTP AUTH」です。「SMTP AUTH」は、「SASL」をいうライブラリ(フレームワーク)を使って認証システムを実現しています。</p>
<p><a href="https://web-creators-hub.com/__wordpress/wp-content/uploads/2019/10/postfix8.png"><img src="https://web-creators-hub.com/__wordpress/wp-content/uploads/2019/10/postfix8.png" alt="" width="479" height="447" class="alignnone size-full wp-image-356" srcset="https://web-creators-hub.com/__wordpress/wp-content/uploads/2019/10/postfix8.png 479w, https://web-creators-hub.com/__wordpress/wp-content/uploads/2019/10/postfix8-300x280.png 300w, https://web-creators-hub.com/__wordpress/wp-content/uploads/2019/10/postfix8-320x299.png 320w" sizes="(max-width: 479px) 100vw, 479px" /></a></p>
<p>&nbsp;</p>
<h2>SASL</h2>
<p>SASLはSimple Authentication and Security Layerの略で認証システムを実現するライブラリ(フレームワーク)です。Postfixだけでなくさまざまなアプリケーションで使用されています。SASLは主に「Cyrus-SASL」と「Dovecot-SASL」というライブラリを使用しています。</p>
<p>&nbsp;</p>
<h2>Dovecot-SASL</h2>
<p>今回は「Dovecot-SASL」ライブラリを使用して認証システムを実現します。Postfixはdovecotと親和性が高く、アカウントを共有することができます。POP認証用とSMTPの認証を一元管理することができます。ちなみに「Cyrus-SASL」はSMTP用とPOP用の2種類別々に管理する必要があります。</p>
<p><a href="https://web-creators-hub.com/__wordpress/wp-content/uploads/2019/10/postfix9.png"><img src="https://web-creators-hub.com/__wordpress/wp-content/uploads/2019/10/postfix9.png" alt="" width="726" height="331" class="alignnone size-full wp-image-357" srcset="https://web-creators-hub.com/__wordpress/wp-content/uploads/2019/10/postfix9.png 726w, https://web-creators-hub.com/__wordpress/wp-content/uploads/2019/10/postfix9-300x137.png 300w, https://web-creators-hub.com/__wordpress/wp-content/uploads/2019/10/postfix9-320x146.png 320w" sizes="(max-width: 726px) 100vw, 726px" /></a></p>
<p>&nbsp;</p>
<h2>PostfixのSMTP AUTHの設定</h2>
<p>まずはPostfixの設定から。「smtpd_sasl_type」をdovecotに指定することで「Dovecot-SASL」ライブラリが使用できます。</p>
<pre class="brush: bash; title: ; notranslate">
vi /etc/postfix/main.cf
</pre>
<pre class="brush: bash; title: ; notranslate">
##smtpauth setting
#SASL認証を有効にする
smtpd_sasl_auth_enable = yes
#RCPT TO コマンドへの対応方法を制御
#mynetworksで定義したものを許可、認証成功している場合許可、認証失敗は拒否
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
#Anonymous認証を拒否
smtpd_sasl_security_options = noanonymous
#outlookでSASL認証を使えるようにする。
broken_sasl_auth_clients = yes
#SASL認証で利用するレルム(ドメイン)を指定
smtpd_sasl_local_domain = $myhostname
#Dovecot-SASLを使用する
smtpd_sasl_type = dovecot
#Dovecot-SASLで使用するソケットファイル
smtpd_sasl_path = private/auth
#VRFYコマンドを無効化
disable_vrfy_command = yes
</pre>
<p>&nbsp;</p>
<h2>dovecotのインストール</h2>
<p>まずは、POPサーバのアプリケーション、dovecotをインストールします。SMTPの認証に「Dovecot-SASL」を使用するとアカウント情報をdovecotに合わすため、dovecotをインストールする必要があります。</p>
<pre class="brush: bash; title: ; notranslate">
yum install dovecot
</pre>
<p>&nbsp;</p>
<h2>dovecot側のSMTP AUTHの設定</h2>
<p>Postfix側が指定のソケットを通じてdovecotのアカウント情報にアクセスできるように設定します。<br />
これでPostfixがdovecotのアカウントを使って認証することができます。</p>
<pre class="brush: bash; title: ; notranslate">
vi /etc/dovecot/conf.d/10-master.conf
</pre>
<pre class="brush: bash; title: ; notranslate">
  # Postfix smtp-auth
  unix_listener /var/spool/postfix/private/auth {
    mode = 0660
    user = postfix
    group = postfix
  }
</pre>
<p>&nbsp;</p>
<h2>dovecotの認証情報の確認</h2>
<p>dovecotの認証に使っているアカウント情報がどこか確認します。デフォルトではLinuxのユーザーを使用しているので念のため確認します。「!include auth-system.conf.ext」がコメントアウトされていなければ問題ありません。ここがコメントアウトされている場合は、Linuxのユーザーを使用しない設定になっています。</p>
<pre class="brush: bash; title: ; notranslate">
vi /etc/dovecot/conf.d/10-auth.conf
</pre>
<pre class="brush: bash; title: ; notranslate">
#!include auth-deny.conf.ext
#!include auth-master.conf.ext
auth_mechanisms = plain login
#Linuxのアカウントを使って認証
!include auth-system.conf.ext
#!include auth-sql.conf.ext
#!include auth-ldap.conf.ext
#!include auth-passwdfile.conf.ext
#!include auth-checkpassword.conf.ext
#!include auth-vpopmail.conf.ext
#!include auth-static.conf.ext
</pre>
<p>次回はバーチャルメールボックス(バーチャルホスト)の設定を説明します。<br />
<div class="linkcard"><table border="1" cellspacing="0" cellpadding="4"><tbody></tr><tr><td><br><a class="lkc-link no_icon" href="https://web-creators-hub.com/linux/postfix3/">Postfix + dovecot バーチャルメールボックスの設定を深堀する</a> - Web Creators Hub</td></tr></tbody></table></div></p>
]]></content:encoded>
			</item>
		<item>
		<title>【基本】理解しながらPostfixの設定を行う</title>
		<link>https://web-creators-hub.com/linux/postfix-basic/</link>
		<pubDate>Wed, 22 Jan 2020 16:01:54 +0000</pubDate>
		<dc:creator><![CDATA[taizo]]></dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Postfix]]></category>

		<guid isPermaLink="false">https://web-creators-hub.com/?p=348</guid>
		<description><![CDATA[メール送受信の全体像 クライアントからメールを送るとメールサーバはそのメールを送信先へ配送します。配送されたメールは最終的に送信先の受信ボッ...]]></description>
				<content:encoded><![CDATA[<h2>メール送受信の全体像</h2>
<p>クライアントからメールを送るとメールサーバはそのメールを送信先へ配送します。配送されたメールは最終的に送信先の受信ボックスに届けられます。送信先のクライアントはメールを受け取るためサーバにアクセスし受け取ります。</p>
<p>この一連の流れではそれぞれ役割が分担されていて、バケツリレーのようにメールを配送していきます。そしてそれぞれの役割を理解することでメールの技術的なことを基本から理解することができます。</p>
<p>その役割は4つに分けられそれぞれ名前がついています。</p>
<p><img class="alignnone size-full wp-image-349" src="https://web-creators-hub.com/__wordpress/wp-content/uploads/2019/10/postfix1.png" alt="" width="999" height="532" srcset="https://web-creators-hub.com/__wordpress/wp-content/uploads/2019/10/postfix1.png 999w, https://web-creators-hub.com/__wordpress/wp-content/uploads/2019/10/postfix1-300x160.png 300w, https://web-creators-hub.com/__wordpress/wp-content/uploads/2019/10/postfix1-768x409.png 768w, https://web-creators-hub.com/__wordpress/wp-content/uploads/2019/10/postfix1-320x170.png 320w" sizes="(max-width: 999px) 100vw, 999px" /></p>
<p>■MUA(Mail User Agent)<br />
メールを送受信するクライアントのこと。Thunderbirdやoutlookなどのメーラーがその役割を担当します。プロトコルはSMTP、POP3など。</p>
<p>■MTA（Mail Transfer Agent）<br />
メールの配送・転送するサーバのこと。Postfixが担当します。プロトコルはSMTP。</p>
<p>■MDA（Mail Delivery Agent）<br />
メールボックスにメールを配送するサーバのこと。Postfixが担当します。プロトコルはSMTP。</p>
<p>■MRA（Mail Retrieval Agent ）<br />
配送されたメールをMUAに渡すサーバのこと。dovecotが担当します。プロトコルはPOP3など。</p>
<p><a href="https://web-creators-hub.com/__wordpress/wp-content/uploads/2019/10/postfix2.png"><img src="https://web-creators-hub.com/__wordpress/wp-content/uploads/2019/10/postfix2.png" alt="" width="873" height="289" class="alignnone size-full wp-image-350" srcset="https://web-creators-hub.com/__wordpress/wp-content/uploads/2019/10/postfix2.png 873w, https://web-creators-hub.com/__wordpress/wp-content/uploads/2019/10/postfix2-300x99.png 300w, https://web-creators-hub.com/__wordpress/wp-content/uploads/2019/10/postfix2-768x254.png 768w, https://web-creators-hub.com/__wordpress/wp-content/uploads/2019/10/postfix2-320x106.png 320w" sizes="(max-width: 873px) 100vw, 873px" /></a></p>
<p>今回設定するPostfixはMTA、MDA、dovecotはMRAになります。これらを意識して設定すると理解力が上がります。</p>
<p>&nbsp;</p>
<h2>Postfixの設定</h2>
<p>全体像を理解した上でPostfixの設定を行っていきます。SSHでサーバにログインしPostfixを起動します。</p>
<pre class="brush: bash; title: ; notranslate">
service postfix start
</pre>
<p>&nbsp;</p>
<h2>ローカルからの送信時のFromの値を設定する [mydomain]と[myorigin]</h2>
<p>起動するとメールを送信することができますが、デフォルトではローカルからでしか送信できません。とりあえずサーバからメールを送信してみましょう。mailコマンドで送信します。送信先は任意で設定し送信してください。</p>
<p><code></p>
<pre>#メールコマンド
mail 送信先メールアドレス</pre>
<p></code></p>
<pre class="brush: bash; title: ; notranslate">
mail test@hogehoge.com
Subject: test
test
.
</pre>
<p>メールを受信しメールの内容を確認すると差出人(from)がサーバのドメインになっていると思います。これはPostfixのmyoriginの設定がそのようになっているからです。この値を変えることでローカルからのメールを送信した場合、Fromの値を変えることができます。</p>
<pre class="brush: bash; title: ; notranslate">
vi /etc/postfix/main.cf
</pre>
<pre class="brush: bash; title: ; notranslate">
mydomain = sample.com
myorigin = $mydomain
</pre>
<p>ログインしているアカウントがrootの場合、fromの値はroot@sample.comになります。myoriginの設定はそれほど重要ではないのでデフォルトのままで結構です。mydomainの値はweb-creators-hub.comなど任意のドメインを設定します。</p>
<p>&nbsp;<br />
&nbsp;</p>
<h2>外部からPostfixに通信できるようにする</h2>
<p>デフォルトではPCからPostfixに通信することができません。これを解決するためには<span class="marker-under">iptables、OP25B対策、postfix</span>の設定を行います。<br />
&nbsp;</p>
<h3>iptableで25番と587番を開放</h3>
<p>iptablesの設定を変更しポートを開放します。</p>
<pre class="brush: bash; title: ; notranslate">
vi /etc/sysconfig/iptables
</pre>
<pre class="brush: bash; title: ; notranslate">
-A INPUT -p tcp -m state --state NEW -m tcp --dport 25 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 587 -j ACCEPT
</pre>
<p>再起動し反映。</p>
<pre class="brush: bash; title: ; notranslate">
service iptables restart
</pre>
<p>ここを開放してもまだ通信できせん。次にpostfixの設定を変更します。<br />
&nbsp;</p>
<h3>inet_interfacesの設定</h3>
<p>この設定を変更しないと外部から送信できません。これはポートがlocalhostからしかバインドできずLISTEN状態になっていないからです。これはnetstatコマンドで確認することができます。</p>
<pre class="brush: bash; title: ; notranslate">
netstat -ant | grep LISTEN
</pre>
<pre class="brush: bash; title: ; notranslate">
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN
</pre>
<p>これを外部からバインドできるように設定変更します。</p>
<pre class="brush: bash; title: ; notranslate">
vi /etc/postfix/main.cf
</pre>
<pre class="brush: bash; title: ; notranslate">
#inet_interfaces = localhost
inet_interfaces = all
</pre>
<p>この設定はiptablesのような効果があります。ここをallにすると25番ポートとバインドでき通信ができるようになります。<br />
設定を反映するため再起動します。</p>
<pre class="brush: bash; title: ; notranslate">
service postfix restart
</pre>
<p>もう一度ポートの状態を確認します。</p>
<pre class="brush: bash; title: ; notranslate">
netstat -ant | grep LISTEN
</pre>
<pre class="brush: bash; title: ; notranslate">
tcp        0      0 0.0.0.0:25                0.0.0.0:*                   LISTEN
</pre>
<p>これで外部からバインドできるようになりました。<br />
&nbsp;</p>
<h3>OP25B対策</h3>
<p>OP25B対策としてPostfixに587番ポートを使って通信できるように設定します。</p>
<pre class="brush: bash; title: ; notranslate">
vi /etc/postfix/master.cf
#submission inet n - n - - smtpd
#↓
submission inet n - n - - smtpd
</pre>
<p>再起動します。</p>
<pre class="brush: bash; title: ; notranslate">
service postfix restart
</pre>
<p>これで587番ポートがListen状態になり通信できるようになります。<br />
念のためnetstatで状態を確認します。</p>
<pre class="brush: bash; title: ; notranslate">
netstat -ant | grep LISTEN
</pre>
<pre class="brush: bash; title: ; notranslate">
tcp        0      0 0.0.0.0:25                0.0.0.0:*                   LISTEN
tcp        0      0 0.0.0.0:587                 0.0.0.0:*                   LISTEN
</pre>
<p>587番ポートがListen状態になっています。<br />
&nbsp;</p>
<h3>通信テスト</h3>
<p>それでは実際に通信できるかクライアントからtelnetを使って通信します。</p>
<pre class="brush: bash; title: ; notranslate">
telnet sample.com 587
220 ～ Postfix

</pre>
<p>応答が返ってきたら通信成功です。</p>
<p>&nbsp;</p>
<h2>PCからメールを送信できるようにする</h2>
<p>Postfixと通信できるようになりましたが、まだPCから送信することができません。これはデフォルトの設定で「ローカルのみ送信可能」という設定になっているためです。この設定を変更し送信できるようにします。以下の「mynetworks」がこれにあたります。</p>
<p>この設定にネットワークIPをを記入すると無条件(パスワードなどの認証なし)で配送する項目になります。そのためこの設定をミスると踏み台に利用されるため注意が必要です。</p>
<pre class="brush: bash; title: ; notranslate">
vi /etc/postfix/main.cf
</pre>
<pre class="brush: bash; title: ; notranslate">
#mynetworks = 127.0.0.0/8
mynetworks = 192.168.0.0/16
relay_domains = $mydestination
</pre>
<p>デフォルトでは「mynetworks」に127.0.0.0/8が記入されているので自サーバからしか送信することができません。これを「mynetworks = 192.168.0.0/16」に設定すると192.168.～からのIPアドレスに限り無条件で配送する設定になります。</p>
<p><a href="https://web-creators-hub.com/__wordpress/wp-content/uploads/2020/02/postfix11.png"><img src="https://web-creators-hub.com/__wordpress/wp-content/uploads/2020/02/postfix11.png" alt="" width="703" height="533" class="alignnone size-full wp-image-660" srcset="https://web-creators-hub.com/__wordpress/wp-content/uploads/2020/02/postfix11.png 703w, https://web-creators-hub.com/__wordpress/wp-content/uploads/2020/02/postfix11-300x227.png 300w, https://web-creators-hub.com/__wordpress/wp-content/uploads/2020/02/postfix11-320x243.png 320w" sizes="(max-width: 703px) 100vw, 703px" /></a></p>
<p>「relay_domains」は無条件で配送する送信先ドメイン(to)を設定します。例えばここに「gmail.com」と設定するとgmail.comを送信先とするメールは無条件で配送されます。</p>
<p>この二つの設定は、基本的にデフォルト設定で問題ありません。特にVPSなどで設定する場合は、プライベートアドレスを設定する場面が少ないため設定することがありません。「mynetworks」以外からの送信は、次回に紹介する認証機能(SMTP-AUTH)を使用して送信します。<br />
&nbsp;</p>
<h3>「mynetworks」の設定する場面</h3>
<p>プライベートネットワーク内でなにかしらのシステムが管理者にアラートを通知するときなどによく使われます。</p>
<p>つづきはこちら<br />
<div class="linkcard"><table border="1" cellspacing="0" cellpadding="4"><tbody></tr><tr><td><br><a class="lkc-link no_icon" href="https://web-creators-hub.com/linux/postfix2/">【続】dovecotの設定、Postfixの設定(認証機能、バーチャルメールボックス)</a> - Web Creators Hub</td></tr></tbody></table></div></p>
]]></content:encoded>
			</item>
	</channel>
</rss>
