پارس جوم ::  انجمن های تخصصی جوملا
شناسایی اسپم و یافتن اسکریپت های ارسال اسپم در سرور Exim mail server - نسخه‌ی قابل چاپ

+- پارس جوم :: انجمن های تخصصی جوملا (https://forums.parsjoom.ir)
+-- انجمن: هاستینگ و سرور (/forum-141.html)
+--- انجمن: آموزش (/forum-142.html)
+---- انجمن: آموزش های عمومی سرور و هاستینگ (/forum-149.html)
+---- موضوع: شناسایی اسپم و یافتن اسکریپت های ارسال اسپم در سرور Exim mail server (/thread-14673.html)



شناسایی اسپم و یافتن اسکریپت های ارسال اسپم در سرور Exim mail server - Reza Ganji - ۱۴-۱-۱۳۹۳ ۰۸:۵۰ عصر

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

از طریق ssh لاگین کنید و دستور زیر را اجرا کنید :

ssh root@IP then run the following commands
کد:
exim -bpc

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

کد:
root@server [~]# exim -bpc
98

خوب اگر مطمئن شدید سرور درحال ارسال اسپم هست مراحل زیر را دنبال کنید.
دستور زیر را اجرا کنید :

کد:
exim -bp

دستور فوق نگاه نزدیکی داره به ایمیل های موجود در صف ارسال از جمله فرستنده و گیرنده شناسه یا همون ای دی ایمیل و مدت زمان انتظار در صف یا به عبارتی سن ایمیل .
از این جزئیات مهمترینشون ID یا همون شناسه ایمیل هست که میتوانیم توسط اون اطلاعات کاملی راجب به ایمیل مورد نظر بدست بیاریم و در موردش بحث میکنیم.
نتیجه اجرا دستور بالا شبیه زیر در پوتی برای شما نمایش داده خواهد شد :

کد:
[root@EcLinux]# exim -bp
44h 763 1VGaIo-0002ec-RM <sender@sender.com>
recipient@gmail.com

10h 5.9K 1VH6AW-0001Um-Rz <> *** frozen ***
no-reply@facebook.com

0m 502 1VHFNl-0003bf-GB <sender@sender.com>
recipient@gmail.com

0m 568 1VHFNl-0003bn-Tq <sender@sender.com>
recipient@gmail.com

در مثال بالا sender@sender.com فرستنده می باشد و recipient@gmail.com گیرنده ایمیل و در خط اول 44h یعنی این ایمل 44 ساعت سن داره و در صف هست و بعد از سن ایمیل سایز ایمیل نوشته شده مثلا در خط اول 763 منظور اینه این ایمیل 763 کیلوبایت حجم داره و از همه مهمتر ID ایمیل هست که بعد از حجم ایمیل نوشته شده در خط اول 1VGaIo-0002ec-RM آی دی ایمیل هست.
به ترتیب نمایش در پوتی اگر بخواهیم نام ببریم به ترتیب زیر میشود :

کد:
1st field: Age
2nd field: Size
3rd field: Message ID
4th field: Sender
5th field: Recipient

جلوی برخی شما *** frozen *** را مشاهده میکنید که اینها ایمیل های نامعتبر هستند که به گیرنده های غیرمعتبر ارسال شده اند و به صف اضافه میشوند و EXIM چندبار سعی در ارسال میکنه که شما این رو در تنظیمات EXIM تعیین کرده اید و بعد از گذشت مدت انقضا مثلا هشت روز اینگونه نمایش داده میشوند که روش حذفشون رو بعدا در یک تاپیک توضیح خواهیم داد.

خوب با استفاده از ID ایمیل ما میتونیم header و body و log ایمیل رو مشاهده کنیم .

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

نکته مهم : در هیدر ایمیل شما میتوانید مسیر اسکریپت ارسال کننده ایمیل را مشاهده کنید و آن را بررسی و حذف کنید!!!

کد:
exim -Mvh ID

بجای ID شما ID ایمیل را قرار دهید مانند زیر :

کد:
exim -Mvh 1WVbmo-0036hY-Po

برای مشاهده body یا متن ایمیل دستور زیر را استفاده میکنیم :

کد:
exim -Mvb ID

البته متن ایمیل در پوتی به زبان فارسی درست نمایش داده نمیشه ولی خوب اگر اسپم باشه حتما انگلیسی هست و میتونید متوجه بشوید چی میفرسته.

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

کد:
exim -Mvl ID

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

کد:
exim -bpr|grep "<"|awk {'print $4'}|cut -d"<" -f2|cut -d">" -f1|sort -n|uniq -c|sort -n

برای مشاهده تعداد ایمیل های ارسالی یک کاربر خاص میتونید از دستور زیر استفاده کنید :

کد:
exiqgrep -f sendername|grep "<"|wc -l

مثال : بجای sendername فرستنده را وارد کنید مانند زیر :

کد:
exiqgrep -f rezaganji55@yahoo.com|grep "<"|wc -l

یا :

کد:
exiqgrep -f reza@server.parsjoom.us|grep "<"|wc -l

ایمیل فرستنده رو قبلا با دستورات بالا مشاهده کرده بودید ! و در دو مثال بالا استفاده میکنید !

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

کد:
exiqgrep -f recipient|grep “<”|wc -l

برای حذف تمامی ایمیل های در صف ارسال یک فرستنده یا کاربر خاص از دستور زیر استفاده کنید :

کد:
exim -bpr| grep sendername| awk '{print $3}'|xargs exim -Mrm

بجای sendername فرستنده را استفاده کنید .

برای مشاهده لیست ایمیل های منقضی شده و راکد یا همان frozen از دستور زیر استفاده کنید :

کد:
exim -bp|grep frozen|wc -l

برای مشاهده ID های ایمیل های منقضی شده از دستور زیر استفاده کنید :

کد:
exim -bp|grep frozen|awk {'print $3'}

برای حذف تمامی ایمیل های منقضی شده یا frozen از دستور زیر استفاده کنید :

کد:
exim -bp|grep frozen|awk {'print $3'}|xargs exim -Mrm

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

کد:
exim -bp|exiqsumm

خروجی مانند زیر نمایش داده میشود :

کد:
[root@EcLinux]# exim -bp|exiqsumm
Count Volume Oldest Newest Domain
----- ------ ------ ------ ------
1 6041 11h 11h facebook.com
1 763 45h 45h interia.pl
---------------------------------------------------------------
2 6804 45h 11h TOTAL


جهت مشاهده وضعیت exim و اینکه درحال چه کاری است میتونید از دستور زیر استفاده کنید :

کد:
exiwhat

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

کد:
exim -Mrm mailID

در آخر برای حذف تمامی ایمیل های موجود در صف ارسال از دستور زیر استفاده کنید :

کد:
exim -bp | awk '/^ *[0-9]+[mhd]/{print "exim -Mrm " $3}' | bash

در آخر عرض کنم شما با مشاهده بادی و هدر ایمیل میتونید مسیر اسکریپت ارسال کننده ایمیل را مشاهده کنید و به مسیر مورد نظر رفته و اسکریپت موردنظر را حذف کنید.
البته سایت کانفینگ سرور دو پلاگین داره به نام های ConfigServer Mail Queues و ConfigServer Mail Manage که میتونید همین بررسی و کارهارو به وسیله اونها هم انجام بدید و اسکریپت ارسال اسپم رو پیدا کنید و محدودیت ارسال ایمیل برای کاربرهایی که اسپم ارسال میکنند در نظر بگیرید.
برای حذف و کارهای سریع از طریق ssh شما راحت تر خواهید بود و میتونید از دستورات بالا استفاده کنید.
موفق و پیروز باشید !