Ubuntu 24.04
Sponsored Link

Mail सर्वर : DKIM सेट करें2024/07/12

 

पोस्टफिक्स में DKIM (Domain Keys Identified Mail) कॉन्फ़िगर करें।

DNS में उत्पन्न सार्वजनिक कुंजी को पंजीकृत करने के लिए, आपको अपने ईमेल डोमेन को पंजीकृत करने वाले DNS सर्वर की आवश्यकता होगी।

[1] OpenDKIM को स्थापित और कॉन्फ़िगर करें।
root@mail:~#
apt -y install opendkim opendkim-tools
# उस डोमेन के लिए निर्देशिका बनाएँ जिसके लिए आप DKIM कॉन्फ़िगर करते हैं

root@mail:~#
mkdir /etc/dkimkeys/srv.world
# कुंजी युग्म उत्पन्न करें
# -D (वह निर्देशिका जिसमें कुंजियाँ संग्रहीत की जाएँ)
# -d (डोमेन नाम)
# -s (चयनकर्ता का नाम) ⇒ कोई भी नाम ठीक है

root@mail:~#
opendkim-genkey -D /etc/dkimkeys/srv.world -d srv.world -s $(date "+%Y%m%d")

root@mail:~#
chown -R opendkim:opendkim /etc/dkimkeys/srv.world

root@mail:~#
ll /etc/dkimkeys/srv.world

total 16
drwxr-xr-x 2 opendkim opendkim 4096 Jul 12 05:22 ./
drwx------ 3 opendkim opendkim 4096 Jul 12 00:54 ../
-rw------- 1 opendkim opendkim 1704 Jul 12 05:22 20240712.private
-rw------- 1 opendkim opendkim  507 Jul 12 05:22 20240712.txt

root@mail:~#
vi /etc/opendkim.conf
# पंक्ति 14,15 : टिप्पणी हटाएँ
# Mode : s = sign
# Mode : v = verify
Mode                    sv
SubDomains              no

# पंक्ति 22,23,24 : यदि आप एक डोमेन संभाल रहे हैं,
# निम्नलिखित तीन पंक्तियों को अनकमेंट करें और प्रत्येक के मान बदलें
# यदि आप एकाधिक डोमेन को संभालना चाहते हैं, तो इसे विभिन्न मापदंडों के साथ सेट करें
#Domain                 example.com
#Selector               2020
#KeyFile                /etc/dkimkeys/example.private

# पंक्ति 37 : टिप्पणी करें
# पंक्ति 38 : टिप्पणी हटाएँ
#Socket                 local:/run/opendkim/opendkim.sock
Socket                  inet:8891@localhost

# पंक्ति 50 : यदि आपके DNS सर्वर पर DNSSEC सक्षम नहीं है तो टिप्पणी करें
#TrustAnchorFile        /usr/share/dns/root.key

# पंक्ति 51 : DKIM कुंजी पंजीकृत करने के लिए DNS सर्वर
# यदि DNS सर्वर लोकलहोस्ट नहीं है और resolv.conf में पंजीकृत सर्वर भी नहीं है,
# इसे अनकमेंट करें और DNS सर्वर निर्दिष्ट करें
#Nameservers            127.0.0.1

# अंतिम पंक्ति में जोड़ें
# यदि आप एकाधिक डोमेन संभाल रहे हैं, तो निम्न सेट करें
# यदि आपके पास केवल एक डोमेन है, तो पंक्ति 22-24 सेट करें और निम्नलिखित आवश्यक नहीं है
KeyTable                /etc/dkimkeys/KeyTable
SigningTable            refile:/etc/dkimkeys/SigningTable
ExternalIgnoreList      refile:/etc/dkimkeys/TrustedHosts
InternalHosts           refile:/etc/dkimkeys/TrustedHosts

root@mail:~#
vi /etc/dkimkeys/KeyTable
# नई फ़ाइल बनाएँ
#
# (selector name)._domainkey.(domain name) (domain name):(selector name):(Private Key Path)
#
# यदि आप एक से अधिक डोमेन संभाल रहे हैं, तो उन्हें उसी तरीके से दर्ज करें

20240712._domainkey.srv.world srv.world:20240712:/etc/dkimkeys/srv.world/20240712.private

root@mail:~#
vi /etc/dkimkeys/SigningTable
# नई फ़ाइल बनाएँ
#
# *@(domain name) (selector name)._domainkey.(domain name)
#
# यदि आप एक से अधिक डोमेन संभाल रहे हैं, तो उन्हें उसी तरीके से दर्ज करें

*@srv.world 20240712._domainkey.srv.world

root@mail:~#
vi /etc/dkimkeys/TrustedHosts
# नई फ़ाइल बनाएँ
# विश्वसनीय होस्ट जोड़ें
127.0.0.1
::1
localhost

root@mail:~#
chown opendkim:opendkim /etc/dkimkeys/{KeyTable,SigningTable,TrustedHosts}

root@mail:~#
chmod 600 /etc/dkimkeys/{KeyTable,SigningTable,TrustedHosts}

root@mail:~#
systemctl restart opendkim

[2] पोस्टफिक्स कॉन्फ़िगर करें।
root@mail:~#
vi /etc/postfix/main.cf
# अंतिम पंक्ति में जोड़ें
smtpd_milters = inet:127.0.0.1:8891
non_smtpd_milters = $smtpd_milters
milter_default_action = accept

root@mail:~#
systemctl reload postfix

[3] DNS सर्वर पंजीकरण के लिए सार्वजनिक कुंजी सत्यापित करें।
# सार्वजनिक कुंजी सामग्री

