آموزش افزایش امنیت وردپرس

این روزها بازار هک شدن وردپرس داغ شده و پس از هک شدن وبسایت وردپرس فارسی ، هکرهای تازه کار هم هوس کرده اند دیگر سایت های وردپرسی را هک کنند. ما روزانه بیش از ۱۰ آی پی که با وی پی ان وارد سایت شده اند را مشاهده می کنیم که به جستجو در فایل هایی نامربوط پرداخته اند ! و یا بیش از ۱۰۰ بازدید بسیار کوتاه انجام گرفته که نشان دهنده اسکن شدن سایت توسط کاربری خراب کار است! چه بسا همین روزها بلایی سر سایت ما هم بیاورند! اما چکار کنیم که اگر قرار هست هک شویم به سادگی هک نشویم ! اول از همه پیش از شروع این مساله را به شما بگویم که وردپرس سیستمی بسیار امن است و نیازی نیست احساس نا امنی در مورد هسته ی وردپرس داشته باشید. خوب آموزش ها رو به چند دسته تقسیم می کنم.

اول برویم به سراغ نکات ضروری ای که باید بدانید :

۱ – حتی المقدور سیستم دیگری در هاستی که وردپرس نصب کرده اید ، نصب نکنید ( اگر نصب می کنید از کسی بخواهید برایتان این کار را انجام دهد که به محدود کردن دسترسی ها وارد باشد.) و لی توصیه ی خود بنده این هست که در اون هاست سیستم مدیریتی دیگری نصب نکنید!

۲ – انجمن ها اکثرا باگ دارند! مخصوصا ویبولتین های نال شده! از آنها در کنار وردپرس استفاده نکنید.

۳ – پلاگین بی مورد نصب نکنید (مخصوصا پلاگین های ناشناخته). اگر تعداد پلاگین هایتان محدود باشد کنترل آنها ساده تر می شود. همچنین خیلی از مواقع کاربران پلاگینی را نصب کرده و چند سالی نه به سراغ آن می روند نه به روزش می کنند و نه استفاده می کنند و شاید کلا غیر فعال هم باشد ! پلاگین های اینچنینی تنها محلی را برای گشت و گزار هکر ها فراهم می کنند و هیچ سود دیگری ندارند.

۴ – به جز قالب اصلی سایتتان و آنهایی که دیفالت وردپرس هستند بقیه را حذف کنید. و از قالبی با امنیت مناسب (حتی الامکان در خزانه وردپرس معرفی شده باشد) استفاده کنید.

۵ – همیشه و لحظه ای پس از انتظار نسخه جدید وردپرس آن را به روز کنید!

۶ – از هاستینگ نامعتبر سرویس نگیرید. (این به این معنی نیست که خدای ناکرده هر هاستینگ جدیدی نامعتبر است!) اما بسیاری از هاستینگ های ایرانی از نسخه ی کرک شده ی cpanel استفاده می کنند . این نسخه قابل به روز شدن نیست و ممکن است باگ هایی داشته باشد. این تنها یک دلیل است و ممکن است مشکل از cpanel نباشد ، یعنی کسی که هاستینگ را راه اندازی کرده به تنظیمات امنیتی سرور وارد نباشد!. همچنین هاستینگ هایی که از لینوکس به عنوان سیستم عامل استفاده می کنند، امن تر هستند (نظر شخصی بنده).

خوب دسته دوم تنظیمات امنیتی هستند که باید در فضای وبتان اعمال کنید. پیش از دانستن این تنظیمات نیاز به آگاهی در مورد دستورات سرور آپاچی هست که باید بدانید (اگر می دانید فایل های .htaccess چه هستند از این توضیحات عبور کنید).

هاستینگی که وردپرس بر روی آن قابل نصب شدن است حتما از apache و mysql استفاده می نماید. سرور آپاچی دستورات خاصی دارد که در فایل هایی با نام .htaccess ذخیره می شوند. توسط این دستورات کار های مختلفی می توان انجام داد به عنوان مثال : بن کردن یک آی پی خاص از دسترسی به سایت شما ( فایل هایی که بر روی فضای وبتان دارید) ، بن کردن رنج آی پی ، محدود سازی دسترسی مستقیم به فایل هایی با پسوند خاص ، ریدایرکت کردن و بسیاری امکانات دیگر…

در بعضی از سرور ها شما قادر به دیدن فایل های .htaccess در فولدری که وردپرس را نصب کرده اید می باشید، و در بعضی دیگر بسته به تنظیماتی که سرویس دهنده تان اعمال کرده قادر به مشاهده آن فایل نیستید. و برای مشاهده آنها باید از طریق ftp به هاستتان وصل شوید تا بتوانید آنها را مشاهده و ویرایش کنید. پس بهتر است در همین ابتدا وارد پنلتان شوید یک حساب ftp ایجاد کنید. و با نرم افزار اف تی پی (مثلا filezila ) به آن متصل شوید. در این قسمت ما با این فایل ها کار داریم.
محدود کردن کاربران رودی براساس آی پی های کشورها! ( برای هر وبسایتی مناسب نیست ) برای اینکار ابتدا به آدرس http://incredibill.me/htaccess-block-country-ips بروید از لیست کشورها آنهایی که نمی خواهید وارد سایتتان شوند را نتخاب کرده و کلید generate .htaccess code را بزنید تا دستوری برای شما ایجاد نماید. سپس با نرم افزار ftp تان به دیرکتوری اصلی سایتتان بروید و در آن فایل .htaccess را باز کنید(در صورتی که موجود نیست آن را ایجاد کنید) و کدی را که آن سایت ایجاد کرده در آن بچسبانید (paste) . از این به بعد کاربران آن کشورها اجازه ی دسترسی به فایل های موجود در آن دایرکتوری ای که این فایل را قرا داده اید به هیچ عنوان ندارند! ( مثلا می توانید این تنظیم را بر روی یک پوشه ی دیگری که در پوشه اصلی هاستتان است اعمال کنید) ، و این بدین معنی است که سایتتان از دسترسی آنها به طور کامل خارج می شود. همچنین توجه کنید که به علت تغییرات در رنج آی پی خریداری شده توسط کشورهای مختلف و خیلی دلایل دیگر این روش چندان کار آمد نیست ، اما تاثیر دارد.

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

این یک راهکار بسیار موثر برای فایل هایی با پسوند php است. چرا که مانع از دسترسی مستقیم کاربران به فایل های با پسوند خاص می شود. برای این کار در فایل .htaccess تان در هر فولدری که هست کد زیر را قرا دهید:

<Files *.php>
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
</Files>

<Files index.php>
Order Allow,Deny
Allow from all
</Files>

با این کار امکان دسترسی مستقیم به فایل های php که فقط سرور به آنها نیاز دارد و نه کاربران ، از بین می رود . در قسمت دوم دستور فایل index مستثنی شده تا امکان دسترسی مستقیم به این فایل به قوت خود باقی باشد.

محدود کردن دسترسی کاربرانی که با پروکسی وارد سایت می شوند

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

برای این کار در فایل .htaccess موجود در فولدر اصلی سایتتان دستور زیر را قرار دهید:

 

<ifModule mod_rewrite.c>
 RewriteEngine on
 RewriteCond %{HTTP:VIA}                 !^$ [OR]
 RewriteCond %{HTTP:FORWARDED}           !^$ [OR]
 RewriteCond %{HTTP:USERAGENT_VIA}       !^$ [OR]
 RewriteCond %{HTTP:X_FORWARDED_FOR}     !^$ [OR]
 RewriteCond %{HTTP:PROXY_CONNECTION}    !^$ [OR]
 RewriteCond %{HTTP:XPROXY_CONNECTION}   !^$ [OR]
 RewriteCond %{HTTP:HTTP_PC_REMOTE_ADDR} !^$ [OR]
 RewriteCond %{HTTP:HTTP_CLIENT_IP}      !^$
 RewriteRule .* - [F]
</ifModule>

پسورد گزاری بر روی پوشه ی wp-admin

