آشنایی با امنیت وردپرس – آموزش جامع وردپرس - قسمت شانزدهم

آشنایی با امنیت وردپرس – آموزش جامع وردپرس - قسمت شانزدهم
آشنایی با امنیت وردپرس – آموزش جامع وردپرس - قسمت شانزدهم
9 ماه پیش

در مقاله قبل مباحث سئو در وردپرس را بررسی کردیم و اکنون در این قسمت از سری آموزش‌های وردپرس، به بررسی و معرفی نکات امنیتی برای افزایش لایه‌های حفاظتی و خود امنیت وردپرس و سایت خواهیم پرداخت که با استفاده از افزونه‌های وردپرس و ویرایش در فایل‌های آن صورت می‌گیرد.

اولین سؤالی که درباره امنیت به وجود می‌آید این است که آیا خود وردپرس دارای امنیت نیست؟

بله؛ هسته اصلی وردپرس به‌طور پیش‌فرض از امنیت کافی و مطلوب برخوردار است و پیوسته با آپدیت‌های جدید، باگ‌ها و اشکالات آن رفع می‌شود و ازاین‌جهت نقصی بر تأمین امنیت وردپرس برای سایت نیست؛ اما ازآنجاکه وردپرس یک CMS اوپن سورس (Open Source) یا متن‌باز است کدهای آن برای همه در دسترس است و کسانی که قصد نفوذ به سایت‌های وردپرسی را دارند با استفاده از این کدها و بررسی و تحلیل آن، نواقص و باگ‌های احتمالی‌اش را شناسایی می‌کنند و با روش‌های مختلف اقدام به نفوذ به وردپرس و سایت ما می‌کند. هدف ما هم در این مطلب، آموزش روش‌های مختلف برای جلوگیری از نفوذ این‌گونه افراد است تا بتوانیم امنیت حداکثری سایتمان را فراهم کنیم و جایی برای تهدید هکرها نباشد.

بخش اول: اقدامات پایه برای ارتقای امنیت وردپرس

اقدامات پایه و ساده برای ارتقای امنیت سایت وردپرسی از سطح پیش‌فرض (نکات امنیتی ورود به سایت):

1. اولین قدم، تهیه فایل اصلی وردپرس برای نصب در هاست است؛ فایل اورجینال وردپرس را می‌توان از سایت wordpress.org تهیه کرد که همیشه به‌روز است. با کلیک بر روی گزینه Get WordPress و با اسکرول به پایین در صفحه جدید، لینک مستقیم برای دانلود فایل‌های اصلی وردپرس را داریم تا با کلیک بر روی آن، وردپرس را دانلود کنیم.

image001

 image003

2. قدم بعدی ایجاد کتابخانه در هاست برای واردکردن داده‌ها و فایل‌های نصبی وردپرس است؛ اگر بعد از بارگذاری فایل‌های وردپرس در هاست، از طریق صفحه نصب خود وردپرس اقدام به ساخت کتابخانه کنیم یکی از اصلی‌ترین لایه‌های امنیت در وردپرس یعنی هش سالت (Salt) یا رمزگذاری سالت را ازدست‌داده‌ایم. به همین منظور باید کتابخانه‌ها را از طریق سیستم مدیریت‌هاست مان به‌عنوان‌مثال سی پنل (Cpanel) ایجاد کنیم. با این روش علاوه بر اینکه از رمزگذاری سالت استفاده کرده‌ایم، ادامه نصب وردپرس را از عنوان سایت شروع خواهیم کرد و نیازی به راه‌اندازی کتابخانه در فرایند نصب وردپرس نخواهیم داشت.

  • افزایش امنیت در رمز ورود و نام کاربری سایت قدم دیگر ماست؛ یعنی اینکه که نام کاربری پیش‌فرض خود وردپرس را عوض کنیم و یک عنوان دیگر که مدنظرمان است را انتخاب کنیم.

رمز ورود هم باید بسیار قوی و قدرتمند باشد چون‌که یکی از مهم‌ترین لایه‌های امنیتی وردپرس به شمار می‌آید. امنیت این کلمه عبور از تنوع کاراکترهای آن ایجاد می‌شود و به آن‌ها بستگی دارد؛ به‌عنوان‌مثال چه تعداد و چه کاراکترهایی با حروف بزرگ و یا حروف کوچک دارد، چه اعدادی در میان کاراکترها وجود دارد و چه تعداد از چه علائم دیگری استفاده‌شده است. درنهایت در ترکیب باهم یک رمز ورود و پسورد قوی برای ورود به وردپرس ایجاد می‌کنند. در انتخاب ما برای این رمز عبور دلخواه، باید این نکته‌ها را در نظر بگیریم. سایت‌های مختلفی وجود دارند که با چک کردن رمز عبور انتخابی‌مان، قدرت و دشواری ما را می‌سنجند؛ مانند سایت‌های passwordmeter.com و passwordmonster.com که می‌توانیم از این قابلیت‌ها هم استفاده کنیم.

image005

image007

3. خطر دیگری که سایت وردپرسی را تهدید می‌کند این است که هکرها اطلاعات اولیه در مورد سیستم مدیریت محتوای ما و نسخه آن را در اختیار داشته باشند. مثلاً شخصی که بخواهد به سایت ما نفوذ کند بدیهی است که با استفاده از نقص‌های امنیتی سیستم مدیریت محتوا این کار را انجام می‌دهد؛ دانستن اینکه CMS ما چیست و چه نسخه‌ای دارد کمک بزرگی به آن شخص می‌کند تا با استفاده از این باگ‌ها در آن نسخه به سایت ما دسترسی پیدا کند. اینجاست که باید از درز این‌گونه اطلاعات اولیه از سایتمان جلوگیری کنیم. به همین منظور باید در میان فایل‌های نصبی وردپرس در فایل منیجر هاست مان، دو فایل با نام های license.txt و readme.html را در پوشه public_html پیدا و حذف کنیم تا این اطلاعات مهم اولیه که درون فایل‌ها وجود دارند از طریق باگ‌های احتمالی به خارج از سایت درز نکنند. با حذف این دو، نوبت به حذف فایل install.php و install-helper.php در پوشه wp-admin می‌رسد که نیازی به آن‌ها نداریم و باید آن‌ها را هم حذف کنیم؛ این هم به دلیل این است که با استفاده از باگ‌های خودهاست کسی نتواند کتابخانه جدیدی را برای وردپرس تعریف کند.

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

image009

5. در همان درجه اول مطلب اشاره کردیم که رمز عبور و نام کاربری برای وبمسترها و نویسنده‌های سایت از مهم‌ترین اطلاعات برای ورود به پیشخوان وردپرس است که نباید در دسترس کسی قرار بگیرد. برای اینکه آن را از دست کاربران خود سایت مخفی نگه‌داریم باید نام کاربری و لقب (Nickname) پیش‌فرض وردپرس را در این مورد تغییر دهیم؛ یعنی نام کاربری برای ورود به پیشخوان وردپرس بانام یا لقبی که برایمان در سایت در حال نمایش و در دسترس همه است را عوض کنیم. این کار را می‌توان با استفاده از تنظیمات خود وردپرس در بخش کاربران انجام داد و یا به‌صورت حرفه‌ای‌تر با استفاده از افزونه‌های مختلفی که مخصوص همین کار است، انجام دهیم؛ مانند افزونه Username Changer که نحوه کار با آن را آموزش خواهیم داد.

image011

  • از طرفی باید لینک و زیرشاخه صاحب سایت و یا نویسنده‌ها در وردپرس را از حالت پیش‌فرض وردپرس خارج کنیم؛ یعنی با فراخوانی لینک پیش‌فرض خود وردپرس، کاربری نتواند به صفحه مدیر دسترسی پیدا کند و اطلاعات آن را مشاهده کند؛ که باید این لینک و زیرشاخه مخصوص به آن را عوض کنیم. این کار را هم می‌توان در بخش کاربران خود وردپرس و یا با استفاده از افزونه‌هایی مانند SF Author URL Control انجام دهیم. بعد از نصب و فعال‌سازی آن وارد بخش تنظیمات پرما لینک‌ها (Permalinks) می‌شویم و در کادر بخش Authors Page Base هر عبارتی را برای تعریف زیرشاخه انتخاب کنیم.

image013

image015

image017

image019

  • برای تغییر نام کاربری ورود به وردپرس، خود وردپرس به‌صورت پیش‌فرض امکان این کار را ندارد و باید با استفاده از افزونه‌ها و تنظیماتی که آن‌ها دارند این قابلیت را برای صاحب سایت، نویسنده‌ها و کاربران فعال یا غیرفعال کنیم. با استفاده از افزونه‌هایی مانند UserNameChanger و مانند آن‌که در فروشگاه افزونه وردپرس در دسترس است می‌توانیم این کار را انجام دهیم. در بخش ویرایش پروفایل خود وردپرس، فقط می‌توانیم لقب حساب خود را تغییر دهیم و هیچ‌گونه قابلیتی برای تغییر یوزرنیم اکانتمان نداریم؛ اما با افزونه UserNameChanger می‌توانیم هردوی آن‌ها را عوض کنیم و سایر کاربران نیز این امکان را داشته باشند. بعد از نصب افزونه، در منوی تنظیمات خود وردپرس، گزینه مربوط به افزونه username changer فعال می‌شود که باید در سربرگ تنظیمات، امکان تغییر یوزرنیم را برای گروه‌های مختلف کاربری فعال کنیم. پس‌ازآن و با مراجعه به تنظیمات پروفایل خود وردپرس، گزینه ویرایش یوزر نیم برای ما و کاربرانی که انتخاب کرده‌ایم فعال می‌شود.

image021

image023

image025

image027

image029

روش دیگری که بدون استفاده از این افزونه‌ها می‌توان یوزرنیم را تغییر داد ویرایش آن در پنل مدیریت هاست است که در این مطلب به آن نمی‌پردازیم.

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

 add_filter('login_errors',create_function('$a',"return null;"));

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

image031

image033

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

image035 

البته باید توجه کنیم که اگر بخواهیم به‌جای لوگوی وردپرس، لوگوی دیگری را جایگزین کنیم باید آن را ابتدا در هاست بارگذاری کنیم و سپس آدرس آن در هاست یا لینک آن را در قسمت URL کد جایگذاری کنیم.

7. لایه امنیتی دیگری که در صفحه ورود می‌توان قرار داد، افزودن کپتچا (CAPTCHA) است؛ یعنی در هنگام واردکردن رمز عبور و نام کاربری سؤالی مبنی بر ربات نبودن پرسیده خواهد شد که مانعی بر تلاش ربات‌ها و افرادی که می‌خواهند به سایتمان نفوذ کنند است. این کار را هم می‌توان با افزونه‌های فروشگاه وردپرس انجام داد. به همین منظور در فروشگاه وردپرس به دنبال افزونه reCAPTCHA By BestWebSoft می‌گردیم و نصب می‌کنیم؛ البته که سایر افزونه‌های مشابه هم همین قابلیت را ارائه می‌کند. برای راه‌اندازی این افزونه ابتدا باید به تنظیمات افزونه وارد شویم و نوع ریکپچا و صفحه‌هایی که باید در آن‌ها فعال شود را هم مشخص می‌کنیم.

image037

image039

image041

در مرورگر به‌حساب Gmail خود وارد شویم و با لینک راه‌اندازی کپچا در افزونه (Get the API Keys) به سایت گوگل کپچا هدایت می‌شویم. سپس اطلاعات لازم برای صدور ریکپچا مثل برچسب نام ریکپچا، نسخه ریکپچا، آدرس دامین سایت، آدرس ایمیل صاحب ریکپچا، قبولی شرایط ریکپچا و ... را باید وارد کنیم و گزینه ثبت را کلیک کنیم.

image043

بعدازآن کدهای مخصوص برای سایت ما که بتواند قابلیت کپچا را فعال کند را دریافت می‌کنیم. سپس این دو کد را در صفحه تنظیمات مخصوص افزونه کپچا وارد می‌کنیم و باقی تنظیمات آن را انجام می‌دهیم. بعدازاین در صفحه ورود وردپرس یک‌لایه امنیتی دیگر خواهیم داشت که مانع ورود ربات‌ها و می‌شود.

image045

افزونه کمکی بعدی برای کپچا وردپرس Login Lockdown است به کمک این افزونه می‌توان محدودیت‌هایی اضافه‌تر برای صفحه لاگین اعمال کرد. مثل هر شخص به چه تعداد می‌تواند رمز عبور خود را اشتباه وارد کند؟ آیا اگر شخصی یا رباتی چندین مرتبه پشت سر هم رمز عبور را اشتباه وارد کند آی پی آن به مدت یک ساعت محدود شود؟

image047

image049

image051

افزونه بعدی که عملکرد مشابه و کامل‌تری نسبت به افزونه قبلی دارد، افزونه Limit Login Attempts Reloaded است که این افزونه انعطاف بیشتری و تنظیمات بیشتری را به ما برای ویرایش محدودسازی در صفحه لاگین را ارائه می‌کند.

image055

image057

image059

 

بخش دوم: تنظیمات امنیتی هسته اصلی وردپرس

در بخش دوم به تنظیمات امنیتی هسته اصلی خود وردپرس خواهیم پرداخت و می‌خواهیم که وردپرس را به یک سطح امنیت بالاتری وارد کنیم.

تنظیمات امنیتی وردپرس

اولین تنظیماتی که قرار است در این بخش اعمال کنیم، تغییر پیشوندهای پیش‌فرض (Prefix) جداول خود وردپرس است. به دلیل اینکه این پیشوندها در همه سایت‌های وردپرس که تاز ایجادشده‌اند، یکسان است و امنیت وردپرس را درخطر قرار می‌دهد باید آن‌ها را تغییر دهیم. این تغییر تنظیمات هم با استفاده از افزونه‌های فروشگاه انجام می‌شود. در منوی سرچ افزونه‌های وردپرس عبارت Change Table Prefix را جستجو می‌کنیم و این افزونه را دانلود، نصب و فعال کنیم.

image061

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

image063

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

image065

image067

تغییر نام و آدرس صفحه مدیریت

برای تغییر نام و آدرس صفحه مدیریت سایت، افزونه Lockdown WP Admin را نصب و فعال‌سازی می‌کنیم. سپس وارد تنظیمات افزونه می‌شویم.

image069

Hide WP Admin:

 اولین قسمت تنظیمات این افزونه این سؤال را از ما می‌پرسد که آیا کاربرانی که وارد سایت شده‌اند بتوانند به صفحه تنظیمات ادمین وردپرس دسترسی داشته باشند یا این قسمت برایشان پنهان شود؟ اگر این گزینه را فعال کنیم هر کاربری که لاگین نباشد و این آدرس را فراخوانی کند با صفحه ارور 404 روبه‌رو می‌شود.

Wordpress Login URL:

 در قسمت بعدی می‌توانیم لینک URL برای صفحه ورود به وردپرس را تغییر دهیم. اگر بنا به هر دلیلی بخواهیم که این لینک را عوض کنیم باید در این بخش در کادر مخصوص لینک مدنظر را وارد کنیم و سپس بعدازآن هر کاربری که بخواهد به‌حساب خود در سایت وردپرس ما وارد شود صفحه ورود آن در این آدرس قرار خواهد داشت.

HTTP Authtentication:

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

image071

  • در مرحله بعدی افزایش ارتقای امنیت وردپرس این احتمال را در نظر می‌گیریم که شخصی که می‌خواهد به سایت ما نفوذ کند و شروع به خرابکاری کند در مرحله قرار دارد که وارد سایتمان شده است و می‌خواهد که با واردکردن کدهای مخرب در وردپرس به هدفش برسد. ما هم می‌خواهیم در این قسمت از آموزش امنیت وردپرس لایه امنیتی برای این مرحله از نفوذ قرار دهیم. این کار با غیرفعال کردن قابلیت افزودن افزونه به وردپرس و یا ویرایش این افزونه‌ها و قالب‌های وردپرس برای ادمین انجام می‌شود؛ یعنی این دسترسی را از کاربری که واردشده است و می‌خواهد و کدهای خود را به وردپرس وارد کند گرفته می‌شود.

برای غیرفعال کردن امکان افزودن افزونه وردپرس ابتدا از طریق فایل منیجر پنل هاست پوشه Public HTML را پیدا می‌کنیم. در این پوشه به دنبال یک فایل به نام wp-config.php می‌گردیم. با کلیک و انتخاب فایل و انتخاب گزینهٔ ادیت، وارد محیط ویرایش فایل می‌شویم. به انتهای صفحه می‌رویم و ابتدا یک عنوان به‌دلخواه برای توضیح و مشخص کردن کاربرد کد وارد می‌کنیم. سپس کد

