نوشته‌ها

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

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

یکی از پایه ای ترین روش ها که در کنترل پنل های مختلف از جمله  سی پنل و دایرکت ادمین پشتیبانی می شود قابلیت Password Protect و یا محافظت از طریق قرار دادن کلمه عبور بر روی پوشه های مدیریتی است. در حالت پیشفرض  فایل های مدیریتی ورد پرس در پوشه wp-admin قرار دارند. لذا پس از ورود به ناحیه کاربری خود به پنل میزبانی دایرکت ادمین و سی پنل بروید. در کنترل پنل دایرکت ادمین به بخش مدیریت فایل ها رفته و در ستون Action روی دکمه Protect کلیک نمایید. در پنجره باز شده در اولین کادر عبارت Member’s Area را وارد نمایید و در کادر های بعدی نام کاربری و کلمه عبور مورد نظر جهت دستیابی به پوشه های محافظت شده را وارد نمایید. در انتها مربع Protection Enabled را تیک زده و تغییرات را ذخیره نمایید. همچنین در سی پنل با کلیک راست روی پوشه مورد نظر می توانید Password Protect را برای دایرکتوری مدیریت انتخاب کنید و از درون صفحه باز شده نام کاربری و عبور برای آن ایجاد نمایید.

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

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_URI} ^/wp-login\.php(.*)$ [OR] RewriteCond %{REQUEST_URI} ^/wp-admin$
RewriteCond %{REMOTE_ADDR} !^123\.123\.123\.123$
RewriteCond %{REMOTE_ADDR} !^123\.123\.123\.124$
RewriteRule ^(.*)$ – [R=403,L] </IfModule>

 که در آن عبارت 123\.123\.123\.123 آی پی استاتیک اینترنتی شماست. در پایان تنها کاربری که از این آی پی اقدام به ورود به بخش مدیریتی میکند مجاز به دسترسی خواهد بود.

چند روش برای بالا بردن امنیت مدیریت محتوا

قبلا در مورد امنیت سیستم های مدیریت محتوا مطالبی در همین سایت ارسال کرده بودیم ، در این مطلب سعی کردیم چند روش کلی برای تمام سیستم های مدیریت محتوا و یا سایت های استاتیک معرفی کنیم که با انجام این کار ها امنیت سایت شما بهتر می شود.

سطح دسترسی فایل های دیتابیس :

بهتر است سطح دسترسی فایل های پیکربندی (config) دیتابیس ( database ) را محدود کنید. در سیستم های suphp می توانید این فایل سطح دسترسی این فایل را روی 400 تنظیم کنید و در سیستم های dso باید آن را روی 444 تنظیم کنید. بعد از تغییر سطح دسترسی برای ویرایش آن لازم است ابتدا سطح دسترسی این فایل ها را روی 644 تنظیم کنید و سپس پس از ویرایش مجدد محدود کنید.

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

سطح دسترسی فایل INDEX :

با تغییر سطح دسترسی فایل های Index در suphp روی 400 امکان ویرایش این فایل دیگر وجود ندارد البته امکان حذف آن وجود دارد به همین دلیل امنیت این روش 100 درصد نیست اما بهتر است استفاده شود. با انجام این کار ها حداقل می توانید از ورود هکر های تازه کار جلوگیری کنید.

انتقال سایر فایل های index به صفحه اصلی با htaccess :

هکر ها می توانند فایل های index دیگری روی هاست شما ایجاد کنند و با این روش صفحه آن ها لود می شود. برای جلوگیری از این مورد کافیست صفحه Index پیش فرض هاست را تغییر دهید و سایر فایل ها را به صفحه اصلی خود ری دایرکت ( Redirect) کنید. به این ترتیب در صورت ایجاد سایر فایل های index این فایل ها پیش فرض نیستند و محتوا صفحه اصلی شما تغییر نمی کنند و همچنین در صورت باز شدن مستقیم این فایل اجرا نمی شود و به صفحه اصلی شما منتقل می شود. برای امنیت بیشتر سطح دسترسی htaccess را روی 400 تنظیم کنید.

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

RedirectMatch 301 /index.html http://www.damaneshoma.com/index.php

در مثال بالا با باز کردن فایل index.html آدرس به index.php تغییر می کند.

جلوگیری از اجرا شدن مستقیم سایر فایل های php : با وارد کردن کد زیر می توانید از اجرا شدن مستقیم فایل های php جلوگیری کنید. با استفاده از این روش در صورت ایجاد سایر فایل های php روی سرور شما امکان اجرا آن وجود ندارد. برای مثال اگر یک هکر یک فایل test.php را روی هاست شما آپلود کند با اجرا آن با خطا 403 مواجه می شود. البته باید توجه داشته باشید که بعد از این کد فایل هایی که نیاز است مستقیم اجرا شوند را allow کنید.

&lt;Filesmatch “.(php)$”&gt;
order deny,allow
deny from all

سپس فایل Index.php را allow می کنیم

&lt;Filesmatch “^index.php”&gt;
order allow,deny
allow from all

سطح دسترسی فایل های htaccess :

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

برای آدرس پنل مدیریت سیستم مدیریت محتوا خود رمز دوم ایجاد کنید :

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

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

انتخاب رمز های مدیریت :

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

تغییر تمام رمز ها به صورت دوره ای :

تمام رمز ها را هر 1 ماه یکبار تغییر دهید تا هکر ها امکان پیدا کردن رمز شما را نداشته باشند.

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

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

اسکن فایل های هاست در سی پنل با ClamAV

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

عدم استفاده از سطح دسترسی بالا در هاست :

در بعضی از سیستم های مدیریت محتوا برای استفاده از چند امکان آن باید سطح دسترسی یک فایل یا پوشه را به 666 یا 777 تغییر دهید. به عنوان مثال برای آپلود شدن فایل ها و عکس ها در وردپرس لازم است سطح دسترسی پوشه uploads در سیستم های suphp به 755 و در dso به 777 تغییر داده شود. بهتر است این تغییرات را اعمال نکنید و فایل هایی که لازم است آپلود شوند را توسط سی پنل و یا ftp آپلود کنید. هکر ها می توانند با استفاده از این دسترسی فایل های خود را در این پوشه آپلود کنند اما در صورت محدود کردن این دسترسی امکان آپلود فایل های شل توسط هکر وجود ندارد.

غیر فعال کردن چند امکان سیستم های مدیریت محتوا :

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

تغییر آدرس پنل مدیریت سیستم های مدیریت محتوا :

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

تغییر پیشوند جدول (table) های دیتابیس :

بهتر است پیشوند های دیتابس خود را تغییر دهید. برای مثال پس از نصب وردپرس تمام جدول های شما یک پیشوند wp دارد. یک هکر می تواند برای وارد شدن به جدول های شما توسط دستوارتی که از متد Get به سرور وارد می کند به جدول های شما وارد شود و خروجی اطلاعات را مشاهده کند. با تغییر پیشوند ها هکر نمی تواند پیشوند ها را حدس بزند. برای سیستم وردپرس پلاگین های امنیتی زیادی وجود دارد که این کار را انجام می دهند. برای سایر سیستم های مدیریت محتوا کافیست کمی جستجو کنید.

تغییر نام کاربری admin :

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

عدم استفاده از قالب ها و با پلاگین های غیر معتبر:

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

در مورد بالا بردن امنیت سیستم مدیریت محتوا خود در اینترنت جستجو کنید

وب هاستینگ و مشکلات کاربران غیر حرفه ای

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

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

یک مورد ساده که بسیار دیده ایم اضافه شدن کدهای iframe در متن برنامه و یا کدهای HTML میباشد . عملکرد این روش روی وب سایت شما مانند تلویزیون های تصویر در تصویر است . در این حالت هر موقع وب سایت شما باز میشود از طریق کدiframe وب سایت مورد نظر نفوذ کننده نیز بصورت مخفیانه باز میشود بطوریکه شما متوجه این موضوع نمیشوید.

موارد عملکرد این روش بسیار متنوع است به عنوان مثال میتواند ایجاد ترافیک کاذب برای یک وب سایت ثالث یا ارسال ایمیل های اسپم یا اجرای یک key logger بر روی کامپیتور یک بازدید کننده از وب سایت باشد.
شاید پاک کردن این کدهای مخرب و اثرات آن زمان زیادی از ما نگیرد اما کاری است اضافی که باید انجام شود.

اما سوالی که مطرح است این است که این کدها چگونه به کدهای اصلی اضافه شده اند ؟

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

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

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

برنامه هایی که برای FTP استفاده میکنید در صورت وجود ویروس های خاص روی کامپیوتر شما رمز ورود شما را ذخیره و برای هکرها ارسال میکنند .

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

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

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

از حروف و عددها و علائم بی معنی استفاده کنید مثلاً “gHHiTz2*676_4iUDesw&^kk”

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

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

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

هک شدن و ایجاد تغییر بر روی وب سایت ها چیزی است که روزانه بر روی میلیونها وب سایت صورت میگیرد و لازم است مالک وب سایت در این رابطه با کارشناسان مربوطه مرتبط باشد و این مسئولیت به آنها سپرده شود.

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

1) رمز ورود سی پنل مربوط به کنترل پنل میزبانی و همچنین رمز ورود به بخش مدیریت وب سایت یا CMS را ساده انتخاب نکنید و هرچند یکبار تغییر دهید.

2) همیشه اسکریپت های خود را بروز نگهدارید مثلاً اگر از جوملا یا وردپرس یا دروپال یا هربرنامه دیگیری استفاده میکنید آنرا به آخرین نسخه ارتقاء دهید.

3) از قراردان و آپلود نمودن برنامه ها و کامپوننت هایی که نمیشناسید روی وب سایت یا سرویس میزبانی خودداری کنید.

4) کامپیوترهای ویروسی میتوانند وسیله ای برای نفوذ کدهای مخرب به سرورمیزبانی یا وب سایت شما باشد از هر کامپیوتری وارد FTP یا بخش های مدیریت میزبانی یا سیستم مدیریت محتوای وب سایت نشوید.

5) همیشه از وب سایت خود نسخه پشتیبان تهیه کنید.