ثبت‌نام ورود

DKIM چیست؟ جلوگیری از حقه‌های ایمیلی علیه شما

DKIM چیست؟
DKIM چیست؟

شاید با عبارت DKIM مواجه شده باشید و بخواهید بدانید که DKIM چیست؟ وقتی در حال نوشتن یک اسکریپت سایت phpmail هستیم، می‌توانیم مشخص کنیم که ایمیل‌های ارسالی از چه ایمیلی ارسال شوند! حتی اگر برنامه‌نویس هم نباشید می‌توانید با استفاده از سرویس‌های fake email sender آنلاین، ایمیل‌های جعلی ارسال کنید. مثلا یک ایمیل به یکی از مشتریان ما ارسال کنید و بگویید خرید شما لغو شد! جالب‌تر اینکه می‌توانید این ایمیل را با آدرس info@mihanwp.com ارسال کنید! این یعنی عمق فاجعه… (البته چون ما از این فاجعه جلوگیری کرده‌ایم، نمی‌توانید ایمیل جعلی ارسال کنید و این تنها یک مثال بود. 🙂 )

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

پس با توجه به توضیحات بالا شاید نگران شده‌اید که آیا کاربران شما هم می‌توانند با ایمیل شما Spoofing (کلاهبرداری) کنند؟ بله اگر کانفیگ هاست خود را اصولی انجام نداده باشید حتما! این مقاله پس از علامت تعحب و علامت سوال شد. چرا که بسیار مهم هست که از نام و برند شما سو استفاده نشود!

DKIM چیست؟

وقتی چنین مشکلی بوجود آمد، متخصصان امنیت به فکر راه چاره‌ای افتادند. نتیجه راه حل این ماجرا استفاده از DKIM بود. DKIM یا DomainKeys Identified Mail قابلیتی هست که مانند SSL می‌تواند امنیت ایمیل‌های شما را تضمین کند و تاییدی برای ارسال شدن ایمیل از سمت شما باشد.

DKIM شامل یک کلید خصوصی و یک کلید عمومی هست که موقع ارسال ایمیل، بررسی می‌کند که آیا ایمیل ارسال شده از سمت سایت (سرور سایت) شما ارسال شده است یا خیر. برای ارسال هر ایمیل یک امضای الکترونیکی با Private Key ضمیمه ایمیل می‌شود و این کلید که حالا عمومی شده، مهر تاییدی هست که شما ایمیل را ارسال کرده‌اید، نه شخص و نه سرور دیگری.

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

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

dkim generator
dkim generator

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

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

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

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

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 Enable به شما ارائه کرده به جای کد بالا استفاده کنید.

حالا 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 مقدار نمایش داده شد، به این معناست که عملیات به درستی انجام شده است.

موفق باشید. 🙂

نظر شما در این‌باره چیست؟

  1. U28819 ۰۶ تیر ۱۳۹۹

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