OpenDKIM の UNIX ソケットと「その他」の権限

OpenDKIM の UNIX ソケットと「その他」の権限

Postfix のインストール手順ではシステム ユーザーpostfixとそのプライマリ グループが作成されましたpostfixが、OpenDKIM のインストール手順ではシステム ユーザーopendkimとそのプライマリ グループが作成されましたopendkim

Postfix と OpenDKIM が連携できるようにするために、ほとんどの管理者は次の 2 つのことを行います。

opendkimPostfix にセカンダリ グループを追加します。

B

次の 3 行 (2 行) を使用して、 OpenDKIM 構成ファイルを設定して/etc/opendkim.confUNIX ソケットを作成します。

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:opendkim664rw-rw-r--

グループメンバー(Postfix)がUNIXソケットを読み書きする必要があることは理解していますが、オンラインのチュートリアルのほとんど(B...) 他のユーザーに読み取り権限を残しますか?

これは一般的な誤解でしょうか? の適切な値は ではないでしょうか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 グループに追加する必要がなくなります。


引用したチュートリアルの品質は限られている可能性があります。クラウド プロバイダーの中には、技術ドキュメントを顧客にアウトソースし、クラウド クレジットでインセンティブを得ているところもあるためです。したがって、ご想像のとおり、このようなチュートリアルでは、既存の他のチュートリアルやサンプル構成をあまり批判せずに使用している可能性があります。

関連情報