LINUX.ORG.RU
ФорумAdmin

Поддержка кириллицы в GLPI-Agent

 ,


0

2

GLPI Server on Debian 12.4

GLPI version: GLPI 10.0.11

glpi-agent version: 1.7.1-1

компы клиентов на Win10

Когда я открываю Web-интерфейс агента GLPI и ввожу логин на кириллице для аутентификации на Windows-хостах по WinRM, то при попытке зайти на страницу, где создаются диапазоны IP-сетей, появляется ошибка:

ERR_EMPTY_RESPONSE

А в логах GLPI-Agent’a:

[debug] [http server] GET request /toolbox/ip_range from client 192.168.31.79 
[Fri Feb  2 12:42:37 2024][error] HTTP::Message content must be bytes at /usr/share/glpi-agent/lib/GLPI/Agent/HTTP/Server/ToolBox.pm line 853.

Вот какая ошибка, если подключаться из консоли: https://fastpic.org/fullview/123/2024/0204/f0490db9453b3c11dcd04b2cb6ca7ec2.jpg.html

Если я вообще не использую кириллицу, то все работает, но я не могу для GLPI сменить логин локального администратора на всех машинах.

Может кто-то уже сталкивался с такой проблемой? На офф форуме молчат, как и в группах в TG и на Github.

Нужна именно удаленная инвентаризация, т.е. без установки или запуска агентов на самих клиентах.



Последнее исправление: TuxZer92 (всего исправлений: 2)

Ответ на: комментарий от einhander

Ранее не использовал GLPI. И все-таки хотелось бы обойтись правкой самого GLPI. У нас в организации есть требования к именованию учетки локального админа.

TuxZer92
() автор топика

я бы, наверное, попробовал пошалить в файле GLPI-Agent-1.7.1/lib/GLPI/Agent/Task/RemoteInventory/Remote/Winrm.pm в строчках

    $self->{_winrm} = GLPI::Agent::SOAP::WsMan->new(
        logger      => $self->{logger},
        config      => $self->config(),
        url         => $self->{_canonical_url},
        user        => $self->user(),
        password    => $self->pass(),
        timeout     => $self->timeout(),
        winrm       => 1,
    );
или какое-то urldecode влепил на $self->user(), или вообще для начала хардкодом «Администратор» туда написал, посмотреть что выйдет.

Это то, что смогло в голову придти за полчаса смотрения в незнакомый код.

Toxo2 ★★★★
()
Последнее исправление: Toxo2 (всего исправлений: 2)
Ответ на: комментарий от TuxZer92

Эм... Сюда user => $self->user(), поменять на user => "проверка_приём", ?

просто убедиться что это действительно то место, которое передается на авторизацию.

Если не угадали, вернуть назад как было и читать код тщательнее.

Toxo2 ★★★★
()
Ответ на: комментарий от Toxo2

Почти целый день убил на эту игру )

Там, оказывается, со стороны Windows10 ещё целая песня поднять WinRM так, чтобы она стала принимать Authenticate: Basic. В итоге только через политики получилось.

Но теория с uri_decode в том месте - не работает. То, что там она рисует trying basic with %D0%B0%D0 никак не влияет. На самом деле даже если там сделать decode - она тогда пишет нормальным текстом «администратор». Но ответ от WinRM всё-равно 401.

В общем - я так понимаю надо как-то догадаться как Server: Microsoft-HTTPAPI/2.0 раскодирует имя пользователя.

$ curl -X POST -v http://192.168.99.2:5985/wsman --data 'asdf' --header 'Content-Type: application/x-www-form-urlencoded; charset=utf-8' --basic -u Администратор:xxxXXXxxx
вот такое дает 401, а должно давать 415 (как у пользователя с английскими буквами).

То ли в 1251 перевести попробовать, то ли в ucs-2... Пока мысли кончились )

Toxo2 ★★★★
()
Ответ на: комментарий от Toxo2

Там, оказывается, со стороны Windows10 ещё целая песня поднять WinRM так, чтобы она стала принимать Authenticate: Basic.

Согласен, плюнул на это дело и поставил openssh. Хоть можно нормально через ансибл все делать. GLPI очень хорошая штука, но французы что-то не то пьют, очень намучался с настройкой их плагинов, чуть косяк вся база засрана и не удалить штатно, только руками.

einhander ★★★★★
()
Ответ на: комментарий от einhander

я с GLPI очень давно дело имел. И кажется не про инвентаризацию пользовательских машин. Что-то про SNMP коммутаторов. Вроде. Топология сети, вланы.. где-то там был интерес. Практически - в прошлой жизни. Всё уже забыл.

---

Похоже дело идёт к тому, что там US-ASCII принимается только. И если так - то нет никаких шансов авторизоваться на WinRM в Basic Auth с русскими буквами.

Может всё-таки стоит другого пользователя завести? Прям вот специально под эту задачу. Такой спец.пользователь, со спец.правами )

Toxo2 ★★★★
()
Ответ на: комментарий от Olegymous

Это называется «заметать мусор под ковер».

От того, что оно перестанет писать в лог ошибку - авторизация с русскими буквами на winrm не заработает.

Toxo2 ★★★★
()

для аутентификации на Windows-хостах по WinRM,

но я не могу для GLPI сменить логин локального администратора на всех машинах.

зачем менять ? Долбани всем windows машинам через ансибле(winrm) создать нового юзера admin и засунь его в группу администраторы.

mx__ ★★★★★
()