اسپم به معنای پیام الکترونیکی است که بدون درخواست گیرنده و برای افراد بیشمار فرستاده میشود. در این مقاله به بررسی مشکلات ارسال اسپم در سرور، نحوه بررسی ارسال اسپم و چگونگی رفع مشکلات آن می پردازیم. اینکه چگونه اکانتی که در سرور ارسال اسپم می کند را تشخیص دهیم، پس از تشخیص چه اقداماتی را جهت رفع مشکل برای اکانت مربوطه و سرور اعمال کنیم .
یکی از مهم ترین مشکلاتی که ارسال اسپم برای سرور بوجود می آورد، لیست شدن IP میل سرور توسط برخی Black List ها (از اصلی ترین این سایت ها می توان به sorbs.net، spamhaus.org، UBL و … اشاره نمود) می باشد که در این مقاله به نحوه بررسی و رفع این مشکل نیز پرداخته ایم.
علائم وجود مشکل اسپم برروی سرور:
- سرور کندتر شده و منابع بیشتری مصرف مینماید.
- ایمیلهای ارسالی از سرور به مقصد نمیرسند.
- پیغامهایی در کنترل پنل مبنی بر ارسال تعداد زیاد ایمیل توسط یکی از کاربر ها دریافت میگردد.
- آیپی سرور در بلک لیست ها ( blacklist ) ثبت می شود.
- حجم بسیار بالایی از فضای سرور با ایمیل های برگشتی اشغال می گردد.
- صف انتظار طولانی برای ایمیل های ارسالی
اسپمر ها ( spammer ) از چه روشهایی بیشتر استفاده میکنند؟
- SMTP Spam
- سایتهای هک شده
- اسکریپتهای perl که برروی سرور بارگزاری مینمایند.
بررسی ارسال اسپم سرور
چگونه وب سایت های آلوده و ارسال کننده هرزنامه ها و اسپم را در سرور شناسایی کنیم؟
با دستور exim –bpc تعداد ایمیل های صف را می توانید مشاهده کنید. صف های بیشتر از ۲۰۰ احتمالا با مشکل ارسال اسپم مواجه هستند.
با اجرای دستور exim –bp می توانید لیست پیام های موجود در صف را نمایش می دهد.
دستور فوق نگاه نزدیکی به ایمیل های موجود در صف ارسال از جمله فرستنده و گیرنده شناسه یا همون ID ایمیل و مدت زمان انتظار در صف یا به عبارتی سن ایمیل دارد.
از این جزئیات مهمترینشون ID یا همون شناسه ایمیل هست که میتوانیم توسط آن اطلاعات کاملی راجع به ایمیل مورد نظر بدست بیاریم و در موردش بحث میکنیم.
نتیجه اجرای دستور بالا مواردی شبیه زیر برای شما نمایش خواهد داد:
[[email protected]]# exim -bp ۴۴h 763 1VGaIo-0002ec-RM [email protected]> [email protected] ۱۰h 5.9K 1VH6AW-0001Um-Rz *** frozen *** [email protected] ۰m 502 1VHFNl-0003bf-GB [email protected]> [email protected] ۰m 568 1VHFNl-0003bn-Tq [email protected]> [email protected]
مقابل برخی شما *** frozen *** را مشاهده میکنید که اینها ایمیل های نامعتبر هستند که به گیرنده های غیرمعتبر ارسال شده اند و یا syntax مشکل داشته و به صف اضافه میشوند .
ایمیل های صف بصورت خودکار و دوره ای حذف می شوند و بودن در صف مشکلی ایجاد نمی کند اما با دستور زیر می توانید ایمیل های موجود در صف را حذف کنید.
exim -bp | exiqgrep -i | xargs exim -Mrm
با استفاده از ID ایمیل ما میتونیم header و body و log ایمیل رو مشاهده کنیم .
برای مشاهده header دستور زیر را استفاده میکنیم :
نکته مهم : در هدر ایمیل شما میتوانید مسیر اسکریپت ارسال کننده ایمیل را مشاهده کنید و آن را بررسی و حذف کنید!!!
کد:
exim -Mvh ID
بجای ID شما ID ایمیل را قرار دهید مانند زیر :
exim -Mvh 1WVbmo-0036hY-Po
برای مشاهده body یا متن ایمیل دستور زیر را استفاده میکنیم :
exim -Mvb ID
برای مشاهده لاگ ایمیل هم دستور زیر را استفاده کنید :
exim -Mvl ID
در متن مقابل x-php-originating-script اسم فایلی که ایمیل ارسال میکرده مانند class-phpmailer.php ذکر شده و اگر شل کد باشد یک اسم عجیب ذکر شده است.
از قسمت Mail Queue Administration در کنترل پنل نیز می توانید ، بصورت مجزا این قسمت ها را مشاهده کنید.
تشخیص اکانت هایی که بیشترین اسپم را داشته اند:
تنها کافی است وارد SSH شوید و دستور زیر را وارد نمایید.
کنترل پنل دایرکت ادمین:
grep cwd /var/log/exim/mainlog | grep -v /var/spool | awk -F"cwd=" '{print $2}' | awk '{print $1}' | sort | uniq -c | sort -n
کنترل پنل Cpanel:
grep cwd /var/log/exim_mainlog | grep -v /var/spool | awk -F"cwd=" '{print $2}' | awk '{print $1}' | sort | uniq -c | sort -n
پس از اجرای دستور فوق نتیجه ای مانند زیر خواهید داشت.
۲۴ /home/satynad/domains/sanadid.com/public_html ۹۲۲ /home/irtnhg/domains/tabligh-enfagh.ir/public_html
چند خط آخر نتیجه دستور، دایرکتوری هایی می باشند که بیشتری ارسال ایمیل را داشته اند، (به عبارتی اسکریپت و فایل اسپمر در این مسیر قرار دارد که شما باید این دایرکتوری را پاک نمایید و یا فایل های آنرا مورد بررسی قرار دهید) و عدد کنار نتایج تعداد ایمیل ارسال شده و رنگ قرمز مشخص شده در تصویر نام کاربری که بیشتری ارسال ایمیل را داشته است.
اقدامات پس از تشخیص ارسال اسپم سرور(خارج کردن ip سرور از بلک لیست ها)
آدرس ip سرور را از طریق سایت های زیر بررسی نمائید که در بلک لیست ها ذکر نشده باشد.
https://mxtoolbox.com/blacklists.aspx
به آدرس سایت mxtoolbox.com مراجعه نموده و از منو های موجود لیست blacklist را انتخاب می نمائیم.
سپس وضعیت آی پی مورد نظر را جستجو می نمائیم.
آدرس آی پی مورد نظر در ۹۲ دیتابیس اسپم مورد بررسی قرار گرفته و در پایان لیست دیتابیس هایی که آدرس آی پی در آنها قرار گرفته را مشخص می کند.
از طریق گزینه Detail اطلاعاتی در مورد مشکل مربوط به آدرس آی پی و طریقه برطرف نمودن آن به شما نمایش داده می شود.
در قسمت Detailes آدرس لینکی که بتوانید درخواست خارج نمودن ip از لیست را دهید ذکر شده است، همچنین جهت پیدا کردن لینک می توانید اسم سایت delist ip (مثال barracuda delist ip) را در گوگل جستجو کنید.
سپس لازم است اطلاعات درخواست و فرم را جهت خارج شدن ip تکمیل نمائید. در توضیحات هر سایت مدت زمان خارج شدن از لیست ذکر شده است.
بعنوان مثال در barracuda فرمی مانند تصویر زیر را نیاز است تکمیل کنید.
delist ip محبوب ترین سرویس دهنده های ایمیل:
Hotmail
https://sender.office.com/
Gmail
https://support.google.com/mail/contact/msgdelivery
yahoo
http://help.yahoo.com/l/us/yahoo/mail/postmaster/bulkv2.html
تغییر ip ارسال ایمیل سرور
درصورتیکه Ip سرور در yahoo یا Hotmail و یا gmail اسپم شده باشد، ممکن است مدت زمان خارج شدن ip طولانی باشد و یا در صورتیکه چندین بار ip در آن ها بلاک شده باشد، روند خارج شدن ip از لیست زمانبر خواهد بود. بنابراین جهت رفع مشکل با استفاده از Ip مازاد برای سرور می توان آدرس ip ارسال ایمیل را تغییر داد که این نحوه تغییر در کنترل پنل های مختلف متفاوت و بصورت زیر می باشد.
تغییر ip ارسال ایمیل در دایرکت ادمین
تغییر ip ارسال ایمیل در cpanel
تغییر ip ارسال ایمیل در plesk
بررسی ارسال اسپم اکانت
در صورتیکه از یک اکانت اسپم ارسال می شود، جهت بررسی و رفع مشکل مراحل زیر را دنبال کنید:
- وارد مسیر cd /home/user/.php شوید، در این مسیر فایل هایی بصورت php-mail.log وجود دارد، با دستور du –sh * حجم فایل ها را مشاهده کنید، اخیر ترین فایل ها با حجم بیشتر را باز کنید ، بر اساس لاگ موجود مسیر فایلی که اسپم ارسال می کرده است قابل تشخیص است. آن فایل را حذف یا تغییر نام دهید. البته این موضوع تنها برای کنترل پنل دایرکت ادمین می باشد و یرای کنترل پنل cpanel نیاز است تا لاگهای ایمیل در مسیر /var/log/exim_mainlog بررسی شود.
- حجم پوشه new موجود در اکانت ایمیل را بررسی کنید، برخی از پیام ها را باز نموده و متن و subject ، ارسال کننده و دریافت کننده را بررسی نمائید.
جهت بررسی و اقعی بودن ایمیل می توانید از لینک زیر استفاده کنید:
http://www.checktls.com/perl/TestReceiver.pl
- اگر حجم فایل های php-mail.log صفر بود، راه دیگری که برای تشخیص ارسال اسپم وجود دارد بررسی لاگ های سایت با دستور زیر است
grep email /var/log/exim/mainlog
اقدامات لازم برای اکانتی که ارسال اسپم داشته است.
محدودیت ارسال ایمیل را به ۲۰ تغییردهید.
بررسی آلوده بودن فایل ها با cxs :
با دستور زیر فایل های سایت را اسکن کنید. البته نیاز است cxs در سرور نصب شده باشد.
Cxs --user useraccount
براساس نتیجه خروجی لاگ قابل تشخیص خواهد بود که بعنوان مثال وردپرس یا پلاگینی نیاز به آپدیت دارد.
فایلهای قرنطینه شده را در مسیر زیر می توانید مشاهده کنید:
cd /etc/cxs/Quarantine/cxsuser/username
نام اکانت را جایگزین username نمائید.
نتیجه اجرا دستور بالا مواردی شبیه زیر برای شما نمایش داده خواهد شد :
total 24 -rw-r--r-- 1 root root 5995 Dec 14 11:23 index.html.1513238011_1 -rw-r--r-- 1 root root ۳۹۸ Dec 14 11:23 index.html.1513238011_1.restore4 -rw-r--r-- 1 root root 6789 Dec 14 11:24 symfony_debug.c.1513238049_1 -rw-r--r-- 1 root root ۳۹۸ Dec 14 11:24 symfony_debug.c.1513238049_1.restore4
در مثال بالا index.html اسم فایل و ۱۵۱۳۲۳۸۰۱۱_۱ نیز id می باشد.
اگر این فایل ها را باز کنید، در خطا اول احتمالا یک shell code نوشته شده که قابل مشاهده خواهد بود.
اگر فایل هایی که پسوند restore دارند را نیز باز کنید، مسیر اصلی فایل در آن ذکر شده است.
در صورتیکه نیاز به بازگردانی فایل قرنطینه ای وجود داشت از دستور زیر استفاده کنید:
cxs –qrestore [File]
اقدامات لازم پس از اسکن:
پس از scan نیاز است فایل های آلوده پاکسازی یا جایگزین شوند، می توان فایل های وردپرس صحیح را جایگزین فایل های قبلی کند و یا درصورتیکه مدیریت وردپرس دردسترس باشد، با لاگین به مدیریت وردپرس و بروز رسانی وردپرس فایل ها بصورت خودکار اصلاح می شوند.
بعد از اقدامات انجام شده مجدد برای اطمینان با cxs سایت را مجدد اسکن کنید.
برخی مواقع رخ می دهد که cxs هیچ فایل آلوده ای را نشان نمی دهد و در مقابل x-php-originating-script نیز هیچ فایلی ذکر نشده است و یا x-php-originating-script وجود ندارد. در این صورت با احتمال بالا ارسال اسپم از طریق سایت انجام می شود، یک فرم نظر دهی یا ثبت نام که کد captcha ندارد و لازم است کد کپچا به فرم اضافه گردد، باعث بروز مشکل می شود.
دریافت اسپم
این مشکل اغلب در مواقعی که با اکانت ایمیل در سایت ها ی خاصی ثبت نام شده باشد رخ می دهد.
اقداماتی که در سرور برای جلوگیری از دریافت اسپم انجام شده است بصورت زیر است :
در فایل option.conf مقادیر زیر درج شده است.
easy-spam-filter = yes spamed = spamassassin
در صورت تنظیم نبودن DKIM وSpf در دامنه، تنظیمات مرتبط انجام شود.
اما بصورت کلی اقدامی جهت رفع صد در صد مشکل دریافت اسپم مقدور نمی باشد. لینک جلوگیری از دریافت ایمیل اسپم را در این زمینه مطالعه کنید.
جلوگیری از ارسال اسپم
اولین اقدام تنظیم DKIM وSpf می باشد.
این موضوع برای ip های جدید تا warm-up شوند نیز وجود دارد، برای کسب اطلاعات بیشتر مقاله warm-up را مطالعه کنید.
در پایان
در صورتی که نیاز به مشاوره بیشتر در زمینه ارسال و بررسی اسپم داشتید با بخش پشتیبانی ایران سرور تماس حاصل نمایید.
۰۵۱۳۱۷۷۶-۹۰۲
همچنین جهت خرید cxs برای بررسی سایت های آلوده می توانید با بخش فروش ایران سرور تماس حاصل کنید.
۰۵۱۳۱۷۷۶-۹۰۱