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