6.Dovecotを使ったSMTP-Auth(外出時もメールの送信)
1.Postfixを使ってSMTPサーバの構築 ~ 5.Postfixを使ってSMTPサーバを暗号化する(クライアントとして)の設定をしたことで家からメールの送信をすることが出来る様になりました。
が、外出先でメールの送信をすることができません。
なぜなら「mynetwork」で設定したネットワーク(ローカルネットワーク)内からであれば送信できる。という設定にしたからです。
という事は「mynetwork」の設定を0.0.0.0とすれば、どんなグローバルIPからでも送信が可能になるので外出先からでもメール送信ができるようになるが、そんなことしたら自分だけが送信できるわけではなく、世界のだれでも私のメールサーバを使って送信できるようになってしまい私のサーバが踏み台にされて大変なことになっちゃいます。
そこで、SMTP-Authで認証を通過すればローカルネットワーク外からでも送受信できるようにする。という設定にしましょう。
ここではDovecotの認証を通過したらPostfixでメール送信できるようにする設定(Dovecot-SASL)を説明していきます。
目次
Postfix側の設定
main.cfの設定
smtpd_sasl_auth_enable
smtpd_sasl_security_options
smtpd_sasl_local_domain
smtpd_sasl_type
smtpd_sasl_path
Dovecot側の設定
10-master.conf
unix_listener
10-auth.conf
include
Postfix側の設定
main.cfの設定
smtpd_sasl_auth_enable 新規追加
SMTPサーバのSASL認証設定
Postfix SMTP サーバの SASL 認証を設定します。
デフォルトでは、Postfix SMTP サーバは認証を使いません(smtpd_sasl_auth_enable = no)。
ここではSASLの設定を有効にするので「yes」を設定します。
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options 新規追加
クライアントに対しての認証メカニズムの制御設定
Postfix SMTPサーバがクライアントに提供する認証メカニズムの制限を行います。
デフォルトでは、匿名ログインを許可しない設定になっています。(smtpd_sasl_security_options = noanonymous)
(クライアントに提供する認証メカニズムの制御。とうたっているがSMTP同士のやり取りは含まれません。)
ここでは匿名ログインを許可しない設定を行います。
デフォルトの設定と同様ですが、明示的に記載しておきます。
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain 新規追加
認証に使用するドメインの範囲
多分SASL認証を使用するドメインの指定を行うものと思われる。
デフォルトでは、$mydomainを設定しています。
ここで設定しているメールサーバは、管理者のみが使っているメールサーバでメールドメインにホスト名も入れずに「@caramelsauce.info」のみで使っているので
ホスト名は必要ない。よってデフォルトの設定同様 変数の「$mydomain」を設定となりますが、明示的に記載しておきます。
smtpd_sasl_local_domain = $mydomain
smtpd_sasl_type 新規追加
Postfix SMTPサーバが認証に使うSASLプラグインの種類指定
デフォルトではcyrusを使う設定になっているようです。
ここではdovecotを使ったSASLの設定を行うので「dovecot」を設定。
smtpd_sasl_type = dovecot
smtpd_sasl_path 新規追加
smtpd_sasl_typeで定義したプラグインに渡す実装固有の情報
英語が分からなくて翻訳してみたけど意味が解らない・・・
postfixのキューディレクトリ(/var/spool/postfix)の認証パスを相対パスで設定するらしい?
そこからの相対パス「private/auth」を設定する。
デフォルト設定も同様らしいが、明示的に記載しておく。
smtpd_sasl_path = private/auth
Dovecot側の設定
10-master.conf
unix_listener 107行目~
Dovecotを使ったSMTP-Authを使用する場合に有効にする
コメントアウト部分を削除して有効化します。
また、よく分からないんだけどRedHatのサイトとかを見るとmodeが「0660」、更にuserやgroupを追加して設定と記載されている。
となっているのでコメントアウトを外してちょっと修正します。
# Postfix smtp-auth
#unix_listener /var/spool/postfix/private/auth {
# mode = 0666
#}
↓ ↓ ↓ ↓ ↓
# Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
mode = 0660
user = postfix
group = postfix
}
10-auth.conf
include 行の最後の方 (デフォルト設定のままでよいが説明の為記載)
Dovecotの認証に使用しているアカウント情報の設定
ここではOSのシステムユーザを使用して認証を行うので「!include auth-system.conf.ext」がコメントアウトされていないことを確認します。(デフォルト設定のまま)
!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-static.conf.ext
設定が終わったらDovecotをリロードしましょう。
systemctl reload dovecot