مرکز آموزش

ناحیه کاربری > مرکز آموزش > میزبانی وب > اسکریپت ها > وردپرس > امنیت و بهینه‌سازی > راهنمای جامع افزایش سطح امنیت و ایمن سازی WordPress


راهنمای جامع افزایش سطح امنیت و ایمن سازی WordPress





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

بخش اول: امنیت وردپرس
1- بروز رسانی WordPress
پیش از هر اقدامی از بروز بودن نسخه WordPress خود مطمئن شوید. تنها در صورت بروز بودن نسخه WordPress مورد استفاده, ادامه این مقاله مفید خواهد بود.
جدیدترین نسخه ها نیز از لینک های زیر قابل دریافت اند:
 دانلود نسخه فارسی
 دانلود نسخه انگلیسی

2- تغییر سطح دسترسی فایل ها
بطور کلی بهتر است سطح دسترسی فایل ها و دایرکتوری ها را تا حد امکان کاهش دهید. سپس در مواقع ضروری اقدام به افزایش سطوح دسترسی به مقادیر اولیه نمایید. لازم به ذکر است که مالکیت هر فایل باید مطابق با نام کاربری مالک اکانت ها تنظیم گردد.

1- در اینجا به روند کلی سطح دسترسی فایل ها می پردازیم:

در شاخه اصلی WordPress سطح دسترسی فایل ها را 644 و دایرکتوری ها را 755 قرار دهید.
نکته: در سرور هایی که از هندلر suPHP استفاده می شود, سطح دسترسی فایل های PHP را بر روی 600 تنظیم نمایید.

چنانچه به هر دلیلی, برای مثال ویرایش فایل های یک پوسته نیاز به افزایش سطح دسترسی داشتید حتما پس از اتمام کار سطح دسترسی ها را مجددا کاهش دهید.

فرموش نکنید, سطح دسترسی کمتر = امنیت بیشتر.

2- تغییر سطح دسترسی توسط مدیران سرور:
چنانچه دسترسی به SSH سرور دارید با استفاده از دستور های زیر در شاخه اصلی نصب WordPress سطح دسترسی فایل ها و دایرکتوری ها را تغییر دهید:

برای دایرکتوری ها:
find . -type d -exec chmod 755 {} \;

برای فایلها:

find . -type f -exec chmod 644 {} \;

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

find . -name \*\.php -exec chmod 600 {} \;


3- امنیت پایگاه داده
حفط امنیت پایگاه داده ها به عنوان محل ذخیره سازی اطلاعات حیاتی هر وبسایت جزو اقدامات اساسی و با اولویت بالا می باشد.

1- چنانچه بر روی سرور شما تعداد زیادی وبسایت وردپرسی قرار دارد، بهتر است برای هرکدام Database هایی با Username های متفاوت اختصاص دهید. توصیه میگردد که این اقدام در هنگام نصب اولیه هر وردپرس انجام شود. این یک استراتژی مهار است. این اقدام باعث میشود که چنانچه فردی موفق به نفوذ به یکی از وبسایت های شما شود، نفوذ و اعمال تغییر در وبسایت های دیگر برای او بسیار دشوار تر باشد.

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


3- محدود کردن Privileges ها
جهت انجام عملیات های عادی WordPress مانند ارسال پستهای وبلاگ، آپلود فایل های چند رسانه ای، ارسال نظرات، ایجاد کاربران جدید و همچنین نصب افزونه های WordPress، می توان تنها Privileges های SELECT،INSERT ،UPDATE و DELETE را فعال نمود.

نکته:
ممکن است بعضی از پوسته ها، افزونه ها و بروزرسانی های اساسی WordPress نیارمند تغییر در ساختار Database مانند اضافه کردن جداول جدید و یا تغییر در الگوی آن را داشته باشند. در چنین مواردی قبل از نصب WordPress و یا انجام بروز رسانی به طور موقت می توانید دسترسی های Privileges را تغییر دهید.

اخطار:
تلاش جهت بروز رسانی بدون فعالسازی Privileges ها ممکن است باعث بروز مشکل گردد. بنابر این غیر فعالسازی Privileges ها پیشنهاد نمی شود. چنانچه احساس میکنید به دلایل امنیتی نیاز به انجام این کار دارید، لطفا اطمینان حاصل فرمایید که ابتدا از Database فعلی یک Backup تهیه کنید.


4- ایمن سازی wp-admin
1- افزودن پسورد جهت محافظت از دایرکتوری wp-admin/ از طریق سرور (مانند BasicAuth) باعث افزایش امنیت بیشتر بخش مدیریت، صفحه ورود و فایل های WordPress شما می شود. همچنین این کار موجب ارجاع حملات ربات ها و مهاجمان به سمت پسورد محافظتی ایجاد شده به جای فایل های مدیریتی WordPress می گردد. لازم به ذکر است بسیاری از حملات انجام شده به سمت WordPress توسط رباتهای مخرب انجام می شود.
باید توجه داشت که ممکن است ایمن سازی دایرکتوری wp-admin/ موجب از کار افتادن برخی از قابلیت های WordPress مانند AJAX handler واقع در wp-admin/admin-ajax.php/ گردد.

