
Bash स्क्रिप्ट जो SPF, DKIM, DMARC, DNSSEC, MTA-STS और DNS स्वच्छता का ऑडिट करके किसी डोमेन के ईमेल स्पूफिंग और फ़िशिंग के प्रति जोखिम को ग्रेड करती है।

spoofcheck से प्रेरित।
मेल प्रमाणीकरण जाँचकर्ता SPF, DKIM, DMARC, DNSSEC, MTA-STS और रूट डोमेन हैक का सत्यापन करता है ताकि यह आकलन किया जा सके कि कोई डोमेन स्पूफिंग और फ़िशिंग से कितनी अच्छी तरह सुरक्षित है।
विशेषताएँ:
pct, रिपोर्टिंग पते (बाहरी रिपोर्ट प्राधिकरण सहित)-S के साथ SMTP व्यवहार: ओपन रिले, स्मगलिंग, NTLM, AUTH सरफ़ेसbash mailAuthCheck.sh google.com
bash mailAuthCheck.sh google.com example.com github.com
कई डोमेन एक साथ पास किए जा सकते हैं; प्रत्येक को अपने स्वयं के बॉक्स वाले हेडर में रिपोर्ट किया जाता है और जाँचें एक के बाद एक डोमेन पर चलती हैं। बैनर एक बार प्रिंट होता है, लक्ष्य कार्ड प्रति डोमेन एक बार:
│ MAIL AUTHENTICATION CHECKER v1.1
│ The existence of a security record does not mean
│ it is actually implemented
│
╔══════════════════════════════════════════════════════════════════════╗
║ target example.com ║
║ resolver 8.8.8.8 2026-11-13T00:56:14Z ║
╚══════════════════════════════════════════════════════════════════════╝
बैनर और कार्ड एक ही चौड़ाई साझा करते हैं, इसलिए संस्करण कार्ड के दाएँ किनारे पर बैठता है; जब कोई डोमेन डिफ़ॉल्ट 72 कॉलम से लंबा होता है तो दोनों चौड़े हो जाते हैं, और रन में हर डोमेन के लिए वही चौड़ाई उपयोग की जाती है ताकि बॉक्स एक साथ संरेखित रहें।
विकल्प डोमेन से पहले, बीच में या बाद में आ सकते हैं:
-s SELECTOR आज़माने के लिए अतिरिक्त DKIM सेलेक्टर (दोहराया जा सकता है)-r LABEL परीक्षण के लिए Microsoft 365 टेनेंट नाम (डिफ़ॉल्ट: प्रत्येक डोमेन का पहला लेबल)-d SERVER क्वेरी करने के लिए DNS रिज़ॉल्वर (डिफ़ॉल्ट: 8.8.8.8, या $DNS_SERVER)-v कच्चे DNS रिकॉर्ड और विवरण दिखाएँ-q केवल चेतावनियाँ और विफलताएँ दिखाएँ-S घुसपैठी SMTP प्रोब भी चलाएँ (open relay, smuggling, NTLM, AUTH); आउटबाउंड 25/587 आवश्यक है और प्रति MX होस्ट एक मिनट या अधिक लगता हैएग्ज़िट स्थिति: 0 कोई विफल जाँच नहीं, 1 कम से कम एक विफल जाँच (किसी भी
डोमेन में), 2 उपयोग त्रुटि।
डिफ़ॉल्ट रूप से रिपोर्ट को AUTHENTICATION, DNS HYGIENE,
MAIL DELIVERY, TRANSPORT SECURITY और ADDITIONAL अनुभागों में समूहीकृत किया जाता है, और
प्रत्येक जाँच के नीचे रिकॉर्ड ग्रे रंग में दिखाए जाते हैं।
प्रत्येक पंक्ति एक निश्चित तीन-कॉलम तालिका है: स्थिति, एक संक्षिप्त जाँच नाम (अधिकतम
बारह अक्षर, जैसे DKIM, Wildcard, Root domain), और विवरण। जाँच-विशिष्ट योग्यताएँ जैसे DKIM सेलेक्टर, MX होस्ट
या SPF include, विवरण के अंत में कोष्ठकों में जोड़ी जाती हैं, ताकि सभी अनुभागों में
कॉलम एक साथ संरेखित रहें:
OK DKIM secure (2048-bit RSA) (selector1._domainkey.example.com)
OK Wildcard no wildcard at the dns apex
गंभीरता स्पूफिंग पर प्रभाव का अनुसरण करती है, केवल रिकॉर्ड पर नहीं: एक SPF नीति जो
~all पर समाप्त होती है, OK होती है जब DMARC p=reject या p=quarantine हो (DMARC
सॉफ्टफेल की भरपाई करता है) और FAIL होती है जब DMARC p=none हो या अनुपस्थित हो,
क्योंकि तब अनधिकृत प्रेषक को कोई अस्वीकार नहीं करता। एक सख्त -all p=none के साथ भी
OK रहता है; वह जोखिम DMARC पंक्ति पर रिपोर्ट किया जाता है।
include:sendgrid.net (या प्रति-खाता include:uXXXXXXX.wl.sendgrid.net)
SendGrid के साझा IP रेंज को डोमेन के लिए भेजने का अधिकार देता है। SPF का मूल्यांकन
एनवेलप प्रेषक के विरुद्ध किया जाता है, इसलिए अपने स्वयं के SendGrid खाते के माध्यम से
भेजने वाला हमलावर भी SPF पास कर लेता है जबकि दृश्यमान From आपका होता है; केवल DMARC
उस मेल को बाहर रखता है। जाँच नेस्टेड SPF इन्क्लूड्स का अनुसरण करती है और रिपोर्ट करती है:
FAIL जब SendGrid या Mandrill शामिल हो और कोई DMARC रिकॉर्ड न हो या नीति p=none हो: एक स्पूफ़्ड From वितरित हो जाता हैWARN जब नीति केवल p=quarantine हो: स्पूफ़्ड मेल स्पैम में चला जाता हैOK जब नीति p=reject होसाझा प्लेटफ़ॉर्म की सूची SPF_SHARED_PROVIDERS में रहती है; केवल वे प्रदाता जोड़ें
जो प्रत्येक ग्राहक के लिए From डोमेन को सत्यापित नहीं करते।
पठनीयता बढ़ाने के लिए नीचे दोनों रिकॉर्डिंग धीमी की गई थीं, वास्तव में निष्पादित होने में 1 सेकंड से कम समय लगा।


