Problemas de permissão. Não é possível recuperar mensagens da caixa de entrada do dovecot

4

Eu tenho um servidor VPS em um webhoster que tem o sistema operacional CentOS 6.6. Como tenho vários domínios usados por várias pessoas, esse servidor terá várias funções:

  • nameserver (usando BIND) (funciona!)
  • hoster de sites para vários domínios (usando Apache / MySQL) (funciona!)
  • servidor de email para vários domínios (usando postfix, dovecot, vimbadmin & roundcube) (problema)
  • servidor FTP por site (ainda não instalado)

Eu uso manuais / howto docs da internet para me ajudar a instalar todas as funções, já que minhas habilidades de linux não são tão fantásticas;). Ao instalar e configurar o servidor de e-mail para vários domínios (manual: link ) tudo correu bem. As mensagens podem ser enviadas, mas a recuperação de e-mails da pasta de e-mail ( /var/vmail/ ) é impossível de ser feita. Eu uso um site de roundcube como ambiente de webmail.

A mensagem de erro no arquivo /var/logs/maillog

dovecot: imap([email protected]): Error: open(/var/vmail/address.com/account/dovecot.index.log) failed: Permission denied (euid=5000(vmail) egid=5000(vmail) missing +r perm: /var/vmail/address.com/account/dovecot.index.log, euid is not dir owner)
dovecot: imap([email protected]): Error: file_dotlock_create(/var/vmail/address.com/account/dovecot-uidlist) failed: Permission denied (euid=5000(vmail) egid=5000(vmail) missing +w perm: /var/vmail/address.com/account, euid is not dir owner)

permissões em pastas / arquivos ( ls -l )

-rw-rwx---. 1 vmail vmail  248 Feb  7 15:52 dovecot.index.log
-rw-rw----. 1 vmail vmail   24 Feb  7 16:32 dovecot.mailbox.log
-rw-rwx---. 1 vmail vmail   51 Feb  7 15:52 dovecot-uidlist
-rw-rwx---. 1 vmail vmail    8 Feb  7 16:32 dovecot-uidvalidity
-r--rwxr--. 1 vmail vmail    0 Feb  7 15:51 dovecot-uidvalidity.54d62668

permissões em pastas / arquivos ( ls -Z )

-rw-rwx---. vmail vmail unconfined_u:object_r:var_t:s0   dovecot.index.log
-rw-rw----. vmail vmail unconfined_u:object_r:var_t:s0   dovecot.mailbox.log
-rw-rwx---. vmail vmail unconfined_u:object_r:var_t:s0   dovecot-uidlist
-rw-rwx---. vmail vmail unconfined_u:object_r:var_t:s0   dovecot-uidvalidity
-r--rwxr--. vmail vmail unconfined_u:object_r:var_t:s0   dovecot-uidvalidity.54d62668

Essas permissões são definidas pelo aplicativo dovecot depois que eu criei uma nova caixa de correio.

Algumas pesquisas extras me levam ao comando setenforce . Ao inserir o comando setenforce 0 , posso recuperar o correio do aplicativo roundcube. Colocá-lo novamente me impede de recuperação de e-mail.

Mas o que está acontecendo aqui? Por que posso enviar mensagens do aplicativo roundcube sem problemas, mas a listagem / recuperação de mensagens de uma conta é impossível com setenforce 1 . Está relacionado ao atributo ' unconfined_u '?

[2015-02-09] Solicitação de depuração extra solicitada

A depuração usando o comando grep -i AVC /var/log/audit/audit.log mostra as seguintes linhas (isso é apenas a cauda -n-19 ...)

