Настройки безопасности, SSL-сертификаты и сервисы панели 3X-UI
Безопасность веб-панели
Для предотвращения несанкционированного доступа и взлома панели 3X-UI выполните базовые меры защиты сразу после установки:
- Смена стандартного логина и пароля:
- Перейдите в Настройки панели (Panel Settings) → вкладка Аутентификация (Authentication).
- Задайте уникальный сложный логин и надежный пароль.
- Секретный базовый путь (Web Base Path):
- В поле Web Base Path укажите нестандартный префикс URL, например
/my_secret_admin/. - При обращении к корню сервера
http://IP:PORT/панель вернет ошибку 404/403, маскируя свое присутствие от интернет-сканеров.
- В поле Web Base Path укажите нестандартный префикс URL, например
- Двухфакторная аутентификация (2FA):
- Включите 2FA в настройках панели и отсканируйте QR-код в Google Authenticator или любом TOTP-приложении.
- Если вы потеряете доступ к 2FA, его всегда можно сбросить из консоли сервера командой
x-ui(пункт7).
- Смена порта панели:
- Не используйте стандартный порт
2053на открытом сервере. Задайте случайный порт в диапазоне10000–60000.
- Не используйте стандартный порт
Получение и настройка SSL-сертификатов
Для защищенного доступа к веб-панели и подпискам по HTTPS (https://ваш-домен:порт/) рекомендуется выпустить бесплатный SSL-сертификат Let's Encrypt.
Способ 1: Встроенный ACME в меню `x-ui` (рекомендуется)
- Убедитесь, что ваш домен направлен на IP-адрес сервера (A-запись в DNS) и порт 80 свободен.
- Подключитесь к серверу по SSH и запустите
x-ui. - Выберите пункт
20(SSL Certificate Management):- Get SSL (Domain) — введите ваше доменное имя, скрипт автоматически выпустит сертификат через ACME.
- Set Cert paths for the panel — скрипт автоматически применит пути к выпущенному сертификату (
fullchain.cerиprivkey.key) в настройки веб-панели и перезапустит ее. - Force Renew — принудительное продление сертификата.
- Get SSL for IP Address — выпуск короткоживущего 6-дневного автопродлеваемого сертификата для прямого IP-адреса.
Способ 2: Через Cloudflare DNS API (пункт `21`)
Идеально подходит, если домен подключен к Cloudflare, а также для выпуска Wildcard-сертификатов (*.domain.com):
- В консоли
x-uiвыберите пункт21(Cloudflare SSL Certificate). - Выберите тип авторизации: API Token (
t) или Global API Key (g). - Для получения API Token:
- Откройте Cloudflare API Tokens.
- Нажмите Create Token → выберите шаблон Edit zone DNS.
- Укажите зону вашего домена и скопируйте полученный токен.
- Вставьте токен и домен в консоли. Сертификат будет выпущен и автоматически прописан.
Способ 3: Через Certbot Standalone
apt-get install certbot -y
certbot certonly --standalone --agree-tos --register-unsafely-without-email -d yourdomain.com
Сертификаты сохранятся в /etc/letsencrypt/live/yourdomain.com/. Укажите пути к fullchain.pem и privkey.pem в настройках панели.
Настройка реверс-прокси (Reverse Proxy: Nginx / Caddy)
Реверс-прокси позволяет спрятать саму панель и подписки за стандартными портами 80 и 443 веб-сервера.
Пример конфигурации Nginx:
<h1 id="доступ-к-веб-панели-3x-ui">Доступ к веб-панели 3X-UI <a href="#доступ-к-веб-панели-3x-ui" class="header-anchor" aria-hidden="true">#</a></h1>
location / {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Range $http_range;
proxy_set_header If-Range $http_if_range;
proxy_redirect off;
proxy_pass http://127.0.0.1:2053;
}
<h1 id="доступ-к-серверу-подписок--порт-2096-по-умолчанию">Доступ к серверу подписок (порт 2096 по умолчанию) <a href="#доступ-к-серверу-подписок--порт-2096-по-умолчанию" class="header-anchor" aria-hidden="true">#</a></h1>
location /sub {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_redirect off;
proxy_pass http://127.0.0.1:2096;
}
Ограничение подключений с нескольких IP (Fail2ban IP Limit)
Встроенная интеграция 3X-UI с Fail2ban позволяет ограничить число одновременных IP-адресов на одного клиента (защита от раздачи одного ключа многим пользователям):
- В терминале запустите
x-uiи выберите пункт22(IP Limit Management). - Выберите Install Fail2ban and configure IP Limit — скрипт установит
fail2banи создаст специальный jail для 3X-UI. - В веб-панели перейдите в Xray Configs (Настройки Xray) → вкладка Log и укажите путь для журнала доступа:
- Access log:
./access.log - Нажмите Save и перезапустите Xray.
- Access log:
- В свойствах любого клиента в поле IP Limit задайте максимальное число IP (например,
2). При превышении лимита нарушитель будет временно заблокирован черезiptables.
Настройка Telegram-бота панели
3X-UI включает мощного Telegram-бота для удаленного контроля и получения бэкапов:
- Откройте в Telegram бота @BotFather и создайте нового бота командой
/newbot. Скопируйте полученный токен (Bot Token). - Узнайте свой числовой Telegram ID через бота @useridinfobot.
- В панели 3X-UI откройте Настройки панели (Panel Settings) → Telegram Bot:
- Telegram Bot Token: вставьте токен от BotFather.
- Admin Chat ID(s): ваш числовой ID (если администраторов несколько — через запятую).
- Notification Time (Расписание): задайте время отправки отчетов по cron (например,
@dailyраз в сутки или@every 8hкаждые 8 часов). - Login Notification: включите оповещения о каждом входе в панель.
- CPU Load Threshold (%): процент нагрузки на процессор для тревожного оповещения (например,
85). - Database Backup: включите автоматическую отправку архива базы данных
x-ui.dbв Telegram вместе с регулярным отчетом. - Сохраните настройки и нажмите кнопку перезапуска.