SHET31

DKIM چیست؟ راهنمای فعال‌سازی در سی‌پنل

شاید اسم DKIM به گوشتون خورده باشه و بخواید بدونید DKIM چیست و چرا برای ایمیل‌های سایت مهمه. وقتی کسی یک اسکریپت ارسال ایمیل با PHP Mail می‌نویسه، می‌تونه آدرس فرستنده رو خودش مشخص کنه. حتی بدون دانش برنامه‌نویسی هم سرویس‌هایی با عنوان fake email sender پیدا می‌شن که امکان فرستادن ایمیل جعلی رو فراهم می‌کنن.

مثلاً ممکنه کسی برای یکی از مشتری‌های ما ایمیلی بفرسته و بنویسه خرید شما لغو شده. حتی می‌تونه آدرس فرستنده رو info@mihanwp.com نشون بده! همین مثال ساده عمق ماجرا رو مشخص می‌کنه. البته ما جلوی چنین کاری رو گرفته‌ایم و این آدرس فقط برای توضیح موضوع بود. 🙂

سرویس‌های ارسال ایمیل جعلی
سرویس‌های ارسال ایمیل جعلی

حالا احتمالاً می‌پرسید آیا بقیه هم می‌تونن با آدرس ایمیل شما Spoofing انجام بدن؟ Spoofing یعنی فرستنده خودش رو به‌جای یک شخص یا مجموعه دیگه جا بزنه. اگه تنظیمات هاستتون درست انجام نشده باشه، این خطر جدیه. پس باید کاری کنید که سرورهای دریافت‌کننده بتونن ایمیل واقعی شما رو از نمونه جعلی تشخیص بدن.

DKIM چیست؟

برای حل همین مشکل، DKIM ساخته شد. DKIM مخفف DomainKeys Identified Mail هست و مثل SSL به امن‌تر شدن ارتباط کمک می‌کنه. این قابلیت تأیید می‌کنه که ایمیل واقعاً از طرف دامنه شما فرستاده شده و در مسیر دست‌کاری نشده.

DKIM از یک کلید خصوصی و یک کلید عمومی استفاده می‌کنه. موقع ارسال ایمیل، سرور با Private Key یا کلید خصوصی یک امضای الکترونیکی به پیام اضافه می‌کنه. سرور مقصد هم با کلید عمومی ثبت‌شده در DNS این امضا رو بررسی می‌کنه تا بفهمه ایمیل از سرور مجاز سایتتون اومده یا نه.

ساخت DKIM و جلوگیری از کلاهبرداری

روش ساخت DKIM به سیستم و سرور سایتتون بستگی داره. اگه سرور اختصاصی رو خودتون مدیریت می‌کنید، می‌تونید با ابزار سایت https://dkimcore.org/tools/keys.html یک کلید خصوصی و عمومی تازه بسازید.

dkim generator
dkim generator

بعد باید کلید رو در میل‌سرور قرار بدید تا ایمیل‌های خروجی امضای معتبر داشته باشن. اگه از هاست اشتراکی استفاده می‌کنید، روش فعال‌سازی به کنترل‌پنل هاستتون بستگی داره.

تولید DKIM در سی پنل

برای تولید DKIM در سی پنل، اول وارد کنترل پنل هاست بشید. بخش Email رو پیدا کنید و بعد روی Authentication بزنید.

در صفحه‌ای که باز می‌شه، روی Enable DKIM کلیک کنید. بعد از فعال‌سازی، یک DNS Record یا رکورد DNS بهتون نشون داده می‌شه. این رکورد چیزی شبیه نمونه زیره:

default._domainkey IN TXT "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyGm4KfaLQsOiNqfNGT0DDa+XE+TmIyr03F3/AMU8SXFwgItBU/PikYTmIyr07yhQoqlPrSL27l8XHf8AMIIB1LtxU2/490wRkuu9ZorEjRkIXSbev1GyAinBQNa5Rln2S+8AMIIBhZzfkNw7panbVJ0HPREiZAJ5TQEX1LjTqB/nArmNaMXaRUCwmYzGY45z8" eW2BJMM7Ftsj3nOTmIyr0LFSL27l8OaMDdcvpCglrFWoF1dXA78ORuvMSL27l8A5+UWRFBQ4NP6awWYj2LTSyeNeTlafawRk2B3C/dNcwpoLjz3T1wBHctcLnuC13+nMzzyUtgIVgz/7Ka8AMIIBQIDAQAB\;

