3x-ui3x-ui
Эксплуатация

Безопасность

Усиление защиты 3x-ui — аутентификация панели и 2FA, ограничение IP через Fail2ban, правила брандмауэра, BBR и поддержание актуальности.

Прокси-панель — ценная цель для атак. Несколько уровней защиты дают большой эффект.

Усиление защиты панели

  • Надёжные, уникальные учётные данные и двухфакторная аутентификация (TOTP).
  • Нестандартный порт панели и длинный случайный базовый веб-путь.
  • TLS на панели (напрямую или через обратный прокси).
  • Встроенный ограничитель входа блокирует IP/имя пользователя после 5 неудачных попыток за 5 минут (на 15 минут), а панель может направлять собственный исходящий трафик через outbound.

Полный чек-лист см. в разделе Первый вход.

Fail2ban и ограничения IP

Задайте ограничение IP для каждого клиента (см. Клиенты), чтобы ограничить число одновременных исходных IP. Применением правил занимается Fail2ban, который 3x-ui устанавливает и настраивает за вас (включён по умолчанию при установке через скрипт, а в Docker — через XUI_ENABLE_FAIL2BAN=true).

Управляйте им из меню x-ui (22 — IP Limit Management): установка/настройка, изменение длительности блокировки (по умолчанию 30 минут), блокировка/разблокировка 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, порт панели, порт подписки и ваши входящие порты. Меню x-ui (23 — 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 (26 — Enable BBR) переключает алгоритм управления перегрузкой BBR от Google (net.ipv4.tcp_congestion_control = bbr, net.core.default_qdisc = fq), который часто повышает пропускную способность на перегруженных каналах.

Поддерживайте актуальность

Регулярно обновляйте 3x-ui и Xray-core — исправления безопасности появляются в новых выпусках. Следите за страницей выпусков и см. Обновление и удаление.

On this page