Skip to content

Latest commit

 

History

History
386 lines (273 loc) · 15.8 KB

File metadata and controls

386 lines (273 loc) · 15.8 KB

سرور 4iProto تیم ابدال

سرور ابدال 4iProto

یک سرور تونلینگ مبتنی بر SSH با کارایی بالا که برای دسترسی امن به اینترنت طراحی شده و دارای قابلیت‌های پیشرفته امنیتی و نظارت بر ترافیک است.

📖 English | فارسی

🚀 قابلیت‌ها

🔒 ویژگی‌های امنیتی

  • محافظت داخلی در برابر حملات بروتفورس: مسدودسازی خودکار IP پس از تلاش‌های ناموفق احراز هویت
  • نظارت بر حملات: ثبت دقیق تلاش‌های ناموفق ورود با ردیابی IP
  • احراز هویت قابل تنظیم: تعداد قابل تنظیم تلاش‌های حداکثر احراز هویت
  • سیستم مسدودسازی IP: مدیریت پایدار IP های مسدود شده با ذخیره‌سازی JSON
  • سفارشی‌سازی بنر سرور: مخفی کردن یا سفارشی‌سازی بنر سرور از طریق تنظیمات
  • تعیین سطح دسترسی: دو حالت کاربر و مدیر دارد که مدیران قابلیت اجرای دستور در شل سیستم عامل را دارند اما کاربران فقط می توانند تونل بزنند

📊 نظارت بر ترافیک

  • ردیابی ترافیک آنی: نظارت بر استفاده آپلود/دانلود برای هر کاربر
  • آمار مبتنی بر جلسه: ردیابی بایت‌های ارسال/دریافت شده در هر جلسه
  • تحلیل استفاده کل: آمار ترافیک تجمعی در تمام جلسات
  • ذخیره‌سازی خودکار داده: ذخیره داده‌های ترافیک در فایل‌های JSON هر 10 ثانیه
  • نظارت آنی پهنای باند: نمایش استفاده پهنای باند به صورت آنی
  • مسدود سازی سایت های غیر مجاز:سایت هایی که نمی خواهید کاربر بازدید کند را مسدود می کند
  • مسدود سازی آی پی های غیر مجاز:آی پی هایی که نمی خواهید کاربر بازدید کند را مسدود می کند
  • ردیابی سایت های بازدید شده:قابلیت ردیابی سایت های بازدید شده توسط کاربر ، که می توانید این قابلیت را برای هر کابری فعال یا غیر فعال کنید

🌐 قابلیت‌های شبکه

  • پشتیبانی چند پورت: اجرای سرور روی چندین پورت به صورت همزمان
  • فورواردینگ TCP: فورواردینگ مستقیم اتصال TCP بدون تنظیمات اضافی
  • فورواردینگ UDP: پشتیبانی کامل فورواردینگ ترافیک UDP
  • چند پلتفرمی: اجرا روی سیستم‌های لینوکس و ویندوز
  • کارایی بالا: 10 برابر سریع‌تر از OpenSSH برای عملیات تونلینگ
  • پشتیبانی از DNSTT: تونل‌زنی پیشرفته ترافیک شبکه از طریق پروتکل DNS

🛠️ ویژگی‌های مدیریتی

  • مدیریت کاربران: سیستم احراز هویت مبتنی بر JSON
  • ادغام شل: پشتیبانی بومی CMD در ویندوز و Shell در لینوکس
  • مدیریت تنظیمات: تنظیمات سرور مبتنی بر JSON
  • سیستم ثبت: ثبت جامع اتصالات و حملات

🧾 قابلیت های اکانتینگ

  • کنترل داخلی سشن‌ها: مدیر می‌تواند حداکثر تعداد سشن‌های فعال همزمان برای هر حساب را تنظیم کند تا میزان اتصال کاربران کنترل شود.

  • انقضای خودکار سشن‌ها: برای هر سشن مدت زمان اعتبار (TTL) تعریف می‌شود تا پس از پایان آن، سشن منقضی شده و منابع آزاد شوند.

  • مدیریت پویا در زمان محدودیت: وقتی تعداد سشن‌ها به حد مجاز برسد، اتصال‌های جدید می‌توانند رد شوند یا در صف انتظار قرار گیرند (قابل تنظیم توسط مدیر).

  • مسدودسازی فوری اتصال‌های جدید در صورت اشباع سشن‌ها: در صورتی که یک حساب از سقف مجاز سشن عبور کرده باشد، کاربران جدیدی که قصد اتصال دارند از همان ابتدا مسدود شده و اجازه ورود نخواهند داشت.

  • نظارت لحظه‌ای بر سشن‌ها: سیستم وضعیت سشن‌های فعال را به‌صورت زنده ثبت کرده و برای حسابرسی و تحلیل ذخیره می‌کند.

  • محدودیت سرعت (Rate Limiting): امکان تعریف حداکثر سرعت انتقال داده برای هر کاربر با فیلد max_speed_kbps بر حسب کیلوبایت بر ثانیه. این محدودیت به‌صورت برخط و در هر دو جهت (Upload/Download) با الگوریتم Token Bucket اعمال می‌شود.
    📌 مثال: 1024 = معادل 1 مگابایت بر ثانیه

  • محدودیت حجم مصرفی (Traffic Limit): امکان تعیین سقف حجم مصرفی برای هر کاربر با فیلد max_total_mb بر حسب مگابایت. در صورت عبور از سقف، اتصال هنگام ورود رد می‌شود یا در حین استفاده قطع خواهد شد.
    📌 مثال: 10240 = معادل 10 گیگابایت

  • بررسی و اعمال برخط محدودیت حجم: هر ۱ تا ۲ ثانیه ترافیک مصرفی بررسی می‌شود. در صورت عبور از محدودیت، اتصال بلافاصله قطع و دسترسی غیرفعال می‌گردد.