حالا باید این کد رو در رکوردهای DNS سایتتون وارد کنید. وارد بخش DNS Zone Editor بشید، یک رکورد TXT تازه بسازید و مقدارش رو برابر با این کد قرار بدید:

k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDzggd8sR9Pbom66z7DLPKymljMouwVO/ffmO9LeU8Ce7ESn+nreXGVyFM9PbWMM07yhQoqlPrSL27l8XHf8AMIIB1LtxU2/490wRkuu9ZorEjRkIXSbevytImOStfMcGYPObYixZE/ODyygNM8QLRaCOAZ5VQMAWHgSPBwIDAQAB

فقط یادتون باشه مقدار بعد از p= رو از کدی بردارید که بخش DKIM بعد از فعال‌سازی بهتون داده. کد بالا صرفاً یک نمونه‌ست.

با انجام این مرحله، DKIM دامنه فعال می‌شه.

فعال‌سازی DKIM در دایرکت ادمین

فعال‌سازی DKIM در دایرکت ادمین کمی فنی‌تره و معمولاً باید پشتیبان هاست یا مدیر سرور انجامش بده، چون کاربران هاست اشتراکی به فایل‌های اصلی سرور دسترسی ندارن. می‌تونید مراحل زیر رو برای مدیر سرور یا پشتیبان هاستتون بفرستید.

اول وارد ترمینال سرور بشید و دستور زیر رو اجرا کنید:

vi /usr/local/directadmin/conf/directadmin.conf

بعد این عبارت رو به انتهای فایل اضافه کنید:

dkim=1

حالا دستور زیر رو اجرا کنید:

service directadmin restart

در مرحله بعد، این فایل رو باز و ویرایش کنید:

vi /etc/exim.conf

تنظیمات زیر رو در فایل قرار بدید:

remote_smtp:
driver = smtp
dkim_domain = $sender_address_domain
dkim_selector = x
dkim_private_key = ${if exists{/etc/virtual/$sender_address_domain/dkim.private.key}{/etc/virtual/$sender_address_domain/dkim.private.key}{0}}
dkim_canon = relaxed
dkim_strict = 0

بعد Exim رو با این دستور ری‌استارت کنید:

service exim retsrat

در آخر، برای فعال‌سازی DKIM روی همه دامنه‌ها این دستور رو وارد کنید:

echo "action=rewrite&value=dkim" >> /usr/local/directadmin/data/task.queue

اطمینان از کارکرد صحیح DKIM

بعد از فعال‌سازی بهتره مطمئن بشید DKIM سایت درست کار می‌کنه. برای این بررسی می‌تونید از سایت mail-tester.com کمک بگیرید.

در بخش Domain anme آدرس دامنه سایتتون رو بنویسید. داخل بخش DKIM Selector هم مقدار default رو وارد کنید و اسکن رو شروع کنید.

تست dkim
تست dkim

اگه در قسمت DKIM Check مقدار کلید نمایش داده بشه، یعنی رکورد پیدا شده و مراحل رو درست انجام داده‌اید.

تیر خلاص به کلاهبرداران با تنظیم رکورد DMARC

حتی بعد از فعال‌سازی SPF و DKIM، سرور مقصد باید بدونه با ایمیلی که در این بررسی‌ها رد شده چه کار کنه. مثلاً باید اون رو به پوشه اسپم بفرسته یا کامل کنار بذاره؟ اینجاست که DMARC وارد کار می‌شه. DMARC یک Policy یا قانون ثبت‌شده در DNS هست که به سرورهای دریافت‌کننده می‌گه با ایمیل تأییدنشده چطور برخورد کنن. مثلاً اگه پیامی با نام دامنه شما فرستاده شد ولی تأییدیه DKIM یا SPF رو نداشت، اون رو مسدود کنن یا به پوشه اسپم بفرستن. تنظیم DMARC در کنار این رکوردها، امنیت برندتون رو کامل‌تر می‌کنه.

قوانین سخت‌گیرانه گوگل و یاهو برای ایمیل‌های بدون DKIM

گوگل و یاهو برای فرستنده‌های انبوهی که روزانه بیشتر از ۵۰۰۰ ایمیل می‌فرستن، قوانین سخت‌گیرانه‌ای دارن. طبق این استانداردها، دامنه باید رکوردهای احراز هویت مثل DKIM و SPF رو درست تنظیم کنه و نرخ گزارش اسپمش هم از حد مشخص بالاتر نره. در غیر این صورت، ممکنه جیمیل یا یاهو ایمیل‌ها رو Reject کنن؛ یعنی پیام‌ها رو نپذیرن. پس برای سایت‌هایی که ایمیل اطلاع‌رسانی یا خبرنامه می‌فرستن، فعال‌سازی DKIM یک تنظیم ضروریه.

دلیل خطای عدم انطباق یا Fail شدن DKIM چیست؟

گاهی همه مراحل رو انجام می‌دید و ابزار تست هم DKIM رو پیدا می‌کنه، ولی نتیجه Fail یا عدم انطباق نشون داده می‌شه. این مشکل معمولاً دو دلیل داره. ممکنه بعضی افزونه‌های وردپرس، مثل افزونه‌هایی که متن یا هدر ایمیل رو تغییر می‌دن، ساختار پیام رو دست‌کاری کنن و امضای الکترونیکی دیگه معتبر نباشه. احتمال دیگه اینه که Public Key یا کلید عمومی رو در DNS Zone Editor اشتباه کپی کرده باشید؛ حتی حذف یک کاراکتر یا اضافه شدن یک فاصله هم می‌تونه نتیجه رو خراب کنه. پس کد تولیدشده رو دقیقاً با همون شکل خام کپی کنید.

موفق باشید. 🙂

https://mihanwp.com/dkim/

نظر شما در این مورد چیه؟

  1. U399859۱۵ آذر ۱۴۰۴

    سلام خسته نباشید میخوام اینماد رو به سایتم اضافه کنم نمیشه .شما کمکم میکنید

    • رضا راد۱۶ آذر ۱۴۰۴

      سلام آموزشش تو سایت هست سرچ کنید

  2. U322818۲ اردیبهشت ۱۴۰۳

    با سلام امروز خواستم ی سایت بیارم بالا به مشگل خوردم.سایت خام هست همین امروز هاست به دامین متصل شده. و نمیشه پوسته براش بریزم.خطای زیر به چه معناست..
    ./؟
    یک خطای غیرمنتظره رخ داد. ممکن است مشکل از WordPress.org یا تنظیمات سرویس‌دهنده شما باشد. اگر کماکان این مشکلات ادامه داشت، لطفا سری به انجمن‌های پشتیبانی بزنید.

  3. U333622۳۰ فروردین ۱۴۰۳

    متن پیام خصوصی

    • تیم پشتیبانیتیم پشتیبانی۱ اردیبهشت ۱۴۰۳

      درود
      تیکت هایی که شمابا همین ایمیل در سایت ثبت کردید همگی بررسی شد. به تمامی تیکت های شما به صورت کامل پاسخ داده شده در بخش پشتیبانی . پیشنهاد هایی که شما در ارتباط با افزونه دارید هم به تیم طراحی افزونه منتقل شده و در صورت امکان در آپدیت های بعدی به افزونه اضافه میشه

  4. U316701۳۰ فروردین ۱۴۰۳

    استاد چرا لینکدینتون رو بستید؟

  5. U28819۶ تیر ۱۳۹۹

    سلام
    من سرور اختصاصی دارم
    در منوی Email Deliverability در بخش DKIM و SPF روی گزینه Install Key کلیک کردم و اتوماتیک VALID شد
    اما در بخش REVERSE DNS (PTR) هیچ گزینه مدیریتی وجود نداره و PROBLEMS EXIST نمایش داده میشه
    میشه راهنمایی بفرمایید لطفا؟

    • تیم پشتیبانیتیم پشتیبانی۷ تیر ۱۳۹۹

      سلام
      باید لاگ سیستم را بررسی کنید و ببینید علت خطای problem exist چی هست

پشتیبانپشتیبانپشتیبانپشتیبانپشتیبان
تیم میهن وردپرس
پشتیبانپشتیبانپشتیبانپشتیبانپشتیبان
تیم میهن وردپرسخارج از ساعات کاری هستیم؛ دستیار هوش مصنوعی پاسخگوی شماست.هوش مصنوعی

در حال بارگذاری...

هر سوالی دارید بپرسید.پاسخگوی شما هستیم.