<div dir="ltr">Hi Aki,<div><br></div><div>You did a great job. God bless you! :)</div><div>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).</div><div>In my system, instead of /home/mail/domain/test/Maildir, I have <b>/some_other_custom_dir/mail/my_domain_name/test/Maildir/</b>. From <b>dovecot_selinux</b>'s man page I can see that <b>mail_home_rw_t </b>directories are: </div><div>            /root/Maildir(/.*)?<br>            /root/.esmtp_queue(/.*)?<br>            /home/[^/]+/.maildir(/.*)?<br>            /home/[^/]+/Maildir(/.*)?<br>            /home/[^/]+/.esmtp_queue(/.*)?<br></div><div>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).</div><div>I think this shouldn't impact the documented issue, but if you think it does, I wanted to inform you.</div><div><br></div><div>Thanks and have a nice day,</div><div>Mura Andrei</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Apr 12, 2020 at 10:52 PM Aki Tuomi <<a href="mailto:aki.tuomi@open-xchange.com">aki.tuomi@open-xchange.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br>
> On 11/04/2020 15:57 Aki Tuomi <<a href="mailto:aki.tuomi@open-xchange.com" target="_blank">aki.tuomi@open-xchange.com</a>> wrote:<br>
> <br>
> <br>
> <br>
> <br>
> > On 11/04/2020 15:47 Alex JOST < <a href="mailto:jost%2Blists@dimejo.at" target="_blank">jost+lists@dimejo.at</a>> wrote:<br>
> > <br>
> > <br>
> > <br>
> > <br>
> > Am 11.04.2020 um 13:00 schrieb Andrei Petru Mura:<br>
> > > Hi,<br>
> > > <br>
> > > <br>
> > > After configuring systemd unit with ReadWritePaths=/home/mail, I get the<br>
> > > following error logs in audit:<br>
> > > type=AVC msg=audit(1586604621.637:6736): avc: denied { write } for<br>
> > > pid=12750 comm="imap" name="Maildir" dev="dm-3" ino=438370738<br>
> > > scontext=system_u:system_r:dovecot_t:s0<br>
> > > tcontext=unconfined_u:object_r:etc_runtime_t:s0 tclass=dir permissive=0<br>
> > > type=SYSCALL msg=audit(1586604621.637:6736): arch=c000003e syscall=83<br>
> > > success=no exit=-13 a0=55b493a7f338 a1=1ed a2=ffffffff a3=fffffffffffffcd8<br>
> > > items=0 ppid=12735 pid=12750 auid=4294967295 uid=1005 gid=1005 euid=1005<br>
> > > suid=1005 fsuid=1005 egid=1005 sgid=1005 fsgid=1005 tty=(none)<br>
> > > ses=4294967295 comm="imap" exe="/usr/libexec/dovecot/imap"<br>
> > > subj=system_u:system_r:dovecot_t:s0 key=(null)<br>
> > > type=PROCTITLE msg=audit(1586604621.637:6736): proctitle="dovecot/imap"<br>
> > > type=AVC msg=audit(1586604621.638:6737): avc: denied { write } for<br>
> > > pid=12750 comm="imap" name="Maildir" dev="dm-3" ino=438370738<br>
> > > scontext=system_u:system_r:dovecot_t:s0<br>
> > > tcontext=unconfined_u:object_r:etc_runtime_t:s0 tclass=dir permissive=0<br>
> > > type=SYSCALL msg=audit(1586604621.638:6737): arch=c000003e syscall=21<br>
> > > success=no exit=-13 a0=55b493a7f508 a1=2 a2=55b493a7f388 a3=fffffffe<br>
> > > items=0 ppid=12735 pid=12750 auid=4294967295 uid=1005 gid=1005 euid=1005<br>
> > > suid=1005 fsuid=1005 egid=1005 sgid=1005 fsgid=1005 tty=(none)<br>
> > > ses=4294967295 comm="imap" exe="/usr/libexec/dovecot/imap"<br>
> > > subj=system_u:system_r:dovecot_t:s0 key=(null)<br>
> > > type=PROCTITLE msg=audit(1586604621.638:6737): proctitle="dovecot/imap"<br>
> > > <br>
> > > <br>
> > > I have SELinux enabled, on CentOS.<br>
> > > If I run:<br>
> > > audit2why < /var/log/audit/audit.log<br>
> > > <br>
> > > <br>
> > > I get:<br>
> > > type=AVC msg=audit(1586601301.044:6707): avc: denied { write } for<br>
> > > pid=9930 comm="imap" name="Maildir" dev="dm-3" ino=438370738<br>
> > > scontext=system_u:system_r:dovecot_t:s0<br>
> > > tcontext=unconfined_u:object_r:etc_runtime_t:s0 tclass=dir permissive=0<br>
> > > <br>
> > > <br>
> > > Was caused by:<br>
> > > Missing type enforcement (TE) allow rule.<br>
> > > <br>
> > > <br>
> > > I think it's important to know that I'm trying to use dovecot with virtual<br>
> > > users. If I try to configure it with PAM authentication using system users,<br>
> > > it works well.<br>
> > > <br>
> > > <br>
> > > Any suggestions on this?<br>
> > Looks like /home/mail as mail store isn't included in the default<br>
> > SELinux policy. Did you make sure that the correct SELinux type is set<br>
> > on the directories?<br>
> > <a href="https://www.unix.com/man-page/centos/8/dovecot_selinux/" rel="noreferrer" target="_blank">https://www.unix.com/man-page/centos/8/dovecot_selinux/</a><br>
> > <br>
> > <br>
> > <br>
> > <br>
> > If this isn't enough to get you going you might need to create your own<br>
> > policy. The following steps should be all that it takes to create your<br>
> > own policy.<br>
> > <br>
> > <br>
> > Check that grep includes only lines that you want included in your new<br>
> > policy:<br>
> > grep dovecot /var/log/audit/audit.log | audit2allow -w<br>
> > <br>
> > <br>
> > Create your new policy for Dovecot and install it:<br>
> > grep dovecot /var/log/audit/audit.log | audit2allow -M dovecot_custom<br>
> > semodule -i dovecot_custom.pp<br>
> > <br>
> > <br>
> > --<br>
> > Alex JOST<br>
> <br>
> <br>
> <br>
> <br>
> Or just label the directory with mail_home_rw_t<br>
> <br>
> <br>
> ---<br>
> Aki Tuomi<br>
><br>
<br>
I took the time to document suitable approach to this problem. You can check it here <a href="https://github.com/dovecot/documentation/pull/63/files" rel="noreferrer" target="_blank">https://github.com/dovecot/documentation/pull/63/files</a><br>
<br>
Aki<br>
</blockquote></div>