قطع ارسال ایمیل یک دامنه در WHM و مدیریت امن Exim

قطع ارسال ایمیل یک دامنه در WHM زمانی ضروری می شود که یک سایت آلوده، صندوق ایمیل هک شده یا اسکریپت ناامن شروع به ارسال اسپم کند. اگر سریع واکنش نشان ندهید، صف Exim بزرگ می شود، منابع سرور مصرف می شوند و اعتبار IP خروجی ایمیل آسیب می بیند. با این حال، انتخاب روش اشتباه نیز می تواند سایت، دریافت ایمیل یا تمام حساب cPanel را بی دلیل از دسترس خارج کند.

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

تفاوت دامنه، حساب cPanel و صندوق ایمیل

پیش از اجرای هر فرمان باید محدوده اثر آن را بدانید. هر حساب cPanel یک نام کاربری دارد و می تواند دامنه اصلی، Addon Domain، Subdomain و چندین صندوق ایمیل را مدیریت کند. فرمان WHM برای تعلیق ایمیل خروجی یک حساب، تمام دامنه ها و صندوق های زیر همان نام کاربری را تحت تاثیر قرار می دهد. بنابراین عبارت «قطع ارسال ایمیل یک دامنه» فقط زمانی دقیقا معادل تعلیق حساب است که دامنه مورد نظر حساب cPanel مستقل داشته باشد.

اگر دامنه مشکل دار به عنوان Addon Domain کنار چند دامنه سالم قرار دارد، تعلیق خروجی حساب همه آن دامنه ها را متوقف می کند. برای محدود کردن یک صندوق خاص می توان از UAPI استفاده کرد، اما محدود کردن کامل یک Addon Domain بدون تاثیر روی دامنه های دیگر معمولا به سیاست ارسال، تفکیک حساب یا ACL سفارشی Exim نیاز دارد. قبل از تغییر ACL بهتر است از متخصص سرور کمک بگیرید.

چه زمانی باید ارسال ایمیل را فورا متوقف کنیم؟

افزایش ناگهانی تعداد پیام های خروجی، تعداد زیاد گیرنده ناشناس، خطاهای فراوان تحویل، رشد غیرعادی صف Exim و گزارش اسپم از نشانه های مهم هستند. گاهی رمز یک ایمیل لو می رود و مهاجم از SMTP Authentication استفاده می کند. در موارد دیگر، بدافزار یا افزونه آسیب پذیر وردپرس پیام را از طریق PHP می فرستد.

هدف نخست، مهار حادثه است؛ اما تعلیق ایمیل درمان نهایی محسوب نمی شود. پس از قطع ارسال باید رمزهای عبور تغییر کنند، سایت اسکن شود، افزونه ها و هسته به روز شوند و منبع پیام در لاگ مشخص شود. برای درک بهتر لایه های امنیتی شبکه نیز راهنمای تشخیص و مقابله با حمله DDoS را بخوانید؛ هرچند DDoS و ارسال اسپم دو مسئله متفاوت هستند.

مرحله اول: حساب مالک دامنه را پیدا کنید

با دسترسی root وارد WHM شوید و از مسیر Account Information > List Accounts دامنه را جستجو کنید. نام کاربری cPanel را یادداشت کنید؛ در فرمان های بعدی به جای cpusername از همین نام استفاده می شود. اگر به SSH دسترسی دارید، می توانید مالک دامنه را با ابزارهای مدیریتی cPanel نیز بررسی کنید، اما نتیجه WHM برای بیشتر مدیران ساده تر است.

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

روش اصلی: قطع ایمیل خروجی کل حساب cPanel

مطمئن ترین روش برای توقف خروجی یک حساب بدون تعلیق وب سایت، فراخوانی رسمی WHM API از ترمینال root است. فرمان زیر ارسال ایمیل همه دامنه های متعلق به حساب را متوقف می کند:

whmapi1 suspend_outgoing_email user=cpusername

اگر CloudLinux یا محیط Shell مسیر فرمان را پیدا نکرد، از مسیر کامل استفاده کنید:

/usr/local/cpanel/bin/whmapi1 suspend_outgoing_email user=cpusername

در خروجی موفق باید مقدار نتیجه موفق یا پیام تایید API را ببینید. این روش سایت، دیتابیس و FTP را تعلیق نمی کند و فقط ایمیل خروجی حساب را هدف می گیرد. به همین دلیل برای مهار حسابی که اسپم می فرستد، از Suspend کامل حساب کم خطرتر است.

سروری که cPanel روی آن اجرا می شود باید سیستم عامل و تنظیمات سازگار داشته باشد. مقاله نصب سی پنل در AlmaLinux پیش نیازها و تنظیمات پایه یک سرور میزبانی را توضیح می دهد.

بازگرداندن ارسال ایمیل حساب

پس از پاک سازی سایت، تغییر رمزها و کنترل صف، محدودیت را با فرمان رسمی زیر بردارید:

whmapi1 unsuspend_outgoing_email user=cpusername

اگر پیام ها در حالت Hold قرار گرفته باشند، Suspend و Hold را با هم اشتباه نگیرید. در حالت Suspend، Exim پیام خروجی را رد می کند؛ در حالت Hold، پیام ها در صف باقی می مانند. آزاد کردن پیام های نگه داشته شده بدون بررسی می تواند دوباره حجم زیادی اسپم را ارسال کند. ابتدا محتوای صف را کنترل کنید و پیام های مخرب را حذف نمایید.

قطع ارسال فقط برای یک صندوق ایمیل

اگر فقط یک آدرس مانند sales@example.com هک شده و دیگر صندوق ها سالم هستند، محدود کردن همان Email Account انتخاب دقیق تری است. cPanel در بخش Email Accounts > Manage > Restrictions برای ارسال خروجی گزینه های Allow، Suspend و Hold دارد. گزینه Suspend پیام خروجی را رد می کند و Hold آن را در صف نگه می دارد.

مدیر root می تواند همین اقدام را با UAPI اجرا کند:

uapi --user=cpusername Email suspend_outgoing email=sales@example.com

برای بازگرداندن ارسال همان صندوق از فرمان زیر استفاده کنید:

uapi --user=cpusername Email unsuspend_outgoing email=sales@example.com

در این فرمان، cpusername نام حساب cPanel و مقدار email آدرس کامل صندوق است. اگر منبع اسپم یک اسکریپت PHP باشد، تعلیق یک صندوق لزوما جلوی آن را نمی گیرد؛ در آن حالت باید حساب یا اسکریپت آلوده را مهار کنید.

چرا Suspend کامل حساب همیشه مناسب نیست؟

مسیر WHM > Account Functions > Manage Account Suspension کل حساب را تعلیق می کند. در نتیجه وب سایت، ورود کاربران و بسیاری از سرویس های وابسته نیز مختل می شوند. این گزینه برای تخلف جدی، حساب تسویه نشده یا نفوذ گسترده مناسب است، اما برای یک مشکل محدود ایمیل معمولا بیش از حد وسیع است.

اگر سایت باید آنلاین بماند، ابتدا تعلیق خروجی ایمیل را اجرا کنید. تنها زمانی کل حساب را Suspend کنید که مهاجم هنوز به فایل ها دسترسی دارد، بدافزار فعال است یا ادامه فعالیت حساب برای سایر کاربران سرور خطر ایجاد می کند.

بررسی منبع ارسال در Exim

لاگ اصلی Exim در نصب استاندارد cPanel معمولا در مسیر زیر قرار دارد:

/var/log/exim_mainlog

برای مشاهده آخرین پیام ها می توانید از دستور زیر استفاده کنید:

tail -n 200 /var/log/exim_mainlog

برای جستجوی نام حساب یا دامنه نیز از grep استفاده کنید:

grep "example.com" /var/log/exim_mainlog | tail -n 100

به شناسه پیام، فرستنده، کاربر احراز هویت شده، مسیر اسکریپت و زمان ارسال توجه کنید. ارسال SMTP معمولا با اطلاعات Authentication قابل شناسایی است. ایمیل ایجاد شده توسط اسکریپت ممکن است نشانه هایی از مسیر اجرا یا کاربر سیستم داشته باشد. قبل از حذف لاگ یا چرخش دستی آن، شواهد مورد نیاز را نگه دارید.

بررسی و مدیریت صف ایمیل

در WHM از بخش Email > Mail Queue Manager صف Exim را بررسی کنید. تعداد زیاد پیام های مشابه، گیرنده های تصادفی و فرستنده های جعلی معمولا با اسپم سازگار هستند. پیام را قبل از اقدام باز کنید و Header و منبع آن را ببینید.

پیام های سالم را کورکورانه حذف نکنید. پس از تشخیص الگوی اسپم، فقط پیام های مرتبط را پاک کنید. اگر حساب در حالت Hold بوده است، قبل از Release مطمئن شوید که صف مخرب حذف شده؛ در غیر این صورت Exim پیام های نگه داشته شده را دوباره برای تحویل تلاش می کند.

محدودیت ساعتی؛ ابزار پیشگیری، نه قطع کامل

در WHM از مسیر Server Configuration > Tweak Settings > Mail می توانید مقدار Max hourly emails per domain را تعیین کنید. برای هر حساب نیز مسیر Account Functions > Modify an Account محدودیت ساعتی جداگانه ارائه می دهد. این تنظیم شدت حادثه را کاهش می دهد، اما روش قطع کامل ارسال نیست.

نکته مهم این است که مقدار 0 در تنظیمات محدودیت ساعتی cPanel به معنای ارسال نامحدود است، نه توقف ارسال. بنابراین برای مسدود کردن ایمیل هرگز حد را روی صفر نگذارید. همچنین تنظیم محدودیت ساعتی تنها تحویل های Remote را کنترل می کند.

تنظیم درصد پیام های Failed یا Deferred نیز مفید است. cPanel می تواند زمانی که یک دامنه هم به حداقل تعداد خطا و هم به درصد تعیین شده می رسد، خروجی آن را موقتا مسدود کند. این سیاست همراه اعلان های Contact Manager می تواند رفتار مشکوک را زودتر آشکار کند.

تنظیمات پیشگیرانه برای کاهش اسپم

  • گزینه جلوگیری از ارسال کاربر nobody را در Tweak Settings فعال نگه دارید.
  • برای هر حساب و پکیج، سقف ساعتی منطقی تعیین کنید.
  • اعلان حجم بالای ایمیل خروجی و خطاهای Delivery را فعال کنید.
  • SPF، DKIM و DMARC را برای دامنه های ارسال کننده تنظیم کنید.
  • رمزهای قوی و احراز هویت دومرحله ای را در حساب های مدیریتی به کار ببرید.
  • وردپرس، قالب و افزونه ها را به روز نگه دارید و فایل های آلوده را پاک کنید.
  • از نسخه پشتیبان مستقل و قابل بازیابی نگهداری کنید.

کیفیت بستر میزبانی نیز روی امنیت و پایداری سرویس اثر دارد. راهنمای انتخاب هاست لینوکس حرفه ای معیارهای منابع، بکاپ، وب سرور و امنیت را بررسی می کند. برای سایت های وردپرسی نیز مقاله ویژگی های بهترین هاست وردپرس نکات تخصصی تری ارائه می دهد.

روش هایی که نباید اشتباه استفاده شوند

انتقال دامنه میان فایل های /etc/localdomains و /etc/remotedomains روش قطع ایمیل خروجی نیست. این فایل ها مشخص می کنند دریافت ایمیل دامنه در سرور محلی انجام شود یا به Mail Exchanger خارجی هدایت گردد. تغییر اشتباه آن ها می تواند دریافت ایمیل را مختل کند، در حالی که اسکریپت آلوده همچنان قادر به ایجاد پیام خروجی باشد.

همچنین فایل های اصلی Exim را مستقیما ویرایش نکنید. cPanel توصیه می کند تغییرات ضروری Exim از طریق Exim Configuration Manager انجام شوند. یک ACL اشتباه ممکن است ایمیل تمام کاربران را متوقف کند یا پس از بازسازی تنظیمات از بین برود. ابزار رسمی Suspend برای اکثر حوادث انتخاب قابل بازگشت و مطمئن تری است.

غیر فعال کردن تابع PHP mail() نیز همیشه مشکل را حل نمی کند؛ مهاجم ممکن است با SMTP یا روش دیگری ارسال کند. اگر نسخه PHP، Extensionها یا تنظیمات اجرای سایت نیاز به بررسی دارد، راهنمای تغییر نسخه PHP در سی پنل را ببینید.

