آموزش نصب و تنظیم افزونه NinjaFirewall – فایروال وردپرس

2

آموزش نصب و تنظیم افزونه NinjaFirewall - فایروال وردپرس

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

بخش اول : معرفی افزونه NinjaFirewall

افزونه NinjaFirewall در نگاه صرفا اول یک فایروال قدرتمند برای وردپرس است. اما چیزی که این افزونه را از سایر افزونه های وردپرس کاملا متمایز میکند این است که نینجا فایروال در واقع یک وب اپلیکیشن کاملا مستقل است که پیش از بارگذاری وردپرس، و پیش از اینکه هر نوع درخواستی فرصت رسیدن به سطح PHP و وردپرس را داشته باشد، اجرا میشود و یک سد امنیتی قدرتمند و محکم جلوی وبسایت شما ایجاد میکند. هر درخواستی که قرار باشد به وبسایت شما برسد، پیش از هر چیز توسط دیوار آتش NinjaFirewall بررسی شده و سپس در صورتی که درخواست ارسال شده از دید این فایروال دارای خطری نباشد، اجازه ی رسیدن به سطح وردپرس یا همان سایت شما را پیدا خواهد کرد.
پس همانطور که حتما خودتان هم متوجه شدید، برعکس سایر افزونه ها که پس از بارگذاری وردپرس در سایت شما لود میشوند، این فایروال، پیش از بارگذاری هر نوع اسکریپت دیگری، اجرا شده و کنترل همه چیز را به دست خواهد گرفت. بنابراین سطح امنیتی که این افزونه در اختیار شما قرار میدهد چیزی در سطح ModSecurity و Suhosin است.
نکته ی جالب توجه در رابطه با نینجا فایروال این است که این فایروال میتواند از هر فایلی که در مسیر نصب سایت شما قرار داشته باشد، حتی اگر فایل مربوطه هیچ ارتباطی به فایلهای وردپرس نداشته باشد نیز مراقبت کند. بنابراین کلیه ی اسکریپت های مخرب، اسکریپت های شل هکر ها، بک دور ها و … به سادگی توسط نینجا فایروال فیلتر میشوند.

بخش دوم : نکات بسیار مهم پیش از نصب افزونه NinjaFirewall

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

  1. افزونه را تنها از بخش مدیریت وردپرس نصب، به روز رسانی یا حذف نمایید.
  2. به هیچ عنوان هیچ یک از اعمال بالا را از طریق کنترل پنل هاست یا نرم افزار های اف تی پی و … انجام ندهید. (همه ی این اعمال باید فقط و فقط از طریق وردپرس انجام شوند)
  3. به هیچ عنوان نام فولدر، نام فایل ها و سایر اطلاعات افزونه را تغییر ندهید و هرگز آن را به محل دیگری جابجا نکنید.
  4. در صورتی که NinjaFirewall روی سایت شما نصب است، به هیچ عنوان سایت خود را به محل دیگری انتقال ندهید. حتما پیش از انتقال افزونه را غیر فعال کرده و سپس حذف نمایید و در محل جدید مجددا نسبت به نصب افزونه اقدام کنید.
  5. تمامی هشدار های فوق حتی در صورت غیر فعال بودن افزونه نیز صادق هستند. بنابراین به این موارد توجه ویژه ای داشته باشید.

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

بخش سوم : نصب افزونه فایروال وردپرس NinjaFirewall

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

راهنمای نصب فایروال وردپرس ninjafirewall

بخش چهارم : راه اندازی اولیه NinjaFirewall

برای اینکه بتوانیم کارمان را با نینجا فایروال شروع کنیم لازم است که در پنل مدیریت وردپرس به منوی NinjaFirewall مراجعه کنید. وقتی برای اولین بار وارد این منو شوید، افزونه به شما خوش آمد گفته و برخی از هشدار های لازم جهت کارکرد صحیح افزونه را به شما اعلام میکند. موارد مهم موجود در صفحه ی خوش آمد گویی را در بخش دوم همین آموزش برای شما شرح دادیم. بنابراین در اینجا میتوانید با کلیک بر روی دکمه Enough chitchat, let’s go مراحل راه اندازی فایروال را آغاز کنید.

آموزش تنظیمات php و webserver در افزونه ninjafirewall

همانطور که در تصویر بالا مشاهده میکنید در قدم اول لازم است که تنظیمات وب سرور و php را برای افزونه مشخص کنیم. در حالت عادی نینجا فایروال خودش به صورت اتوماتیک وب سرور و هندلر php شما را تشخیص داده و گزینه ی مناسب را در قسمت Select Your HTTP Server and your PHP server API انتخاب میکند. (مثلا در بالا چون ما از لایت اسپید استفاده میکردیم، گزینه ی مرتبط با Litespeed برای ما انتخاب شده) اما اگر این تنظیمات از دید شما صحیح نیست میتوانید خودتان گزینه ی صحیح را انتخاب کنید. به طور معمول انتخاب شما در صورت استفاده از آپاچی باید یکی از گزینه های Apache + CGI/FastCGI یا Apache + SuPHP باشد. اگر هم از وب سرور دیگری مثل لایت اسپید یا Nginx و … استفاده میکنید میتوانید با توجه به تنظیمات سرور میزبانی خود، گزینه ی مرتبط را انتخاب کنید. اگر در انتخاب گزینه شک دارید، بهتر است یا از گزینه ای که خود افزونه برای شما انتخاب میکند استفاده کنید و یا تنظیمات صحیح را از پشتیبانی هاست خود جویا شوید.
سپس در بخش Select the PHP initialization file supported by your server گزینه ی php.ini را انتخاب کنید. (این تنظیم تقریبا همیشه صحیح است مگر اینکه خودتان سرور را به شکل دیگری تنظیم کرده باشید که در آن حالت بر اساس تنظیمات خود باید گزینه ی مناسب را انتخاب کنید)
در پایان روی گزینه ی Next Step کلیک کنید تا به بخش بعدی هدایت شوید.

در مرحله ی بعد لازم است که کد هایی که NinjaFirewall در اختیار شما قرار میدهد را در بخش های مربوطه در فایلهای php.ini و .htaccess هاست خود قرار دهید. در اینجا اگر محل نصب وردپرس شما قابل نوشتن باشد، (نمایش عبارت yes با رنگ سبز در این بخش نمایانگر قابل نوشتن بودن دایرکتوری نصب وردپرس است) خود فایروال میتواند این تغییرات را اعمال کند. برای اینجا تغییرات لازم توسط خود فایروال در فایلهای مربوطه انجام شود، در پایین صفحه گزینه ی Let NinjaFirewall make the above changes و در صورتی که میخواهید خودتان تغییرات را در فایلهای مربوطه اعمال کنید گزینه ی I want to make the changes myself را انتخاب نمایید. توجه داشته باشید که در صورت انتخاب گزینه ی دوم، باید کد های اعلام شده را در فایلهای htaccess و php.ini هاست خود قرار دهید. در بالای هر باکس کد، مسیر دقیق قراردهی برای شما درج شده است تا کار شما آسان تر شود. ما گزینه ی اول را انتخاب میکنیم تا افزونه خودش تغییرات لازم را در فایلهای مربوطه اعمال کند. در پایان بر روی دکمه Next Step کلیک کنید تا به مرحله ی بعدی هدایت شوید.

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

راه اندازی موفقیت آمیز فایروال وردپرس ninjafirewall

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

بخش پنجم : آشنایی بیشر و اعمال تنظیمات دلخواه بر روی فایروال

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

Statistics : در این بخش میتوانید اطلاعات آماری کارکرد فایروال را مشاهده کنید. البته بدیهی است که افزونه در همان ابتدای کار قادر به ارائه این اطلاعات نخواهد بود و باید مدتی از شروع به کار افزونه بگذرد تا اطلاعات لازم توسط فایروال گرداوری شده و سپس به شما ارائه شود.

Firewall Options : تنظیمات کلی فایروال در این بخش در اختیار شما قرار میگیرند. در اینجا میتوانید فعال و غیر فعال بودن فایروال را مشخص کنید، تعیین کنید که در صورت بن شدن یک کاربر چه پیامی به وی نمایش داده شود و همچنین تنظیمات خود را برون ریزی کرده و یا اگر قبلا یک فایل از تنظیمات برون ریزی شده نگه داشته اید، آن را در این بخش درون ریزی کنید. بدیهی است که فایل تنظیمات باید با ورژن افزونه سازگار باشد.

Firewall Policies : تنظیمات موجود در این بخش، نوع رفتار فایروال را تعیین میکنند. تنظیمات موجود در این قسمت بسیار مفصل هستند و شما میتوانید در صورت تمایل یک به یک آنها را بر حسب نیاز خود سفارشی سازی کنید. در میان این تنظیمات، گزینه های جالبی برای جلوگیری از حملات XSS، جلوگیری از سرقت کوکی ها، پاکسازی متغیر های ارسال شده به اسکریپت، جلوگیری از دسترسی مستقیم به فایلهای موجود در فولدر های وردپرس و … دیده میشود. مثلا در اینجا میتوانید با استفاده از فعال کردن گزینه ی Block access to WordPress XML-RPC API احتمال حلمات روی فایل XML-RPC سایت خود را از بین ببرید ولی با همه ی این اوصاف، اگر به این تنظیمات اشراف ندارید توصیه میشود که تنظیمات این بخش را به حال خودشان بگذارید و همه چیز را در حالت پیشفرض رها کنید! (اما باز هم میگوییم، تنظیمات بسیار عالی در این بخش وجود دارد که اگر کمی حوصله داشته باشید میتوانید نتایج خوبی از انها دریافت کنید)

File Guard : در این بخش در صورت تمایل میتوانید امکان File Guard را فعال کنید. فایل گارد امکانی بسیار جالب و کاربردی است که در صورت فعال بودن آن، اگر یک هکر فایل شل (یا هر نوع فایل آلوده ی دیگر) به سایت شما آپلود کند یا اینکه درون فایلی که از قبل در هاست موجود است، کدی مخرب تزریق کند و سپس سعی کند به طور مستقیم به فایلهای ذکر شده دسترسی پیدا کند، NinjaFirewall بلافاصله از این مسئله آگاه خواهد شد و با ارسال ایمیل هشدار (حاوی نام اسکریپت، آی پی، درخواست، تاریخ و زمان) شما را به سرعت از این مسئله آگاه خواهد کرد تا بتوانید سریعا اقدامات لازم را انجام دهید و از هک شدن سایت خود جلوگیری کنید.

File Check : با استفاده از امکان File Check میتوانید از سالم بودن و دست نخورده بودن فایلهای سایت خود اطمینان حاصل کنید. برای انجام این کار ابتدا لازم است که با کلیک روی دکمه ی Create Snapshot یک اسنپ شات از فایلهای خود آماده کنید. نینجا فایروال در بازه های زمانی مشخص، فایلهای سایت شما را با اسنپ شات تهیه شده مقایسه میکند و در صورتی که هر نوع تغییر در محتوا یا در سطح دسترسی و … فایل ایجاد شده باشد، بلافاصله از این امر آگاه خواهد شد. همچنین در این بخش میتوانید محل تهیه اسنپ شات و دایرکتوری هایی که مایل نیستید اسکن شوند را نیز تعیین کنید.

Event Notifications : در این بخش میتوانید تعیین کنید که در چه زمان هایی نینجا فایروال از طریق ارسال هشدار، شما را از یک واقعه با خبر کند. مثلا میتوانید تعیین کنید که در صورت ورود ادمین به ناحیه ی مدیریت از این امر با خبر شوید. یا هرگاه افزونه یا قالبی جدید به سایت افزوده میشود به شما اطلاع داده شود و … در اینجا میتوانید گزینه های دلخواه را جهت دریافت اعلان انتخاب کرده و در انتها تنظیمات را ذخیره کنید. همچنین میتوانید تعیین کنید که این هشدار ها به ایمیل های مختلفی ارسال شوند. کافی است در بخش Contact email در انتهای صفحه، لیستی از ایمیل ها را که با کاما از یکدیگر جدا شده باشند وارد کنید تا در صورت روی دادن هر یک از وقایع بالا، هشدار به مربوطه به ایمیل های تعیین شده ارسال شود.

Login Protection : در این قسمت یکی از مهم ترین تنظیمات افزونه قرار گرفته است. تنظیمات این بخش میتواند از سایت شما در برابر حلمات Brute Force محافظت کند. در اینجا اگر گزینه ی Always On را انتخاب کنید، محافظت در برابر حملات بروت فورس به صورت دائمی فعال خواهد بود اما اگر گزینه ی Yes, If under attack را انتخاب کنید، تنها در زمانی که فایروال تشخیص دهد روی سایت شما حمله ای در جریات است، به صورت اتوماتیک Login Protection را فعال میکند.

در اینجا اگر Always On را همیشه روشن را انتخاب کنید، تنظیمات جدیدی برای شما به نمایش در می آید. با فعال کردن گزینه ی Apply the protection to the xmlrpc.php script as well میتوانید سایت خود را در برابر حملاتی که روی فایل xmlrpc.php انجام میشود نیز محافظت کنید. همچنین اگر قبلا روی بخش مدیریت خود رمز قرار نداده باشید با وارد کردن رمز عبور و نام کاربری در قسمت HTTP authentication میتوانید همین کار را انجام دهید.

اگر هم گزینه ی Yes, if under attack را انتخاب کنید، در صورتی که سایت شما زیر حمله باشد، بروت فورس پروتکشن به صورت اتوماتیک برای شما فعال خواهد شد. پس از فعال کردن این گزینه نیز تنظیمات جدیدی در اختیار شما قرار میگیرد. علاوه بر تنظیماتی که در بخش قبل به شما توضیح دادیم، در اینجا میتوانید نوع درخواست را نیز تعیین کنید و همچنین مشخص کنید که چه تعداد تلاش ناموفق برای ورود در چه مدت زمانی به عنوان حمله شناخته شود.

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

Live Log : در این بخش میتوانید لاگ ترافیک سایت خود را به صورت زنده مشاهده کنید. توجه داشته باشید که لاگ بازدید های ادمین در این بخش نشان داده نخواهد شد. بنابراین اگر میخواهید این بخش را تست کنید، صفحه ی سایت خود را در مرورگر دیگری که با آن به بخش مدیریت وارد نشده اید باز کنید تا لاگ ترافیک در اینجا نمایان شود.

Rules Editor : در این بخش میتوانید رول های مختلف فایروال را بر اساس نیاز خود، غیر فعال یا فعال نمایید.

Updates : در این منو نیز میتوانید تعیین کنید که آیا فایروال به صورت اتوماتیک آپدیت شود یا خیر.

دو منوی آخر یعنی WP+ Edition و About هم که نکته ی خاصی جهت مرور ندارد. فقط شاید دوست داشته باشید بدانید که این فایروال یک نسخه ی حرفه ای هم دارد که امکانات آن را میتوانید در زیر منوی WP+ Edition مشاهده کنید و در صورت تمایل با هزینه ی حدودا 30 دلار به ازای هر دامنه، فایروال خود را به نسخه ی حرفه ای آپدیت کنید.

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

خسته نباشیم! امیدوارم از این آموزش استفاده کرده باشید.

دسترسی آسان به این مطلب لینک کوتاه :
شاید از اینها هم خوشتان بیاید!
2 دیدگاه
  1. علی می گوید

    سلام، لطفا راهنمایی کنید این افزونه بهتره iThemes Security یا NinjaFirewall و اینکه میشه باهم نصبش کرد؟ بهترین پیشنهاد چیه با هم نصب کنم یا یکی.
    اینم بگم که من وردپرش شبکه دارم.
    تشکر

    1. MrCode می گوید

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

ارسال پاسخ

آدرس ایمیل شما منتشر نخواهد شد.