Безопасный JMX и предотвращение удаленного клиента для регистрации произвольного Mbeans JMX с использованием javax.management.loading.MLet - PullRequest
0 голосов
/ 29 августа 2018

Контекст: в нашем сценарии мы не передаем com.sun.management.jmxremote.port, следовательно, мы только запускаем JMX для локального мониторинга. Для удаленного мониторинга этого хоста prod (назовите его x) с клиента (назовите его y) пользователь может создать пересылку ssh-пакетов с сервисного порта jmx на x (при условии, что пользователь из y имеет доступ к общему порту, обслуживающему JMX на x).

Исправьте меня, если я ошибаюсь: поскольку у пользователя есть доступ к сервисному порту JMX на X, я предполагаю, что это также дает пользователю y возможность использовать javax.management.loading.MLet для выполнения произвольного кода на хосте prod x.

Из Orcales Мониторинг и управление doc, можно ли с уверенностью сказать, что если мы используем аутентификацию по паролю с настройками

com.sun.management.jmxremote.authenticate=true
com.sun.management.jmxremote.ssl=true

Означает ли это, что доступ к JMX безопасен, значит ли это, что пользователи не смогут использовать javax.management.loading.MLet для выполнения кода на хосте prod x, даже если у них есть доступ к обслуживающему порту JMX на нем?

Какие-нибудь лучшие предложения по обеспечению безопасности JMX?

1 Ответ

0 голосов
/ 29 августа 2018

Это верно, но имейте в виду, что пользователи не смогут получить доступ к службам JMX вообще, если у них нет соответствующих учетных данных. Другими словами, вы не просто блокируете регистрации на MLet, вы блокируете все. Вы должны также тщательно выбрать метод аутентификации. Если вы используете файлы свойств, пользователь с SSH-доступом к файловой системе может получить учетные данные.

...