Postfix のインストール手順ではシステム ユーザーpostfix
とそのプライマリ グループが作成されましたpostfix
が、OpenDKIM のインストール手順ではシステム ユーザーopendkim
とそのプライマリ グループが作成されましたopendkim
。
Postfix と OpenDKIM が連携できるようにするために、ほとんどの管理者は次の 2 つのことを行います。
あ
opendkim
Postfix にセカンダリ グループを追加します。
B
次の 3 行 (2 行) を使用して、 OpenDKIM 構成ファイルを設定して/etc/opendkim.conf
UNIX ソケットを作成します。
UMask 002
PidFile /var/run/opendkim/opendkim.pid
Socket local:/var/spool/postfix/opendkim/opendkim.sock
公式 OpenDKIM ドキュメントでは、構成パラメータについて次のように記載されていますUMask
。
ファイル作成に使用する特定の権限マスクを要求します。これは、Socket が UNIX ドメイン ソケットを指定している場合のソケットの作成と、PidFile (存在する場合) にのみ適用されます。
UNIX ソケットはユーザー権限を制限できるので便利であることはわかっています。私の場合、OpenDKIM が Postfix でできるだけ安全に動作するようにしたいのですが、 にUMask
設定すると、所有権と権限が=002
の UNIX ソケットが作成されます。opendkim:opendkim
664
rw-rw-r--
グループメンバー(Postfix)がUNIXソケットを読み書きする必要があることは理解していますが、オンラインのチュートリアルのほとんど(あ、B、C...) 他のユーザーに読み取り権限を残しますか?
これは一般的な誤解でしょうか? の適切な値は ではないでしょうかUMask
?007
また、PID ファイルは同じ権限を使用して作成されます...
システム上の他の UNIX ソケットを確認すると、いくつかは他のソケットに対する権限も持っています... なぜそれが重要なのですか?
┌───┐
│ # │ root > mailer > ~
└─┬─┘
└─> ss -x -l | head -n 10
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
u_dgr UNCONN 0 0 /run/systemd/notify 14848 * 0
u_str LISTEN 0 128 /var/run/dovecot/director-userdb 13957121 * 0
u_str LISTEN 0 128 /run/systemd/private 14852 * 0
u_str LISTEN 0 100 /var/run/dovecot/dict 13957125 * 0
u_str LISTEN 0 128 /var/run/dovecot/dict-async 13957129 * 0
u_str LISTEN 0 1 /var/run/irqbalance568.sock 17673 * 0
u_dgr UNCONN 0 0 /run/systemd/journal/syslog 14859 * 0
u_str LISTEN 0 128 /var/run/dovecot/config 13957133 * 0
u_str LISTEN 0 128 /var/run/dovecot/login/login 13957135 * 0
┌───┐
│ # │ root > mailer > ~
└─┬─┘
└─> ls -l /var/run/dovecot/config
srw------- 1 root root 0 Dec 31 07:35 /var/run/dovecot/config
┌───┐
│ # │ root > mailer > ~
└─┬─┘
└─> ls -l /var/run/dovecot/login/login
srw-rw-rw- 1 root root 0 Dec 31 07:35 /var/run/dovecot/login/login
答え1
umask の使用は、002
おそらく一般的なデフォルトの umask の影響を受けます022
。これは、opendkim のサンプル設定でも使用されています。引用する。
opendkimはpidfileとpidfileの両方に1つのumask設定を使用するため、そしてソケットファイルでは、他のユーザーに対してpidファイルの読み取りアクセスを許可する必要があるかもしれません。そうすることで、ソケットファイルも他のユーザーに対して読み取り権限付きで作成されるようになります。副作用。
pidfile の作成を有効にしていない場合 (たとえば、systemd では必要ありません)、postfix ユーザーを opendkim グループに追加すると、umask が007
意味を持ちます。
あるいは、次のようにして、opendkim と postfix だけがアクセスできるディレクトリに opendkim ソケットを作成させることもできます。
$ cat /etc/tmpfiles.d/opendkim.conf
d /run/opendkim-postfix 0750 opendkim postfix -
opendkim のメイン設定スニペット:
UMask 000
Socket local:/run/opendkim-postfix/opendkim.sock
その結果は次のようになります:
# find /run/opendkim-postfix -printf '%M %m %p\n'
drwxr-x--- 750 /run/opendkim-postfix
srwxrwxrwx 777 /run/opendkim-postfix/opendkim.sock
そうすれば、postfix ユーザーを opendkim グループに追加する必要がなくなります。
引用したチュートリアルの品質は限られている可能性があります。クラウド プロバイダーの中には、技術ドキュメントを顧客にアウトソースし、クラウド クレジットでインセンティブを得ているところもあるためです。したがって、ご想像のとおり、このようなチュートリアルでは、既存の他のチュートリアルやサンプル構成をあまり批判せずに使用している可能性があります。