OpenDKIMs UNIX-Socket und Berechtigungen für „andere“

OpenDKIMs UNIX-Socket und Berechtigungen für „andere“

Das Installationsverfahren von Postfix erstellte einen Systembenutzer postfixund seine primäre Gruppe, postfixwährend das Installationsverfahren für OpenDKIM einen Systembenutzer opendkimund seine primäre Gruppe erstellte opendkim.

Um die Zusammenarbeit von Postfix und OpenDKIM zu ermöglichen, tun die meisten Administratoren zwei Dinge:

A

Sie hängen eine sekundäre Gruppe opendkiman Postfix an.

B

Sie legen die OpenDKIM-Konfigurationsdatei so fest /etc/opendkim.conf, dass mit diesen drei (zwei) Zeilen ein UNIX-Socket erstellt wird:

UMask                   002
PidFile                 /var/run/opendkim/opendkim.pid
Socket                  local:/var/spool/postfix/opendkim/opendkim.sock

In der offiziellen OpenDKIM-Dokumentation heißt es für den Konfigurationsparameter UMask:

Fordert eine bestimmte Berechtigungsmaske an, die für die Dateierstellung verwendet werden soll. Dies gilt eigentlich nur für die Erstellung des Sockets, wenn Socket einen UNIX-Domänensocket angibt, und für die PidFile (falls vorhanden);

Ich weiß, dass UNIX-Sockets praktisch sind, weil sie Benutzerrechte einschränken können. In meinem Fall möchte ich, dass OpenDKIM so sicher wie möglich mit Postfix funktioniert. Aber mit UMaskder Einstellung auf 002UNIX wird ein Socket mit Eigentumsrechten opendkim:opendkimund Berechtigungen 664= erstellt rw-rw-r--.

Ich verstehe, dass Gruppenmitglieder (Postfix) den UNIX-Socket lesen und schreiben müssen, aber ich verstehe nicht, warum fast alle Online-Tutorials (A,B,C...) Leserechte für andere belassen?

Handelt es sich hier um ein allgemeines Missverständnis? Wäre nicht ein angemessener Wert für UMask? 007Außerdem wird die PID-Datei mit denselben Berechtigungen erstellt ...

Wenn ich einen beliebigen anderen UNIX-Socket auf meinem System überprüfe, haben einige auch Rechte für andere ... Warum ist das wichtig?

┌───┐
│ # │ 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

Antwort1

Die Verwendung einer Umask von 002wird wahrscheinlich durch die allgemeine Standard-Umask von beeinflusst 022- was auch der Wert der OpenDKIM-Beispielkonfiguration istzitiert.

Da opendkim eine umask-Einstellung sowohl für die pidfile-Unddie Socket-Datei, kann es erforderlich sein, anderen den Lesezugriff auf die PID-Datei zu erlauben, so dass auch die Socket-Datei mit Leseberechtigung für andere erstellt wird, alsNebenwirkung.

Wenn Sie die Erstellung von PID-Dateien nicht einmal aktivieren (bei systemd brauchen Sie sie beispielsweise nicht) und den Postfix-Benutzer zur OpenDKIM-Gruppe hinzufügen, ist eine Umask von 007sinnvoll.


Alternativ können Sie opendkim den Socket in einem Verzeichnis erstellen lassen, auf das nur opendkim und postfix wie folgt zugreifen können:

$ cat /etc/tmpfiles.d/opendkim.conf 
d /run/opendkim-postfix 0750 opendkim postfix -

Hauptkonfigurationsausschnitt von OpenDKIM:

UMask   000
Socket local:/run/opendkim-postfix/opendkim.sock

Was dazu führt:

# find /run/opendkim-postfix -printf '%M %m %p\n'
drwxr-x--- 750 /run/opendkim-postfix
srwxrwxrwx 777 /run/opendkim-postfix/opendkim.sock

Auf diese Weise müssen Sie den Postfix-Benutzer nicht zur Opendkim-Gruppe hinzufügen.


Die Qualität der von Ihnen zitierten Tutorials ist möglicherweise begrenzt, da einige Cloud-Anbieter ihre technische Dokumentation an Kunden auslagern, die dann durch Cloud-Credits belohnt werden. Daher kann ein solches Tutorial, wie man sich vorstellen kann, andere vorhandene Tutorials und Beispielkonfigurationen ohne große Kritik verwenden.

verwandte Informationen