🚀 نصب آسان از طریق ابزار Abdal 4iProto Cli

پروژه Abdal 4iProto Cli یک ابزار پیشرفته خط فرمان برای مدیریت جامع اکوسیستم Abdal 4iProto است. این ابزار به طور خودکار مشخصات سیستم‌عامل و معماری پردازنده شما را تشخیص داده، اصالت فایل‌ها را با هش SHA-256 اعتبارسنجی می‌کند، پورت‌ها را تنظیم کرده و سرویس‌های سیستمی پایدار را ثبت می‌نماید.

📋 نیازمندی‌ها

  • Go 1.25.10 یا بالاتر
  • کلید خصوصی SSH (id_rsa)
  • فایل‌های تنظیمات (به بخش راه‌اندازی مراجعه کنید)

⚙️ راه‌اندازی

1. فایل‌های تنظیمات

Windows

{
  "ports": [64235, 64236,64237],
  "shell": "cmd.exe",
  "max_auth_attempts": 3,
  "server_version": "SSH-2.0-Abdal-4iProto-Server"
}

linux

{
  "ports": [64235, 64236,64237],
  "shell": "/bin/bash",
  "max_auth_attempts": 3,
  "server_version": "SSH-2.0-Abdal-4iProto-Server"
}

users.json

[
  {
    "username": "ebrasha",
    "password": "152314562152",
    "role": "admin",
    "blocked_domains": [],
    "blocked_ips": [],
    "log": "no",
    "max_sessions": 1,
    "session_ttl_seconds": 300,
    "max_speed_kbps": 10240,
    "max_total_mb": 0
  },
  {
    "username": "user1",
    "password": "password123",
    "role": "user",
    "blocked_domains": [
      "facebook.com",
      "*.facebook.com",
      "twitter.com",
      "*.twitter.com",
      "instagram.com",
      "*.instagram.com"
    ],
    "blocked_ips": [
      "192.168.1.100",
      "10.0.0.*",
      "172.16.*.*"
    ],
    "log": "yes",
    "max_sessions": 2,
    "session_ttl_seconds": 300,
    "max_speed_kbps": 512,
    "max_total_mb": 10240
  },
  {
    "username": "user2",
    "password": "password456",
    "role": "user",
    "blocked_domains": [
      "youtube.com",
      "*.youtube.com",
      "netflix.com",
      "*.netflix.com"
    ],
    "blocked_ips": [
      "192.168.10.1",
      "10.10.10.10"
    ],
    "log": "yes",
    "max_sessions": 5,
    "session_ttl_seconds": 300,
    "max_speed_kbps": 512,
    "max_total_mb": 5120
  }
]

blocked_ips.json

{
  "blocked": [
    "192.168.1.12",
    "10.0.0.7"
  ]
}

2. تنظیم کلید SSH

کلید خصوصی SSH خود را به عنوان id_rsa در دایرکتوری پروژه قرار دهید.

برای تولید کلید تازه در سرور در محل فایل های سرور دستور زیر را اجرا کنید.

ssh-keygen -t rsa -b 4096 -f id_rsa

3. ساخت و اجرا

go mod tidy
go build -o abdal-4iproto-server
./abdal-4iproto-server

🔧 گزینه‌های تنظیمات

تنظیمات سرور (server_config.json)

  • ports: آرایه‌ای از پورت‌هایی که سرور روی آن‌ها گوش می‌دهد
  • shell: دستور شل برای اجرا (cmd.exe برای ویندوز، /bin/bash برای لینوکس)
  • max_auth_attempts: حداکثر تلاش‌های ناموفق ورود قبل از مسدودسازی IP
  • server_version: رشته نسخه سفارشی سرور SSH

نظارت بر ترافیک

سرور به طور خودکار ردیابی می‌کند:

  • بایت‌های ارسال/دریافت شده در هر جلسه
  • ترافیک کل برای هر کاربر
  • برچسب‌های زمانی جلسه
  • استفاده آنی پهنای باند

🚀 استفاده

شروع سرور

./abdal-4iproto-server

اتصال از طریق کلاینت اختصاصی

ما یک کلاینت اختصاصی با رابط گرافیکی ساخته‌ایم که از ایجاد سرور SOCKS5 نیز پشتیبانی می‌کند. برای بهترین تجربه، از کلاینت اختصاصی ما استفاده کنید:

دانلود کلاینت: کلاینت ابدال 4iProto

