نحوه بستن آیپی کشورها در وردپرس
بهترین راه حل برای تمامی مشکلات، بستن آی پی کشورها است. در این روش شما می توانید با آنالیز کردن IP کاربران مخرب، کشور مبدأ آن ها را بلاک کنید و یا فقط به کشورهایی خاص، امکان دسترسی به سایت خود را بدهید. در این مقاله قصد داریم شما را با صفر تا صد این کار آشنا کنیم. پس با ما همراه باشید
در بستن آیپی کشورها در وردپرس وقتی IP یک کشور رو تعریف کنید که دسترسی برای اون وجود نداشته باشه، هر کاربری که به سایت مراجعه کنه قادر به مشاهده صفحات سایت نیست. در این صورت میتونید کاربرانی که با آیپی خارجی به وردپرس میان رو به صفحه خاصی ریدایرکت کرد یا اینکه کلا یک پیغام دلخواهی بهشون نمایش داد.
تو این آموزش از دانشنامه کیمیاهاست قصد دارم به معرفی افزونه بستن آی پی وردپرس بپردازم که با این افزونه میتونید IP هر کشوری که در نظر دارید رو تعریف کنید که دسترسی به سایت برای این نوع آیپی وجود نداشته باشه و یا اینکه مشخص کنید دسترسی به پیشخوان وردپرس فقط با آیپی ایران فراهم باشه.
البته این آموزش یک پیش درآمدی از یک آموزش جلوگیری از حملات DDOS در وردپرس هست که قراره در مقالات بعدی به معرفی راههایی برای از بین بردن حملات دیداس در وردپرس بپردازم.
پیشنهاد ما: CDN وردپرس چیست؟
نحوه بستن آیپی کشورها در وردپرس
افزونهای که قصد دارم برای بستن آی پی در وردپرس معرفی کنم با عنوان IP Geo Block در مخزن وردپرس به ثبت رسیده و تاکنون تونسته بیش از ۳۰.۰۰۰ نصب فعال و کسب امتیاز ۴.۶ را ازآن خودش بکنه که با استفاده از این افزونه میتونید آی پی کشورهای مختلف در وردپرس را برای دسترسی به سایت ببندید. از قابلیتهای خوبی که این افزونه در اختیار شما قرار میده میشه به موارد زیر اشاره کرد.
- امکان تعریف لیست سیاه و سفیدی از آیپی برای دسترسی یا عدم به سایت
- بستن دسترسی به برخی دایرکتوریهای حیاتی در وردپرس مثل wp-admin و wp-config.php
- امکان ایجاد محدودیت در ورود به وردپرس
- امکان محدود کردن دسترسی به سایت وردپرس برای بخش مدیریت یا بخش کاربری سایت
- امکان گزارش گیری و ذخیره لاگ
- و…
برای استفاده از این افزونه ابتدا روی دکمه زیر کلیک کنید تا به صفحه افزونه در مخزن وردپرس هدایت بشید و بعدش با استفاده از راهنمای نصب افزونه در وردپرس اقدام به نصب و فعال سازی افزونه در سایت خودتون بکنید.
بعد از نصب و فعال سازی این افزونه مشابه تصویر زیر منویی با عنوان IP Geo Block در بخش تنظیمات وردپرس اضافه میشه که با کلیک روی این منو میتونید به صفحه تنظیمات افزونه بستن ip کشورها در وردپرس هدایت بشید.
Your IP address / Country: تو اینجا آیپی خود شما نشون داده میشه که گاها به صورت کش شده هست که با کلیک روی دکمه scan country code میشه اونو بهروز کرد.
Matching rule: تو این گزینه دو حالت whitelist و blacklist رو دارید که میتونید مشخص کنید تنظیماتی که بر اساس آیپی یا کد کشور در ادامه وارد میکنید جزو لیست سفید هستند یا لیست سیاه.
Whitelist of country code: اگر گزینه لیست سفید انتخاب شده باشه این گزینه بهتون نشون داده میشه که میتونید با وارد کردن کد هر کشور و جدا کردنشون با استفاده از کاراکتر انگلیسی کاما(,) هر کشور رو از هم جدا کنید. برای نمونه اگر قصد دارید کشورهای آمریکا، کانادا و آلمان رو در این لیست قرار بدین باید در این کادر از عبارت us, ca, de استفاده کنید که هر کدوم مربوط به کد این کشورها هستند. برای به دست آوردن کد هر کشور هم کافیه به صفحه Officially assigned code elements در ویکیپدیا مراجعه کنید.
Use Autonomous System Number (ASN): با استفاده از این گزینه هم میتونید دسترسی به وردپرس را بر اساس ASN محدود کنید. که بر اساس یک شبکه خاص هست.
Whitelist of extra IP addresses prior to country code (CIDR, ASN): با استفاده از این گزینه هم میتونید یک تعدادی آپی خاص رو بر اساس CIDR و ASN به صورت ترکیبی وارد کنید که در لیست سفید قرار بگیرند.
Blacklist of extra IP addresses prior to country code (CIDR, ASN): با استفاده از این گزینه هم میتونید یک تعدادی آپی خاص رو بر اساس CIDR و ASN به صورت ترکیبی وارد کنید که در لیست سیاه قرار بگیرند.
پیشنهاد ما: ابزار وردپرس
Bad signatures in query: با استفاده از این گزینه هم میتونید مسیرها و فایلهای مهم وردپرس رو مشخص کنید که از کوئریهای بدی که ممکنه برای این دایرکتوری و فایلها ارسال بشه جلوگیری کنید.
Prevent malicious file uploading: معمولا اگر سایتی مورد هک قرار بگیره هکرها سعی میکنند با استفاده از آپلود فایل و قرار دادن درب پشتی راههایی رو برای نفوذ مجدد در سایت ایجاد بکنند. که با فعال کردن این گزینه میتونید از آپلود فایل برای قرار دادن درب پشتی جلوگیری کنید.
Max number of failed login attempts per IP address: با فعال کردن این گزینه هم میتونید تعداد دفعات مجاز ورود به وردپرس رو مشخص کنید که اگر بیش از این تعداد بود آیپی مورد نظر بلاک بشه و سایت برای این آیپی در دسترس قرار نگیره.
تنظیمات Back-end در بستن آیپی کشورها در وردپرس
تنظیماتی که توی این قسمت انجام میدین برای دسترسی و محدودیت آی پی در پیشخوان وردپرس هست. اگر در تنظیمات مرحله قبل آیپی و لوکیشن کشورهایی رو در لیست سیاه یا سفید قرار داده باشید تو اینجا اعمال میشن.
Comment post: معمولا بیشترین حملاتی که برای کند کردن یا DDOS به سایتی زده میشه از بخش دیدگاههای وردپرس هست. بنابراین با فعال کردن تیک این گزینه میتونید از این کار جلوگیری کنید. البته حتما از آموزشی که برای آموزش جلوگیری از ارسال نظرات اسپم در وردپرس تهیه کردم در کنار این قابلیت استفاده کنید.
XML-RPC: یکی دیگه از راههایی که برای حملات بروت فورس در وردپرس یا DDOS انجام میگیره از طریق فایل XML-rpc هست که با استفاده از این بخش میتونید یا به صورت کلی غیرفعالش کنید و یا اینکه دسترسی برای کشورهایی که مشخص شده رو ببندید. پیشنهاد میکنم به صورت کلی دسترسی به فایل xml-rpc رو محدود کنید. برای این کار میتونید از راهنمای xml-rpc وردپرس چیست؟ و نحوه غیرفعال کردن xml-rpc وردپرس استفاده کنید.
Login form: اگه مایل هستید دسترسی به صفحات ورود در وردپرس رو محدود کنید میتونید با فعال کردن تیک این گزینه این کار رو انجام بدین. بعد از فعال کردن این حالت گزینه Target actions هم فعال شده و با کلیک روی این بخش میتونید مشخص کنید که چه فرمهایی که مربوط به صفحه ورود، ثبت نام، فراموشی رمز و… در وردپرس هستند از این قانون تبعیت کنند.
Admin area: با استفاده از این گزینه هم میتونید دسترسی به پیشخوان وردپرس برای آیپی و کشورهایی که مشخص کردید رو ببندید.
Admin ajax/post: اگه از کاربران همیشگی میزبانفا بوده باشید، پیش از این در مقاله آموزش رفع مشکل مصرف بالای CPU هاست در وردپرس به این موضوع پرداختیم که چطور از مصرف CPU ّاست در وردپرس که باعث و بانیش همین فایل admin-ajax هست جلوگیری کنیم. تو اینجا هم میتونید با بلاک کردن آیپی تا حدودی از این کار جلوگیری کنید که اگر با مشکل مصرف زیاد cpu در وردپرس مواجه شده بودید با این روش بتونید برطرف کنید.
Plugins area و Themes area: با فعال کردن این دو گزینه هم میتونید از درخواستهایی که ممکنه به ترتیب برای برخی فایلهای افزونهها و قالب ارسال بشه جلوگیری کنید.
محدود کردن کشور خاصی در بستن آیپی کشورها در وردپرس
اصلیترین بخش این مقاله مربوط به این قسمت هست که با استفاده از این گزینه میتونید دسترسی به بخش سایت که برای بازدیدکننده ها قابل مشاهده است رو محدود کنید. با محدود کردن هر کشور خاص یا ip دیگه کاربران قادر به مشاهده سایت نیستند و بر اساس تنظیماتی که انتخاب میکنید میتونید اونارو به صفحه خاصی ریدایرکت کنید یا اینکه پیغام دلخواهی رو در سایت نمایش بدین.
Public facing pages: با فعال کردن این گزینه حالت بلاک کردن کشور برای دسترسی به کل سایت فعال خواهد شد.
Matching rule: با استفاده از این گزینه میتونید مشخص کنید که کشورهایی که در ادامه وارد میکنید جزو لیست سیاه هستند یا سفید. اگر در لیست سفید باشند فقط این کشورها دسترسی به سایت خواهند داشت، اما اگر در لیست سیاه باشند این کشورها قادر به مشاهده سایت نخواهند بود.
Blacklist of country code: بر اساس انتخابی که برای لیست سیاه و سفید در گزینه قبلی مشخص کردید حالا هر کشوری که در اینجا وارد کنید جزو این لیست قرار میگیره. به عنوان نمونه من حالت بلاک کردن رو انتخاب کردم که میخوام به ترتیب دسترسی کشورهای آمریکا، کانادا و آلمان رو به سایتم ببندم، در این حالت باید تو این کادر از کد این کشورها که شامل us, ca, de هست استفاده کرد. برای به دست آوردن کد هر کشور هم کافیه به صفحه Officially assigned code elements در ویکیپدیا مراجعه کنید.
پیشنهاد ما: افزونه های وردپرس
Response code (RFC 2616): حالا که دسترسی بسته شده باید مشخص کنم که اگر کاربری جزو این لیست بود چه اتفاقی براش بیفته. میتونید کاربر رو ریدایرکت کنید یا اینکه یک پیغام بهش نشون بدین. برای این کار ابتدا باید از بین گزینههای موجود یکی از حالتها رو انتخاب کنید.
- ۳۰۱ Moved Permanently
- ۳۰۲ Found
- ۳۰۳ See Other
- ۳۰۷ Temporary Redirect
- ۴۰۰ Bad Request
- ۴۰۳ Forbidden
- ۴۰۴ Not Found
- ۴۰۶ Not Acceptable
- ۴۱۰ Gone
- ۵۰۰ Internal Server Error
- ۵۰۳ Service Unavailable
با انتخاب هر کدوم از گزینههای بالا چنین صفحهای به کاربر نشون داده میشه که دو حالت خواهید داشت. حالا اول اینه که فیلدی نشون داده میشه که میتونید یک پیغام دلخواه در بخش Response message برای نمایش انتخاب کنید. حالت دوم هم اینه که میتونید یک آدرس دلخواه در Redirect URL وارد کنید تا کاربر به اون صفحه ریدایرکت بشه.
Validation target: با استفاده از این بخش هم میتونید مشخص کنید که این حالت برای چه صفحاتی اتفاق بیفته. اگر گزینه All Requests انتخاب شده باشه همه صفحات از این قانون پیروی میکنند، اما اگه صفحه خاصی مثل نوشتهها، دسته بندی، برچسب و… انتخاب شده باشه صرفا دسترسی به این صفحات محدود میشن.
Block badly-behaved bots and crawlers: با فعال کردن این گزینه هم میتونید دسترسی رباتها رو به سایت ببندید. البته رباتهایی که درخواستهای بد به سایت شما هدایت میکنند. بعد از فعال کردن میتونید تعداد و مدت زمانی که باید ربات در لیست بلاک قرار داشته باشه رو انتخاب کنید.
UA string and qualification: با استفاده از این گزینه هم میتونید رشتهها و فعالیتهای UA رو برای دسترسی به سایت مشخص کنید.
DNS reverse lookup: این حالت برای جستجوی معکوس DNS هست که بسته به تنظیمات UA که در مرحله قبل مشخص شده میزان True یا False رو ارسال خواهد کرد.
تنظیمات خصوصی و ذخیره سازی در بستن آیپی کشورها در وردپرس
Anonymize IP address: در بستن آیپی کشورها در وردپرس اگر این حالت فعال شده باشه امکان ذخیره و شناسایی آیپی فراهم خواهد بود. در این صورت آدرس ip ها در فایل لاگ و در بخش لاگ افزونه ذخیره میشن که میتونید شناسایی کنید از چه کشورها و لوکیشنهایی بودهاند.
Do not send IP address to external APIs: اگر این گزینه فعال شده باشه اطلاعات آدرس ip برای API های خارجی ارسال نخواهد شد.
Record Statistics: با فعال کردن این گزینه حالت ذخیره آمار فعال میشه و میتونید با رفتن به بخش آمار جزییات کاملی از محدودیتهای اعمال شده رو ببینید.
Record “IP address Cache”: با فعال کردن این گزینه دادهها به صورت کش شده در سایت ذخیره میشن تا برای مشاهده اونها دیتابیس زیاد مشغول نباشه و سرعت سایتتون کند بشه.
Expiration time [sec] for each entry: در صورتی که در تنظیمات بخش پیشخوان وردپرس محدودیت تلاش برای ورود در وردپرس رو فعال کرده باشید از اینجا میتونید بر حسب ثانیه مشخص کنید که هر آیپی برای چه مدتی در لیست بلاک قرار داشته باشه.
Record “Logs”: از اینجا هم میتونید مشخص کنید که لاگها در چه شرایطی ذخیره شوند. در اینجا گزینهها به شکل لیست سیاه، لیست سفید، همه و… قرار دارند.
Expiration time [days] for each entry: با استفاده از این گزینه هم میتونید مشخص کنید که دادهها و لاگهای ذخیره شده تا چند روز در سایت نگهداری شوند. حداکثر زمانی که میتونید آیپی رو ذخیره کنید برای ۵۰۰ روز هست.
$_POST key to record with value: با استفاده از این گزینه هم میتونید درخواستهایی که در نظرات، فایلها و actions های وردپرس ارسال میشه رو ذخیره کنید.
Interval [sec] to cleanup expired entries of IP address: با استفاده از این گزینه هم میتونید مدت زمانی رو که مجاز هست آیپی های منقضی شده در حالت ذخیره شده باقی بمونن رو مشخص کنید. بعد از گذشت این زمان ip ها حذف خواهند شد.
Remove all settings and records at uninstallation: با فعال کردن این گزینه هم بعد از حذف افزونه کلیه اطلاعات و تنظیمات افزونه که در دیتابیس قرار دارند حذف خواهند شد.
سایر تنظیمات افزونه هم مربوط به خروجی گرفتن، درون ریزی و قابلیتهای پولی هستند که از توضیح این موارد میگذریم. حالا برای اینکه بتونید گزارش گیری از افزونه برای ip های بلاک شده و سایر آمار داشته باشید ادامه آموزش رو دنبال کنید.
با رفتن به statistics میتونید گزارش آیپی های بلاک شده رو به همراه نمودار و جزییات کامل که شامل کشورهای بلاک شده، ip ّای کش شده، تعداد آی پی بلاک شده در هر روز و… رو مشابه تصویر بالا ببینید.
با رفتن به تب Logs هم میتونید آیپی ها رو بر اساس نوه بلاک که میتونه از صفحات ورود در وردپرس، xml-rpc، پیشخوان وردپرس، نظرات وردپرس و همه هست مشاهده کنید. امکان جستجو یک رنج ip در وردپرس یا ip خاص هم فراهم هست که میتونید ازش گزارش گیری هم بکنید.