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

افزایش سطح امنیت هاست وردپرس
1- بروز رسانی وردپرس
پیش از هر اقدامی از بروز بودن نسخه WordPress خود مطمئن شوید. تنها در صورت بروز بودن نسخه WordPress مورد استفاده, ادامه این مقاله مفید خواهد بود. جدیدترین نسخه های سیستم مدیریت محتوا وردپرس را نیز از لینک های زیر قابل دریافت اند:
2- تغییر سطح دسترسی فایل ها
بطور کلی بهتر است سطح دسترسی فایل ها و دایرکتوری ها را تا حد امکان کاهش دهید. سپس در مواقع ضروری اقدام به افزایش سطوح دسترسی به مقادیر اولیه نمایید. لازم به ذکر است که مالکیت هر فایل باید مطابق با نام کاربری مالک اکانت ها تنظیم گردد.
1- در اینجا به روند کلی سطح دسترسی فایل ها می پردازیم:
در شاخه اصلی WordPress سطح دسترسی فایل ها را 644 و دایرکتوری ها را 755 قرار دهید.
نکته: در سرور هایی که از هندلر suPHP استفاده می شود, سطح دسترسی فایل های PHP را بر روی 600 تنظیم نمایید.
چنانچه به هر دلیلی, برای مثال ویرایش فایل های یک پوسته نیاز به افزایش سطح دسترسی داشتید حتما پس از اتمام کار سطح دسترسی ها را مجددا کاهش دهید.
فرموش نکنید, سطح دسترسی کمتر = امنیت بیشتر.
2- تغییر سطح دسترسی توسط مدیران سرور:
چنانچه دسترسی به SSH سرور دارید با استفاده از دستور های زیر در شاخه اصلی نصب WordPress سطح دسترسی فایل ها و دایرکتوری ها را تغییر دهید:
برای دایرکتوری ها:
برای فایلها:
و برای فایل های PHP در سرور هایی که از هندلر suPHP استفاده می کنند:
2- چنانچه شما خود مدیر سرور هستید، مطمئن شوید که قابلیت های غیر ضروری مانند اتصال از راه دور به پایگاه داده را غیر فعال کنید.
3- محدود کردن Privileges ها
ممکن است بعضی از پوسته ها، افزونه ها و بروزرسانی های اساسی وردپرس نیارمند تغییر در ساختار Database مانند اضافه کردن جداول جدید و یا تغییر در الگوی آن را داشته باشند. در چنین مواردی قبل از نصب WordPress و یا انجام بروز رسانی به طور موقت می توانید دسترسی های Privileges را تغییر دهید.
اخطار:
حملات رایج به سمت صفحه مدیریت WordPress به دو دسته تقسیم می شوند:
2- علاوه بر این می توانید ادرس صفحه ورود به مدیریت اکانت خود را از دید موتور های جستجو نیز مخفی کنید. برای این کار کافیست کد زیر را در فایل robots.txt وبسایت خود قرار دهید:
3- اقدام نهایی جهت ایمن سازی پسورد محافظتی، افزودن اتصال رمزگزاری شده از طریق SSL برای صفحه مدیریت وبسایت می باشد, به طوری که تمامی اطلاعات و داده های حساس رمز نگاری شوند.
خرید گواهینامه SSL
چنانچه چند سایت را به طور همزمان (Multisite) با یک WordPress مدیریت می کنید، این کد عمل نخواهد کرد. چرا که کد " RewriteRule ^wp-includes/[^/]+\.php$ - [F,L] " مانع از ایجاد تصویر توسط فایل ms-files.php می شود. در این صورت می توان این خط از کد را حذف نمود. اما سطح امنیت نیز با این کار کاهش خواهد یافت.
این اقدام از Upload فایل مخرب توسط فرد مهاجم در وردپرس شما جلوگیری نمی کند، اما جلوی بسیاری از اعمال خرابکارانه ی دیگر را خواهد گرفت.
1- تغییر نام اکانت مدیریت
در هنگام ساخت اکانت مدیریت به این نکته توجه داشته باشید که از به کار بردن Username هایی که به راحتی قابل حدس هستند نظیر admin و webmaster خودداری کنید، چرا که این نوع Username ها اولین سوژه های حمله مهاجمان به شمار می آیند. با استفاده از phpMyAdmin پنل خود و یا با وارد کردن دستور زیر در MySQL میتوانید به تغییر نام اکانت اقدام نمایید:
2- تغییر table_prefix
به نظر میرسد که اکثر حملات SQL injection در WordPress از طریق ارسال کدهای مخرب در SQL به دلیل تنظیم بودن جداول table_prefix به صورت “wp_” یا “wp1_” و یا “WordPress_” به طور پیش فرض توسط WordPress است. از این رو با تغییر نام table_prefix ها میتوان بسیاری از این حملات را کاهش داد.
در این رابطه لطفا به مقاله آموزش غیرفعال کردن XMLRPC در WordPress که قبلا توسط IRPOWER ایجاد شده است مراجعه نمایید.
بطور جدی پیشنهاد می شود هیچ گاه از افزونه, پوسته, اسکریپت و هر چیز دیگری که نیاز به تهیه لایسنس دارد, از نوع غیر معتبر یا Null شده ی ان استفاده نکنید. در غیر اینصورت شخصا کلید ورود به وبسایت را در اختیار شخص نفوذ گر قرار داده اید.
تمامی کابران IRPOWER می توانند مطابق با مقاله آموزش نحوه ایجاد بک آپ در هاست سی پنل اقدام به ایجاد Backup از اکانت خود و دریافت آن نمایید.
لازم به ذکر است در سرورهای میزبانی وب IRPOWER, فرایند ایجاد Backup بسته به نوع سرویس هاست، ممکن است بصورت خودکار در سیکل های روزانه, هفتگی و ماهانه انجام می شود و Backup ها بصورت Local و Remote نگهداری می شوند.
تنظیمات امنیتی می توانند در تمامی بخش های وبسایت شما تغییراتی ایجاد کنند. پیشنهاد می شود قبل از ایجاد هرگونه تغییری حتما از اطلاعات خود Backup تهیه کنید.
find . -type d -exec chmod 755 {} \;
برای فایلها:
find . -type f -exec chmod 644 {} \;
و برای فایل های PHP در سرور هایی که از هندلر suPHP استفاده می کنند:
find . -name \*\.php -exec chmod 600 {} \;
3- امنیت پایگاه داده
حفط امنیت پایگاه داده ها به عنوان محل ذخیره سازی اطلاعات حیاتی هر وبسایت جزو اقدامات اساسی و با اولویت بالا می باشد.
1- چنانچه بر روی سرور شما تعداد زیادی وبسایت وردپرسی قرار دارد، بهتر است برای هرکدام Database هایی با Username های متفاوت اختصاص دهید. توصیه میگردد که این اقدام در هنگام نصب اولیه هر وردپرس انجام شود. این یک استراتژی مهار است. این اقدام باعث میشود که چنانچه فردی موفق به نفوذ به یکی از وبسایت های شما شود، نفوذ و اعمال تغییر در وبسایت های دیگر برای او بسیار دشوار تر باشد.
1- چنانچه بر روی سرور شما تعداد زیادی وبسایت وردپرسی قرار دارد، بهتر است برای هرکدام Database هایی با Username های متفاوت اختصاص دهید. توصیه میگردد که این اقدام در هنگام نصب اولیه هر وردپرس انجام شود. این یک استراتژی مهار است. این اقدام باعث میشود که چنانچه فردی موفق به نفوذ به یکی از وبسایت های شما شود، نفوذ و اعمال تغییر در وبسایت های دیگر برای او بسیار دشوار تر باشد.
2- چنانچه شما خود مدیر سرور هستید، مطمئن شوید که قابلیت های غیر ضروری مانند اتصال از راه دور به پایگاه داده را غیر فعال کنید.
3- محدود کردن Privileges ها
جهت انجام عملیات های عادی WordPress مانند ارسال پستهای وبلاگ، آپلود فایل های چند رسانه ای، ارسال نظرات، ایجاد کاربران جدید و همچنین نصب افزونه های WordPress، می توان تنها Privileges های SELECT،INSERT ،UPDATE و DELETE را فعال نمود.
نکته:
ممکن است بعضی از پوسته ها، افزونه ها و بروزرسانی های اساسی وردپرس نیارمند تغییر در ساختار 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 برای صفحه مدیریت وبسایت می باشد, به طوری که تمامی اطلاعات و داده های حساس رمز نگاری شوند.
5- ایمن سازی wp-includes
یکی از راه های ایمن سازی WordPress, محدودیت دسترسی کاربران به بخش هایی از دایرکتوری wp-includes است که اصولا نیازی به دسترسی به آنها نیست. این کار با استفاده از دستور mod_rewrite واقع در فایل htaccess. قابل انجام است.
جهت اطمینان از این که WordPress این کد ها را جایگزین کد های قبلی نکند، این کد را قبل از تگ BEGIN WordPress # یا در انتها و بعد از تگ END WordPress # واقع در فایل 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
به طور پیشفرض داشبورد وردپرس به مدیران وبسایت اجازه ویرایش فایل های PHP نظیر فایل های پوسته و افزونه ها را می دهد. این قابلیت معمولا اولین ویژگی است که چنانچه ورود به WordPress برای یک فرد مهاجم مقدور باشد از آن جهت اجرای کد های خود استفاده خواهد کرد. اما خوشبختانه میتوان این قابلیت را در WordPress غیر فعال نمود.
با قرار دادن کد زیر در فایل wp-config.php، می توان این قابلیت را غیر فعال کرد:
با قرار دادن کد زیر در فایل wp-config.php، می توان این قابلیت را غیر فعال کرد:
define('DISALLOW_FILE_EDIT', true);
این اقدام از Upload فایل مخرب توسط فرد مهاجم در وردپرس شما جلوگیری نمی کند، اما جلوی بسیاری از اعمال خرابکارانه ی دیگر را خواهد گرفت.
8- ناشناس بمانید
شاید تامین امنیت از طریق ناشناس بودن, یک اسراتژی نادرست به نظر آید. اما در بعضی از بخش های وردپرس این استراتژی به تامین بیشتر امنیت کمک می کند.
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 را غیر فعال کنید
در این رابطه لطفا به مقاله آموزش غیرفعال کردن XMLRPC در WordPress که قبلا توسط IRPOWER ایجاد شده است مراجعه نمایید.
بخش دوم: امنیت افزونه ها و پوسته های وردپرس
اولین نکته مهم در مورد افزونه ها، اطمینان از بروز بودن آنها می باشد. همچنین اگر از افزونه خاصی استفاده نمی کنید، بهتر است آن را غیرفعال و حذف نمایید.
1- Firewall ها
افزونه های زیادی وجود دارند که میتوانند مانند یک Firewall در وبسایت شما ایفای نقش کنند. بعضی از آنها با ایجاد تغییر در فایل htaccess. فعالیت می کنند و دسترسی به بعضی از سطوح را قبل از WordPress در Apache محدود میکنند. مانند افزونه iThemes Security یا All in One WP Security و برخی دیگر مانند WordFence و Simple Security Firewall در سطح WordPress عمل کرده و از نفوذ در هنگام بارگذاری WordPress اقدام می کنند.
علاوه بر پلاگین ها، مدیران سرور می توانند با نصب یک WAF یا (Firewall تحت وب) در سرور خود سطح امنیتی را افزایش دهند. یکی از معروفترین WAF های متن باز، ModSecurity می باشد.
2- قالب و اسکریپت Null شده, هرگز!
بطور جدی پیشنهاد می شود هیچ گاه از افزونه, پوسته, اسکریپت و هر چیز دیگری که نیاز به تهیه لایسنس دارد, از نوع غیر معتبر یا Null شده ی ان استفاده نکنید. در غیر اینصورت شخصا کلید ورود به وبسایت را در اختیار شخص نفوذ گر قرار داده اید.
3- Update باشید.
بروز رسانی یا Update تنها شامل وردپرس نمی باشد. تمامی افزونه ها یا پوسته های استفاده شده نیاز به بروز رسانی دارند. پیشنهاد می کنیم اگر برای هر یک از افزونه ها، برای مدتی بروز رسانی جدیدی ارائه نشد, از ادامه استفاده ی آن خودداری کنید.
در رابطه با انتخاب افزونه مناسب این مقاله را مطالعه کنید.
در رابطه با انتخاب افزونه مناسب این مقاله را مطالعه کنید.

بخش سوم: بک آپ گیری از هاست وردپرسی
تهیه Backup منظم شامل تمامی دیتابیس ها و اطلاعات هاست وردپرس امری مهم در تضمین حفظ اطلاعات هر وبسایت به شمار می رود.


اطمینان از صحت تمامی داده ها در تهیه Backup ها ضروری است. استراتژی صحیح در تهیه Backup شامل تهیه مجموعه ای از تصاویر منظم از تمامی اطلاعات و کانفیگ های WordPress (شامل پایگاه داده و فایل های اصلی WordPress) و حفظ آنها در یک مکان امن می باشد. سایتی را که مطابق با این استراتژی اقدام به تهیه تصویر از فایل ها و تنظیمات WordPress خود به صورت هفتگی کرده است را تصور کنید. چنانچه این سایت مورد نفوذ قرار گیرد ولی صاحب آن چند روز بعد متوجه این تغییرات شود، با مقایسه تصاویر و Backup های قبل و بعد از نفوذ, متوجه میزان خرابی ایجاد شده در اطلاعات وبسایت خواهد شد و به راحتی مشکل را تشخیص داده و برطرف خواهد کرد.
لازم به ذکر است در سرورهای میزبانی وب IRPOWER, فرایند ایجاد Backup بسته به نوع سرویس هاست، ممکن است بصورت خودکار در سیکل های روزانه, هفتگی و ماهانه انجام می شود و Backup ها بصورت Local و Remote نگهداری می شوند.
با رعایت این موارد می توانید سایت وردپرسی امن تری داشته باشید.
تمامی حقوق مادی و معنوی مطالب متعلق به IRPOWER است.
کپی برداری تنها با ذکر منبع و با لینک به صفحه مربوطه در این وب سایت مجاز است
مقالات مشابه
-
نحوه غیر فعال کردن XMLRPC در WordPress
XML-RPC که یک پروتکل فراخوانی از راه دور است برای مدتی طولانی به دلایل امنیتی و به طور پیش فرض...
مقابله با نظرات اسپم در وردپرس با افزونه Trackbackمقابله با نظرات اسپم در هاست وردپرس با Trackback آیا شما نیز با بازتاب ها یا نظرات اسپم...
معرفی افزونه امنیتی Wordfenceدر این مقاله قصد داریم به معرفی افزونه امنیتی Wordfence که عنوان بیشترین دانلود برای یک افزونه...
معرفی افزونه امنیتی Simple Security Firewallدر این مقاله قصد داریم افزونه امنیتی Simple Security Firewall را معرفی کنیم. این افزونه یکی از...
معرفی افزونه امنیتی All In One WP Security & Firewallدر این مقاله به معرفی افزونه امنیتی All In One WP Security & Firewall برای WordPress خواهیم...