define('DISALLOW_FILE_MODS’, true);

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

برای غیرفعال کردن امکان ویرایش افزونه‌ها نیز مسیر قبلی را برای فایل wp-config.php طی می‌کنیم و مانند مرحله قبلی وارد محیط ویرایش آن می‌شویم. به دنبال کدی که وارد کردیم کد مخصوص غیرفعال کردن امکان افزودن افزونه بود، این بار، کد

define('DISALLOW_FILE_EDIT', true);

را مبنی بر غیرفعال کردن ویرایش افزونه‌ها را هم وارد می‌کنیم. این تغییرات جدید را هم ذخیره می‌کنیم. با غیرفعال کردن ویرایش افزونه‌ها امکان ویرایش کد بخش‌های مختلف قالب‌های وردپرس در بخش نمایش پیشخوان هم غیرفعال می‌شود و امکان تزریق کدهای مخرب به‌کلی از دسترس خارج می‌شود.

برای اینکه حتی امکان فعال و غیرفعال کردن برای افزودن و ویرایش افزونه‌ها و قالب‌ها از طریق فایل wp-config.php هم در دسترس هکر نباشد، باید فایلی که در مراحل قبلی اقدام به ویرایش آن کردیم را مخفی کنیم تا هکرهایی که به وردپرس ما نفوذ کرده‌اند هم نتوانند به این فایل دسترسی پیدا کنند و از طریق آن هدف خود را به‌پیش ببرند. این پنهان‌سازی از طریق فایل بسیار مهم.htaccess که در پوشه Public HTML حضور دارد انجام می‌شود. این فایل را به حالت ویرایش درمی‌آوریم و دوباره به انتهای آن برای واردکردن کدهای جدید می‌رویم. همانند تغییرات قبلی باید یک توضیح کوتاه در مورد عملکرد کد نیز ارائه کنیم برای همین منظور ابتدا علامت شارپ را وارد و توضیحات خود را وارد می‌کنیم. سپس کد

# protect wpconfig.php

 

order allow,deny

deny from all

را بارگذاری می‌کنیم و این دستور را که به معنی خارج شدن فایل wp-config.php از دسترس و پنهان شدن آن است را وارد و تغییرات را ذخیره می‌کنیم.

مورد بعدی این است که وردپرس در تگ متا های پیش فرضی که برای صفحه‌های سایت ایجاد می‌کند، اشاره می‌کند که این سایت از وردپرس و چه نسخه‌ای از آن استفاده می‌کند. در بخش‌های قبلی برای جلوگیری از نشت این‌گونه اطلاعات اقداماتی مانند حذف فایل‌های مختلفی مانند license.txt انجام دادیم. در این قسمت هم باید مجموعه اقداماتی انجام دهیم که این داده‌های مهم نشت نکند. این اقدامات شامل افزودن کدهایی است که مانع از بروز این داده‌ها می‌شود. ابتدا در فایل منیجر پنل در پوشه Public HTML سپس پوشه wp-content و در پوشه thems و پوشه اختصاصی بانام قالبی که از آن در وردپرس استفاده می‌کنیم را باز می‌کنیم و فایل function.php را انتخاب و وارد حالت ویرایش می‌شویم. همانند بخش‌های قبلی ابتدا یک توضیح کوتاه به‌عنوان کارکرد کد را می‌نویسیم، سپس کد

function remove_version() {

 return '';

 }

add_filter('the_generator', 'remove_version');

را وارد می‌کنیم و در آخر هم تغییرات اعمال‌شده را ذخیره می‌کنیم درنهایت این تغییرات باعث می‌شود اطلاعاتی که قبلاً اشاره کردیم شامل اسم وردپرس و نسخه آن در کدهای منبع صفحه‌های مختلف سایت حذف و پنهان شود.

 

حالا می‌خواهیم که دسترسی کاربران را از زیرشاخه‌های wp-admin به‌کلی خارج کنیم. قسمت‌های قبل اشاره کردیم که چگونه اجازه ندهیم کاربران به wp-admin ادمین دسترسی پیدا کنند، اما دسترسی به زیرشاخه‌های این صفحه هم چنان در دسترس بودند؛ اکنون می‌خواهیم که این دسترسی‌ها را هم از بین ببریم؛ مانند بخش قبلی که نام وردپرس و نسخه آن را از صفحه‌های وردپرس با افزودن کد مخصوص در فایل فانکشن حذف کردیم به دنبال همین کد در همین فایل فانکشن، کد جدیدی را وارد می‌کنیم که دسترسی کاربران به زیرشاخه‌های wp-admin را غیرممکن می‌سازد. به این صورت که کاربر هر نوع درخواست دسترسی به wp-admin را داشت به صفحه اصلی سایت هدایت شود. همانند بخش‌های قبلی ابتدا یک عنوان وارد می‌کنیم سپس کد

function restrict_admin_access(){

          global $current_user;

          get_currentuserinfo();

          if (!array_key_exists('administrator', $current_user->caps)) {

 wp_redirect( get_bloginfo('url') );

 exit;

          }

}

add_action('admin_init', 'restrict_admin_access', 1);

را درج می‌کنیم و تغییرات اعمال‌شده را ذخیره کنیم.

در ادامه می‌خواهیم که این نوارابزار افقی بالای صفحه‌های سایت را برای کاربران معمولی غیرفعال کنیم؛ چون این نوار هم دارای لوگو وردپرس است که نمی‌خواهیم کاربران معمولی متوجه شوند که سایت ما از وردپرس استفاده می‌کنند و در وهله بعدی کاربران نتوانند به فایل‌ها و پوشه‌های اصلی سایت از طریق برخی تنظیمات وردپرس که به‌صورت پیش‌فرض هستند و اطلاعاتی که در سایت با این بخش به دست می‌آورد دسترسی پیدا کنند. در همان فایل فانکشن که در دو بخش قبلی تغییراتی در آن ایجاد کردیم عنوان جدید کد

if (!current_user_can('administrator')) :

 show_admin_bar(false);

endif;

را وارد می‌کنیم تا این نوار فقط برای مدیر اصلی سایت نمایش داده شود و برای کاربران پنهان شود.

 

بخش سوم: تنظیمات امنیتی فایل‌ها

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

عددهای اختصاص‌یافته برای هر سه نوع دسترسی به شرح زیر است:

خواندن = 4

نوشتن (تغییر در کدهای آن) = 2

اجرا = 1

مجموع اعداد این سه نوع دسترسی باهم، یک عدد دسترسی برای یک گروه مخاطب می‌شود؛ به‌عنوان‌مثال یک مدیر، همه مجوزهای دسترسی یک فایل را دارد پس عدد دسترسی این فایل برای مدیر 7 است؛ یا یک گروه خاص از مخاطبان فقط دسترسی خواندن و اجرا دارند؛ بنابراین عدد دسترسی این گروه مجموع اعداد 4 و 1 برای فایل یعنی 5 است. مخاطبان معمولی سایت فقط اجازه نوشتن فایل را دارند و عدد آن‌ها در میزان دسترسی به فایل 2 است.

درنتیجه سه رقم دسترسی فایلی که ما داریم بدین شرح است: 752؛ یعنی این فایل را مدیران می‌توانند هم بخوانند، هم بنویسند و هم اجرا کند؛ گروه مخصوص سایت فقط می‌توانند بخوانند و اجرا کنند؛ اما دسترسی نوشتن را ندارند و در آخر سایر کاربران سایت فقط می‌توانند این فایل را بنویسند. با این توضیح مختصر فهمیدیم که فایل‌ها با یک عدد سه‌رقمی میزان دسترسی را برای مخاطبان سایت کنترل می‌کند و هر فایل در هر پوشه در هاست، شامل یک عدد سه‌رقمی دسترسی است.

اگر بنا به هر دلیلی یک پوشه یا یک فایل را بخواهیم از دسترس یک نوع مخاطب خارج کنیم می‌توانیم تنها عدد آن را در میزان دسترسی فایل تغییر دهیم؛ مثلاً یک فایل را از 755 به 700 تغییر دهیم که به معنای عدم هرگونه دسترسی آن فایل برای همه کاربران به‌جز مدیر سایت است.

برای این کار فقط کافی است از طریق پنل هاست یک فایل را انتخاب و از سربرگ Permission میزان اعداد آن را تغییر دهیم؛ اما اگر ما دسترسی خواندن یک فایل مهم را از کاربران بگیریم عملاً کدهایی که در آن فایل وجود دارند و شاید لازم است که اجرا شوند خوانده نمی‌شوند. برای حل این مشکل کافی است که به عدد دسترسی فایل دست نزنیم و در محیط ویرایش فایل، کد

# Protect File

 

order allow,deny

deny from all

را به آن اضافه کنیم تا علاوه بر اینکه این فایل اجرا شود ازنظر دسترسی برای همه مخاطبین سایت پنهان شود و یک‌لایه امنیتی اولیه برای آن ایجاد می‌کنیم. باید توجه کنیم که به‌جای عبارت FULLFILENAME باید نام کامل فایل، یعنی اسم فایل همراه پسوند یا پیشوند آن را وارد کنیم؛ مثلاً اگر بخواهیم این قابلیت را برای فایل htaccess فعال کنیم باید پسوند و پیشوند آن راهم بنویسیم که به این صورت است.htaccess یا برای فایل wp-cinfig.php، کد آن

# Protect File

 

order allow,deny

deny from all

به این شکل خواهد بود. در آخر هم با ذخیره تغییرات کارمان به پایان می‌رسد.

 

بخش چهارم: معرفی و بررسی افزونه‌های امنیتی وردپرس

در این قسمت از آموزش امنیت وردپرس به بررسی دو مورد از پرکاربردترین افزونه‌های امنیتی برای وردپرس خواهیم پرداخت که به‌نوعی هردوی این‌ها یک کار واحد را انجام می‌دهند؛ اما باقابلیت‌ها و امکانات متفاوت. در این بخش این افزونه‌ها را معرفی و بررسی می‌کنیم و در آخر هم مقایسه‌ای بین این دو انجام می‌دهیم.

افزونه iThemes Security

اولین افزونه که قرار است آن را بررسی کنیم، آیتم سکوریتی است. همانند همه افزونه‌ها ابتدا باید این افزونه را از طریق فروشگاه وردپرس نصب کنیم. اگر قبلاً قابلیت افزودن و ویرایش افزونه‌های وردپرس را خاموش نکرده باشیم می‌توانیم از طریق پنل پیشخوان وردپرس در منوی کناری، از طریق بخش افزونه‌ها بخش افزودن وارد فروشگاه شویم. سپس با سرچ کردن iThemes Security اولین افزونه لیست، افزونه موردنظر ما است و باید آن را نصب و سپس فعال کنیم.

image073

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

image075

 

Site Type

پس از وارد شدن به صفحه تنظیمات پیکربندی افزونه، در اولین صفحه از پیکربندی سریع باید مشخص کنیم که زمینه فعالیت سایتمان چیست؟

شبکه (NETWOEK): یک سایت برای ارتباط مردم و جوامع

تجارت الکترونیک (ECOMMERCE) : یک سایت برای فروش محصولات و خدمات

مطالب سایت (BLOG) : یک سایت برای اشتراک‌گذاری افکار و یا شروع یک گفت‌وگو

غیرانتفاعی (NON-PROFIT) : یک سایت برای ترویج اهداف و دریافت کمک‌ها

بروشور (BROCHURE) : یک سایت ساده برای ترویج کسب‌وکار

نمونه کارها (PORTFOLIO) : یک سایت برای نشان دادن ساخته‌ها

image077

 

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

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

image079

 

با انتخاب قسمت کلاینت صفحه دیگری به‌منظور انتخاب کاربران به‌عنوان کلاینت در سایت باز می‌شود و باید این کاربران را از لیستی که خود افزونه گردآوری کرده است انتخاب کنیم.

image081

 

در صفحه بعدی باید انتخاب کنیم که از بین کلاینت‌های انتخابی‌مان در بخش قبل کدام‌یک بتوانند به افزونه سکوریتی دسترسی داشته باشند. به‌طور پیش‌فرض حساب ما در وردپرس، یکی از این کلاینت‌ها خواهد بود؛ چون‌که هم‌اکنون ما در حال تنظیم این افزونه هستیم و به‌عنوان یک مدیر به‌صورت پیش‌فرض به این افزونه دسترسی داریم.

image083

 

صفحه بعدی گزینه وجود دارد که با فعال کردن آن به این معنی است که کلاینت‌هایی که قبلاً انتخاب کردیم بتوانند علاوه بر خود افزونه، به تنظیمات و پیکربندی آن نیز دسترسی پیدا کنند و بتوانند آن را ویرایش کنند. اگر بخواهیم که به‌غیراز خودمان، این کلاینت‌ها دسترسی نداشته باشند گزینه به‌طور پیش‌فرض در حالت خاموش قرار خواهد داشت و نیازی به تغییر نیست؛ اما اگر بخواهیم این دسترسی را به کلاینت‌های انتخابی بدهیم باید این گزینه را فعال کنیم.

image085

 

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

image087

 

صفحه بعدی این سؤال را از ما می‌پرسد که آیا می‌خواهیم کاربران را که خط‌مشی سایت ما را قبول کرده‌اند را وادار کنیم که برای حساب خود یک رمز قدرتمند و یا رمز جدیدی که قبلاً استفاده نکرده‌اند را انتخاب کنند؟ که این قابلیت می‌تواند به‌طور محسوسی امنیت کاربران و سایت ما را بالا ببرد.

image089

 

 Features

در بخش ویژگی‌ها سه سربرگ مختلف را مشاهده می‌کنیم. سربرگ اول، امنیت لاگین است که در این قسمت می‌توانیم احراز هویت دومرحله‌ای برای لاگین کاربران را فعال کنیم که این تائید دومرحله‌ای نیازمند اطلاعات اضافی مانند آدرس ایمیل یا شماره تلفن در کنار نام کاربری و رمز عبور اصلی است.

image091

 

 سربرگ بعدی مخصوص حفاظت و جلوگیری سایت از هک شدن از طریق حملات بروت فورس (Brute Force) است. افزونه درخواست‌های حملات بروت فورس در صفحه لاگین را، برای هکرهایی که اطلاعات تصادفی را در فیلد نام کاربری و رمز عبور امتحان می‌کنند و یا سایت‌های خطرناک در اینترنت بلاک می‌کند.

image093

 

 سربرگ بعدی یعنی یوتی لیتیز، گزینه‌ای مبنی بر بررسی امنیت حرفه‌ای را در اختیار ما می‌گذارد و با فعال کردن این گزینه افزونه آیتم سکوریتی کاربران مختلف را بر اساس آدرس آی‌پی آن‌ها و با استفاده از یک درخواست API برای سرورهای آیتم سیکوریتی ایجاد می‌کند.

image095

 

 User Groups

در این صفحه با دو گزینه گروه‌های پیش‌فرض یا گروه‌های انتخابی مواجه هستیم. گروه‌های پیش‌فرض به‌طور خودکار ساخته‌شده توسط افزونه، کاربران ما را بر اساس قابلیت‌های وردپرس آن‌ها طبقه‌بندی کرده و تنظیمات امنیتی توصیه‌شده بر اساس انتخاب‌هایی که در بخش‌های قبل انجام داده‌ایم برای هر گروه را فعال می‌کنند. روش دیگر این است که از ابتدا با گروه‌های سفارشی شروع کنیم و برای گروه‌های کاربران خود، به هر نحوی که دوست داریم دسترسی‌ها را تنظیم کنیم. گروه‌های کاربری قابلیت‌های کاربر را تغییر نمی‌دهند، فقط کاربران با ویژگی‌های iThemes Security تحت تأثیر قرار می‌گیرند.

image097

 

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

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

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

در بخش احراز هویت دومرحله‌ای، با فعال کردن گزینه (گذشتن از احراز هویت دومرحله‌ای) اجبار به استفاده از این قابلیت برای این گروه از کاربران که تنظیمات آن را انجام می‌دهیم، از بین می‌رود؛ اما کاربران به‌طور دستی می‌توانند خودشان این قابلیت را در هنگام اولین ورود به سایت فعال کنند.

گزینه بعدی فعال کردن رمز عبور برای خود افزونه است؛ یعنی اگر از روش‌های ورود غیرمعمول مانند XMLRPC و Rest API استفاده شود به‌جای رمز عبور واقعی وردپرس، از پسورد خود افزونه برای تائید اعتبار استفاده شود؛ پسوردهایی که به‌راحتی از بین می‌روند و به‌هیچ‌عنوان نمی‌توانند برای ورود سنتی به وب‌سایت ما استفاده شوند.

image099

 

 در تب بعدی هم می‌توانیم برای گروهی که انتخاب کرده‌ایم تنظیماتی را که پیش‌تر انتخاب کردیم به همراه دسترسی‌های مختلف برای کاربران خاصی فعال و یا غیرفعال کنیم.

image101

 

Configure

image103

در صفحه بعدی و قسمت پیکربندی قرار است آدرس آی‌پی‌هایی را از گروه کاربران وارد کنیم که افزونه به آن‌ها اجازه دسترسی به تنظیمات را بدهد و به‌هیچ‌عنوان آن‌ها را بلاک نکندد. مثلاً آی پی خودمان. اگر این کار را به‌درستی انجام ندهیم ممکن است که افزونه بعداً به خود ماهم اجازه دسترسی به افزونه را ندهد و سایت از دسترسمان خارج شود. علاوه بر آی پی آدرس خودمان، می‌توانم آی پی آدرس دیگری هم وارد کنیم.

در زیر کادر Authorized Hosts دکمه‌ای وجود دارد که با کلیک بر روی آن، آدرس آی پی ما به‌صورت خودکار توسط افزونه شناسایی و به لیست افزوده می‌شود.

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

image105

 

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

image107

 

 Notification

در این بخش در ابتدا یک کادر مخصوص برای واردکردن آدرس ایمیل برای دریافت اعلان‌های سایت را داریم که می‌توانیم خالی بگذاریم و در زیر آن افراد گروه‌ها را مشاهده می‌کنیم که با فعال کردن تیک هرکدام، می‌توانند که اعلان‌های امنیتی افزونه را مشاهده کنند.

image109

 

 Secure Site

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

image111

image113

 

با پایان یافتن فرایند ایمن‌سازی دو گزینه رفتن به داشبورد و تنظیمات دوباره نمایان می‌شود که می‌توانیم از بین این دو انتخاب کنیم که به داشبورد افزونه هدایت شویم و یا پیکربندی اعمال‌شده را دوباره تغییر دهیم.

image115

 

 Dashboard

در پیشخوان سایت می‌توانیم به‌صورت مختصر داده‌ها و گزارش‌های مختلفی را از سایت به‌صورت نمودارهای گرافیکی مشاهده کنیم هم‌چنین امکان پشتیبان گیری از تنظیمات اعمال‌شده، لیست تحریم کردن کاربران، اسکن امنیتی سایت نیز در اینجا وجود دارد.

image117

image119

 

تنها نکته‌ای که وجود دارد این است که با تهیه نسخه پولی افزونه و ارتقا به آن، امکانات و قابلیت‌های دیگری نیز به پیکربندی افزونه، اضافه خواهد شد؛ که می‌تواند در امنیت بیشتر سایت ما مؤثر واقع شود.

image121

 

افزونه All In One WP Security And Firewall

برای نصب افزونه آل این وان سکیوریتی همانند سایر افزونه‌های وردپرس، به فروشگاه افزونه‌ها رفته و عبارت ‌ All In One Security And Firewall را جستجو می‌کنیم و اقدام به نصب و فعال‌سازی می‌کنیم. باید توجه داشته باشیم که قبل از نصب و فعال کردن این افزونه باید افزونه قبلی که افزونه iThemes Security نام داشت را غیرفعال و یا حذف کنیم تا تداخلی با این افزونه AIO نداشته باشد.

image123

 

بعد از نصب و فعال‌سازی این افزونه، گزینه‌ای مربوط به آن در منوی پیشخوان تحت عنوان امنیت کامل وردپرس ایجاد می‌شود برای اعمال تنظیمات و پیکربندی این افزونه برای حفظ امنیت وردپرس، باید از طریق این گزینه در منوی پیشخوان وردپرس و یا در لیست افزونه‌های وردپرس و قسمت مربوط به این افزونه و گزینه Setting آن به صفحه پیکربندی افزونه وارد شویم.

image125

 

 Settings

پس از وارد شدن به صفحه تنظیمات افزونه تب‌های مختلفی را مشاهده می‌کنیم و در هر تب بخش‌های مختلف امنیتی سایت وردپرسی قابل انجام است.

سربرگ General Settings:

اولین تب تنظیمات عمومی است. در قسمت ابتدایی آن، یک متن خوش‌آمد گویی از طرف خود افزونه است و لینک‌های پشتیبان گیری از پایگاه داده، فایل ‌htaccess و فایل wp-config.php را مشاهده می‌کنیم. اولین گزینه امنیتی در این تب، گزینه از کار انداختن ویژگی امنیتی این افزونه است؛ این گزینه به این معنی است که اگر تنظیمات امنیتی که با این افزونه که قبلاً اعمال‌شده است و یا به هر نحوی باعث تداخل در نحوه عملکرد خود وردپرس و سایر افزونه‌ها داشته باشد یا باعث بروز اشکال در کار کردن آن‌ها شود می‌توانیم این گزینه را فعال کنیم و از این تداخل جلوگیری شود. البته که ازنظر امنیتی سایت ما افت شدیدی خواهد داشت چون‌که تنظیمات امنیتی همگی غیرفعال می‌شوند. گزینه بعدی از کار انداختن همه دستورهای فایروال است؛ دستورهای فایروال، همهٔ کدهایی است که این افزونه به‌منظور ایجاد دیواره آتش خود و لایه امنیتی به فایل htaccess اضافه کرده است؛ با فعال کردن این گزینه این کدها و دستورها از فایل htaccess حذف می‌شود که در این صورت نیز امنیت سایت کاهش پیدا می‌کند. گزینه بعدی تنظیمات رفع باگ است به این منظور است که اگر تنظیمات امنیتی این افزونه با سایر افزونه‌ها تداخل پیدا کرد این گزینه را باید فعال کنیم تا حالت عیب‌یابی و رفع باگ بین این دو افزونه فعال شود و تا پایان این فرآیند داده‌های مختلفی از این تداخل جمع‌آوری و در داخل یک فایل لاگ قرار داده می‌شود و با بررسی و تحلیل آن‌ها توسط ما خطا و ایراد تداخل برطرف شود که در پایان این فرایند نیز باید این قابلیت را غیرفعال کنیم.

image127

image129

 

تب .htaccess File:

تب بعدی مربوط به تنظیمات ساده فایل htaccess است در این تب می‌توانیم از فایل htaccess پشتیبان گیری کنیم تا در مواقعی که نیاز داشته باشیم از طریق گزینه بعدی همین تب یعنی بازنشانی htaccess، بتوانیم آن را دوباره بازنشانی کنیم و ازنظر بکاپ داشتن این فایل در آینده، مشکلی هم ایجاد نشود.

image131

 

تب wp-cnfig.php File:

تب تنظیمات فایل wp-config.php است که همانند تب قبلی دو گزینه بکاپ و بازنشانی را دارد و همان کارهای ساده راه برای فایل ‌ wp-config انجام می‌دهد.

image133

 

 

تب WP Version Info:

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

image135

 

تب Import/Export:

گزینه برون‌ریزی تنظیمات AIO همه تنظیمات افزونه را در قالب یک فایل با فرمت.txt ذخیره می‌کند و در گزینه درون‌ریزی تنظیمات می‌توانیم فایل.txt تنظیمات را وارد کنیم و یا در کادر پایین کدهای فایل را کپی کنیم و بخش‌های مختلف را که نیاز نداریم حذف و ویرایش کنیم.

image137

 

تب Advanced Settings:

در تب پیشرفته نیز می‌توانیم مشخص کنیم که افزونه از چه متغیری برای بازیابی آدرس آی پی بازدیدکننده‌ها استفاده کند.

image139

 

 Dashboard

تب Dashboard:

بخش بعدی افزونه AIO، داشبورد آن است که داده‌ها و اطلاعات کلی از بخش‌های مختلف سایت در اختیار ما قرار می‌دهد؛ در تب داشبورد افزونه گزارش‌هایی شامل میزان قدرت و امنیت سایت را به‌صورت گرافیکی ارائه می‌کند و درصد مؤثر بخش‌های مختلف و تنظیمات آن‌ها بر امنیت کل سایت را نشان می‌دهد. بخش بعدی ویژگی‌های مهمی است همان‌طور که خود افزونه اشاره کرده است با فعال کردن آن‌ها به حداقل امنیت اولیه خواهیم رسید. گزینه‌های همچون قفل‌کردن نام کاربری، قفل‌کردن ورود کاربران به سایت، قفل‌کردن اجازه دسترسی به فایل توسط کاربران یا خاموش و روشن کردن دیوار آتش یا فایروال سایت قرار دارند. در ادامه گزینه حالت تعمیر را می‌بینیم و هنگامی‌که می‌خواهیم به سایت را آپدیت کنیم و تنظیمات جدیدی را اعمال کنیم با فعال کردن این گزینه سایت ما موقتاً از دسترس کاربران خارج می‌شود تا زمانی که آپدیت کامل و تکمیل گردد و این گزینه را خاموش‌کنیم.

image141

image143

 

تب System Info:

در تب اطلاعات سیستم، افزونه داده‌هایی از وردپرس و زبان برنامه‌نویسی php در سایت ما را ارائه می‌کند و لیست افزونه‌هایی که هم‌اکنون در سایت ما و وردپرس فعال هستند را هم نشان می‌دهد.

image145

 

تب Locked IP Addresses:

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

image147

 

تب Permanent Block List:

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

image149

 

تب AIOWPS Logs:

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

image151

image153

 

User Accounts

گزینه بعدی در منوی افزونه AIO، مربوط به حساب‌های کاربری سایت است؛

تب WP Username:

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

image155

 

تب Display Name:

در تب بعدی افزونه این بررسی می‌شود که لقب و نام نمایشی با یوزرنیم ورود به سایت یکسان نباشد.

image157

 

تب Password:

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

image159

image161

 

 User Login

گزینه بعدی افزونه، امنیت فرایند ورود کاربران است و اینجا تنظیماتی برای محافظت از صفحه لاگین در برابر حملات بروت فورس انجام خواهیم داد.

تب Login Lockdown:

اولین گزینه تب قفل ورود، به‌کارگیری ویژگی بازداری از ورود است که اگر بخواهیم تنظیمات این صفحه را استفاده کنیم باید این گزینه فعال کنیم.

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

 گزینه بعدی مربوط به حداکثر تعداد تلاش برای ورود به سایت است تا قبل از اینکه آی پی حساب کاربری قفل شود؛ که می‌توانیم یک عدد دلخواه را وارد کنیم. این عدد به‌صورت پیش‌فرض روی ۳ قرار دارد.

 گزینه بعدی بازه زمانی تلاش برای ورود دوباره است؛ بعدازاینکه کاربر از حد مشخصی که در گزینه قبلی تعیین نمودیم، بیشتر از آن برای ورود به سایت تلاش کند، به مدتی که در این قسمت که برحسب دقیقه مشخص می‌کنیم، حساب کاربری آن قفل می‌شود.

 گزینه بعدی میزان محدودیت حساب کاربری بعد از تلاش‌های پی‌درپی و عبور از حداکثر تعداد تلاش برای ورود است که در این مدت را هم برحسب دقیقه باید مشخص کنیم.

 گزینه بعدی خطای عمومی است؛ به این معنی که هرگاه کاربر با واردکردن نام کاربری اشتباه و غیر معتبر، نتواند به سایت ما وارد شود، پیامی مبنی بر خطای این مورد نمایش داده می‌شود.

 گزینه بعدی قفل‌کردن فوری نام کاربری‌های نامعتبر است؛ یعنی اگر شخصی یا ربات برنامه‌ریزی‌شده‌ای برای حملات بروت فورس تلاش کند که رمز عبور یک حساب کاربری را که یوزرنیم و نام کاربری آن در کتاب‌خانه ما وجود ندارد را به دست بیاورد، این افزونه آدرس آی پی آن را قفل می‌کند و اجازه دسترسی به صفحه لاگین نمی‌دهد.

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

image163

 

 بخش بعدی مربوط به آی‌پی‌هایی است که قفل‌شده‌اند که قبلاً در ابزار داشبورد آن‌ها را بررسی کردیم. در آخر هم بخش مربوط به لیست سفید آی‌پی‌های سایت است که تعیین می‌کنیم تنظیماتی که برای تلاش‌های ناموفق برای ورود در بالا را که تدارک دیده‌ایم، برای این لیست از آی‌پی‌هایی که تعریف می‌کنیم بی‌اثر باشد. اولین بخش این قسمت فعال و غیرفعال کردن این آپشن است و دومین قسمت مربوط به واردکردن آی‌پی‌های موردنظرمان است.

در پایان هر بخش نیز بعد از اعمال تغییرات باید دکمه آبی ذخیره تنظیمات را کلیک کنیم تا این موارد امنیتی اعمال شود.

image165

 

تب Failed Login Records:

تب بعدی، تب لیست رکوردهای ورود ناموفق را نشان می‌دهد که شامل آی پی ورود، شناسه کاربر، نام کاربری و تاریخ آن است. با استفاده از گزینه‌های این تب، یعنی خروجی با فرمت csv و پاک کردن همه گزارش‌های ورود ناموفق، می‌توان این لیست را کنترل کرد.

image167

 

تب Force Logout:

 تب بعدی، تب خروج اجباری است؛ این قسمت مربوط به تنظیمات مدت‌زمان حضور در سایت برای کاربران است. با فعال کردن و تیک زدن آن، این قابلیت را فعال می‌کنیم که کاربر پس از ورود به سایت و بعدازاینکه مدت‌زمان مشخصی را سپری می‌کند، به‌طور خودکار و به‌صورت اجباری از سایت و حساب کاربری خود خارج شود. مدت‌زمان حضور کاربر در سایت را همانند بخش‌های قبلی، می‌توانیم برحسب دقیقه وارد کنیم.

image169

 

تب Accounts Activity Logs:

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

image171

 

تب Logged In Users:

 در آخر هم تب کاربران واردشده به سایت را به‌صورت زنده مشاهده می‌کنیم که در این قسمت هم بر اساس سه مؤلفه شناسه کاربر، شناسه ورود و آدرس آی پی مرتب‌شده‌اند و از طرفی مدیران از طریق دکمه Force Logout در زیر هر شناسه کاربر، می‌توانند این کاربران را به‌صورت اجباری از حساب کاربری‌شان خارج کنند.

image173

 

User registration

تب Manual Approval:

گزینه بعدی در منوی افزونه AIO، تنظیمات امنیتی مربوط به نام‌نویسی کاربران است. در اولین تب یعنی تب تائید دستی، با فعال کردن گزینه فعال‌سازی تأیید دستی برای نام‌نویسی تازه، هر کاربر که به‌تازگی در سایت ما ثبت‌نام کرده است برای اینکه بتواند در سایت فعالیت کند باید توسط یک مدیر و به‌صورت دستی تأیید شود؛ در زیر این قسمت نیز لیست کاربران جدیدالورود و منتظر برای تأیید دستی نیز مشاهده می‌شود.

image175

 

تب Registration Captcha:

 تب بعدی کد امنیتی برای نام‌نویسی است؛ با فعال کردن کد امنیتی در برگه نام‌نویسی، در این صفحه برای تکمیل کردن فرم ثبت‌نام، کد امنیتی شامل جمع و تفریق و ضرب و تقسیم چند اعداد قرار خواهد گرفت که نتیجه و حاصل آن را باید کاربر در کادر مخصوص وارد کند که وجه تمایز آن با ربات تشخیص داده شود.

image177

 

تب Registration Honeypot:

در آخر هم تب هانی پات قرار دارد. با فعال کردن هانی پات یا به‌اصطلاح، ظرف عسل در صفحه ثبت‌نام، همان‌طور که قبلاً هم اشاره شد، یک کد مخفی در این صفحه قرار می‌گیرد که برای کاربر عادی مخفی است اما برای ربات‌ها قابل‌تشخیص است چون‌که به‌صورت کد تعبیه‌شده و ربات‌ها این فیلد جعلی را تکمیل می‌کنند و در این هنگام افزونه متوجه می‌شود که یک روبات در حال ثبت‌نام است و دسترسی ربات به صفحه را بلاک می‌کند و از این ثبت‌نام تقلبی جلوگیری می‌کند.

image179

 

Database Security

تب DB Prefix:

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

image181

 

تب DB Backup:

تب بعدی پشتیبان گیری از دیتابیس است. در اولین بخش آن پشتیبان گیری دستی راداریم که می‌توانیم هر موقع نیاز بود اقدام به ایجاد فایل پشتیبان از دیتابیسمان بکنیم. در بخش بعدی پشتیبان گیری خودکار را داریم که باید برای استفاده از آن گزینه فعال‌سازی پشتیبان گیری خودکار را تیک بزنیم. گزینه‌های بعدی هم مربوط به تنظیمات پشتیبان گیری خودکار است؛ مثلاً این پشتیبان گیری خودکار بعد از چه مدت تکرار شود؟ یا تعداد فایل‌های پشتیبان که ذخیره می‌شود چه چیزی باید باشد؟ در آخر هم با فعال کردن تیک فرستادن فایل پشتیبان از طریق ایمیل افزونه می‌تواند این فایل پشتیبان دیتابیس را به ایمیلی که در کادر زیر آن وارد می‌کنیم بفرستد.

image183

 

Filesystem Security

تب File Permissions:

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

 

تب PHP File Editing:

تب بعدی مربوط به غیرفعال کردن ویرایش همه فایل‌های وردپرس با فرمت php برای کاربران عادی است که با تیک زدن این گزینه و ذخیره تنظیمات آن به‌راحتی انجام می‌شود.

image185

 

تب WP File Access:

 در تب بعدی پیکربندی جلوگیری از دسترسی به فایل‌های پیش‌فرض وردپرس است. با زدن تیک این گزینه و فعال کردن آن دسترسی کاربران به فایل‌های مهم وردپرس که شامل License.txt, readme.html, wo-config-sample.php هستند و در ابتدای آموزش هم آن‌ها را حذف کردیم جلوگیری می‌شود و یوزر های عادی نمی‌توانند به این فایل‌ها دسترسی پیدا کنند.

image187

 

تب Host System Logs:

آخرین تب هم مخصوص گزارش‌های سیستم هاست است که می‌توانیم آن‌ها را به‌صورت یک فایل از افزونه استخراج‌کنیم. در اولین قسمت می‌توانیم نام این فایل را به‌دلخواه تغییر دهیم و برای مشاهده این گزارش کافی است بر روی گزینه دیدن تازه‌ترین گزارش‌های سیستم کلیک کنیم.

image189

 

‌Black List Manager

تب Ban Users:

گزینه بعدی افزونه، تنظیمات بلک لیست یا لیست سیاه سایت است. با تیک زدن فعال‌سازی بلک لیست برای آی پی یا نرم‌افزار نماینده، این قابلیت فعال می‌شود و در گزینه‌های بعدی آدرس آی پی اشخاص مدنظرمان را تعریف می‌کنیم تا در این لیست قرار بگیرند و همچنین در کادر بعدی نرم‌افزارهای رابط کاربر با سایتمان را می‌توانیم در این لیست سیاه قرار بدهیم. نکته مهم در این قسمت این است که افزونه این هشدار را به ما می‌دهد در آینده درصورتی‌که برای افزونه مشکلی پیش بیاید و یا به هر دلیل دیگری، این امکان وجود دارد که افزونه خودمان را هم در لیست سیاه قرار بدهد و دسترسی ماهم به سایت دچار مشکل شود؛ بنابراین با فعال‌سازی این قابلیت، این خطرات را هم باید بپذیریم.

image191

 

Firewall

تب Basic firewall Rules:

در گزینه بعدی منوی افزونه، تنظیمات مربوط به فایروال را داریم. در اولین تب این گزینه دستورهای پایه دیوار آتش را تنظیم می‌کنیم که با کلیک بر روی به کار انداختن محافظت فایروال پایه، تنظیمات فایروال در این بخش فعال می‌شود. حفاظت پایه دیوار آتش در ابتدا شامل جلوگیری از دسترسی کاربران عادی به فایل htaccess، از کار انداختن Server Signature، محدود کردن فایل‌های آپلودی در فایل htaccess، حفاظت از دسترسی به فایل wp-config و ... است. این فایروال بر اساس ایجاد و ویرایش دستورها در فایل htaccess کار می‌کند؛ بنابراین توصیه می‌شود که قبل از فعال کردن این قابلیت از فایل htaccess بک آپ تهیه کنیم.

 در ادامه امکان تعیین حداکثر اندازه کد و فایل برای بارگذاری در فایل htaccess بر اساس مگابایت را داریم. در گزینه بعدی با فعال کردن آن دسترسی کامل به فایل‌های XMLRPC را برای کاربر بلاک می‌کند و با فعال کردن گزینه بعدی غیرفعال کردن عملکرد Pingback از XMLRPC یا بازخوردهای آن به‌صورت غیرمستقیم نیز بلاک می‌شود. البته بسیاری از عملکردها، برنامه‌ها و افزونه‌هایی که با این فانکشن‌های XMLRPC کار می‌کنند نیز از کار خواهند افتاد.

 در آخرین گزینه این تب نیز قابلیت قفل‌کردن دسترسی به پرونده عیب‌یابی (debug.log) را می‌توانیم فعال کنیم که دسترسی کاربران عادی به این پرنده را هم با بلاک درخواست به‌صورت مستقیم قطع می‌کند.

image193

 

تب Additional Firewall Rules:

در تب دستورهای اضافی دیوار آتش اولین قابلیت از کار انداختن مشاهده محتوا به‌صورت فهرست (index View) است که با فعال کردن آن، افزونه AIO به کاربر اجازه نمی‌دهد که فایل‌های دایرکتوری و محتوای آن‌ها را به‌صورت ایندکس مشاهده کند و به آن‌ها دسترسی داشته باشد.

 گزینه بعدی قابلیت از کار انداختن ردیابی و ره‌گیری سایت است؛ با فعال کردن این گزینه امکان اینکه هکرها که بتوانند از طریق حملات XST یا XSShttp و با استفاده از کوکی‌ها به سایت ما نفوذ کنند از بین می‌رود.

 گزینه بعدی هم ممنوع کردن فرستادن دیدگاه از طریق استفاده پروکسی است؛ با فعال کردن این گزینه هم کاربرانی که از طریق پروکسی وارد سایت می‌شوند و اقدام به فرستادن دیدگاه می‌کنند، این افزونه با این قابلیت در برابر ارسال نظرها با پروکسی جلوگیری می‌کند.

 گزینه بعدی جلوگیری از استفاده کاربران از کوئری استرینگ های نامناسب (Bad Query Strings) است که این کوئری استرینگ ها برای حملات XSS به‌کاربرده می‌شوند. با جلوگیری از این کوئری استرینگ ها و فعال کردن این گزینه امکان اینکه هکرها بتوانند با استفاده از این کوئری ها به‌حساب مدیریت نفوذ کنند بسیار ناچیز می‌شود.

 در ادامه قابلیت فیلتر پیشرفته برای رشته‌های کاراکتری است که این ویژگی مانع جور شدن کاراکترهای نامناسب برای تشکیل کوئری ها و حملات XSS می‌شود.

image195

image197

 

تب 6G Blacklist Firewall:

در تب بعدی دستورهای لیست سیاه دیوار آتش یا دیوار آتش 6G را داریم. با فعال کردن دیوار آتش 6G، این افزونه یک لیست سیاه از آی‌پی‌ها، ربات‌ها و سایر کار برنماهای مضر که به‌صورت لیست از سایت perishablepress.com گردآوری‌شده‌اند دریافت می‌کند. اگر این آی‌پی‌ها درخواست دسترسی به سایت ما را داشته باشند، این افزونه به‌طور خودکار درخواست‌ها را بلاک می‌کند.

 گزینه بعدی هم فعال‌سازی محافظت 5G است که این لیست هم نسخه پیشین 6G است و از طریق همین سایت ارائه می‌شود.

image199

 

تب Internet bots:

تب بعدی تنظیمات فایروال برای ربات‌های اینترنت است. با فعال کردن تنها گزینه این تب، باعث مسدودسازی ربات‌های گوگل تقلبی و دسترسی ربات‌هایی که خود را به‌جای ربات‌های ایندکس کننده گوگل جا می‌زنند می‌شود که می‌خواهند که داده‌های سایت ما را جمع‌آوری کنند.

image201

 

تب Prevent Hotlinks:

تب جلوگیری از هات لینک هم تنها یک گزینه دارد؛ با فعال کردن آن، امکان استفاده از تصاویر سایت ما به‌صورت هات لینک وجود نخواهد داشت؛ یعنی اگر یک سایت دیگر برای استفاده از تصاویرمان، یک لینک ارجاع به سرور ما در محتوای خود استفاده کند، باعث استفاده از منابع ما به سود سایت خود می‌شود که با فعال کردن این قابلیت امکان ارجاع به سرور ما برای تصاویر از سرور دیگر وجود نخواهد داشت.

image203

 

تب 404 Detection:

در تب تنظیمات خطای ۴۰۴، با فعال کردن اولین گزینه اگر کاربری درخواستی برای سایت ما ارسال کند و این درخواست منجر به هدایت آن کاربر به صفحه ۴۰۴ شود، افزونه AIO آی پی این کاربر را ذخیره و قفل می‌کند و کاربر دیگر نمی‌تواند به سایت ما دسترسی پیدا کند. در گزینه بعدی هم مدت‌زمان قفل این آی پی مشخص می‌شود که چه مدت برحسب دقیقه، آی پی گفته‌شده با خطای ۴۰۴ نتواند به سایت ما دسترسی پیدا کند. با فعال کردن گزینه بعدی هم مشخص می‌کنیم که کاربر قفل‌شده در مدت‌زمانی که همچنان اجازه دسترسی به سایت ما را ندارد، اگر درخواستی برای سایت ارسال کند به چه آدرسی هدایت شود.

image205

 

 در بخش بعدی لیست گزارش خطای ۴۰۴ برای آی‌پی‌ها و کاربران را نشان می‌دهد که در ادامه می‌توان این لیست را به‌صورت فایل csv خروجی گرفت یا همه این لیست‌ها را حذف کرد.

image207

 

تب Custom Rules:

در آخرین تب تنظیمات دیوار آتش، یعنی تب سفارشی‌سازی می‌توانیم دستورهای امنیتی مخصوص فایروال یا سایر دستورها را از این بخش وارده فایل htaccess کنیم. اولین گزینه، این قابلیت را برای ما فعال می‌کند؛ دومین گزینه به این معنی است که دستورهایی که قرار است وارد کنیم در ابتدای فایل htaccess قرار بگیرند و در انتهای آن نباشند؛ در آخر هم کادر مخصوص واردکردن دستورها را داریم.

image209

 

همان‌طور که قبلاً اشاره کردیم،‌ نکته مهمی که باید به آن توجه کنیم این است که در انتهای هر تب با اعمال تغییرات و ویرایش تنظیمات برای ثبت شدن کامل آن‌ها، باید گزینه ذخیره در انتهای هر تب که به رنگ آبی است را کلیک کنیم.

Brute Force

تب Rename Login Page:

گزینه بعدی تنظیمات Brute Force است؛ در تب تغییر نام صفحه ورود امکان تغییر آدرس صفحه ورود یا لاگین کاربران سایت را داریم که اگر این قابلیت تغییر را فعال کنیم و بخواهیم آدرس پیش‌فرض وردپرس را برای این صفحه تغییر دهیم، باید در گزینه بعدی و در کادر مخصوص آدرس دلخواهمان را وارد کنیم.

image211

 

تب Cokie Based Brute Force Prevention:

تب جلوگیری از بورت فورس بر اساس کوکی، تنظیمات امنیتی برای جلوگیری از حملات بروت فورس از طریق کوکی را ارائه می‌کند. اولین گزینه فعال کردن جلوگیری از حمله بروت فورس است؛ این گزینه به این معنا است، کسانی که می‌خواهند با صفحه لاگین به سایت ما وارد شوند و کاربران سایت هستند، باید کوکی مخصوص خود را به همراه به یک کد رمز داشته باشند تا اجازه دسترسی به پیشخوان سایت را داشته باشند و از آن استفاده کنند. این قابلیت باعث می‌شود که درخواست‌های هکرها و ربات‌های مخصوص باهدف حملات بروت فروس از طریق کوکی‌ها بلاک شود؛ در گزینه بعدی نیز واژه محرمانه که در کوکی‌های هر کاربر سایت قرار می‌گیرد را می‌توانیم به‌دلخواه انتخاب کنیم. گزینه بعدی قرار است مسیری را انتخاب کنیم برای هنگامی‌که هکر می‌خواهد وارد صفحه لاگین ما شود و به‌جای صفحه لاگین، به آدرسی که قرارمی دهیم هدایت شود. در گزینه بعدی اگر سایت ما نوشته یا برگه‌ای دارد که از طریق رمزگذاری خود وردپرس محافظت می‌شوند باید این گزینه را فعال کنیم. در ادامه اگر قالب یا افزونه‌ای داریم که از درخواست‌های ایجکس (AJAX) استفاده می‌کند، باید این گزینه را نیز فعال کنیم.

image213

 

تب Login Captcha:

در تب کد امنیتی برای ورود و یا کپچا (CAPTCHA)، در اولین قسمت می‌توانیم احراز هویت کپچای گوگل را برای صفحه ورود یا صفحه بازیابی گذرواژه فعال کنیم. البته باید کلید سایت و کلید مخفی گوگل برای کپچا را داشته باشیم. در بخش‌های بعدی می‌توانیم برای صفحه ورود و صفحه بازیابی گذرواژه و یا صفحه ورود سفارشی یک کد امنیتی دیگر (شامل اعداد و چهار عمل اصلی جمع و تفریق و ضرب و تقسیم) قرار دهیم.

image215

image217

 

تب Login Whitelist:

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

image219

 

تب Honeypot:

تب هانی پات یا ظرف عسل هم همان‌طور که قبلاً اشاره شد در کدهای صفحه ورود یک فیلد مخفی برای کاربران و کد آشکار برای ربات‌ها است که کاربران واقعی در صفحه ورود این فیلد را مشاهده نمی‌کنند؛ اما ربات‌ها به دلیل اینکه از طریق کد عملکردها را درک می‌کنند این فیلد را به‌اجبار پر می‌کنند و ماهیت آن‌ها برای افزونه آشکار می‌شود و دسترسی آن‌ها به سایت و صفحه ورود بلاک می‌گردد و این قابلیت را اینجا هم در اختیار داریم. با فعال کردن تنها گزینه این تب، قابلیت هانی پات برای سایت ما از طریق افزونه AIO فعال می‌شود.

image221

 

Spam Prevention

تب Comment Spam:

گزینه بعدی منوی افزونه، جلوگیری از اسپم نام دارد. اولین تب تنظیمات جلوگیری از اسپم، برای دیدگاه یا کامنت های اسپم در سایت است. اولین گزینه مربوط به فعال کردن کد امنیتی یا کپچا برای ارسال دیدگاه در فرم‌ها است و دومین گزینه هم مخصوص جلوگیری از اسپم کردن روبات‌ها در بخش دیدگاه‌ها است که افزونه این روبات‌ها را تشخیص و دسترسی آن‌ها را به بخش نظرات بلاک می‌کند.

image223

 

 تب Comment Spam IP Monitoring:

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

image225

image227

 

تب‌های Buddy Press و BB Press:

در دو تب بعدی می‌توانیم کد امنیتی برای صفحه ورود به افزونه بادی پرس (Buddy Press) و بی بی پرس (B B Press) را فعال کنیم؛ این قابلیت‌ها تنها در صورتی قابل‌اجرا هستند که این دو افزونه در وردپرس ما نصب‌شده باشند.

  • Scanner

تب File Change Detection:

اولین تب گزینه اسکنر، مخصوص شناسایی تغییرات فایل‌های وردپرس است و به این منظور است که بفهمیم آیا هکری کدهای خود را وارد فایل‌های ما کرده است یا خیر. اولین گزینه همه فایل‌های وردپرس را برای شناسایی تغییر، اسکن می‌کند و دومین گزینه نتایج اسکن فایل‌ها را به ما نشان می‌دهد.

image229

 

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

image231

 

  • Maintenance

تب Visitor Lockout:

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

image233

 

  • Miscellaneous

تب Copy Protection:

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

image235

 

تب Frames:

در تب فریم‌ها با فعال کردن حفاظت از آی فریم‌ها، مطالب و محتوای سایت ما برای قرار گرفتن در قالبی دیگر به‌عنوان یک محتوا برای سایت دیگران محافظت می‌شود.

image237

 

 تب User Enumeration:

در تب شمارش کاربران، با تیک زدن گزینه آن و غیرفعال کردن شمارش کاربران، شمارش و نام‌گذاری کاربران سایت در انتهای هر لینک سایت متوقف می‌شود و تگ شمارش در لینک حذف می‌شود.

image239

 

تب WP REST API:

در تب WP REST API با فعال کردن این گزینه مجوزهای درخواست رست از طرف برنامه‌های شخص ثالث و کاربران برای سایت ما و وردپرس درصورتی‌که تأیید نشده باشند بلاک می‌شوند.

image241

 

مقایسه دو افزونه

همان‌طور که مشاهده کردید در این آموزش، امکانات و ویژگی‌های امنیتی وردپرس را بررسی کردیم و در بخش‌های مختلف نیز از افزونه‌های وردپرس بهره بردیم؛ اما علاوه بر این افزونه‌ها، پلاگین های جامع و تکمیلی برای امنیت وردپرس یعنی آیتمز سکوریتی و آل این وان سیکوریتی که محبوب‌ترین و مشهورترین این دسته از افزونه‌های وردپرس است را هم به‌طور کامل بررسی کردیم. هدف ما از این کار این بوده است که اگر یکی از این افزونه‌ها به هر دلیلی مثلاً اختلال با بسیاری از افزونه‌های دیگر در وردپرس برای یک سایت کار نکند، مخاطبان بتوانند از افزونه دیگر به‌جای آن استفاده کنند.

در ادامه می‌خواهیم یک مقایسه مختصر از قابلیت‌های این افزونه‌ها درزمینهٔ های مختلف انجام دهیم.

 

iThemes Security

All In One Security

 And Firewall

رایگان بودن

دارای نسخه پولی

کاملاً رایگان

زمان انجام تنظیمات اولیه

متوسط

بسیار کند

امکان نمایش پیام دلخواه برای آی‌پی‌های مسدود شده

بله

خیر

امکان تغییر نام پوشه wp-content

بله

خیر

امکان تغییر آی‌دی کاربرمدیر

بله

خیر

امکان قرار دادن سؤال امنیتی

خیر

بله

امکان فریب ربات‌های لاگین با هانی پات

خیر

بله

امکان مسدودسازی مدیریت در ساعاتی از روز

بله

خیر

امکان غیرفعال سازی اخطارهای مختلف صفحه لاگین

بله

خیر

ایجاد لیست سفید آی‌پی‌های مجاز به لاگین

خیر

بله

ایجاد لیست سفید آی‌پی‌ها برای هرگز مسدود نشدن

بله

خیر

امکان مسدودسازی ربات‌های جعلی گوگل

خیر

بله

امکان مسدودسازی لیست سیاه سایت hackrepair.com

بله

خیر

امکان مسدودسازی لیست سیاه سایت perishablepress.com

خیر

بله

امکان اسکن فایل‌ها با API سایت virustotal.com

بله

خیر

امکان مسدودسازی خودکار تعداد زیاد اخطار ۴۰۴

خیر

بله

نمایش آی‌پی نظرات اسپم برای مسدودسازی

خیر

بله

تهیه پشتیبان برنامه‌ریزی‌شده از فایل‌های وردپرس

خیر

خیر

امکان تغییر پیشوند جداول دیتابیس وردپرس به پیشوند دلخواه

خیر

بله

امکان مسدودسازی آدرس URL غیر انگلیسی

بله

خیر

امکان غیرفعال کردن صفحه author برای کاربران بدون مطلب

بله

خیر

امکان دسترسی به بخش مدیریت فقط برای مرورگر ما توسط کوکی‌های مرورگر

خیر

بله

امکان فعال‌سازی حالت تعمیر و نمایش پیام دلخواه به کاربران

خیر

بله

امکان تعیین زمان برای خروج اجباری هر کاربر

خیر

بله

امکان غیرفعال کردن کپی، راست کلیک و انتخاب متون سایت

خیر

بله

امکان جلوگیری از هات لینک

خیر

بله

امکان جلوگیری از قرار دادن صفحات سایت در آی فریم

خیر

بله

 

دریا بهرامی- نویسنده

1192
A
A