📄 محتوای کامل
Unblock یک سیستم مدیریت فایروال مبتنی بر وب است که به طور خاص برای ارائه دهندگان خدمات میزبانی وب طراحی شده است. این سیستم، تجزیه و تحلیل گزارشهای فایروال و رفع انسداد IP را برای مدیران و مشتریان ساده میکند و تمرکز آن بر قابلیت استفاده برای کاربران غیرفنی است.
✨ ویژگیها
- 🔍 تحلیل IP : تحلیل جامع لاگهای فایروال در سرویسهای مختلف (CSF، DirectAdmin BFM، Exim، Dovecot، ModSecurity)
- 🚀 رفع انسداد با یک کلیک : رفع انسداد خودکار IP با تشخیص هوشمند
- 👥 مدیریت چند کاربره : پشتیبانی از مشتریان هاستینگ، نمایندگان فروش و دارندگان VPS
- 📧 اعلانهای ایمیلی : گزارشهای دقیق برای کاربران و مدیران ارسال میشود
- 🔐 کاربران مجاز : دسترسی به دامنهها/سرورهای خاص را بدون دسترسی کامل به حساب کاربری، تفویض کنید
- 🔄 ادغام WHMCS : همگامسازی خودکار اختیاری با WHMCS
- 🌍 پشتیبانی از چند پنل : با cPanel و DirectAdmin کار میکند
- 📊 گزارشهای دقیق : گزارشهای جامع فایروال به همراه توضیحات
- 🔒 امنیت در اولویت : ثبت تمام اقدامات، اعتبارسنجی IP، مدیریت کلید SSH
- 🌐 بینالمللیسازی : پشتیبانی کامل از زبانهای انگلیسی و اسپانیایی
- ⚡ حالت ساده : رفع انسداد IP ناشناس برای محیطهای میزبانی کاملاً متصل (بدون نیاز به احراز هویت)
📋 الزامات
- پی اچ پی : ۸.۳ یا بالاتر
- لاراول : ۱۲.x
- پایگاه داده : SQLite (توصیه میشود) یا MySQL ۸.۰+
- وب سرور : Nginx یا Apache
- Node.js : ۱۸+ (برای کامپایل asset)
- دسترسی SSH : به سرورهای مدیریتشدهای که CSF/DirectAdmin را اجرا میکنند
🚀 شروع سریع
۱. کلون و نصب
git clone https://github.com/AichaDigital/unblock.git cd unblock composer install npm install && npm run build
۲. تنظیمات محیطی
cp .env.example .env php artisan key:generate
۳. پیکربندی اطلاعات شرکت
.envجزئیات شرکت خود را ویرایش و پیکربندی کنید:
COMPANY_NAME="Your Hosting Company" [email protected] SUPPORT_URL=https://support.yourcompany.com # Legal URLs (Required for GDPR compliance) LEGAL_PRIVACY_URL=https://yourcompany.com/privacy LEGAL_TERMS_URL=https://yourcompany.com/terms LEGAL_DATA_PROTECTION_URL=https://yourcompany.com/data-protection
۴. راهاندازی پایگاه داده
# For SQLite (recommended) touch database/database.sqlite php artisan migrate --seed # For MySQL, configure DB_* variables in .env first
۵. ایجاد کاربر ادمین
# Interactive mode (recommended)
php artisan user:create --admin
# Non-interactive mode
php artisan user:create --admin \
--email="[email protected]" \
--first-name="Admin" \
--last-name="System" \
--password="YourSecurePassword123!"
# Development mode (simple passwords allowed)
php artisan user:create --admin --no-secure نکته: این دستور تمام فیلدهای سفارشی و اعتبارسنجیهای خاص مدل کاربر ما را مدیریت میکند. از یا user:createاستفاده نکنید زیرا ساختار جدول را در نظر نمیگیرند.tinkermake:filament-user
۶. شروع سرور توسعه
php artisan serve
مراجعه کنید http://localhost:8000و با اطلاعات کاربری ادمین خود وارد شوید.
📖 مستندات
اضافه کردن سرورها (میزبانها)
- به پنل مدیریت → هاست بروید
- جزئیات سرور خود را اضافه کنید:
- FQDN : نام میزبان سرور
- آدرس آیپی : آیپی سرور
- کاربر SSH : معمولاً
root - نوع پنل :
cpanelیاdirectadmin
- کلید SSH را آپلود کنید (به تنظیمات کلید SSH در زیر مراجعه کنید)
تنظیم کلید SSH
برای امنیت، یک کلید SSH محدود ایجاد کنید که فقط بتواند دستورات خاص CSF را اجرا کند:
# On your Unblock server ssh-keygen -t ed25519 -f ~/.ssh/unblock_csf -C "unblock-firewall" # Copy public key to managed server cat ~/.ssh/unblock_csf.pub
در سرور مدیریتشده، ~/.ssh/authorized_keysبا دستور زیر به [مقدار] محدودیت اضافه کنید:
command="/path/to/restricted-csf-wrapper.sh",no-port-forwarding,no-X11-forwarding,no-agent-forwarding ssh-ed25519 AAAA... unblock-firewall
برای دستورالعملهای دقیق و اسکریپت بستهبندی، به docs/ssh-keys-setup.md مراجعه کنید .
ادغام WHMCS (اختیاری)
برای همگامسازی کاربران و هاستینگها از WHMCS:
WHMCS_SYNC_ENABLED=true WHMCS_API_URL=https://your-whmcs.com/includes/api.php WHMCS_API_IDENTIFIER=your_api_identifier WHMCS_API_SECRET=your_api_secret
برای تنظیمات کامل به docs/whmcs-integration.md مراجعه کنید .
کاربران مجاز
به مشتریان اجازه دهید بدون اشتراکگذاری حساب کاربری خود، به دامنههای خاص دسترسی بدهند:
- مشتری کاربر مجاز را در داشبورد خود ایجاد میکند
- دامنه (های) خاص یا سرور (های) خاصی را اختصاص دهید
- کاربر مجاز، دسترسی ورود به سیستم OTP را دریافت میکند.
- فقط میتوان منابع اختصاص داده شده را مشاهده/مدیریت کرد
حالت رفع انسداد ساده (بدون احراز هویت)
برای ارائه دهندگان خدمات میزبانی وب که روابط محکمی با مشتریان دارند، رفع انسداد IP ناشناس را فعال کنید:
# Enable simple mode UNBLOCK_SIMPLE_MODE=true # Configure throttling (requests per minute) UNBLOCK_SIMPLE_THROTTLE_PER_MINUTE=3 # Block duration after exceeding rate limit (minutes) UNBLOCK_SIMPLE_BLOCK_DURATION=15
ویژگیها:
- بدون نیاز به احراز هویت
- کاربر موارد زیر را ارائه میدهد: آدرس IP، دامنه، ایمیل
- سیستم اعتبارسنجی میکند که IP مسدود شده است + دامنه در گزارشهای سرور وجود دارد
- فقط در صورتی که هر دو شرط مطابقت داشته باشند، از حالت انسداد خارج میشود (از سوءاستفاده جلوگیری میکند)
- محدود کردن سرعت بسیار بالا (به طور پیشفرض ۳ درخواست در دقیقه)
- ثبت بیصدای اطلاعات برای مدیر در موارد غیر منطبق
- قابل دسترسی در:
/simple-unblock
مهم:
php artisan db:seed --class=AnonymousUserSeederبرای ایجاد کاربر ناشناس سیستم، دستور زیر را اجرا کنید:- این کاربر (
[email protected]) برای همه گزارشهای ناشناس استفاده میشود - مدیر گزارشهای دقیقی از تمام تلاشها (موفق و ناموفق) دریافت میکند.
- کاربران فقط زمانی ایمیلهای تأیید دریافت میکنند که IP واقعاً از حالت مسدود خارج شده باشد.
مستندات:
- راهنمای کاربر : راهنمای کاربر حالت ساده – مستندات کاربر نهایی
- راهنمای تست : راهنمای تست حالت ساده – تست با دادههای واقعی
- اسناد فنی :
docs/internals/برای جزئیات پیادهسازی مراجعه کنید
🔧 پیکربندی
کارگران صف
برای محیط عملیاتی، صفهای کاری را با استفاده از Supervisor پیکربندی کنید:
sudo cp supervisor-laravel-worker.conf /etc/supervisor/conf.d/unblock-worker.conf # Edit paths in the file sudo supervisorctl reread sudo supervisorctl update sudo supervisorctl start unblock-worker:*
وظایف برنامهریزیشده
به crontab اضافه کنید:
* * * * * cd /path/to/unblock && php artisan schedule:run >> /dev/null 2>&1
🧪 آزمایش
مجموعه تست کامل را اجرا کنید:
composer test # With coverage composer test:coverage # Parallel execution php artisan test --parallel
🔒 امنیت
- کلیدهای SSH : از کلیدهای SSH اختصاصی و محدود برای عملیات فایروال استفاده کنید
- اعتبارسنجی ورودی : تمام IPها و دستورات اعتبارسنجی و پاکسازی میشوند.
- ثبت وقایع : تمام وقایع فایروال به همراه اطلاعات کاربر ثبت میشوند.
- WHMCS : ایجاد کاربر MySQL فقط خواندنی برای ادغام WHMCS
- مهلت زمانی جلسه : مهلت زمانی عدم فعالیت ۴ ساعته
- احراز هویت OTP : OTP مبتنی بر زمان برای دسترسی کلاینت
برای بهترین شیوههای امنیتی به SECURITY.md مراجعه کنید .
🌍 بینالمللی شدن
آنبلاک از چندین زبان به صورت پیشفرض پشتیبانی میکند:
- انگلیسی (en)
- اسپانیایی (es)
برای افزودن زبانهای بیشتر، lang/enکد زبان خود را کپی کرده و رشتهها را ترجمه کنید.
📝 مجوز
این پروژه تحت مجوز عمومی عمومی GNU Affero نسخه ۳.۰ (AGPL-۳.۰) منتشر شده است .
این یعنی چی:
✅ شما میتوانید:
- استفاده، مطالعه، اصلاح و توزیع رایگان این نرمافزار
- برای مقاصد تجاری از آن استفاده کنید
- انشعاب و ایجاد آثار مشتق شده
❌ شما نمیتوانید:
- ایجاد محصولات متنباز بر اساس این کد
- آن را به عنوان یک SaaS/سرویس بدون اشتراکگذاری کد منبع خود اجرا کنید
- حذف اعلانهای انتساب یا مجوز
📋 شما باید:
- مجوز AGPL-۳.۰ را در تمام نسخهها نگه دارید
- کد منبع هرگونه تغییر را به اشتراک بگذارید
- نسبت دادن واضح به این پروژه را ارائه دهید
- اگر این را به عنوان یک سرویس شبکه اجرا میکنید، کد منبع خود را در دسترس کاربران قرار دهید.
مجوز کامل: مجوز | انگلیسی | اسپانیایی
این مجوز قوی کپیلفت تضمین میکند که نرمافزار، حتی زمانی که به عنوان یک سرویس وب استفاده میشود، رایگان و متنباز باقی بماند.
🤝 مشارکت
از مشارکتها استقبال میشود! برای جزئیات بیشتر لطفاً به CONTRIBUTING.md مراجعه کنید .
💬 پشتیبانی
- مستندات : مستندات کامل
- مشکلات : مشکلات گیتهاب
- بحثها : بحثهای گیتهاب
🙏 تقدیر و تشکر
- ساخته شده با لاراول ۱۲
- پنل مدیریت توسط FilamentPHP 3
- آیکونهای Heroicons
- تست با Pest PHP
📊 آمار پروژه
- آزمونها : ۲۵۷ قبولی
- پوشش : ۸۵٪+
- سطح PHPstan : حداکثر
- نسخه لاراول : ۱۲.x
- نسخه پی اچ پی : ۸.۳+
ساخته شده نگارنوین ❤️ برای عموم
فایل ماژول را از طریق زیر دانلود و دریافت کنید!