Tarantool CE/EE Documentation portal logo
Помощь
Обновлена 15 сентября 2026 г. в 08:55

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

В Tarantool поддерживаются два типа подключений:

  • С помощью функции console.listen() из модуля console можно настроить порт, используемый для открытия административной консоли сервера. Он предназначен для подключения администраторов к работающему экземпляру и выполнения запросов. tt вызывает console.listen() для создания управляющего сокета для каждого запущенного экземпляра.

  • С помощью параметра box.cfg{listen=...} из модуля box можно настроить бинарный порт для подключений, которые выполняют чтение и запись в базу данных или вызывают хранимые процедуры.

При подключении к административной консоли:

  • Клиент-серверный протокол – простой текстовый.
  • Пароль не требуется.
  • Пользователь автоматически определяется как admin.
  • Каждая команда передается напрямую во встроенный интерпретатор Lua.

Поэтому порты для административной консоли следует настраивать с осторожностью. Если это TCP-порт, он должен быть открыт только для определенного IP-адреса. Вместо TCP-порта предпочтительнее настроить доменный Unix-сокет, который требует наличия прав доступа к серверной машине. Тогда типичная настройка порта для административной консоли будет выглядеть следующим образом:

console.listen('/var/lib/tarantool/socket_name.sock')

А типичный URI для соединения будет таким:

/var/lib/tarantool/socket_name.sock

При этом серверный процесс имеет права на запись в /var/lib/tarantool, а клиентский – права на чтение /var/lib/tarantool.

В качестве альтернативы для подключения к административной консоли экземпляра, запущенного с помощью утилиты tt, используйте команду tt connect.

Выяснить, является ли некоторый TCP-порт портом для административной консоли, можно с помощью telnet. Например:

$ telnet 0 3303Trying 0.0.0.0...Connected to 0.Escape character is '^]'.Tarantool 2.1.0 (Lua console)type 'help' for interactive help

В этом примере в ответе сервера нет слова "binary", но есть "Lua console". Это значит, что подключение к порту административной консоли выполнено успешно и можно вводить команды на этом терминале.

Если вы подключены к бинарному порту:

  • Клиент-серверный протокол – бинарный.
  • Пользователь автоматически определяется как guest.
  • Для смены пользователя необходимо пройти аутентификацию.

Для удобства использования команда tt connect автоматически определяет тип подключения во время установления соединения и использует команду бинарного протокола EVAL, когда необходимо выполнить Lua-команды через бинарное подключение. Для выполнения EVAL аутентифицированный пользователь должен иметь глобальную привилегию execute.

Поэтому если подключение по ssh невозможно, системный администратор может получить удаленный доступ к экземпляру, создав в Tarantool пользователя с глобальными привилегиями execute и непустым паролем.