OpenDKIM의 UNIX 소켓 및 "기타"에 대한 권한

OpenDKIM의 UNIX 소켓 및 "기타"에 대한 권한

Postfix 설치 절차에서는 시스템 사용자 postfix와 기본 그룹을 생성했지만 postfixOpenDKIM의 설치 절차에서는 시스템 사용자 opendkim와 기본 그룹을 생성했습니다 opendkim.

Postfix와 OpenDKIM이 함께 작동하도록 하려면 대부분의 관리자가 다음 두 가지 작업을 수행합니다.

opendkimPostfix에 보조 그룹을 추가합니다 .

/etc/opendkim.conf다음 세 줄을 사용하여 UNIX 소켓을 생성하도록 OpenDKIM 구성 파일을 설정했습니다 .

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

공식 OpenDKIM 문서에는 구성 매개변수에 대해 다음과 같이 명시되어 있습니다 UMask.

파일 생성에 사용할 특정 권한 마스크를 요청합니다. 이것은 실제로 Socket이 UNIX 도메인 소켓을 지정할 때 소켓 생성과 PidFile(있는 경우)에만 적용됩니다.

나는 UNIX 소켓이 사용자 권한을 제한할 수 있기 때문에 편리하다는 것을 알고 있습니다. 제 경우에는 OpenDKIM이 Postfix와 최대한 안전하게 작동하길 원합니다. 그러나 UNIX 소켓으로 설정하면 소유권 UMask과 권한이 002생성됩니다 .opendkim:opendkim664rw-rw-r--

그룹 구성원(Postfix)이 UNIX 소켓을 읽고 써야 한다는 것은 이해하지만 왜 거의 모든 온라인 튜토리얼(,,...) 다른 사람에게 읽기 권한을 남겨두시겠습니까?

이것이 일반적인 오해인가요? 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에 대해 하나의 umask 설정을 사용하기 때문에그리고소켓 파일을 사용하는 경우 소켓 파일이 다른 사람에 대한 읽기 권한으로 생성되도록 다른 사람의 pidfile에 대한 읽기 액세스를 허용해야 할 수도 있습니다.부작용.

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 그룹에 추가할 필요가 없습니다.


일부 클라우드 제공업체는 기술 문서를 고객에게 아웃소싱하고 고객은 클라우드 크레딧으로 인센티브를 받기 때문에 인용한 튜토리얼의 품질이 제한될 수 있습니다. 따라서 상상할 수 있듯이 이러한 튜토리얼은 많은 비평 없이 다른 기존 튜토리얼과 샘플 구성을 사용할 수 있습니다.

관련 정보