حملات رایج به سمت صفحه مدیریت WordPress به دو دسته تقسیم می شوند:
- ارسال درخواست های دستکاری شده HTTP به سمت سرور شما با به کار بردن روش های خاص جهت آسیب از طریق حفره های امنیتی. این حملات معمولا به دلیل استفاده از افزونه ها و نرم افزار های قدیمی و منسوخ شده می باشد.
- تلاش جهت دسترسی به وبسایت شما از طریق حدس پسورد با استفاده از حملات Brute Force.

2- علاوه بر این می توانید ادرس صفحه ورود به مدیریت اکانت خود را از دید موتور های جستجو نیز مخفی کنید. برای این کار کافیست کد زیر را در فایل robots.txt وبسایت خود قرار دهید:
Disallow: */wp-admin/

3- اقدام نهایی جهت ایمن سازی پسورد محافظتی، افزودن اتصال رمزگزاری شده از طریق SSL برای صفحه مدیریت وبسایت می باشد, به طوری که تمامی اطلاعات و داده های حساس رمز نگاری شوند.


 جهت تهیه گواهی معتبر SSL به این لینک مراجعه نمایید.


5- ایمن سازی wp-includes
یکی از راه های ایمن سازی WordPress, محدودیت دسترسی کاربران به بخش هایی از دایرکتوری wp-includes است که اصولا نیازی به دسترسی به آنها نیست. این کار با استفاده از دستور mod_rewrite واقع در فایل htaccess. قابل انجام است.
جهت اطمینان از این که WordPress این کد ها را جایگزین کد های قبلی نکند، این کد را قبل از تگ BEGIN WordPress # یا در انتها و بعد از تگ END WordPress # واقع در فایل htaccess. قرار دهید:
# Block the include-only files.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^wp-admin/includes/ - [F,L]
RewriteRule !^wp-includes/ - [S=3]
RewriteRule ^wp-includes/[^/]+\.php$ - [F,L]
RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L]
RewriteRule ^wp-includes/theme-compat/ - [F,L]
</IfModule>


# BEGIN WordPress

چنانچه چند سایت را به طور همزمان (Multisite) با یک WordPress مدیریت می کنید، این کد عمل نخواهد کرد. چرا که کد " RewriteRule ^wp-includes/[^/]+\.php$ - [F,L] " مانع از ایجاد تصویر توسط فایل ms-files.php می شود. در این صورت می توان این خط از کد را حذف نمود. اما سطح امنیت نیز با این کار کاهش خواهد یافت.


6- نحوه ایمن سازی فایل wp-config.php:
چنانچه سرور شما دارای فایل htaccess. می باشد، جهت جلوگیری از دسترسی بقیه افراد به فایل wp-config.php، کد زیر را در فایل htaccess. سرور قرار دهید:
<files wp-config.php>
order allow,deny
deny from all
</files>

7- غیر فعال سازی قابلیت ویرایش فایل ها در WordPress
به طور پیشفرض داشبورد WordPress به مدیران وبسایت اجازه ویرایش فایل های PHP نظیر فایل های پوسته و افزونه ها را می دهد. این قابلیت معمولا اولین ویژگی است که چنانچه ورود به WordPress برای یک فرد مهاجم مقدور باشد از آن جهت اجرای کد های خود استفاده خواهد کرد. اما خوشبختانه میتوان این قابلیت را در WordPress غیر فعال نمود.

با قرار دادن کد زیر در فایل wp-config.php، می توان این قابلیت را غیر فعال کرد:
define('DISALLOW_FILE_EDIT', true);

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


8- ناشناس بمانید
شاید تامین امنیت از طریق ناشناس بودن, یک اسراتژی نادرست به نظر آید. اما در بعضی از بخش های WordPress این استراتژی به تامین بیشتر امنیت کمک می کند.

1- تغییر نام اکانت مدیریت

در هنگام ساخت اکانت مدیریت به این نکته توجه داشته باشید که از به کار بردن Username هایی که به راحتی قابل حدس هستند نظیر admin و webmaster خودداری کنید، چرا که این نوع Username ها اولین سوژه های حمله مهاجمان به شمار می آیند. با استفاده از phpMyAdmin پنل خود و یا با وارد کردن دستور زیر در MySQL میتوانید به تغییر نام اکانت اقدام نمایید:
UPDATE wp_users SET user_login = 'newuser' WHERE user_login = 'admin';

2- تغییر table_prefix