git clone https://gitlab.com/brn1337/mailAuthCheck.git
cd mailAuthCheck
स्क्रिप्ट को PowerShell से नहीं, बल्कि WSL के अंदर से चलाएँ, और पहले dig इंस्टॉल करें:
sudo apt update && sudo apt install -y bind9-dnsutils
bash mailAuthCheck.sh google.com
रिपॉज़िटरी में एक .gitattributes शामिल है जो *.sh के लिए LF लाइन एंडिंग्स को बाध्य करता है।
यदि आपने इसे उस फ़ाइल के अस्तित्व में आने से पहले क्लोन किया था, तो स्क्रिप्ट को एक बार फिर से चेकआउट करें ताकि उसमें
अब Windows CRLF एंडिंग्स न हों (जिनके कारण bash $'\r': command not found के साथ विफल हो जाता है):
git checkout -- mailAuthCheck.sh
Mail Authentication Checker CC BY-NC-SA 4.0 के अंतर्गत लाइसेंस प्राप्त है
CC-BY-NC-SA This license requires that reusers give credit to the creator.
It allows reusers to distribute, remix, adapt, and build upon the material in any medium or format, for noncommercial purposes only.
If others modify or adapt the material, they must license the modified material under identical terms.
- Credit must be given to you, the creator.
- Only noncommercial use of your work is permitted.
- Adaptations must be shared under the same terms.