type=AVC msg=audit(1423466977.294:254776): avc:  denied  { write } for  pid=13124 comm="imap" name="$myaccount$" dev=dm-0 ino=149839 scontext=system_u:system_r:dovecot_t:s0 tcontext=unconfined_u:object_r:var_t:s0 tclass=dir
type=AVC msg=audit(1423466977.294:254777): avc:  denied  { read write } for  pid=13124 comm="imap" name="dovecot-uidlist" dev=dm-0 ino=149846 scontext=system_u:system_r:dovecot_t:s0 tcontext=unconfined_u:object_r:var_t:s0 tclass=file
type=AVC msg=audit(1423467003.011:254782): avc:  denied  { read } for  pid=13139 comm="imap" name="$myaccount$" dev=dm-0 ino=149839 scontext=system_u:system_r:dovecot_t:s0 tcontext=unconfined_u:object_r:var_t:s0 tclass=dir
type=AVC msg=audit(1423467003.011:254783): avc:  denied  { read } for  pid=13139 comm="imap" name="$myaccount$" dev=dm-0 ino=149839 scontext=system_u:system_r:dovecot_t:s0 tcontext=unconfined_u:object_r:var_t:s0 tclass=dir
type=AVC msg=audit(1423467003.035:254784): avc:  denied  { read } for  pid=13139 comm="imap" name="$myaccount$" dev=dm-0 ino=149839 scontext=system_u:system_r:dovecot_t:s0 tcontext=unconfined_u:object_r:var_t:s0 tclass=dir
type=AVC msg=audit(1423467003.035:254785): avc:  denied  { read } for  pid=13139 comm="imap" name="$myaccount$" dev=dm-0 ino=149839 scontext=system_u:system_r:dovecot_t:s0 tcontext=unconfined_u:object_r:var_t:s0 tclass=dir
type=AVC msg=audit(1423467003.093:254786): avc:  denied  { read } for  pid=13139 comm="imap" name="tmp" dev=dm-0 ino=415518 scontext=system_u:system_r:dovecot_t:s0 tcontext=unconfined_u:object_r:var_t:s0 tclass=dir
type=AVC msg=audit(1423467003.093:254787): avc:  denied  { write } for  pid=13139 comm="imap" name="cur" dev=dm-0 ino=415516 scontext=system_u:system_r:dovecot_t:s0 tcontext=unconfined_u:object_r:var_t:s0 tclass=dir
type=AVC msg=audit(1423467003.093:254788): avc:  denied  { read write } for  pid=13139 comm="imap" name="dovecot.index.log" dev=dm-0 ino=149840 scontext=system_u:system_r:dovecot_t:s0 tcontext=unconfined_u:object_r:var_t:s0 tclass=file
type=AVC msg=audit(1423467003.093:254789): avc:  denied  { read } for  pid=13139 comm="imap" name="dovecot.index.log" dev=dm-0 ino=149840 scontext=system_u:system_r:dovecot_t:s0 tcontext=unconfined_u:object_r:var_t:s0 tclass=file
type=AVC msg=audit(1423467003.093:254790): avc:  denied  { write } for  pid=13139 comm="imap" name="$myaccount$" dev=dm-0 ino=149839 scontext=system_u:system_r:dovecot_t:s0 tcontext=unconfined_u:object_r:var_t:s0 tclass=dir
type=AVC msg=audit(1423467003.094:254791): avc:  denied  { write } for  pid=13139 comm="imap" name="$myaccount$" dev=dm-0 ino=149839 scontext=system_u:system_r:dovecot_t:s0 tcontext=unconfined_u:object_r:var_t:s0 tclass=dir
type=AVC msg=audit(1423467003.094:254792): avc:  denied  { read write } for  pid=13139 comm="imap" name="dovecot-uidlist" dev=dm-0 ino=149846 scontext=system_u:system_r:dovecot_t:s0 tcontext=unconfined_u:object_r:var_t:s0 tclass=file
type=AVC msg=audit(1423467003.206:254793): avc:  denied  { read } for  pid=13139 comm="imap" name="tmp" dev=dm-0 ino=415518 scontext=system_u:system_r:dovecot_t:s0 tcontext=unconfined_u:object_r:var_t:s0 tclass=dir
type=AVC msg=audit(1423467003.207:254794): avc:  denied  { write } for  pid=13139 comm="imap" name="cur" dev=dm-0 ino=415516 scontext=system_u:system_r:dovecot_t:s0 tcontext=unconfined_u:object_r:var_t:s0 tclass=dir
type=AVC msg=audit(1423467003.207:254795): avc:  denied  { read write } for  pid=13139 comm="imap" name="dovecot.index.log" dev=dm-0 ino=149840 scontext=system_u:system_r:dovecot_t:s0 tcontext=unconfined_u:object_r:var_t:s0 tclass=file
type=AVC msg=audit(1423467003.207:254796): avc:  denied  { read } for  pid=13139 comm="imap" name="dovecot.index.log" dev=dm-0 ino=149840 scontext=system_u:system_r:dovecot_t:s0 tcontext=unconfined_u:object_r:var_t:s0 tclass=file
type=AVC msg=audit(1423467003.207:254797): avc:  denied  { write } for  pid=13139 comm="imap" name="$myaccount$" dev=dm-0 ino=149839 scontext=system_u:system_r:dovecot_t:s0 tcontext=unconfined_u:object_r:var_t:s0 tclass=dir
type=AVC msg=audit(1423467003.208:254798): avc:  denied  { write } for  pid=13139 comm="imap" name="$myaccount$" dev=dm-0 ino=149839 scontext=system_u:system_r:dovecot_t:s0 tcontext=unconfined_u:object_r:var_t:s0 tclass=dir
type=AVC msg=audit(1423467003.208:254799): avc:  denied  { read write } for  pid=13139 comm="imap" name="dovecot-uidlist" dev=dm-0 ino=149846 scontext=system_u:system_r:dovecot_t:s0 tcontext=unconfined_u:object_r:var_t:s0 tclass=file
    
por Benz 07.02.2015 / 18:46

1 resposta

1

Você pode configurar o SElinux para o modo permissivo e tentar se funciona?

sudo setenforce permissive

As políticas do SElinux parecem estar erradas. A política deve ser:

   drwx------. vmail vmail system_u:object_r:mail_spool_t:s0 example.org

Você pode definir as políticas corretas por

sudo semanage fcontext -a -t mail_spool_t "/var/vmail(/.*)?"
sudo restorecon -Rv /var/vmail
    
por 04.02.2017 / 09:20