Acesso ao arquivo de daemon negado enquanto não deveria

2

Instalei recentemente um novo certificado SSL e decidi aumentar um pouco a segurança, tornando a chave privada menos legível.

Isso causou um problema com o exim.

O certificado agora é 640 com o usuário root e o grupo ssl . O usuário Debian-exim está neste grupo.

Eu posso acessar o arquivo de chave privada bem no shell:

#sudo -u Debian-exim cat key
-----BEGIN RSA PRIVATE KEY-----
...
-----END RSA PRIVATE KEY-----

No entanto, o arquivo de log do exim diz o contrário:

2012-04-21 00:00:00 <Message-id> unable to open private key file for reading: /.../key
2012-04-21 00:00:00 <Message-id> == some@email <some@email> R=dnslookup T=remote_smtp defer (-1): smtp transport process returned non-zero status 0x0100: exit code 1
2012-04-21 00:00:00 <Message-id> Frozen

Usando auditd , verifiquei o acesso ao sistema de arquivos:

time->Sat Apr 21 00:00:00 2012
type=PATH msg=audit(1335027881.290:6): item=0 name="/.../key" inode=1794200 dev=09:01 mode=0100640 ouid=0 ogid=105 rdev=00:00
type=CWD msg=audit(1335027881.290:6):  cwd="/var/spool/exim4"
type=SYSCALL msg=audit(1335027881.290:6): arch=c000003e syscall=2 success=no exit=-13 a0=16184f8 a1=0 a2=0 a3=0 items=1 ppid=11831 pid=11847 auid=4294967295 uid=100 gid=102 euid=100 suid=100 fsuid=100 egid=102 sgid=102 fsgid=102 tty=pts1 ses=4294967295 comm="exim4" exe="/usr/sbin/exim4" key="sslkey"

O que mostra que de fato falha (embora eu não saiba o porquê). Em comparação, uma mensagem com o mesmo êxito possível (o grupo de arquivos é alterado para Debian-exim em oposição a ssl )

time->Sat Apr 21 00:00:00 2012
type=PATH msg=audit(1335028586.882:34): item=0 name="/.../key" inode=1794200 dev=09:01 mode=0100640 ouid=0 ogid=102 rdev=00:00
type=CWD msg=audit(1335028586.882:34):  cwd="/var/spool/exim4"
type=SYSCALL msg=audit(1335028586.882:34): arch=c000003e syscall=2 success=yes exit=11 a0=24f74f8 a1=0 a2=0 a3=0 items=1 ppid=13958 pid=13961 auid=4294967295 uid=100 gid=102 euid=100 suid=100 fsuid=100 egid=102 sgid=102 fsgid=102 tty=(none) ses=4294967295 comm="exim4" exe="/usr/sbin/exim4" key="sslkey"

Não tenho ideia do que está errado . Por que o daemon exim pode acessar o arquivo "chave" quando o grupo de arquivos é Debian-exim (grupo principal de Debian-exim user), mas não quando o grupo de arquivos é ssl (um grupo secundário de Debian-exim user)? / p>     

por dtech 21.04.2012 / 19:42

1 resposta

2

Os grupos nos quais um usuário está são concedidos pelo processo de login. Quando um daemon alterna para um usuário e grupo após o lançamento, ele normalmente alterna para esse usuário e grupo (com setgid seguido por setuid ) e não assume nenhum outro grupo implícito por /etc/passwd (grupo primário ) e /etc/group (grupo suplementar). Eu não verifiquei se o exim se comporta dessa maneira, mas se isso não acontecer, é incomum.

Você pode verificar em quais grupos o processo exim está sendo executado, executando grep '^Groups:' /proc/1234/status , em que 1234 é o PID de um processo exim.

Você precisa tornar o arquivo de chave legível pelo usuário Debian-exim ou pelo grupo Debian-exim . Certifique-se de que as ACLs estejam ativadas e adicione Debian-exim ao ACL do arquivo de chave e qualquer diretório não público que o leve:

setfacl -m group:Debian-exim:r /path/to/key
setfacl -m group:Debian-exim:x /path/to
    
por 22.04.2012 / 01:20