چه زمانی سرویس ایمیل را به میزبان دیگری منتقل کنیم؟

استفاده از Google Workspace، Microsoft 365 یا یک سرویس میزبانی ایمیل اختصاصی می تواند ایمیل سازمانی را از وب سرور جدا کند. در این حالت باید MX، SPF، DKIM و DMARC درست تنظیم شوند. با این حال، Remote کردن دریافت ایمیل مانع سوء استفاده یک اسکریپت آلوده روی هاست وب نمی شود؛ امنیت سایت همچنان باید اصلاح شود.

زیرساخت ایمیل، وب سرور و سیستم عامل اجزای مرتبط اما متفاوت هستند. برای شناخت نقش Exim در کنار سایر سرویس ها می توانید مقاله وب سرور چیست و راهنمای بهترین توزیع های لینوکس برای سرور را مطالعه کنید.

چک لیست بازگرداندن ارسال ایمیل

  1. منبع اسپم را از روی Exim Log و Mail Queue شناسایی کنید.
  2. رمز حساب cPanel، صندوق آلوده و پنل مدیریت سایت را تغییر دهید.
  3. فایل های سایت، Cron Jobها، Forwarderها و افزونه ها را بررسی کنید.
  4. پیام های اسپم یا Held را پس از تشخیص از صف حذف کنید.
  5. SPF، DKIM، DMARC و Reverse DNS را کنترل کنید.
  6. محدودیت ساعتی و اعلان های امنیتی را تنظیم کنید.
  7. فرمان Unsuspend را اجرا و یک پیام آزمایشی ارسال کنید.
  8. لاگ و Reputation آی پی را چند ساعت زیر نظر بگیرید.

جمع بندی

برای قطع ارسال ایمیل در WHM، ابتدا محدوده مشکل را تعیین کنید. اگر کل حساب cPanel آلوده است، فرمان whmapi1 suspend_outgoing_email روش رسمی و قابل بازگشت است. اگر فقط یک صندوق ایمیل مشکل دارد، UAPI یا بخش Restrictions همان صندوق انتخاب دقیق تری خواهد بود. محدودیت ساعتی نیز نقش پیشگیرانه دارد و جای Suspend را نمی گیرد.

پس از مهار حادثه، حتما منبع اسپم را حذف کنید و تنها در صورت سالم بودن سایت و صف، ارسال را دوباره فعال نمایید. این روند از تکرار حادثه، بلک لیست شدن IP و آسیب به تحویل ایمیل سایر کاربران سرور جلوگیری می کند.

سوالات متداول

آیا قطع ایمیل خروجی باعث از دسترس خارج شدن سایت می شود؟

خیر. فرمان رسمی تعلیق ایمیل خروجی، وب سایت و دیتابیس را متوقف نمی کند. Suspend کامل حساب cPanel رفتار متفاوتی دارد و سرویس های بیشتری را محدود می کند.

آیا فرمان WHM فقط یک دامنه را مسدود می کند؟

فرمان WHM بر اساس نام کاربری cPanel عمل می کند و همه دامنه های همان حساب را تحت تاثیر قرار می دهد. برای یک Addon Domain باید ساختار حساب و سیاست Exim جداگانه بررسی شود.

تفاوت Suspend و Hold چیست؟

Suspend پیام خروجی را رد می کند، اما Hold پیام را در صف نگه می دارد. آزاد کردن Hold می تواند تمام پیام های ذخیره شده را ارسال کند؛ بنابراین ابتدا صف را بررسی کنید.

آیا قرار دادن محدودیت ساعتی روی صفر ایمیل را قطع می کند؟

خیر. طبق مستندات cPanel، مقدار صفر به معنای ارسال نامحدود است. برای قطع خروجی از Suspend استفاده کنید.

بعد از رفع آلودگی چگونه ارسال را فعال کنیم؟

برای کل حساب از whmapi1 unsuspend_outgoing_email user=cpusername و برای یک صندوق از تابع Email unsuspend_outgoing در UAPI استفاده کنید.

5/5 - (5 امتیاز)

هیچ نظری ثبت نشده است

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *


The reCAPTCHA verification period has expired. Please reload the page.