دسترسی آسان هکرها به صفحهی لاگین پنل ادمین وردپرس شما، سایتتان را در معرض حملهی آنها قرار میدهد. مخفی کردن لاگین وردپرس یکراه خیلی خوب برای امن کردن سایت شما در برابر هکهای هدفمند و حملات Brute-Force خودکار است.
در این پست میخواهیم دو روش را برای مخفی کردن لاگین وردپرس معرفی کنیم:
- روش آسان: استفاده از افزونهها.
- روش سختتر، اما بهتر: استفاده از .htaccess
در ادامه به آموزش این روشها میپردازیم.
چرا باید به مخفی کردن لاگین وردپرس اهمیت بدهیم؟
جواب این سؤال فقط همین دو عبارت است: حملات Brute-Force .
در یک حملهی Brute-Force ، هکرها سعی میکنند تا نام کاربری (Username) و رمز عبور (Password) شما را بارها و بارها حدس بزنند تا به نتیجهی درست دست پیدا کنند.
هکرها در این روش امیدوارند که با انجام تلاشهای کافی در این کار، یک ترکیب صحیح از نام کاربری و رمز عبور را پیدا کنند. بنابراین احتمالاً تا الآن متوجه شده باشید که ایدهی مخفی کردن لاگین وردپرس از کجا میآید. اگر شما صفحهی لاگین را مخفی کنید؛ هکرها جایی را برای اجرای حملهی Brute-Force پیدا نخواهند کرد.
اما مسئله فقط حملات Brute-Force نیست. روشهای .htaccess که در انتهای این مقاله آنها را بررسی میکنیم؛ حتی شما را از وضعیتهایی که هکر نام کاربری و رمز عبور شما را به دست میآورد هم محافظت میکند.
مخفی کردن لاگین وردپرس با استفاده از افزونه
روش سریع مخفی کردن صفحهی لاگین وردپرس، استفاده از افزونه برای این کار است. برای رسیدن به این منظور، افزونهی WPS Hide Login یک افزونهی استاندارد و مناسب است.
این افزونه به شما امکان میدهد تا یک URL سفارشی برای صفحهی لاگین اختصاص بدهید. همچنین تمام ترافیک ورودی به صفحات wp-admin و wp-login که صفحات لاگین پیشفرض وردپرس هستند را بلاک میکند.
این روش خیلی سریع است زیرا راهاندازی آن فقط چند ثانیه زمان نیاز دارد. تنها کاری که باید بکنید این است که URL موردنظرتان برای صفحهی لاگین را با رفتن به مسیر Settings >> WPS Hide Login اختصاص دهید. بقیهی کارها را افزونه انجام خواهد داد.
اگر شما از افزونههای کشینگ (Caching) استفاده میکنید؛ باید صفحهی لاگین جدید خودتان را به لیست صفحاتی که نباید کش شوند اضافه کنید. در غیر این صورت نیازی به انجام کاری نیست.
آیا افزونهی WPS Hide Login برای محافظت از صفحهی لاگین کافی است؟
درواقع پاسخ این سؤال منفی است. این افزونه بخش عمدهای از حملات Brute-Force را بلاک میکند. اما بازهم اگر یک هکر بخواهد بهصورت متمرکز روی سایت شما، به صفحهی لاگین دست پیدا کند؛ در این صفحه از سایت رسمی وردپرس، تعدادی در پشتی (Backdoor) گفتهشده که با استفاده از آنها میتوان صفحهی لاگین را پیدا کرد. این راهها شامل موارد زیر هستند:
- استفاده از URL های رمزگذاری شده
- تلاش برای دسترسی به مسیر …/wp-admin/customize.php
بیشتر هکرهایی که با روش Brute-Force حمله میکنند؛ اهدافی که امنیت کمتری دارند را انتخاب میکنند. بنابراین بعید است که این مسئله برای شما به موضوع جدی تبدیل شود. اما بعید بودن به معنی این نیست که هیچوقت این اتفاق نخواهد افتاد. بنابراینیکقدم جلوتر میرویم و روشی را که بهصورت دستی و با .htaccess میتوانیم دسترسی به صفحهی لاگین را محدود کنیم را آموزش میدهیم.
استفاده از .htaccess برای مخفی کردن لاگین وردپرس
برای افزایش امنیت سایت، میتوان صفحهی لاگین وردپرس را با استفاده از فایل .htaccess مخفی کرد. دو روش معمول برای مخفی کردن لاگین وردپرس با استفاده از .htaccess وجود دارند:
- استفاده از .htpasswd برای گذاشتن رمز عبور برای دسترسی به صفحهی لاگین
- محدود کردن دسترسی به صفحهی wp-admin با توجه به آدرس IP
هر دو روش فوق از آموزشهای سایت رسمی وردپرس در مقابله با حملات Brute-Force برداشتشده است. بنابراین خیالتان راحت باشد! روشهایی که آموزش میدهیم مورد تأیید وردپرس هستند.
مخفی کردن صفحهی لاگین وردپرس با استفاده از .htpasswd
در این روش، هرکس که بخواهد به صفحهی لاگین wp-admin سایت شما دسترسی پیدا کند؛ با صفحهی زیر مواجه خواهد شد:
بنابراین کسی که username و password نداشته باشد به این صفحه دسترسی نخواهد یافت.
انجام این روش بسیار آسان است. فقط کافی است مراحل زیر را انجام دهید.
مرحلهی 1: به ابزار Htpasswd Generator رفته و username و password موردنظر خودتان را وارد کنید. سپس روی Create .htpasswd File کلیک کنید تا فایل آن ساخته شود. این ابزار بهصورت خودکار رمز عبور شما را رمزگذاری میکند و متنی را تولید میکند که شما باید به فایل .htpasswd سایت خودتان اضافه کنید را به شما میدهد.
مرحلهی 2: متن تولیدشده را به یک فایل بانام .htpasswd اضافه کنید و آن را در دایرکتوری روت سایت وردپرس خودتان آپلود کنید. برای ساخت این فایل میتواند از ویرایشگرهای متن ساده مثل Notepad استفاده کنید. فقط باید توجه داشته باشید که فایل موردنظر را مانند تصویر زیر، بهصورت All Files ذخیره کنید:
مرحلهی 3: کد زیر را به بالاترین قسمت از کدهای فایل .htaccess اضافه کنید. این فایل هم در دایرکتوری روت سایت شما قرار دارد.
# Stop Apache from serving .ht* files <Files ~ "^\.ht"> Order allow,deny Deny from all </Files> # Protect wp-login <Files wp-login.php> AuthUserFile ~/.htpasswd AuthName "Private access" AuthType Basic require user yourusername </Files>
فقط باید در کد بالا بهجای عبارت “yourusername” ، نام کاربری مورداستفاده در فایل .htpasswd را قرار دهید.
بهاینترتیب شما امنیت سایت خودتان را افزایش دادید.
نکتهای که باید توجه کنید این است که این روش ممکن است برای همهی پلتفرمهای میزبانی کار نکند. بعضی از شرکتهای ارائهی هاست روشهای دیگری برای مخفی کردن لاگین وردپرس دارند که باید برای این کار با پشتیبانی آنها ارتباط برقرار کنید.
مخفی کردن لاگین از طریق فایل .htaccess و با محدود کردن آدرس IP
روش دیگری که میتوانید برای مخفی کردن لاگین وردپرس استفاده کنید؛ محدود کردن آدرسهای IP از طریق فایل .htaccess است. در این روش فقط افرادی که IP آنها مجاز شناخته میشود میتوانند بهصورت عادی صفحهی لاگین را مشاهده کنند. اما افراد غیرمجاز تصویر زیر را خواهند دید:
این یک روش فقط برای زمانی مناسب است که شما از یک آدرس IP استاتیک استفاده کنید و همچنین افراد زیادی به قسمت مدیریت سایت شما دسترسی نداشته باشند. در غیر این صورت، بهتر است از روش .htpasswd استفاده کنید.
اما برای فعال کردن این روش، تنها کاری که باید بکنید این است که قطعه کد زیر را به بالای فایل .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$ RewriteRule ^(.*)$ - [R=403,L] </IfModule>
فقط باید بهجای قسمت “!^123\.123\.123\.123$” در کد بالا، آدرس IP خودتان را قرار دهید. اگر IP خودتان را نمیدانید میتوانید از گوگل برای پیدا کردن آن استفاده کنید.
اگر باید چندین آدرس IP مجاز را برای دسترسی به لاگین سایت خودتان اضافه کنید هم مشکلی پیش نمیآید. فقط کافی است برای هر IP یک خط به کد اضافه کنید. برای مثال برای مجاز کردن دو آدرس IP برای دسترسی به لاگین، کد بهصورت زیر خواهد بود:
<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} !^223\.223\.223\.223$ RewriteRule ^(.*)$ - [R=403,L] </IfModule>
به همین راحتی شما صفحهی لاگین وردپرس خودتان را از دسترس افراد غیرمجاز مخفی کردید.
اگر کلنجار رفتن با کدها و فایلهای اصلی وردپرس مانند .htaccess برای شما مشکل است؛ میتوانید این کار را به متخصصین امنیت سایت بسپارید.