<!doctype html>
<html>
 <head> 
  <meta charset="UTF-8"> 
 </head>
 <body>
  <div>
   <br>
  </div>
  <blockquote type="cite">
   <div>
    On 11/04/2020 15:47 Alex JOST <
    <a
href="mailto:jost+lists@dimejo.at">jost+lists@dimejo.at</a>>
wrote:
   </div>
   <div>
    <br>
   </div>
   <div>
    <br>
   </div>
   <div>
    Am 11.04.2020 um 13:00 schrieb Andrei Petru Mura:
   </div>
   <blockquote type="cite">
    <div>
     Hi,
    </div>
    <div>
     <br>
    </div>
    <div>
     After configuring systemd unit with ReadWritePaths=/home/mail, I get the
    </div>
    <div>
     following error logs in audit:
    </div>
    <div>
     type=AVC msg=audit(1586604621.637:6736): avc: denied { write } for
    </div>
    <div>
     pid=12750 comm="imap" name="Maildir"
dev="dm-3" ino=438370738
    </div>
    <div>
     scontext=system_u:system_r:dovecot_t:s0
    </div>
    <div>
     tcontext=unconfined_u:object_r:etc_runtime_t:s0 tclass=dir permissive=0
    </div>
    <div>
     type=SYSCALL msg=audit(1586604621.637:6736): arch=c000003e syscall=83
    </div>
    <div>
     success=no exit=-13 a0=55b493a7f338 a1=1ed a2=ffffffff a3=fffffffffffffcd8
    </div>
    <div>
     items=0 ppid=12735 pid=12750 auid=4294967295 uid=1005 gid=1005 euid=1005
    </div>
    <div>
     suid=1005 fsuid=1005 egid=1005 sgid=1005 fsgid=1005 tty=(none)
    </div>
    <div>
     ses=4294967295 comm="imap"
exe="/usr/libexec/dovecot/imap"
    </div>
    <div>
     subj=system_u:system_r:dovecot_t:s0 key=(null)
    </div>
    <div>
     type=PROCTITLE msg=audit(1586604621.637:6736):
proctitle="dovecot/imap"
    </div>
    <div>
     type=AVC msg=audit(1586604621.638:6737): avc: denied { write } for
    </div>
    <div>
     pid=12750 comm="imap" name="Maildir"
dev="dm-3" ino=438370738
    </div>
    <div>
     scontext=system_u:system_r:dovecot_t:s0
    </div>
    <div>
     tcontext=unconfined_u:object_r:etc_runtime_t:s0 tclass=dir permissive=0
    </div>
    <div>
     type=SYSCALL msg=audit(1586604621.638:6737): arch=c000003e syscall=21
    </div>
    <div>
     success=no exit=-13 a0=55b493a7f508 a1=2 a2=55b493a7f388 a3=fffffffe
    </div>
    <div>
     items=0 ppid=12735 pid=12750 auid=4294967295 uid=1005 gid=1005 euid=1005
    </div>
    <div>
     suid=1005 fsuid=1005 egid=1005 sgid=1005 fsgid=1005 tty=(none)
    </div>
    <div>
     ses=4294967295 comm="imap"
exe="/usr/libexec/dovecot/imap"
    </div>
    <div>
     subj=system_u:system_r:dovecot_t:s0 key=(null)
    </div>
    <div>
     type=PROCTITLE msg=audit(1586604621.638:6737):
proctitle="dovecot/imap"
    </div>
    <div>
     <br>
    </div>
    <div>
     I have SELinux enabled, on CentOS.
    </div>
    <div>
     If I run:
    </div>
    <div>
     audit2why < /var/log/audit/audit.log
    </div>
    <div>
     <br>
    </div>
    <div>
     I get:
    </div>
    <div>
     type=AVC msg=audit(1586601301.044:6707): avc: denied { write } for
    </div>
    <div>
     pid=9930 comm="imap" name="Maildir"
dev="dm-3" ino=438370738
    </div>
    <div>
     scontext=system_u:system_r:dovecot_t:s0
    </div>
    <div>
     tcontext=unconfined_u:object_r:etc_runtime_t:s0 tclass=dir permissive=0
    </div>
    <div>
     <br>
    </div>
    <div>
     Was caused by:
    </div>
    <div>
     Missing type enforcement (TE) allow rule.
    </div>
    <div>
     <br>
    </div>
    <div>
     I think it's important to know that I'm trying to use dovecot with
virtual
    </div>
    <div>
     users. If I try to configure it with PAM authentication using system users,
    </div>
    <div>
     it works well.
    </div>
    <div>
     <br>
    </div>
    <div>
     Any suggestions on this?
    </div>
   </blockquote>
   <div>
    Looks like /home/mail as mail store isn't included in the default
   </div>
   <div>
    SELinux policy. Did you make sure that the correct SELinux type is set
   </div>
   <div>
    on the directories?
   </div>
   <div>
    <a
href="https://www.unix.com/man-page/centos/8/dovecot_selinux/"
rel="noopener"
target="_blank">https://www.unix.com/man-page/centos/8/dovecot_selinux/</a>
   </div>
   <div>
    <br>
   </div>
   <div>
    <br>
   </div>
   <div>
    If this isn't enough to get you going you might need to create your own
   </div>
   <div>
    policy. The following steps should be all that it takes to create your
   </div>
   <div>
    own policy.
   </div>
   <div>
    <br>
   </div>
   <div>
    Check that grep includes only lines that you want included in your new
   </div>
   <div>
    policy:
   </div>
   <div>
    grep dovecot /var/log/audit/audit.log | audit2allow -w
   </div>
   <div>
    <br>
   </div>
   <div>
    Create your new policy for Dovecot and install it:
   </div>
   <div>
    grep dovecot /var/log/audit/audit.log | audit2allow -M dovecot_custom
   </div>
   <div>
    semodule -i dovecot_custom.pp
   </div>
   <div>
    <br>
   </div>
   <div>
    --
   </div>
   <div>
    Alex JOST
   </div>
  </blockquote>
  <div>
   <br>
  </div>
  <div>
   <br>
  </div>
  <div>
   Or just label the directory with mail_home_rw_t
  </div>
  <div>
   <br>
  </div>
  <div class="io-ox-signature">
   <pre>---
Aki Tuomi</pre>
  </div> 
 </body>
</html>
> On 11/04/2020 15:57 Aki Tuomi <aki.tuomi at open-xchange.com> wrote: > > > > > > On 11/04/2020 15:47 Alex JOST < jost+lists at dimejo.at> wrote: > > > > > > > > > > Am 11.04.2020 um 13:00 schrieb Andrei Petru Mura: > > > Hi, > > > > > > > > > After configuring systemd unit with ReadWritePaths=/home/mail, I get the > > > following error logs in audit: > > > type=AVC msg=audit(1586604621.637:6736): avc: denied { write } for > > > pid=12750 comm="imap" name="Maildir" dev="dm-3" ino=438370738 > > > scontext=system_u:system_r:dovecot_t:s0 > > > tcontext=unconfined_u:object_r:etc_runtime_t:s0 tclass=dir permissive=0 > > > type=SYSCALL msg=audit(1586604621.637:6736): arch=c000003e syscall=83 > > > success=no exit=-13 a0=55b493a7f338 a1=1ed a2=ffffffff a3=fffffffffffffcd8 > > > items=0 ppid=12735 pid=12750 auid=4294967295 uid=1005 gid=1005 euid=1005 > > > suid=1005 fsuid=1005 egid=1005 sgid=1005 fsgid=1005 tty=(none) > > > ses=4294967295 comm="imap" exe="/usr/libexec/dovecot/imap" > > > subj=system_u:system_r:dovecot_t:s0 key=(null) > > > type=PROCTITLE msg=audit(1586604621.637:6736): proctitle="dovecot/imap" > > > type=AVC msg=audit(1586604621.638:6737): avc: denied { write } for > > > pid=12750 comm="imap" name="Maildir" dev="dm-3" ino=438370738 > > > scontext=system_u:system_r:dovecot_t:s0 > > > tcontext=unconfined_u:object_r:etc_runtime_t:s0 tclass=dir permissive=0 > > > type=SYSCALL msg=audit(1586604621.638:6737): arch=c000003e syscall=21 > > > success=no exit=-13 a0=55b493a7f508 a1=2 a2=55b493a7f388 a3=fffffffe > > > items=0 ppid=12735 pid=12750 auid=4294967295 uid=1005 gid=1005 euid=1005 > > > suid=1005 fsuid=1005 egid=1005 sgid=1005 fsgid=1005 tty=(none) > > > ses=4294967295 comm="imap" exe="/usr/libexec/dovecot/imap" > > > subj=system_u:system_r:dovecot_t:s0 key=(null) > > > type=PROCTITLE msg=audit(1586604621.638:6737): proctitle="dovecot/imap" > > > > > > > > > I have SELinux enabled, on CentOS. > > > If I run: > > > audit2why < /var/log/audit/audit.log > > > > > > > > > I get: > > > type=AVC msg=audit(1586601301.044:6707): avc: denied { write } for > > > pid=9930 comm="imap" name="Maildir" dev="dm-3" ino=438370738 > > > scontext=system_u:system_r:dovecot_t:s0 > > > tcontext=unconfined_u:object_r:etc_runtime_t:s0 tclass=dir permissive=0 > > > > > > > > > Was caused by: > > > Missing type enforcement (TE) allow rule. > > > > > > > > > I think it's important to know that I'm trying to use dovecot with virtual > > > users. If I try to configure it with PAM authentication using system users, > > > it works well. > > > > > > > > > Any suggestions on this? > > Looks like /home/mail as mail store isn't included in the default > > SELinux policy. Did you make sure that the correct SELinux type is set > > on the directories? > > https://www.unix.com/man-page/centos/8/dovecot_selinux/ > > > > > > > > > > If this isn't enough to get you going you might need to create your own > > policy. The following steps should be all that it takes to create your > > own policy. > > > > > > Check that grep includes only lines that you want included in your new > > policy: > > grep dovecot /var/log/audit/audit.log | audit2allow -w > > > > > > Create your new policy for Dovecot and install it: > > grep dovecot /var/log/audit/audit.log | audit2allow -M dovecot_custom > > semodule -i dovecot_custom.pp > > > > > > -- > > Alex JOST > > > > > Or just label the directory with mail_home_rw_t > > > --- > Aki Tuomi >I took the time to document suitable approach to this problem. You can check it here https://github.com/dovecot/documentation/pull/63/files Aki
Hi Aki,
You did a great job. God bless you! :)
I think it will work now. I'll come with feedback if that's the case
after
applying this on my server. I just want to mention one little thing bellow
(which possibly has some importance).
In my system, instead of /home/mail/domain/test/Maildir, I have
*/some_other_custom_dir/mail/my_domain_name/test/Maildir/*. From
*dovecot_selinux*'s man page I can see that *mail_home_rw_t *directories
are:
            /root/Maildir(/.*)?
            /root/.esmtp_queue(/.*)?
            /home/[^/]+/.maildir(/.*)?
            /home/[^/]+/Maildir(/.*)?
            /home/[^/]+/.esmtp_queue(/.*)?
which anyway, seems to me, doesn't match the initial directory path which I
provided (it's the first time when I knowledgeably interact with SELinux).
I think this shouldn't impact the documented issue, but if you think it
does, I wanted to inform you.
Thanks and have a nice day,
Mura Andrei
On Sun, Apr 12, 2020 at 10:52 PM Aki Tuomi <aki.tuomi at open-xchange.com>
wrote:
>
> > On 11/04/2020 15:57 Aki Tuomi <aki.tuomi at open-xchange.com>
wrote:
> >
> >
> >
> >
> > > On 11/04/2020 15:47 Alex JOST < jost+lists at dimejo.at>
wrote:
> > >
> > >
> > >
> > >
> > > Am 11.04.2020 um 13:00 schrieb Andrei Petru Mura:
> > > > Hi,
> > > >
> > > >
> > > > After configuring systemd unit with
ReadWritePaths=/home/mail, I get
> the
> > > > following error logs in audit:
> > > > type=AVC msg=audit(1586604621.637:6736): avc: denied { write
} for
> > > > pid=12750 comm="imap" name="Maildir"
dev="dm-3" ino=438370738
> > > > scontext=system_u:system_r:dovecot_t:s0
> > > > tcontext=unconfined_u:object_r:etc_runtime_t:s0 tclass=dir
> permissive=0
> > > > type=SYSCALL msg=audit(1586604621.637:6736): arch=c000003e
syscall=83
> > > > success=no exit=-13 a0=55b493a7f338 a1=1ed a2=ffffffff
> a3=fffffffffffffcd8
> > > > items=0 ppid=12735 pid=12750 auid=4294967295 uid=1005
gid=1005
> euid=1005
> > > > suid=1005 fsuid=1005 egid=1005 sgid=1005 fsgid=1005
tty=(none)
> > > > ses=4294967295 comm="imap"
exe="/usr/libexec/dovecot/imap"
> > > > subj=system_u:system_r:dovecot_t:s0 key=(null)
> > > > type=PROCTITLE msg=audit(1586604621.637:6736):
> proctitle="dovecot/imap"
> > > > type=AVC msg=audit(1586604621.638:6737): avc: denied { write
} for
> > > > pid=12750 comm="imap" name="Maildir"
dev="dm-3" ino=438370738
> > > > scontext=system_u:system_r:dovecot_t:s0
> > > > tcontext=unconfined_u:object_r:etc_runtime_t:s0 tclass=dir
> permissive=0
> > > > type=SYSCALL msg=audit(1586604621.638:6737): arch=c000003e
syscall=21
> > > > success=no exit=-13 a0=55b493a7f508 a1=2 a2=55b493a7f388
a3=fffffffe
> > > > items=0 ppid=12735 pid=12750 auid=4294967295 uid=1005
gid=1005
> euid=1005
> > > > suid=1005 fsuid=1005 egid=1005 sgid=1005 fsgid=1005
tty=(none)
> > > > ses=4294967295 comm="imap"
exe="/usr/libexec/dovecot/imap"
> > > > subj=system_u:system_r:dovecot_t:s0 key=(null)
> > > > type=PROCTITLE msg=audit(1586604621.638:6737):
> proctitle="dovecot/imap"
> > > >
> > > >
> > > > I have SELinux enabled, on CentOS.
> > > > If I run:
> > > > audit2why < /var/log/audit/audit.log
> > > >
> > > >
> > > > I get:
> > > > type=AVC msg=audit(1586601301.044:6707): avc: denied { write
} for
> > > > pid=9930 comm="imap" name="Maildir"
dev="dm-3" ino=438370738
> > > > scontext=system_u:system_r:dovecot_t:s0
> > > > tcontext=unconfined_u:object_r:etc_runtime_t:s0 tclass=dir
> permissive=0
> > > >
> > > >
> > > > Was caused by:
> > > > Missing type enforcement (TE) allow rule.
> > > >
> > > >
> > > > I think it's important to know that I'm trying to
use dovecot with
> virtual
> > > > users. If I try to configure it with PAM authentication
using system
> users,
> > > > it works well.
> > > >
> > > >
> > > > Any suggestions on this?
> > > Looks like /home/mail as mail store isn't included in the
default
> > > SELinux policy. Did you make sure that the correct SELinux type
is set
> > > on the directories?
> > > https://www.unix.com/man-page/centos/8/dovecot_selinux/
> > >
> > >
> > >
> > >
> > > If this isn't enough to get you going you might need to
create your own
> > > policy. The following steps should be all that it takes to create
your
> > > own policy.
> > >
> > >
> > > Check that grep includes only lines that you want included in
your new
> > > policy:
> > > grep dovecot /var/log/audit/audit.log | audit2allow -w
> > >
> > >
> > > Create your new policy for Dovecot and install it:
> > > grep dovecot /var/log/audit/audit.log | audit2allow -M
dovecot_custom
> > > semodule -i dovecot_custom.pp
> > >
> > >
> > > --
> > > Alex JOST
> >
> >
> >
> >
> > Or just label the directory with mail_home_rw_t
> >
> >
> > ---
> > Aki Tuomi
> >
>
> I took the time to document suitable approach to this problem. You can
> check it here https://github.com/dovecot/documentation/pull/63/files
>
> Aki
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<https://dovecot.org/pipermail/dovecot/attachments/20200413/fcd778ae/attachment.html>