root@mail:~#
cat /etc/dkimkeys/srv.world/20240712.txt

20240712._domainkey     IN      TXT     ( "v=DKIM1; h=sha256; k=rsa; "
          "p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu5zup/hnAFPCeeaTgrC7/WGcP4UtKHWpLpRS4xyIbuGKolfqk/YE+GZQlr2pSrXkapjjIJn829l/87GJVs7mwhmR6Sb4Ga7P+bNnuqJc/vejieuX6KL7cQ/GwUDOjomJ0nI0UEB4i02kF27HshudohMLK21rUQUn7eEP3Da6yj3Ud7z6qRH6kwOxGfgxoyO9E6D850sGOLoSY2"
          "iTuuC7+O5Px+FLJTL5JbrvAxFf10yrtatXLzUyYR1G9s+odQehYmYnA/Pk+7G8ee9tZQ1zWaVPQGLZirN08zkMzjDy9LK1nZnnCUTMrhjniHsg1NDpg3vJx/UWr0uQZvCuOeh3VwIDAQAB" )  ; ----- DKIM key 20240712 for srv.world

# ज़ोन फ़ाइल में प्रविष्टि एक पंक्ति में होनी चाहिए, अनावश्यक वर्ण को छोड़करs

root@mail:~#
sed "s/^\t *//g" /etc/dkimkeys/srv.world/20240712.txt | sed -z "s/\\n//g" | sed "s/( //g" | cut -d')' -f1

20240712._domainkey     IN      TXT     "v=DKIM1; h=sha256; k=rsa; ""p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu5zup/hnAFPCeeaTgrC7/WGcP4UtKHWpLpRS4xyIbuGKolfqk/YE+GZQlr2pSrXkapjjIJn829l/87GJVs7mwhmR6Sb4Ga7P+bNnuqJc/vejieuX6KL7cQ/GwUDOjomJ0nI0UEB4i02kF27HshudohMLK21rUQUn7eEP3Da6yj3Ud7z6qRH6kwOxGfgxoyO9E6D850sGOLoSY2""iTuuC7+O5Px+FLJTL5JbrvAxFf10yrtatXLzUyYR1G9s+odQehYmYnA/Pk+7G8ee9tZQ1zWaVPQGLZirN08zkMzjDy9LK1nZnnCUTMrhjniHsg1NDpg3vJx/UWr0uQZvCuOeh3VwIDAQAB"
[4] DNS सर्वर पर सार्वजनिक कुंजी पंजीकृत करें।
यह BIND ज़ोन फ़ाइल में पंजीकरण के उदाहरण का उपयोग करेगा।
root@dns:~#
vi /etc/bind/srv.world.wan
.....
.....
# अंतिम पंक्ति में जोड़ें
20240712._domainkey     IN      TXT     "v=DKIM1; h=sha256; k=rsa; ""p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu5zup/hnAFPCeeaTgrC7/WGcP4UtKHWpLpRS4xyIbuGKolfqk/YE+GZQlr2pSrXkapjjIJn829l/87GJVs7mwhmR6Sb4Ga7P+bNnuqJc/vejieuX6KL7cQ/GwUDOjomJ0nI0UEB4i02kF27HshudohMLK21rUQUn7eEP3Da6yj3Ud7z6qRH6kwOxGfgxoyO9E6D850sGOLoSY2""iTuuC7+O5Px+FLJTL5JbrvAxFf10yrtatXLzUyYR1G9s+odQehYmYnA/Pk+7G8ee9tZQ1zWaVPQGLZirN08zkMzjDy9LK1nZnnCUTMrhjniHsg1NDpg3vJx/UWr0uQZvCuOeh3VwIDAQAB"

root@dns:~#
rndc reload
[5] मेल सर्वर की ओर जाँच करें।
root@mail:~#
dig 20240712._domainkey.srv.world. txt

.....
.....

# यदि प्रतिक्रिया आपके द्वारा पंजीकृत की गई प्रतिक्रिया से मेल खाती है, तो कोई बात नहीं
;; ANSWER SECTION:
20240712._domainkey.srv.world. 86400 IN TXT     "v=DKIM1; h=sha256; k=rsa; " "p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu5zup/hnAFPCeeaTgrC7/WGcP4UtKHWpLpRS4xyIbuGKolfqk/YE+GZQlr2pSrXkapjjIJn829l/87GJVs7mwhmR6Sb4Ga7P+bNnuqJc/vejieuX6KL7cQ/GwUDOjomJ0nI0UEB4i02kF27HshudohMLK21rUQUn7eEP3Da6yj3Ud7z6qRH6kwOxGfgxoyO9E6D850sGOLoSY2" "iTuuC7+O5Px+FLJTL5JbrvAxFf10yrtatXLzUyYR1G9s+odQehYmYnA/Pk+7G8ee9tZQ1zWaVPQGLZirN08zkMzjDy9LK1nZnnCUTMrhjniHsg1NDpg3vJx/UWr0uQZvCuOeh3VwIDAQAB"

.....
.....

root@mail:~#
opendkim-testkey -d srv.world -s 20240712 -vvv

opendkim-testkey: using default configfile /etc/opendkim.conf
opendkim-testkey: checking key '20240712._domainkey.srv.world'
opendkim-testkey: key not secure
opendkim-testkey: key OK
# If [key OK], that's OK
# * [key not secure] DNSSEC के बारे में एक संदेश है
[6]

अंत में, जीमेल को एक ईमेल भेजें और यदि प्राप्त ईमेल का हेडर [DKIM: 'PASS' (डोमेन: srv.world)] दिखाता है, तो सब कुछ ठीक है।

मिलान सामग्री