جایگزین: اتصال SSH استاندارد

ssh -D 1080 username@server_ip -p 22

استفاده از پروکسی SOCKS

پس از برقراری اتصال با فورواردینگ دینامیک:

  • برنامه‌ها را برای استفاده از پروکسی SOCKS روی localhost:52905 تنظیم کنید
  • تمام ترافیک از طریق اتصال امن SSH تونل خواهد شد

🚀 نحوه اتصال کلاینت به سرور 4iProto در سیستم عامل ها

شما می‌توانید از تمامی سیستم‌عامل‌های اصلی به سرور Abdal 4iProto متصل شوید:

🐧 کلاینت لینوکس

برای اتصال کامل (Full-Tunnel) از ابزار sshuttle استفاده کنید:

sshuttle --dns -r ebrasha@91.107.170.50:2222 0.0.0.0/0 -vv

🪟 کلاینت ویندوز

دانلود کلاینت رسمی Abdal 4iProto برای ویندوز

🤖 کلاینت اندروید

💡 پیشنهاد ما: کلاینت اختصاصی و بهینه‌شده Abdal 4iProto Android را دانلود کنید که بالاترین سطح امنیت و سرعت را بدون نیاز به برنامه‌های جانبی در اختیار شما قرار می‌دهد.

📱 دانلود کلاینت اختصاصی Abdal 4iProto Android


دانلود NapsternetV از گوگل‌پلی

دانلود OpenTunnel از گوگل‌پلی

🍏 کلاینت آیفون (iOS)

دانلود اپلیکیشن SSH Tunnel با SOCKS5 Proxy از اپ‌استور

📊 نظارت

آمار ترافیک

داده‌های ترافیک به طور خودکار در فایل‌های traffic_username.json ذخیره می‌شوند:

{
  "username": "user1",
  "ip": "192.168.1.100",
  "last_bytes_sent": 1024,
  "last_bytes_received": 2048,
  "total_bytes_sent": 1048576,
  "total_bytes_received": 2097152,
  "total_bytes": 3145728,
  "last_timestamp": "2025-01-15T10:30:00Z"
}

فایل‌های ثبت

  • invalid_logins.log: ثبت تلاش‌های ناموفق احراز هویت
  • blocked_ips.json: مدیریت آدرس‌های IP مسدود شده
  • خروجی کنسول: ثبت‌های آنی اتصال و ترافیک

🔀 راهنمای ارسال کامل ترافیک یک سرور ایرانی به سرور 4iProto

راهنمای ارسال کامل ترافیک یک سرور ایرانی به سرور 4iProto

این راهنما توضیح می دهد چگونه با استفاده از IP Forwarding و iptables NAT کلیه ترافیک ورودی یک سرور Linux را به سرور مقصد 4iProto منتقل کنید. این سناریو برای Full Traffic Forwarding, Transparent Proxy و Gateway Relay استفاده می شود.

پیش نیازها

  • سیستم عامل Linux
  • دسترسی root
  • فعال بودن iptables
  • IP معتبر سرور 4iProto
  • آشنایی پایه با NAT, DNAT, SNAT, Routing

مرحله 1: فعال سازی IP Forwarding

echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
sysctl -p

مرحله 2: انتقال پورت SSH به سرور دیگر

iptables -t nat -A PREROUTING -p tcp --dport 22 -j DNAT --to-destination IRAN_IP

مرحله 3: ارسال کل ترافیک به سرور 4iProto

iptables -t nat -A PREROUTING -j DNAT --to-destination 4iProto_IP

مرحله 4: فعال سازی Source NAT

iptables -t nat -A POSTROUTING -j MASQUERADE

نکات مهم

  • Rule پورت 22 باید قبل از Rule کلی PREROUTING باشد
  • قبل از اعمال Rule ها دسترسی SSH جایگزین داشته باشید
  • در صورت استفاده از firewalld یا ufw هماهنگ شود

🔒 ویژگی‌های امنیتی

محافظت در برابر بروتفورس

  • مسدودسازی خودکار IP پس از تلاش‌های ناموفق قابل تنظیم
  • ذخیره‌سازی پایدار IP های مسدود شده
  • ثبت دقیق حملات با برچسب‌های زمانی

نظارت بر حملات

  • ثبت تلاش‌های ناموفق ورود با نام کاربری، رمز عبور و IP
  • ردیابی الگوهای حمله و منابع
  • ارائه تحلیل‌های جامع امنیتی

🐛 گزارش مشکلات

اگر با مشکلی مواجه شدید یا در پیکربندی مشکل دارید، لطفاً از طریق ایمیل Prof.Shafiei@Gmail.com با ما در تماس باشید. همچنین می‌توانید مشکلات را در GitHub گزارش دهید.

❤️ حمایت مالی

اگر این پروژه برای شما مفید بود و مایل به حمایت از توسعه بیشتر هستید، لطفاً در نظر داشته باشید که کمک مالی کنید:

🤵 برنامه‌نویس

ساخته شده با عشق توسط ابراهیم شفیعی (EbraSha)

📜 مجوز

این پروژه تحت مجوز GPLv2 or later منتشر شده است.