3x-ui3x-ui
عملیات

امنیت

سخت‌سازی 3x-ui — احراز هویت پنل و 2FA، محدودیت IP با Fail2ban، قوانین فایروال، BBR و به‌روز ماندن.

یک پنل پروکسی هدفی پرارزش است. چند لایه سخت‌سازی تأثیر زیادی دارد.

سخت‌سازی پنل

  • اعتبارنامه‌های قوی و یکتا و احراز هویت دومرحله‌ای (TOTP).
  • یک پورت غیرپیش‌فرض برای پنل و یک مسیر پایه وب طولانی و تصادفی.
  • TLS روی پنل (مستقیماً یا از طریق یک پروکسی معکوس).
  • محدودکننده ورود داخلی، یک IP/نام کاربری را پس از ۵ تلاش ناموفق در بازه ۵ دقیقه (به مدت ۱۵ دقیقه) مسدود می‌کند، و پنل می‌تواند ترافیک خروجی خود را از طریق یک outbound مسیریابی کند.

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

Fail2ban و محدودیت‌های IP

برای هر کلاینت یک محدودیت IP تنظیم کنید (به کلاینت‌ها مراجعه کنید) تا تعداد IPهای مبدأ همزمان محدود شود. اعمال این محدودیت توسط Fail2ban انجام می‌شود که 3x-ui آن را برای شما نصب و پیکربندی می‌کند (در نصب‌های اسکریپتی به‌طور پیش‌فرض فعال است و در Docker از طریق XUI_ENABLE_FAIL2BAN=true).

آن را از منوی x-ui مدیریت کنید (۲۲ — IP Limit Management): نصب/پیکربندی، تغییر مدت مسدودسازی (پیش‌فرض ۳۰ دقیقه)، مسدودسازی/رفع مسدودی یک IP، مشاهده لاگ‌های مسدودسازی و بررسی وضعیت. در پشت صحنه:

  • این jail با نام 3x-ipl شناخته می‌شود؛ لاگ‌های مسدودسازی در /var/log/x-ui/3xipl.log و /var/log/x-ui/3xipl-banned.log قرار دارند (همچنین از طریق x-ui banlog).
  • مسدودسازی‌ها همه TCP/UDP را پوشش می‌دهند به‌جز پورت‌های SSH و پنل شما، بنابراین یک مسدودسازی نمی‌تواند شما را از سرور یا پنل بیرون بیندازد.

در Docker، Fail2ban با iptables مسدودسازی می‌کند که به قابلیت NET_ADMINNET_RAW) نیاز دارد — docker-compose.yml آن‌ها را اعطا می‌کند. با یک docker run ساده، --cap-add=NET_ADMIN --cap-add=NET_RAW را اضافه کنید وگرنه مسدودسازی‌ها لاگ می‌شوند اما هرگز اعمال نمی‌شوند.

فایروال

تنها پورت‌هایی را باز کنید که واقعاً استفاده می‌کنید: SSH، پورت پنل، پورت اشتراک و پورت‌های inbound خود. منوی x-ui (۲۳ — Firewall Management) ابزار ufw را در بر می‌گیرد، یا اینجا قوانین را تولید کنید:

Firewall rules generator

Pick the ports to open and copy ready-made ufw and nftables rules.

ufw
ufw allow 22/tcp   # SSH
ufw allow 2053/tcp   # panel
ufw allow 443/tcp   # inbound (HTTPS)
ufw enable
nftables (/etc/nftables.conf)
#!/usr/sbin/nft -f

flush ruleset

table inet filter {
    chain input {
        type filter hook input priority 0; policy drop;

        iif "lo" accept
        ct state established,related accept
        icmp type echo-request accept
        tcp dport 22 accept   # SSH
        tcp dport 2053 accept   # panel
        tcp dport 443 accept   # inbound (HTTPS)
    }

    chain forward {
        type filter hook forward priority 0; policy drop;
    }

    chain output {
        type filter hook output priority 0; policy accept;
    }
}

پیش از فعال‌سازی یک فایروال با سیاست رد پیش‌فرض، مطمئن شوید که SSH همچنان مجاز می‌ماند، وگرنه ممکن است خودتان را بیرون بیندازید. با یک نشست دوم باز آن را آزمایش کنید.

تنظیم شبکه (BBR)

منوی x-ui (۲۶ — Enable BBR) کنترل ازدحام BBR گوگل را فعال/غیرفعال می‌کند (net.ipv4.tcp_congestion_control = bbr، net.core.default_qdisc = fq) که اغلب توان عملیاتی را روی لینک‌های شلوغ بهبود می‌بخشد.

به‌روز ماندن

3x-ui و Xray-core را به‌طور منظم به‌روزرسانی کنید — اصلاحات امنیتی در نسخه‌های جدید منتشر می‌شوند. صفحه انتشارها را دنبال کنید و به به‌روزرسانی و حذف نصب مراجعه کنید.

On this page