روزمرگی فنی
روزمرگی فنی
خواندن ۲ دقیقه·۱ سال پیش

مسدودسازی دسترسی آی‌پی‌های چینی و روسی به سرور V2ray

در مطلب قبلی گفته شد که بات‌های روسی و چینی به خصوص در هفته‌های گذشته سهم بسیار زیادی در شناسایی و فیلترینگ سریع دامنه‌ها و آی‌پی‌ سرورهای V2ray داشته‌اند. یکی از روش‌های ساده برای مسدود کردن اتصال ورودی ipهای چینی و روسی به سرور، استفاده از IPSET هست.

نصب IPSET

در قدم اول برای نصب IPSET بسته به نوع سیستم عامل خود باید از یکی از دستورهای زیر استفاده کنیم:

برای Debian

apt update && apt install ipset

برای Ubunto

sudo apt update && sudo apt install ipset

برای Centos

sudo yum install ipset


مسدودسازی کشورها با IPSET

بعد از نصب IPSET روی سیستم عامل، حالا نوبت به کانفیگ کردن سرور برای مسدودسازی آی‌پی کشورهای مورد نظر می‌رسد. پس قبل از هر کار اول باید با دستور زیر یک مجموعه یا set از این کشورها ایجاد کنیم:

ipset create countries hash:net,port

در این مرحله اگر از دستور ipset list استفاده کنیم، نتیجه‌ای مشابه زیر برای ما نمایش داده می‌شود:

حالا با اسکریپت زیر آدرس آی‌پی کشورهایی را که می‌خواهیم مسدود شوند اضافه می‌کنیم. برای اینکار اول فایلی به نام ban-ip-countries.sh در مسیر /root/ipset ایجاد می‌کنیم و مجوز اجرا را به آن می‌دهیم. یعنی به ترتیب دستورهای زیر:

mkdir /root/ipset cd /root/ipset touch /root/ipset/ban-ip-countries.sh chmod +x /root/ipset/ban-ip-countries.sh

بعد با ویرایشگر نانو فایل بالا را باز می‌کنیم:

nano /root/ipset/ban-ip-countries.sh

و کد زیر را به آن اضافه می‌کنیم و نهایتا خروج (CTRL + X)، ذخیره فایل (Y) و اینتر را می‌زنیم (برای نام کشورها باید از فرمت ISO استفاده کرد. در اینجا cn و ru به ترتیب معرف چین و روسیه هستند).

COUNTRIES=('cn' 'ru')

ipset flush countries

for i in "${COUNTRIES[@]}"; do
echo "Ban IP of country ${i}"

for IP in $(wget -O - https://www.ipdeny.com/ipblocks/data/countries/${i}.zone)
do
ipset add countries $IP,22
done
done

بعد از اصلاح فایل ban-ip-countries.sh، حالا نوبت به اجرای اسکریپت با دستور زیر می‌رسد:

bash ban-ip-countries.sh

الان که فهرست آی‌پی‌ها را برای مسدودسازی در اختیار داریم، فقط می‌ماند اینکه به iptable فایروال متصلشان کنیم. پس فایل /root/iptables.sh را ایجاد می‌کنیم:

touch /root/iptables.sh
chmod +x /root/iptables.sh

اینبار هم با ویرایشگر نانو فایل iptables.sh را باز می‌کنیم:

nano /root/iptables.sh

و سپس کدهای زیر را در آن قرار می‌دهیم و ذخیره می‌کنیم:

# On vide les règles iptables précédentes iptables -F iptables -X iptables -I INPUT -m set --match-set countries src -j DROP iptables -I FORWARD -m set --match-set countries src -j DROP

قدم آخر:

اسکریپ بالا را با دستور زیر اجرا می‌کنیم و تمام.

bash /root/iptables.sh

الان دیگر دسترسی و اتصال ورودی از آی‌پی‌های چینی و روسی به سرور ما مسدود شده.



روزها درگیر مصائب فنی، شب‌ها مشغول ثبت راه‌حل‌های یافتنی
شاید از این پست‌ها خوشتان بیاید