fix DNS configuration of lists.fedoraproject.org to stop email messages being classified as spam #12487
Labels
No labels
announcement
authentication
automate
aws
backlog
blocked
bodhi
ci
Closed As
Duplicate
Closed As
Fixed
Closed As
Fixed with Explanation
Closed As
Initiative Worthy
Closed As
Insufficient data
Closed As
Invalid
Closed As
Spam
Closed As
Upstream
Closed As
Will Not or Can Not fix
cloud
communishift
copr
database
deprecated
dev
discourse
dns
downloads
easyfix
epel
factory2
firmitas
gitlab
greenwave
hardware
help wanted
high-gain
high-trouble
iad2
koji
koschei
lists
low-gain
low-trouble
mbs
medium-gain
medium-trouble
mini-initiative
mirrorlists
monitoring
Needs investigation
notifier
odcs
OpenShift
ops
OSBS
outage
packager_workflow_blocker
pagure
permissions
Priority
Needs Review
Priority
Next Meeting
Priority
🔥 URGENT 🔥
Priority
Waiting on Assignee
Priority
Waiting on External
Priority
Waiting on Reporter
rabbitmq
rdu-cc
release-monitoring
releng
repoSpanner
request-for-resources
s390x
security
SMTP
src.fp.o
staging
taiga
unfreeze
waiverdb
websites-general
wiki
No milestone
No project
No assignees
5 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: Infrastructure/fedora-infrastructure#12487
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Fedora mailing list messages often are classified as spam by GMail. As you can see from messages sources, dmarc and other checks are failing.
A good overview of the DNS configuration problems can bee seen at
https://mxtoolbox.com/emailhealth/lists.fedoraproject.org/
then mind the warning
and click the "Click Here" button to run the tests against lists.fedoraproject.org.
You will see 5 buttons (Problems, Blacklist, Mail Server, Web Server, DNS) that let you expand the various categories
We can take a look. Thanks.
We are often on various blocklists because people subscribe, forget that they did and report the posts they get as spam. ;(
I am not sure what its meaning about 'dns record not found'... lists.fedoraproject.org definitely resolves.
But we can look into it and see what we can do.
dns record not found
it means that a DNS "record A" does not exist for the subdomain, but it's not a serious problemuh...
Metadata Update from @phsmoura:
Additional infos from https://www.checktls.com/TestReceiver
learndmarc.com output I got by passing the email headers (taken from my gmail account) corresponding to the message
https://lists.fedoraproject.org/archives/list/users@lists.fedoraproject.org/message/Y3SEQTPGMJJHTLHRJV6WIS6UIR6YOFS6/
for comparison, this is the learndmarc.com output you get by passing the headers of a message from kde-devel@kde.org mailing list, which never is classified as spam by GMail
one view to the TXT record and you see the lack of a DMARC entry.
You can use this one to get rid of google:
"v=DMARC1; p=none;"
I thought that adding DMARC on mailman would be enough, but it seems that we need to add it to DNS as well.
Well, in mailman thats mitigation for the sender of the email having DMARC (to avoid the lists sending as that user from our outgoing server, which would be rejected).
This is google being... google and demanding DMARC I guess.
We do have:
host -t txt _DMARC.fedoraproject.org
_DMARC.fedoraproject.org descriptive text "v=DMARC1; p=none; rua=mailto:dmarc-admin@fedoraproject.org; ruf=mailto:dmarc-admin@fedoraproject.org; fo=0"
for the base domain.
Outgoing emails from the list go via bastion and are signed, but from bastion, which might make something cranky.
I'm fine adding the none record for lists for now.
Mailman "munging" (which is enabled on KDE lists) description from chatgpt o3
https://docs.mailman3.org/projects/mailman/en/latest/src/mailman/handlers/docs/dmarc-mitigations.html
What “munging” the From: header means
“Munging” (literally “to mangle or scramble”) is the act of rewriting the
From:
field by the mailing-list software.When this option is enabled, Mailman takes the original message and:
Replaces the sender address
becomes, for example
Moves the author’s real address into
Reply-To:
(or sometimesCc:
) so that replies can still reach the original poster.The end result is that, after the list relays the mail, the domain in
From:
matches the domain of the server actually sending it; SPF and DKIM are therefore “aligned,” and the message passes DMARC checks.Why it’s done
p=quarantine
/reject
), recipients such as Gmail or Yahoo would reject or spam-folder the message.From:
to use the list’s domain, SPF (and DKIM, if the list signs outgoing mail) now align with that domain, so DMARC passes.Mailman documents this as the
munge_from
action in its “DMARC Mitigations” guide and the official wiki describes it as “Rewrite (Munge) the From: header … to avoid DMARC rejection.”How to configure it in Mailman
from_is_list = Yes
(old)dmarc_moderation_action = Munge From
(recommended in ≥ 2.1.18).dmarc_mitigate_action = munge_from
dmarc_mitigate_unconditionally = Yes
to apply it to all messages, or leave it off to affect only those from domains with strict DMARC.Advantages
Drawbacks
From:
header recipients see no longer shows the true author’s address; some users find this confusing.From:
(e.g.,git am
, certain mail filters) can break.From:
(though the practice is widely accepted).In a nutshell
From munging simply changes the visible sender so the domain matches the mailing list’s domain, sidestepping DMARC blocks.
Mailman lets you enable it with a single setting—use it when deliverability matters more than keeping the
From:
header 100 % intact.We already have dmarc mitigation enabled for all lists. We have it set to do mitigations when the sending domain has a reject or quarantine setting.
I don't think we want to enable it unconditionally.
I've added a placeholder DMARC txt record to hopefully fix things. Please test.
So, any change for anyone?
I don't see much improvement. This message sent yesterday has still been classified as spam
And noone wonders, why it complains that fedoraproject is not redhat.com?
The link to a website without headers of that email, does not help, so i searched the mail on the dev-ml.
I checked SPF for both domains, and from the fact, that redhat.com got named, i have to assume and checked with the original mail to the list, that it's the original senderdomain which has been used to send over bastion, which must fail, as bastion is not listed in redhat.com's SPF entry.
fedoraprojects and redhats dmarc entries are syntactically valid and the report names SPF as failed.
BTW: pagure.io is used as a sender domain for the FI-ML and does not have SPF at all. Maybe someone wants to fix this or gmail won't take those mails either.
Conclusion: x@redhat.com is not allowed to be send over bastion by SPF..
Solution: Introduce SRS or add bastion to redhat's SPF entry (way easier).
2.BTW: Why did DKIM failed for the reporting tool? I checked the original mail and DKIM is correct. At least that should have passed. (note: dkim is dns based and dns can fail)
/usr/bin/spfquery --scope mfrom --id x@redhat.com --ip 38.145.60.11
fail
Please see http://www.openspf.org/Why?s=mfrom;id=x%40redhat.com;ip=38.145.60.11;r=c1.resellerdesktop.de
redhat.com ... 73t7ezjz._spf._d.mim.ec: Sender is not authorized by default to use 'x@redhat.com' in 'mfrom' identity (mechanism '-all' matched)
Received-SPF: fail (redhat.com ... 73t7ezjz._spf._d.mim.ec: Sender is not authorized by default to use 'x@redhat.com' in 'mfrom' identity (mechanism '-all' matched)) receiver=xxx.resellerdesktop.de; identity=mailfrom; envelope-from="x@redhat.com"; client-ip=38.145.60.11
QED
The problem here seems to be redhat.com doesn't trigger the mailman dmarc mitigation (because dmarc policy on redhat.com doesn't require it, but then the email hits SPF issues.
There is almost no chance that redhat.com will add us as a sender in SPF records.
than there is only one solution left: SRS (Sender Rewriting Scheme)
Rewriting the sender to an allowed form with a working domain, so SPF will pass.
Right and the only way I see to do that is to enable the mailman dmarc mitigation always. I guess we can do that but it might confuse some people.
Is the devel list the only place folks are seeing this issue?