به نظر میرسد که اکثر حملات SQL injection در WordPress از طریق ارسال کدهای مخرب در SQL به دلیل تنظیم بودن جداول table_prefix به صورت “wp_” یا “wp1_” و یا “WordPress_” به طور پیش فرض توسط WordPress است. از این رو با تغییر نام table_prefix ها میتوان بسیاری از این حملات را کاهش داد.


9- XML-RPC را غیر فعال کنید
در این رابطه لطفا به این مقاله که قبلا توسط irPowerWeb ایجاد شده است مراجعه نمایید.


بخش دوم: امنیت افزونه ها و پوسته ها
اولین نکته مهم در مورد افزونه ها، اطمینان از بروز بودن آنها می باشد. همچنین اگر از افزونه خاصی استفاده نمی کنید، بهتر است آن را غیرفعال و حذف نمایید.

1- Firewall ها
افزونه های زیادی وجود دارند که میتوانند مانند یک Firewall در وبسایت شما ایفای نقش کنند. بعضی از آنها با ایجاد تغییر در فایل htaccess. فعالیت می کنند و دسترسی به بعضی از سطوح را قبل از WordPress در Apache محدود میکنند. مانند افزونه iThemes Security یا All in One WP Security و برخی دیگر مانند WordFence و Simple Security Firewall در سطح WordPress عمل کرده و از نفوذ در هنگام بارگذاری WordPress اقدام می کنند.

علاوه بر پلاگین ها، مدیران سرور می توانند با نصب یک WAF یا (Firewall تحت وب) در سرور خود سطح امنیتی را افزایش دهند. یکی از معروفترین WAF های متن باز، ModSecurity می باشد.

 ModSecurity بر روی تمامی سرور های میزبانی irPowerWeb نصب می باشد.

2- Null شده, هرگز!

بطور جدی پیشنهاد می شود هیچ گاه از افزونه, پوسته, اسکریپت و هر چیز دیگری که نیاز به تهیه لایسنس دارد, از نوع غیر معتبر یا Null شده ی ان استفاده نکنید. در غیر اینصورت شخصا کلید ورود به وبسایت را در اختیار شخص نفوذ گر قرار داده اید.

3- Update باشید.

بروز رسانی یا Update تنها شامل WordPress نمی باشد. تمامی افزونه ها یا پوسته های استفاده شده نیاز به بروز رسانی دارند. پیشنهاد می کنیم اگر برای هر یک از افزونه ها، برای مدتی بروز رسانی جدیدی ارائه نشد, از ادامه استفاده ی آن خودداری کنید.
در رابطه با انتخاب افزونه مناسب این مقاله را مطالعه کنید.

بخش سوم: Backup گیری
تهیه Backup منظم شامل تمامی دیتابیس ها امری مهم در تضمین حفظ اطلاعات هر وبسایت به شمار می رود.
اطمینان از صحت تمامی داده ها در تهیه Backup ها ضروری است. استراتژی صحیح در تهیه Backup شامل تهیه مجموعه ای از تصاویر منظم از تمامی اطلاعات و کانفیگ های WordPress (شامل پایگاه داده و فایل های اصلی WordPress) و حفظ آنها در یک مکان امن می باشد. سایتی را که مطابق با این استراتژی اقدام به تهیه تصویر از فایل ها و تنظیمات WordPress خود به صورت هفتگی کرده است را تصور کنید. چنانچه این سایت مورد نفوذ قرار گیرد ولی صاحب آن چند روز بعد متوجه این تغییرات شود، با مقایسه تصاویر و Backup های قبل و بعد از نفوذ, متوجه میزان خرابی ایجاد شده در اطلاعات وبسایت خواهد شد و به راحتی مشکل را تشخیص داده و برطرف خواهد کرد.

 تمامی کابران irPowerWeb می توانند مطابق با این راهنما اقدام به ایجاد Backup از اکانت خود و دریافت آن نمایید.

لازم به ذکر است در سرور های میزبانی وب irPowerWeb, فرایند ایجاد Backup بصورت خودکار در سیکل های روزانه, هفتگی و ماهانه انجام می شود و Backup ها بصورت Local و Remote نگهداری می شوند.
 
با رعایت این موارد می توانید وردپرس امن تری داشته باشید.
امیدواریم مقاله فوق برای شما مفید بوده باشد.

 تنظیمات امنیتی می توانند در تمامی بخش های وبسایت شما تغییراتی ایجاد کنند. پیشنهاد می شود قبل از ایجاد هرگونه تغییری حتما از اطلاعات خود Backup تهیه کنید.

تمامی حقوق مادی و معنوی مطالب متعلق به irPowerWeb است.

کپی برداری تنها با ذکر منبع و با لینک به صفحه مربوطه در این وب سایت مجاز است.


آیا این پاسخ مفید بود؟

افزودن به علاقه مندی ها افزودن به علاقه مندی ها    چاپ این مقاله چاپ این مقاله

همچنین بخوانید:



افتـخارات