اگر از cpanel استفاده کرده باشید احتمالا ابزار password protect directories را دیده اید. کار این ابزار در واقع قرار دادن کد زیر در فایل .htaccess در فولدر انتخابی شماست ! که ما می توانیم این عمل را به صورت دستی انجام دهیم.

ابتدا وارد آن ابزار شده که در سی پنل هست بشوید یک فولدر ( بی اهمیت ) انتخاب کنید و یوزری ایجاد نمایید. ( معمولا یوزر سی پنل در آنجا هم موجود هست که در این صورت نیازی به این کار نیست)

سپس وارد فولدری که می خواهید بر روی آن پسورد قرار دهید بشوید (توسط ftp ) و در فایل .htaccess موجود در آنجا کد زیر را در آن قرار دهید:

AuthUserFile "/home/usere-shoma/.htpasswds/public_html/wp-admin/passwd"
AuthName "wp-admin"
AuthType Basic
require valid-user

در کد بالا باید به جای user-shoma یوزر خودتان در سی پنل را وارد کنید. همچنین پش از قرار دادن آن در فایل .htacces اگر سایتتان را به آدرس http://siteshoma.com/wp-admin بروید باید پنجره ای باز شود و از شما نام کاربری و رمز عبور در خواست نماید. در صورتی که این پنجره ظاهر نشد و به صفحه ۴۰۴ منتقل شدید مجدد فایل را باز کنید و دستور زیر را در بالای دستورات قبلی قرار دهید:

ErrorDocument 401 default

موارد بیان شده در این قسمت کامل نیست و کارهای دیگری هم با فایل های .htaccess می توان انجام داد مثلا ایجاد ممنوعیت در دسترسی با فایل های با پسوند خاص توسط لینک مستقیم، و یا قرار دادن آی پی سایت های اسکنر معروف در لیست بن ها و غیره..  اما موارد بیان شده عمومی بوده و بسیار موثر هستند.

موارد زیر به نحوه  استفاده شما از وردپرس مربوط می شود.

۱ – از افزونه ای جهت محدود کردن تعداد تلاش های ممکن برای ورود به پنل ادمین استفاده کنید. ( این مساله با عث پیش گیری از حملات brute force می شود ، که در آن هکر لیستی از کلمات را بر روی پنل شما آزمایش می کند تا شاید کلمه صحیح را پیدا کند! به همین خاطر است که گفته می شود از نام ادمین به عنوان یوزر استفاده کنید و تا جای ممکن از کلمات سخت برای پسورد استفاده نمایید.

۲ – فایل functions.php قالبتان را باز کنید و کد زیر را در ابتدای آن قرار دهید:

 

add_filter('login_errors',create_function('$a', "return 'go away , and dont try again';"));

با این کد دیگر به هنگام رود به پنل ادمین وردپرس و در صورت غلط بودن یوزر یا پسورد پیغام خطایی نمایش داده نمی شود و در عوض متن مورد نظر ما نمایش داده می شود! ( صفحه لوگین وردپرس در حالت عادی اگر کاربر یوزر درست و پسورد غلط وارد نماید پیغامی نمایش می دهد که هکر می تواند بفهمد یوزر درست بوده ! و آنقدر تلاش می کند تا پسورد صحیح را پیدا کند)

۳ – از افزونه ای جهت نمایش فایل هایی که مورد دسترسی قرار کرفته اند ، استفاده نمایید . تا اگر هک شدید آخرین فایل ها یا صفحاتی که مورد بازدید قرار گرفته شده اند را بررسی کنید ( ممکن است این مساله تاثیر چندانی نداشته باشد ، اما بسیاری اوقات با بررسی فایل هایی که زیاد مورد بازدید قرار گرففته شده اند می توان از بسیاری مسائل آگاه شد )

۴ – راه کارهایی وجود دارد که می توان توسط آن امکان ویرایش فایل های قالب و افزونه ها را در پنل ادمین غیر فعال کرد ، با کمی جستجو می توان دستورات لازم برای این کار را در وب پیدا کرد.

موفق باشید.

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

یک نظر

  1. بسیار عالی
    ممنون

جوابی بنویسید

ایمیل شما نشر نخواهد شدخانه های ضروری نشانه گذاری شده است. *

*