SHAHINSOFT

SHAHINSOFT

مرجع تخصصی بازی و برنامه های کامپیوتری - آموزش,ترینر,کرک,دانلود,موبایل و هک
SHAHINSOFT

SHAHINSOFT

مرجع تخصصی بازی و برنامه های کامپیوتری - آموزش,ترینر,کرک,دانلود,موبایل و هک

مصرف بالای cpu در وردپرس

یک مشکلی که امروز بهش برخوردم مشکل مصرف بالای cpu در وردپرس بود که گفتم شاید به اشتراک گذاشتن راه حل اش پر بی فایده نباشه.

مشکل مصرف بالای cpu به خصوص در هاست های اشتراکی معضل بزرگیه چون تو این هاست ها معمولا منابع سرور (رم و cpu ) خیلی محدود تر از vps و سرور اختصاصی اند. امروز به این خاطر تقریبا سایت ما از دسترس خارج شده بود و یا بسیار کند بود. خطایی هم که از طرف سرویس دهنده روی خروجی سایت می رفت چیزی شبیه به این بود:

Resource Limit exceed

تیکت به پشتیبان باهوش!

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

علامه گوگل و پلاگین های ناقلا!

در گام بعدی سرچ کردم : مشکل مصرف cpu در وردپرس. یکسری اطلاعات جالب دست گیرم شد و اون این بود که بعضی از پلاگین های وردپرس انگار به پرمصرفی مشهور اند. از جمله visual composer که در وردپرس من نصب بود. مطمئنا نمیشد پاکش کنم اما بسیاری از پلاگین های بی مورد از جمله revolution slider رو حذف کردم. خیلی کم باعث بهبود سرعت سایت شد ولی موقتی و برای چند دقیقه. اما میشد توی پنل مدیریت راحت بین صفخات جابجا شد.

حمله جستجوی فراگیر(brute-force attack)

دومین موردی که ذکر شده بود بلاک کردن ip هایی بود که سعی در شکستن رمز عبور ادمین وردپرس دارند. غالبا نام کاربری ادمین وردپرس admin هست و رمزعبور هم چندان قوی نیست. برای همین عده ای بات هایی می نویسند که به دفعات زیاد رمزعبور های مختلف رو با نام کاربری admin تست میکنه تا بالاخره به سایت شما نفوذ کنند. خوشبختانه من همیشه رمزعبورهای سختی استفاده می کنم و کسی از این طریق نمیتونه سایت رو هک کنه اما تعداد ریکوئست های بالایی که به سمت سایت میاد میتونه منابع سرور رو درگیر و سرعت سایت رو کاهش بده. بنابراین دست به دامن پلاگینی شدم به اسم login lockdown. این پلاگین که از مخزن وردپرس قابل نصبه ip هایی رو که بیش از 3 بار رمزعبور اشتباهی بزنن برای مدت معینی بلاک میکنه. این امکان هم وجود داره که اگر کسی نام کاربری رو که وجود نداره وارد کرد بلاک بشه.(من هیچوقت از نام کاربری admin استفاده نمی کنم بنابراین بات هایی که از این طریق بخوان نفوذ کنن با این قابلیت بلاک میشن). در همون دقایق اول 2 تا ip رو بلاک کرد و من متوجه شدم مورد حمله قرار گرفتم!

حمله xml-rpc

این xml-rpc یه پروتکله که وردپرس ازش برای  مدیریت از راه دور سایت استفاده میکنه. کلا چیز خوبیه به شما امکان میده سایتتون رو از سایت دیگه یا اپ اندروید و ... کنترل کنید. مشکل از اونجایی شروع میشه که اینهم مثل صفحه ورود به پنل مدیریت میتونه برای حمله مورد استفاده قرار بگیره. فلذا اگر ازش استفاده نمیکنید بهتره کلا غیرفعالش کنید. برای اینکار هم یکسری راه هست. هم میتونید از پلاگین disable xml-rpc استفاده کنید هم از طریق توابع قالب ورد پرس. برای اینکار باید وارد پوشه قالب تون بشید که توی wp-content/themes هست و فایل functions.php رو باز کنید. بعد کافیه یه خط کد زیر رو اضافه کنید بهش:

add_filter('xmlrpc_enabled', '__return_false');

من البته ترجیح دادم از طریق htaccess غیرفعالش کنم. در نتیجه کد زیر رو به فایل .htaccess در public_html اضافه کردم:

<Files xmlrpc.php>
order deny,allow
allow from address-ip
deny from all
</Files>

اگه سرور دارید و از nginx یا نرم افزارهای دیگه استفاده میکنید یه سرچ کنید ببینید چطور باید غیرفعالش کنید.

هکر ها دست بردار نیستند!

تا اینجا و با اعمال موارد فوق تونستم تا حد زیادی از مشکلات رو برطرف کنم. مصرف cpu تقریبا از 100 درصد به 10-12 درصد رسید اما باز هم برای سایت ما زیاده چون ما تقریبا هیچ کاربری نداریم فعلا. در نتیجه سری زدم به بخش آمار cpanel و بازدید های اخیر رو نگاه کردم. بخش زیادیش خودم بودم اما یکسری ریکوئست زیاد به admin-ajax.php زده شده بود. این فایل ادمین ایجکس وظیفه اش برقراری دستوراتیه که در پنل مدیریت به صورت ajax انجام میشن. استفاده از ایجکس به شما کمک میکنه بدون نیاز به ریلود کردن صفحه بخشی از کارهای موردنیاز رو انجام بدید. (مثلا ویرایش کردن رسانه ها در وردپرس با ایجکس انجام میشه). مصرف بالای admin-ajax لزوما به معنای هک شدن نیست، من هم برای همین اول بهش شک نکردم اما متوجه شدم بیشتر این ریکوئست ها از طرف من نبوده و در واقع تعدادشون خیلی بیشتر از زمانیه که من در حال ویرایش سایت هستم. فلذا یک سرچی کردم و فهمیدم بله! از این طریق هم حملات ddos انجام میشه.

یکی از راه هایی که برای جلوگیری از حملات ddos توسط این فایل پیشنهاد میشه استفاده از افزونه wordfence یا وردفنس هست. این یه افزونه محافظتیه که برای حملات ddos راهکارهای زیاده داره و احتمالا بتونه جلوی بیشتر حملات رایج وردپرس رو بگیره  ولی از اونجایی که مصرف cpu این افزونه زیاده من از cloudflare استفاده کردم. اگر سایتتون رو به cloudflare وصل کنید علاوه بر ssl رایگان و دائمی و استفاده از cdn های اون میتونید جلوی حملات ddos رو هم بگیرید. وارد پنل تون در کلاودفلر بشید و under attack mode رو فعال کنید. با اینکار تمام کسانی که بخوان به سایت شما دسترسی داشته باشند باید یه چالش جاوااسکریپتی رو انجام بدن که از اونجایی که از عهده ربات ها خارجه سایت شما رو در برابر حملات ایمن میکنه.

سخن آخر

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

نظرات 0 + ارسال نظر
برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد