به زود وب خوش آمدید

brute force attack در وردپرس

مدیر سایت مدیر سایت
۱۸ تیر ۱۳۹۹
۰
6034
brute force attack در وردپرس

brute force attack در وردپرس : هدف Brute Force Attack ساده ترین روش برای دسترسی به سایت است. از نامها و رمزهای عبور دوباره و دوباره استفاده می کند تا زمانی که وارد سیستم شوید. آنها می توانند بسیار موفق باشند وقتی افراد از رمزهای عبور مانند “۱۲۳۴۵۶” و نامهایی مانند “admin” استفاده می کنند.

به طور خلاصه ، حمله ای آنها  به یک لینک و وب سایتها ضعیف با امنیت کم هستند.

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

از سایت خود محافظت کنید

نکته: حمله معمول در وردپرس به فایل wp-login.php می باشد. برای محافظت از خود می توانید چندین کار انجام دهید.

از نام کاربری “admin” استفاده نکنید!

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

جهت تغییر نام کاربری می توان از پلاگین Change Username استفاده نمائید.

 

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

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

هنگام انتخاب رمز عبور ، از موارد ذیل جدا خودداری کنید:

  • نام واقعی ، نام کاربری ، نام شرکت یا نام وب سایت شما
  • کلمه ای از یک فرهنگ لغت (دیکشنری)، به هر زبانی
  • پسورد با تعداد کاراکتر کوتاه
  • پسوردی که فقط شامل حروف و یا فقط اعداد باشد،حتما شامل هر دو باشد

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

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

پلاگین

تعدا بیشماری پلاگین جهت امنیت و محدود کردن تعداد وارد شدن  و جلوگیری از حملات brute force به پنل وردپرس وجود دارد.

امنیت سرور

اگر تصمیم دارید wp-login.php یا wp-admin را قفل کنید ، ممکن است در هنگام دسترسی به آن صفحات خطای ۴۰۴ یا ۴۰۱ پیدا کنید. برای جلوگیری از این امر ، باید موارد زیر را به فایل .htaccess خود اضافه کنید.

ErrorDocument 401 default

شما می توانید ۴۰۱ را به ۴۰۱.html ریدارکت کنید.

برای Nginx می توانید مستقیم از error_page استفاده کنید.

error_page 401 http://example.com/forbidden.html;

در وب سرور IIS می توانید از httpErrors در web.config خود استفاده کنید ، “errorMode=”custom را تنظیم کنید:

<httpErrors errorMode="Custom">
<error statusCode="401"
subStatusCode="2"
prefixLanguageFilePath=""
path="401.htm"
responseMode="File" />
</httpErrors>

محافظت از پسورد در فایل wp-login.php

برای محافظت از فایل wp-login.php (و پوشه wp-admin) می توانید یک لایه اضافی به سرور خود اضافه کنید. زیرا با یک رمز عبور که از wp-admin محافظت می کند ، می توانید هر ماژولی را که از Ajik در قسمت جلویی استفاده می کند ، بشکند ، معمولاً فقط برای محافظت از wp-login.php فقط کافی است ، شما یک فایل.htpasswd ایجاد کنید. بسیاری از میزبان ها ابزارهایی برای انجام این کار را برای شما دارند ، اما اگر مجبور شوید این کار را بصورت دستی انجام دهید ، می توانید از این htpasswd generator استفاده کنید. مانند فایل .htaccess خود (که فقط یک فایل است ، که فقط یک پسوند است) ، .htpasswd پیشوند ندارد. می توانید این فایل را در پوشه وب عمومی خود بارگذاری کنید (به عنوان مثال ، نه در / میزبان خود) / public_html / یا /domain.com/ ، یا می توانید آن را در همان پوشه نصب کنید ، اما می خواهید این کار را انجام دهید. در صورت انجام کار امنیتی اضافی در فایل .htaccess شما. در مورد اینکه آیا شما یک فایل .htpasswd را بارگذاری کرده اید ، می توانید بگویید که .htaccess کجاست. اگر .htpasswd را در فهرست خانه کاربر خود قرار دهید و نام htpasswd شما mysecretuser است ، پس از آن htaccess خود را قرار می دهید:

# Stop Apache from serving .ht* files
<Files ~ "^\.ht">
Order allow,deny
Deny from all
</Files>
# Protect wp-login.php
<Files wp-login.php>
AuthUserFile ~/.htpasswd
AuthName "Private access"
AuthType Basic
require user mysecretuser
</Files>

مکان واقعی AuthUserFile به سرور شما بستگی دارد و بسته به اینکه نام کاربری را انتخاب کنید ، “نیاز کاربر” تغییر خواهد کرد.

اگر از Nginx استفاده می کنید ، می توانید رمز عبور فایل wp-login.php خود را با استفاده از HttpAuthBasicModule محافظت کنید. این بلوک باید در بلوک سرور شما باشد.

location /wp-login.php {
    auth_basic "Administrator Login";
    auth_basic_user_file .htpasswd;
}

مسیر نام فایل نسبت به فهرست پرونده پیکربندی nginx nginx.conf است

فایل باید به شکل زیر باشد:

user:pass user2:pass2 user3:pass3

