Re: Allowing OpenDMARC to send mail

Matt Domsch <[email protected]> Sat, 10 Sep 2022 13:42:23 -0400
Newsgroups gmane.linux.redhat.fedora.selinux
Message-ID <CAKzD2+mi0VRqC9Xw9vuAM4RtVGHrimY_qT8NrYy9KSVHVbfqzQ@mail.gmail.com>
Thanks David. I believe that is a figment of my attempts to solve this,
where I had that line on my local policy file.  The fact that it's getting
that far in domain dkim_milter_t is the problem, I believe.


On Sat, Sep 10, 2022 at 1:21 PM David Sastre <[email protected]>
wrote:

> I'm not answering your question, but for what is worth, that AVC denial
> log run through audit2allow in Fedora 36 seems to be allowed by policy,
> i.e. the AVC denial should not trigger.
>
> $ echo 'type=AVC msg=audit(1662776560.507:10521833): avc:  denied  {
> create } for  pid=1385220 comm="sendmail" name="df28A2Meeh1385220"
> scontext=system_u:system_r:dkim_milter_t:s0
> tcontext=system_u:object_r:mqueue_spool_t:s0 tclass=file permissive=0' |
> sudo audit2allow
>
> #============= dkim_milter_t ==============
>
> #!!!! This avc is allowed in the current policy
> allow dkim_milter_t mqueue_spool_t:file create;
>
>
>
>
> On Sat, Sep 10, 2022 at 3:37 PM Matt Domsch <[email protected]> wrote:
>
>> OpenDMARC (Domain-based Message Authentication, Reporting & Conformance)
>> provides an open source library that implements the DMARC verification
>> service plus a milter-based filter application that can plug in to any
>> milter-aware MTA, including sendmail, Postfix, or any other MTA that
>> supports
>> the milter protocol.
>>
>> One feature of OpenDMARC is that i can send email to domains who have
>> specified in their DMARC DNS record that they wish to receive reports
>> (either aggregate or forensic) from mail servers when a message claiming to
>> originate from their mail domain has been received. This allows sending
>> mail servers to possibly adjust their mail sending practices to ensure all
>> mail they legitimately send are marked as such, and all mail sent as a
>> spoof of their domain then be blocked by filters.
>>
>> opendmarc runs in selinux domain dkim_milter_t (I never got around to
>> asking for a separate dmarc_milter_t domain), and uses
>> popen("/usr/sbin/sendmail -t ...") to send its aggregate or forensic
>> report.  selinux policy currently prohibits this behavior.
>>
>> I have been trying to write a custom policy that would allow opendmarc to
>> make the transition to sendmail_t, but have been unsuccessful, hence this
>> plea for help.
>>
>> #============= dkim_milter_t ==============
>> allow dkim_milter_t self:process setrlimit;  # opendmarc calls setrlimit()
>> allow dkim_milter_t shell_exec_t:file { execute_no_trans map entrypoint
>> }; # opendmarc calls popen() which invokes /bin/sh
>> allow dkim_milter_t sendmail_exec_t:file { entrypoint execute getattr
>> open read map }; # invokes sendmail which has this file type
>> allow dkim_milter_t sendmail_t : process transition; # allow the
>> transition to sendmail_t
>> type_transition dkim_milter_t sendmail_exec_t : process sendmail_t; #
>>
>> However, once sendmail is running and tries to create its queue files in
>> /var/spool/mqueue which has type mqueue_spool_t, the audit logs indicate
>> it's still running as dkim_milter_t which doesn't have permissions to
>> manage that directory (nor should it - that's sendmail's job).
>>
>> type=AVC msg=audit(1662776560.507:10521833): avc:  denied  { create } for
>>  pid=1385220 comm="sendmail" name="df28A2Meeh1385220"
>> scontext=system_u:system_r:dkim_milter_t:s0
>> tcontext=system_u:object_r:mqueue_spool_t:s0 tclass=file permissive=0
>>
>> What do I need to do to get opendmarc to be running in sendmail_t
>> automatically following the popen()?
>>
>> Also filed in
>> https://bugzilla.redhat.com/show_bug.cgi?id=2125030
>>
>> Thanks,
>> Matt
>>
>> _______________________________________________
>> selinux mailing list -- [email protected]
>> To unsubscribe send an email to [email protected]
>> Fedora Code of Conduct:
>> https://docs.fedoraproject.org/en-US/project/code-of-conduct/
>> List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
>> List Archives:
>> https://lists.fedoraproject.org/archives/list/[email protected]
>> Do not reply to spam, report it:
>> https://pagure.io/fedora-infrastructure/new_issue
>>
>

_______________________________________________
selinux mailing list -- [email protected]
To unsubscribe send an email to [email protected]
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/[email protected]
Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue