DKIM किसी भी डोमेन से आउटगोइंग मेल साइन करें (पोस्टफिक्स और उबंटू के साथ)


40

मुझे अपने मेल सर्वर (पोस्टफिक्स और ubuntu) पर डीकेआईएम सेटअप मिला, इसलिए यह आउटगोइंग ईमेल पर हस्ताक्षर करता है। मैंने इन निर्देशों का उपयोग किया: https://help.ubuntu.com/community/Postfix/DKIM

हालाँकि, मुझे किसी भी डोमेन से ईमेल से (पते में) हस्ताक्षर करने की आवश्यकता है, न कि केवल मेरी। मैं एक ईमेल न्यूज़लेटर सेवा बना रहा हूँ और क्लाइंट अपना ईमेल सर्वर के माध्यम से भेजेंगे।

सबसे पहले मैंने /etc/dkim-filter.conf में "डोमेन *" सेट किया। यह सभी आउटगोइंग ईमेल में DKIM हेडर को शामिल करने के लिए मिला, चाहे डोमेन कोई भी हो।

हालाँकि, सत्यापन चेक जीमेल पर विफल रहता है क्योंकि यह पते से डोमेन की जाँच कर रहा है, और मेरा डोमेन नहीं (और रिकॉर्ड्स डीएनएस)। क्या किसी को भी यह करना आता है?

जवाबों:


41

ठीक है, मैं अपने दम पर यह पता लगाने में कामयाब रहा, लेकिन मैं यहाँ पद के लिए कदम बढ़ाना चाहता था क्योंकि इस पर शून्य प्रलेखन था (जो मुझे मिल सकता था) और यह व्यावहारिक रूप से अनुमान और जाँच था।

जैसा कि मैंने ऊपर वर्णित "डोमेन *" सेट करने के बाद, यह इस तरह से हस्ताक्षर करेगा:

DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=clientdomain.com;
    s=main; t=1250005729;
    bh=twleuNpYDuUTZQ/ur9Y2wxCprI0RpF4+LlFYMG81xwE=;
    h=Date:From:To:Message-Id:Subject:Mime-Version:Content-Type;
    b=kohI7XnLlw/uG4XMJoloc4m9zC13g48+Av5w5z7CVE0u3NxsfEqwfDriapn7s7Upi
     31F3k8PDT+eF57gOu2riXaOi53bH3Fn/+j0xCgJf8QpRVfk397w4nUWP/y8tz4jfRx
     GhH21iYo05umP0XflHNglpyEX02bssscu2VzXwMc=

"d = clientdomain.com" पर ध्यान दें। यह ईमेल में पते के आधार पर इसे उत्पन्न कर रहा था, जहां पते से "contact@clientdomain.com" जैसा कुछ था। जाहिर है अगर यह क्लाइंट के डोमेन की जाँच करता है और मेरा कोई DNS TXT रिकॉर्ड नहीं है और सत्यापन विफल हो जाएगा।

तो वैसे भी मुझे इस डॉक्यूमेंटेशन में पता चला है कि आप एक KeyList पैरामीटर सेट कर सकते हैं। http://manpages.ubuntu.com/manpages/hardy/man5/dkim-filter.conf.5.html

यह वास्तव में वर्णन नहीं करता था कि मैं क्या करना चाहता था, लेकिन मुझे लगा कि मैं इसके साथ खेलूंगा। मैंने KeyFile पर टिप्पणी की और KeyList को "/etc/mail/dkim_domains.key" पर सेट किया जो एक मनमाना फ़ाइल नाम है जिसे मैंने बनाया था। मैंने तब वह फ़ाइल बनाई और उसमें "*: feedmailpro.com: /etc/mail/dkim.key" डाल दिया। यह इसे किसी भी क्लाइंट डोमेन के लिए बताता है, इसे मेरे डोमेन (feedmailpro.com) के साथ साइन इन करें, और dkim.key फ़ाइल का उपयोग करें।

DKIM और पोस्टफ़िक्स को पुनः आरंभ किया गया

sudo /etc/init.d/dkim-filter restart
sudo /etc/init.d/postfix restart

अब यह वह कुंजी है जो मैंने परीक्षण ईमेल भेजने पर उत्पन्न की थी।

DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=feedmailpro.com;
    s=dkim.key; t=1250005729;
    bh=twleuNpYDuUTZQ/ur9Y2wxCprI0RpF4+LlFYMG81xwE=;
    h=Date:From:To:Message-Id:Subject:Mime-Version:Content-Type;
    b=kohI7XnLlw/uG4XMJoloc4m9zC13g48+Av5w5z7CVE0u3NxsfEqwfDriapn7s7Upi
     31F3k8PDT+eF57gOu2riXaOi53bH3Fn/+j0xCgJf8QpRVfk397w4nUWP/y8tz4jfRx
     GhH21iYo05umP0XflHNglpyEX02bssscu2VzXwMc=

सुधार, आप देखें d = अब मेरे डोमेन पर सेट है (भले ही ईमेल के पते से मेरा डोमेन नहीं था)। हालाँकि चयनकर्ता के बजाय मैंने dkim-filter.conf में चुना, s = "dkim.key" में बदल गया। मूल सेटअप निर्देशों में मैं चयनकर्ता को "मेल" पर सेट करूँगा। यह अजीब था, लेकिन मैंने देखा कि यह मेरी कुंजी, dkim.key के फ़ाइल नाम में बदल गया है।

इसलिए मैंने जाकर "/etc/mail/dkim.key" का नाम बदलकर "/ etc / mail / mail" रख दिया। इसके संदर्भ को "/etc/mail/dkim_domains.key" में भी अपडेट किया।

डकीम-फ़िल्टर और पोस्टफ़िक्स को फिर से ऊपर की तरह फिर से शुरू करें, और अब यह काम करना शुरू कर दिया है। यहां अंतिम हेडर है जो सही चयनकर्ता का उपयोग करके सही तरीके से संकेत देता है (जाहिरा तौर पर कुंजी के फ़ाइलनाम के आधार पर)।

DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=feedmailpro.com;
    s=mail; t=1250006218;
    bh=tBguOuDhBDlhv0m4KF66LG10V/8ijLcAKZ4JbjpLXFM=;
    h=Date:From:To:Message-Id:Subject:Mime-Version:Content-Type;
    b=c9eqvd+CY86BJDUItWVVRvI3nibfEDORZbye+sD1PVltrcSBOiLZAxF3Y/4mP6vRX
     MUUNCC004oIH1u7FYafgF32lpuioMP1cd7bi6x3AZ5zH4BYETNBnnz4AhAPBtqlIh/
     FFMz8jkhhLhcM2hDpwJkuKjAe3LzfNVDP8kD11ZI=

अब s = mail सही है, और d = feedmailpro.com सही है। यह काम करता हैं!

कुल मिलाकर यह मेरी अपेक्षा से कहीं अधिक कठिन था और ऐसा करने के तरीके के बारे में शून्य दस्तावेज़ीकरण प्रतीत हो रहा था (सभी आउटगोइंग डोमेन के लिए हस्ताक्षर करना), लेकिन मुझे लगता है कि यह ओपन सोर्स सॉफ़्टवेयर है इसलिए मैं शिकायत नहीं कर सकता।

एक अंतिम नोट, यह जांचने के लिए कि TXT DNS रिकॉर्ड सही ढंग से सेटअप किया गया है, आप अपने डोमेन की तरह एक कमांड कर सकते हैं

dig mail._domainkey.feedmailpro.com TXT

खुदाई स्थापित करने की आवश्यकता हो सकती है (sudo apt-get install dig)। यदि आप DNS प्रविष्टि को जोड़ने के लिए Slicehost प्रबंधक का उपयोग कर रहे हैं, तो आप इस तरह TXT रिकॉर्ड दर्ज करेंगे।

Type: TXT
Name: mail._domainkey
Data: k=rsa; t=s; p=M5GfMA0...YOUR LONG KEY...fIDAQAB
TTL seconds: 86400

मुझे वास्तव में समझ नहीं आ रहा है कि नाम "mail._domainkey" पर सेट क्यों होता है, बिना अवधि के या मेरे डोमेन के बिना, जैसे "mail._domainkey.feedmailpro.com"। लेकिन जो भी हो, यह काम करने लगता है इसलिए मैं खुश हूं।

यदि आप इसे डुप्लिकेट करने का प्रयास कर रहे हैं, तो यहां दिए गए निर्देश हैं: https://help.ubuntu.com/community/Postfix.DKIM


2
इसे यहाँ रखने के लिए धन्यवाद, यह दूसरों की मदद कर रहा है (मेरे जैसे) :)
thomasrutter

यम का स्वागत है थोमस!
ब्रायन आर्मस्ट्रांग

वाह, इससे बहुत मदद मिली। मैं "s = dkim.key" के कारण अपना सिर पीट रहा था जब तक कि मैं आपके पोस्ट के पार नहीं आ गया!
3molo

एक बात जो ubuntu.com पर है, वह उल्लेख करने में विफल है कि एक बार जब आप इसे काम कर लेते हैं, तो TXT रिकॉर्ड में t = y से t = n बदलकर यह बताएं कि यह परीक्षण नहीं है।
3molo

साइनिंगटेबल आदि का उपयोग करने के लिए कुछ अच्छे संसाधन हैं। उदाहरण के लिए, blog.tjitjing.com/index.php/2012/03/… (उत्कृष्ट) और यहां तक ​​कि opendkim readme, opendkim.org/opendkim.README
rfay

15

यहां dkim-filter के लिए ब्रायन आर्मस्ट्रांग के उत्तर से प्रेरित होकर मैंने OpenDKIM के लिए यह कैसे किया ।

/etc/opendkim.conf

Syslog          yes
UMask           002
KeyTable        /etc/mail/dkim_key_table
SigningTable    refile:/etc/mail/dkim_signing_table

ध्यान दें कि साइनिंगटेबल में परिष्कृत है : यह परिभाषा में, यह निर्दिष्ट करता है कि फ़ाइल में नियमित अभिव्यक्ति शामिल है; हमारे मामले में * वाइल्डकार्ड।

/ Etc / मेल / dkim_key_table

keyname  example.com:selector:/etc/mail/selector.key

यहाँ कीनेम इस फाइल और dkim_signing_table फ़ाइल के बीच मुख्य मैच के लिए प्रयोग किया जाता है। अपनी वास्तविक फ़ाइल में मैंने इसे अपने चयनकर्ता के रूप में नाम दिया है।

example.com और चयनकर्ता को प्रतिस्थापित किया जाना चाहिए जो डोमेन और चयनकर्ता जिसे आप अपने हस्ताक्षर के d = और s = क्रमशः में उपयोग करना चाहते हैं।

/ Etc / मेल / dkim_signing_table

*   keyname

यह फ़ाइल साधारण मानचित्र पते से मिली : हेडर से dkim_key_table में एक कुंजी के लिए। इस मामले में हम चाहते हैं कि इस सर्वर के माध्यम से भेजे गए सभी ईमेल एक ही कुंजी के साथ हस्ताक्षर किए जाएं, इसलिए एक * वाइल्डकार्ड का उपयोग किया जाता है।


जो लोग "OpenDKIM में कोई हस्ताक्षर करने तालिका मैच" मिल के लिए serverfault.com/q/569823/115907
kommradHomer

अगर किसी को इसका जवाब मिलता है (महान जवाब, btw! मुझे सिखाया कि मुझे क्या चाहिए) और अलग-अलग कुंजी के साथ दो अलग-अलग डोमेन से भेजने की तलाश है, जो इस तरह से किया जा सकता है: KeyTable फ़ाइल: "tagone._domainkey.firstdomin.com Firstdomain .com: टैगऑन: /etc/opendkim/keys/firstdomain.com/tagone tagtwo._domainkey.seconddomain.com seconddomain.com:tagtwo:/etc/opendkim/keys/seconddomain.com/tagtwo "SigningTable:" * @ firstdomain। com tagone._domainkey.firstdomain.com *@seconddomain.com tagtwo._domainkey.seconddomain.com "प्रत्येक फ़ाइल 2 पंक्तियाँ हैं (टिप्पणियाँ यहाँ लाइनब्रेक्स नहीं बचाएं)
Colombo

या: साइनिंगटेबल csl: * = keyname KeyTable csl: keyname = example.com: चयनकर्ता:
/etc/mail/selector.key

3

पुराना धागा लेकिन हो सकता है कि कोई दूसरा व्यक्ति जो यह पाता हो, उसे केपिस्ट के बजाय KeyTable के साथ opendkim के 2.x संस्करण को जानने का उपयोग करना होगा।

आप अपनी KeyList फ़ाइल को opendkim-Convert-keylist टूल ( http://manpages.ubuntu.com/manpages/lucid/man8/opendkim-convert-keylist.8.html ) से बदल सकते हैं

आप opendkim मैन पेज पर KeyTable के कार्यान्वयन के बारे में अधिक पढ़ सकते हैं: ( http://www.opendkim.org/opendkim.conf.5.html )


कृपया किसी भी प्रासंगिक कोड सेगमेंट या कॉन्फ़िगरेशन ब्लॉक को उद्धृत करते हुए आपके द्वारा लिंक किए गए लेख को संक्षेप में प्रस्तुत करें। साइट भविष्य में बदल सकती हैं या किन्हीं कारणों से लोड करने में विफल हो सकती हैं।
89c3b1b8-b1ae-11e6-b842-48d705

2

मुझे वास्तव में समझ नहीं आ रहा है कि एक अवधि के बिना नाम "mail._domainkey" पर क्यों सेट किया गया है

DKIM फ़िल्टर के लिए प्रलेखन आमतौर पर thre यूनिक्स मैन फॉर्मेट में स्थापित किया जाता है। केवल Google इसे जानता है :-) मुझे भी एक समस्या थी।

man dkim-filter.conf
man dkim-filter
man dkim-genkey

man dkim-stats
man dkim-testkey
man dkim-testssp

मैंने इसे डेबियन पर आजमाया। यदि यह वास्तव में आपके डिस्टर्बेंस में नहीं है, तो आप स्रोत टारबॉल डाउनलोड कर सकते हैं और आसानी से पढ़ सकते हैं।

man dkim-milter-2.8.3/dkim-filter/dkim-filter.conf.5

आदि।

-

मुझे वास्तव में समझ नहीं आ रहा है कि एक अवधि के बिना नाम "mail._domainkey" पर क्यों सेट किया गया है

ताकि आप विभिन्न डोमेन के दोनों DNS रिकॉर्ड में सटीक रूप से समान का उपयोग कर सकें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.