متأسفانه هیچ راهی آسان برای پیکربندی رمز عبور محافظت شده wp-login.php در ویندوز سرور IIS وجود ندارد. اگر از یک پردازنده .htaccess مانند Helicon Ape استفاده می کنید ، می توانید از مثال .htaccess که در بالا گفته شد استفاده کنید.در غیر این صورت لازم است از ارائه دهنده میزبان خود بخواهید تأیید اعتبار عمومی را تنظیم کند.
همه رمزهای عبور باید با یک کلید عملکرد رمزگذاری شوند (۳). می توانید ازhtpasswd generator برای رمزگذاری رمز عبور خود استفاده کنید.

دسترسی به wp-login.php را با IP محدود کنید

اگر شما تنها فردی هستید که باید وارد واحد اداری خود شوید و یک آدرس IP ثابت داشته باشید ، می توانید از wp-login.php (و به این ترتیب wp-admin / پوشه) برای همه و یا فقط برای خودتان دسترسی دهید .htaccess یا فایل web.config. این اغلب به لیستی از Whitelist IP گفته می شود.

توجه: اگر از اینترنت معمولی استفاده می کنید،متاسفانه IP ثابت نمی باشد و متغییر است. جهت اطمینان با ISP خود را برای دریافت یک آدرس ثابت برای استفاده از این روش تماس حاصل نمائید.

در همه مثال ها باید ۲۰۳.۰.۱۱۳.۱۵ را با آدرس IP خود جایگزین کنید. ارائه دهنده اینترنت شما می تواند به شما در ایجاد آدرس IP کمک کند. یا می توانید از یک سرویس آنلاین مانند What Is My IP استفاده کنید.

یک فایل در ویرایشگر متن ساده به نام .htaccess ایجاد کنید و اضافه کنید:

# Block access to wp-login.php.
<Files wp-login.php>
order deny,allow
allow from 203.0.113.15
deny from all
</Files>

اگر بیش از یک آدرس IP مجاز می خواهید اضافه کنید:

# Block access to wp-login.php.
  <Files wp-login.php>
  order deny,allow
  allow from 203.0.113.15
  allow from 203.0.113.16
  allow from 203.0.113.17
  deny from all
  </Files>

اگر از Apache 2.4 و Apache به همراه ماژول mod_authz_host استفاده می کنید،می بایست از syntax متفاوت استفاده کنید:

# Block access to wp-login.php.
<Files wp-login.php>
Require ip 203.0.113.15
</Files>

اگر می خواهید بیش از یک آدرس IP اضافه کنید ، می توانید از این موارد استفاده کنید:

# Block access to wp-login.php.
<Files wp-login.php>
Require ip 203.0.113.15 203.0.113.16 203.0.113.17
# or for the entire network:
# Require ip 203.0.113.0/255.255.255.0
</Files>

برای Nginx می توانید یک بلوک موقعیت مکانی را در بلوک سرور خود اضافه کنید که مانند نمونه Apache در بالا کار می کند.

error_page  403  http://example.com/forbidden.html;
location /wp-login.php {
allow   203.0.113.15
# or for the entire network:
# allow   203.0.113.0/24;
deny    all;
}

توجه داشته باشید که فرمان امتناع / پذیرش از اهمیت ویژه ای برخوردار است. ممکن است شما فکر کنید می توانید بخشنامه پذیرش را تغییر دهید و همه چیز نتیجه خواهد گرفت. در حقیقت، موضوع این نیست. تغییر سفارش در مثال بالا منجر به عدم دسترسی به همه آدرس ها می شود.

باز هم ، در سرورهای وب IIS می توانید از فایلهای web.config برای محدود کردن آدرسهای IP که دسترسی دارند استفاده کنید. بهتر است این مورد را به راهنمای <location اضافه کنید.

<location path="wp-admin">
<system.webServer>
<security>
<ipSecurity allowUnlisted="false"> <!-- this rule denies all IP addresses, except the ones mentioned below -->
<!-- 203.0.113.x is a special test range for IP addresses -->
<!-- replace them with your own -->
<add ipAddress="203.0.113.15" allowed="true" />
<add ipAddress="203.0.113.16" allowed="true" />
</ipSecurity>
</security>
</system.webServer>
</location>

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

با استفاده از هرزنامه نظر رزمی ، می توانید از آن استفاده کنید تا از دسترسی کسی که فرم ورود به آن را ندارد ، استفاده کنید:

# Stop spam attack logins and comments
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} .(wp-comments-post|wp-login)\.php*
RewriteCond %{HTTP_REFERER} !.*example.com.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule (.*) http://%{REMOTE_ADDR}/$1 [R=301,L]
</ifModule>

Nginx – دسترسی به درخواست های مراجعه کننده را رد می کنید

location ~* (wp-comments-posts|wp-login)\.php$ {
      if ($http_referer !~ ^(http://example.com) ) {
           return 405;
      }
}

Windows Server IIS – رد درخواست مراجعه کننده:

<rule name="block_comments_without_referer" patternSyntax="ECMAScript" stopProcessing="true">
<match url="(.*)" ignoreCase="true" />
<conditions logicalGrouping="MatchAll">
<add input="{URL}" pattern="^/(wp-comments-post|wp-login)\.php" negate="false"/>
<add input="{HTTP_REFERER}" pattern=".*example\.com.*" negate="true" />
<add input="{HTTP_METHOD}" pattern="POST" /> </conditions>
<action type="CustomResponse" statusCode="403" statusReason="Forbidden: Access is denied." statusDescription="No comments without referrer!" />
</rule>

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *