「Postfix と SASL」の版間の差分
Kusakata.bot (トーク | 投稿記録) 細 (文字列「http://tools.ietf.org/」を「https://tools.ietf.org/」に置換) |
Libnumafly (トーク | 投稿記録) (→イントロダクション: ブラケット抜けを修正) |
||
(2人の利用者による、間の2版が非表示) | |||
6行目: | 6行目: | ||
{{Related articles end}} |
{{Related articles end}} |
||
[http://www.postfix.org/SASL_README.html Postfix のサイト] より: |
[http://www.postfix.org/SASL_README.html Postfix のサイト] より: |
||
+ | |||
:''わざわざ Postfix をインストールする人たちは、Postfix が他のメーラよりもセキュアであると思っていることでしょう。Cyrus SASL ライブラリは大量のコードで成り立っています。Postfix SMTP クライアントや SMTP サーバで SASL 認証を有効にしても、 Postfix は Cyrus SASL ライブラリを使う他のメールシステムと同程度にしかセキュアになりません。Dovecot は検討に値するかもしれない代替策を提供しています。'' |
:''わざわざ Postfix をインストールする人たちは、Postfix が他のメーラよりもセキュアであると思っていることでしょう。Cyrus SASL ライブラリは大量のコードで成り立っています。Postfix SMTP クライアントや SMTP サーバで SASL 認証を有効にしても、 Postfix は Cyrus SASL ライブラリを使う他のメールシステムと同程度にしかセキュアになりません。Dovecot は検討に値するかもしれない代替策を提供しています。'' |
||
− | == |
+ | ==イントロダクション== |
この記事では [[Postfix]] で SASL 認証をセットアップする方法を説明します。 |
この記事では [[Postfix]] で SASL 認証をセットアップする方法を説明します。 |
||
14行目: | 15行目: | ||
Postfix を立ち上げたら SASL 認証を追加することでリレーをなくすことができます。認証を通過した信頼できるユーザーだけがメールを送ることができるようになります。匿名ユーザーによってスパムが作成されるのを防げます。 |
Postfix を立ち上げたら SASL 認証を追加することでリレーをなくすことができます。認証を通過した信頼できるユーザーだけがメールを送ることができるようになります。匿名ユーザーによってスパムが作成されるのを防げます。 |
||
− | [extra]] に入っている {{pkg|postfix}} パッケージは既に SASL のサポートを有効にしてコンパイルされているので、SASL 認証を使う場合、2つの選択肢があります: |
+ | [[extra]] に入っている {{pkg|postfix}} パッケージは既に SASL のサポートを有効にしてコンパイルされているので、SASL 認証を使う場合、2つの選択肢があります: |
− | * {{pkg|cyrus-sasl}} パッケージを使う。 |
||
− | * [[Dovecot]] を有効にして (Dovecot の認証だけでなく) Postfix の認証を処理させる。 |
||
− | + | *{{pkg|cyrus-sasl}} パッケージを使う。 |
|
+ | *[[Dovecot]] を有効にして (Dovecot の認証だけでなく) Postfix の認証を処理させる。 |
||
+ | |||
+ | ==cyrus-sasl パッケージの設定== |
||
[[公式リポジトリ]]から {{pkg|cyrus-sasl}} を[[インストール]]してください。 |
[[公式リポジトリ]]から {{pkg|cyrus-sasl}} を[[インストール]]してください。 |
||
49行目: | 51行目: | ||
log_level: 7 |
log_level: 7 |
||
}} |
}} |
||
+ | |||
+ | {{pkg|pambase}} 20190105.1-1 以降では "other" サービスに対して制限付きのフォールバックが適用される [https://git.archlinux.org/svntogit/packages.git/commit/trunk?h=packages/pambase&id=3552aba772e8bebbe754a4d01f2729e291dd2070] ので、 Postfix で SASL 認証を使うにはこれに加えて [[PAM]] の設定ファイルを作成する必要があります [https://bugs.archlinux.org/task/61700][https://bbs.archlinux.org/viewtopic.php?pid=1824850] 。 |
||
+ | |||
+ | 以下の内容で {{ic|/etc/pam.d/smtp}} を作成: |
||
+ | |||
+ | {{bc|<nowiki> |
||
+ | #%PAM-1.0 |
||
+ | auth required pam_unix.so |
||
+ | account required pam_unix.so |
||
+ | </nowiki>}} |
||
postfix と saslauthd サービスを[[再起動]]してください。 |
postfix と saslauthd サービスを[[再起動]]してください。 |
||
75行目: | 87行目: | ||
}} |
}} |
||
− | == |
+ | ==Dovecot の設定== |
IMAP や POP メールサーバーとして [[Dovecot]] を使っていて既に (PAM などで) 認証を設定している場合、他のパッケージを設定する必要はありません。 |
IMAP や POP メールサーバーとして [[Dovecot]] を使っていて既に (PAM などで) 認証を設定している場合、他のパッケージを設定する必要はありません。 |
||
112行目: | 124行目: | ||
最後に postfix と dovecot サービスを[[再起動]]してください。 |
最後に postfix と dovecot サービスを[[再起動]]してください。 |
||
− | == |
+ | ==参照== |
− | * |
+ | *Postfix 公式ドキュメントの [http://www.postfix.org/SASL_README.html Postfix SASL readme] |
− | * |
+ | *Dovecot 公式ドキュメントの [https://wiki2.dovecot.org/HowTo/PostfixAndDovecotSASL SASL authentication with Dovecot] |
− | * |
+ | *[http://wiki.centos.org/HowTos/postfix_sasl Centos Howto Postfix SASL] |
2024年4月8日 (月) 14:05時点における最新版
Postfix のサイト より:
- わざわざ Postfix をインストールする人たちは、Postfix が他のメーラよりもセキュアであると思っていることでしょう。Cyrus SASL ライブラリは大量のコードで成り立っています。Postfix SMTP クライアントや SMTP サーバで SASL 認証を有効にしても、 Postfix は Cyrus SASL ライブラリを使う他のメールシステムと同程度にしかセキュアになりません。Dovecot は検討に値するかもしれない代替策を提供しています。
イントロダクション
この記事では Postfix で SASL 認証をセットアップする方法を説明します。
Postfix を立ち上げたら SASL 認証を追加することでリレーをなくすことができます。認証を通過した信頼できるユーザーだけがメールを送ることができるようになります。匿名ユーザーによってスパムが作成されるのを防げます。
extra に入っている postfix パッケージは既に SASL のサポートを有効にしてコンパイルされているので、SASL 認証を使う場合、2つの選択肢があります:
- cyrus-sasl パッケージを使う。
- Dovecot を有効にして (Dovecot の認証だけでなく) Postfix の認証を処理させる。
cyrus-sasl パッケージの設定
公式リポジトリから cyrus-sasl をインストールしてください。
SASL を有効にして他のユーザーからのメールを承認するには、/etc/postfix/master.cf
で (デフォルトで存在するがコメントアウトされている) 以下の行をアンコメントして "Message submission" ポート (TCP 587) を開きます:
submission inet n - n - - smtpd -o syslog_name=postfix/submission -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes -o smtpd_reject_unlisted_recipient=no # -o smtpd_client_restrictions=$mua_client_restrictions # -o smtpd_helo_restrictions=$mua_helo_restrictions # -o smtpd_sender_restrictions=$mua_sender_restrictions -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject -o milter_macro_daemon_name=ORIGINATING
上記の設定では SSL も有効になるので、SSL 証明書を持っていない場合は、"smtpd_tls_security_level" オプションはコメントアウトされたままにしてください。
3つの制限オプション (client, helo, sender) もコメントアウトしたままにできます。smtpd_recipient_restrictions は既に SASL ユーザーを処理するからです。
通常通りに Postfix をセットアップして起動します。ブート時に起動するようにしたいときは有効化してください。
SASL は複数の認証方式を使うことができます。デフォルトの認証方式は PAM (/etc/conf.d/saslauthd
で設定) ですが、正しくセットアップするには /usr/lib/sasl2/smtpd.conf
を作成する必要があります:
pwcheck_method: saslauthd mech_list: plain log_level: 7
pambase 20190105.1-1 以降では "other" サービスに対して制限付きのフォールバックが適用される [1] ので、 Postfix で SASL 認証を使うにはこれに加えて PAM の設定ファイルを作成する必要があります [2][3] 。
以下の内容で /etc/pam.d/smtp
を作成:
#%PAM-1.0 auth required pam_unix.so account required pam_unix.so
postfix と saslauthd サービスを再起動してください。
上手く行っていれば、次のコマンドで Postfix サーバーに telnet できるはずです: telnet localhost 587
。
それから、次のコマンドを入力してください: EHLO test.com
。
以下のように表示されるはずです:
Trying 127.0.0.1... Connected to localhost.localdomain Escape character is '^]' 220 justin ESMTP Postfix EHLO test.com 250-justin 250-PIPELINING 250-SIZE 10240000 250-VRFY 250-ETRN 250-AUTH PLAIN OTP DIGEST-MD5 CRAM-MD5 250 8BITMIME
Dovecot の設定
IMAP や POP メールサーバーとして Dovecot を使っていて既に (PAM などで) 認証を設定している場合、他のパッケージを設定する必要はありません。
/etc/postfix/master.cf
を編集して submission
または smtp
セクションの下に以下の行を追加してください:
# SASL authentication with dovecot -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes -o smtpd_sasl_type=dovecot -o smtpd_sasl_path=private/auth -o smtpd_sasl_security_options=noanonymous -o smtpd_sasl_local_domain=$myhostname -o smtpd_client_restrictions=permit_sasl_authenticated,reject -o smtpd_recipient_restrictions=reject_non_fqdn_recipient,reject_unknown_recipient_domain,permit_sasl_authenticated,reject
上記の設定で、認証を受けたユーザーだけがメールを送信できるようになります。smtpd_client_restrictions
がそれです。
以下を Dovecot 設定ファイル /etc/dovecot/dovecot.conf
に追加してください:
service auth { unix_listener /var/spool/postfix/private/auth { group = postfix mode = 0660 user = postfix } user = root }
master.cf
の smtpd_sasl_path
オプションで指定したのと同じ /var/spool/postfix/private/auth
に unix ソケットが作成されます。
最後に postfix と dovecot サービスを再起動してください。
参照
- Postfix 公式ドキュメントの Postfix SASL readme
- Dovecot 公式ドキュメントの SASL authentication with Dovecot
- Centos Howto Postfix SASL