Общая информация
Вот то, что известно всем: vpxuser – учетная запись, используемая vCenter`ом для управления ESXi хостами (опрос гипервизора, отправка задачи), которые в него включены. Т.е. учетная запись root (ESXi) не имеет отношения к связи vCenter – ESXi (за исключением того нюанса, что она нужна для включения ESXi в vCenter).
Vpxuser имеет права администратора ESXi. Таким образом, администратор vCenter`а может выполнять практически все те же самые манипуляции с хостом, что и root (ESXi), кроме создания/удаления/изменения локальных пользователей и групп самого ESXi хоста.
Управлять учетной записью vpxuser с помощью службы каталогов AD нельзя.
Пароль vpxuser хранится в зашифрованном виде и на ESXi и в базе vCenter (логично, не правда ли?) и для каждого ESXi этот пароль уникален.
Подключение к ESXi с помощью VPXUSER
В некоторых источниках я видел утверждения вроде этого: «Знание пароля от vpxuser Вам ничего не даст, использовать эту комбинацию для подключения к хосту и любых других целей невозможно». Однако, зная пароль vpxuser, можно подключиться к ESXi и управлять им (опробовано на Standalone ESXi 5.5 u1 и на ESXi 5.5 u1 под управлением vCenter 5.5, и не только на них).
![image](https://habrastorage.org/getpro/habr/post_images/835/7d4/192/8357d4192664af1a96d43494d3fdfa7e.jpg)
С другой стороны, узнать пароль vpxuser нельзя (по крайней мере я способ так и не нашел), поэтому подключиться таким образом можно только изменив пароль vpxuser, а этого делать не нужно (читаем дальше).
Изменение пароля VPXUSER
В документации можно обнаружить предупреждение, которое в вольном (моем) переводе выглядит так:
ВНИМАНИЕ: проводите манипуляции с учетной записью vpxuser на свой страх и риск, это может повлечь за собой нарушение связи vCenter – ESXi. При включенном lockdown mode на хосте, управление хостом может быть потеряно безвозвратно.
Это действительно так. Опробовав в лаборатории, могу сказать, что после смены пароля vpxuser на ESXi, vCenter теряет с ним связь. НО не сразу. В моем случае это произошло через 18-20 часов. Самое интересное то, что после смены пароля vpxuser на ESXi, я сразу перезагрузил vCenter Service (но не машину, на которой этот сервис развернут), т.е. установленная сессия должна была дропнуться, и креденшиалы, гипотетически бывшие в кэше (а может и не бывшие, а может и не в кэше), должны были очиститься. Но этого не произошло. Тех. поддержка VMware никак не прокомментировала такое поведение, сказав, что не отвечает на вопросы по архитектурным особенностям платформы.
Интересно и другое: далее в этой статье есть информация о политике паролей vpxuser, и по умолчанию длина его пароля 32 символа. Если менять его пароль вручную на ESXi, например с помощью “passwd”, то можно задать пароль намного короче. Видимо, связано это с тем, что политику паролей поддерживает vCenter, а поскольку меняется пароль vpxuser тоже vCenter`ом, то, как говорится «Я своей смешною рожей сам себя и веселю». Т.е. сменить-то пароль можно, и задать его несоответствующим политике можно, но связь с ESXi в итоге будет утеряна.
Потеря связи вполне логична, ведь при ручной смене пароля vpxuser, его пароль в базе vCenter`а не меняется.
Вывод: не меняйте пароль на vpxuser сами, пусть этим занимается vCenter. Если вы изменили пароль vpxuser руками, то с вероятностю 99% рано или поздно vCenter потеряет связь с ESXi. 1% я оставляю на магическое вмешательство.
Устранение проблем
Если все-таки изменения в vpxuser были внесены (например, изменен пароль) и это повлекло недоступность ESXi из vCenter (обычно сопровождается ошибкой: "Call «ServiceInstance.RetrieveContent» for object «ServiceInstance» on Server «ip_address» failed"), то можно поступить следующим образом (если lockdown mode не включен и есть доступ к хосту по SSH):
Для релизов 3.x и 4.х — kb.vmware.com/kb/1005759. Если кратко:
- ПКМ на хосте в vSphere Client`е, disconnect (если, конечно, хост уже не находится в таком состоянии). НЕ УДАЛЯТЬ хост из vCenter`а.
- Подключиться по SSH к хосту и выполнить: “userdel vpxuser”.
- ПКМ на хосте и выбрать “Connect”. Игнорировать все возможные ошибки аутентификации.
- Ввести требуемый логин root и его пароль. Учетная запись vpxuser будет пересоздана.
Для релизов 5.x и 6.x процедура такая же за исключением пункта 2 (т.е. удалять vpxuser не нужно).
Здесь стоит обратить внимание на фразу «если не включен lockdown mode». Если пароль vpxuser был изменен и vCenter потерял связь с ESXi и при этом lockdown mode включен, т.е. доступ к хосту ESXi запрещен всем кроме vCenter, то официальная позиция VMware на этот счет однозначна: «переустанавливайте ESXi».
Политика паролей для vpxuser
Время действия пароля
По умолчанию пароль vpxuser обновляется каждые 30 дней, но это можно изменить:
1. В vSphere Client > Administration.
2. vCenter Server Settings… > Advanced Settings.
3. Выбрать параметр VirtualCenter.VimPasswordExpirationInDays, установить нужное значение.
4. Перезагрузить службу vCenter.
![image](https://habrastorage.org/web/33a/4e1/d26/33a4e1d266354ff4850bce9730566ca7.jpg)
Изменять этот параметр VMware не рекомендует. VMware вообще много чего не рекомендует делать, жить вредно, от этого умирают.
Сложность пароля
Пароль vpxuser состоит из 32х символов, и содержит минимум 1 символ из групп: специальные символы ({~@-{} и др.), цифры (1-9), большие буквы (латиница) и строчные буквы (латиница).
В документации указано, что для изменения длины пароля vpxuser можно изменить значение параметра vpxd.hostPasswordLength в файле конфигурации на vCenter:
- Linux (VCSA) — /etc/vmware-vpx/vpxd.cfg;
- Windows – C:\ProgramData\VMware\VMware VirtualCenter\vpxd.cfg;
Параметр vpxd.hostPasswordLength в конфиге отсутствует, его нужно добавить туда. Вот кусочек конфига с этим параметром, где видно место, куда его воткнуть:
< vmacore >
........
< vpxd >
< filterOverheadLimitIssues >true< /filterOverheadLimitIssues >
< hostPasswordLength >32< /hostPasswordLength >
< network >
< rollback >true< /rollback >
< /network >
........
< /vpxd>
Т.е. внутрь vpxd, но не внутрь какого-либо другого вложенного тега.
Вывод: зачем вообще менять политику паролей для vpxuser? Да незачем, VMware не рекомендует заниматься подобной ерундой.
В разных релизах
Вот что интересно: в ранних релизах vSphere пользователь vpxuser на Standalone ESXi не существовал (до включения хоста в vCenter). Об этом говорит статья kb.vmware.com/kb/1005759: The vpxuser account is created by VirtualCenter when an ESX host is added. Do not manipulate this account. Также проверено вручную – на Standalone ESXi 4.1 его действительно нет. Было подозрение, что этот пользователь в 4.1 называется vimuser (т.к. время действия пароля vpxuser контролируется параметром VirtualCenter.VimPasswordExpirationInDays), а vimuser в ESXi 4.1 как раз предопределен, но при включении ESXi 4.1 в vCenter на хосте действительно создается vpxuser и НЕ удаляется после удаления хоста из vCenter`а. Однако, kb1005759 предназначена для релизов 4.х и более ранних. В последних релизах (в 5.5 и 6 точно) vpxuser существует сразу после развертывания ESXi. Судя по всему, эта учетная запись не используется, пока хост не включен в vCenter. Какой-то конкретной информации об этом нюансе я найти не смог, но пользователь a.p. (Guru, vExpert) также считает что эта учетная запись не используется. К тому же, я сменил пароль для vpxuser на Standalone ESXi, и не заметил никаких последствий (например, потеря доступа по SSH, vSphere Client).
Здесь должен быть какой-то вывод
Вывод касательно vpxuser предельно прост — это одна из тех вещей, которые тюнить не стоит практически ни при каких обстоятельствах. Пост призван лишь рассказать чуть больше об этой учетной записи, о ее присутствии в разных релизах и о мифах, вроде того, что её нельзя использовать для прямого подключения к ESXi.
Комментарии (3)
kelevra
25.08.2017 14:09+1Соглашусь с первым комментатором. Статья глубокая, но бесполезная. Смысла менять пароль у vpxuser нет, даже если как-то управлять esxi отдельно от vCenter. Причина этому простая — всё что можно сделать напрямую с esxi точно так же успешно делается и через vCenter.
mikkisse
Спасибо за ваш труд, но цель исследования vpxuser до сих пор не ясна. Вы о нем сказали все в первом абзаце :)
nokogerra Автор
Вообще, причина исследования в том, что один из участников communities.vmware.com был уверен, что смена пароля vpxuser (его настигла паранойя) на standalone ESXi повлияла на доступ к ESXi с учетной записью root и на работу vm (конечно же это не так). Я почему-то решил разубедить его, приводя в качестве доказательств не только документацию, но и личные тесты в лабе, а когда до меня дошло, что в standalone ESXi, никогда не бывшим под управлением vCenter, вообще существует учетная запись vpxuser я напрягся и решил изучить вопрос глубже, т.к. во времена 4.1 vpxuser не существовал до включения в vCenter. Ну а когда начал, решил довести дело до конца, чтобы не оставалось каких-то пробелов.