Jabber-сервер корпоративной сети. Miranda как инструмент администрирования.

Update 2017.04.07: Актуальная информация тут https://habrahabr.ru/post/325860/

Давненько я ничего не выкладывал, ну будем считать, что был в творческом отпуске 😉 Представляю вашему вниманию «админскую» версию нашей сборки Miranda IM zeleboba’s pack Corporate Mod.

Данная сборка призвана упростить некоторые рутинные действия администратора, как например подключение радмином (VNC), просмотр локальных дисков, управление (mmc) компьютером и пр. Т.е. во время общения через миранду вы можете нажать на нужный значок и будет запущено выбранное приложение, с учетом имени компьютера пользователя.

Возможности:

  • Подключение  Radmin (+ просмотр отдельно ), UltraVNC,  TightVNC,  Remote Desktop, compmgmt.msc (оснастка «управление компьютером»), открытие локальных дисков в Uneal Commander. Нужный вам функционал легко добавляется по аналогии.
  • Мультидоменность.  Указав заранее какие группы к какому домену принадлежат (см. ниже) вы можете подлючаться к удаленным компьютерам в другой подсети. При условии, конечно, что у вас соответствующим образом настроена маршрутизация и адекватно работает DNS.
  • Внешняя аутентификация. Миранда лишь автоматически генерирует строку вызова приложения. Аутентификация и авторизация происходит средствами самого приложения, что исключает несанкционированный доступ через админ-версию (этот пункт как бы сам собой разумеется 🙂 ) Хотя вы можете включить логин/пароль в ключи командной строки некоторых приложений.
  • Все, что перечислено для пользовательской версии плюс добавлен курс валют для евро и доллара.

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

  • Откройте настройки миранды и перейдите в пункт Службы — Действия. Здесь содержится список возможных действий. Нас интересует возможность вызова приложений, хотя для себя вы можете придумать еще много вкусного 😉
  • Выберите действие Radmin управление. В нем интересны три момента: собственно само «действие» — выполнение программы, путь до вызываемого приложения (Program path) и параметры командой строки (Program args). Последний пункт самый интересный.
  • Перейдите в строку Program args, в ней вы увидите следующее содержание:
    /connect:?puts(cmp,?replace(!dbsetting(%subject%,?cinfo(%subject%,protocol),MirVer),Miranda IM Jabber 0.8.4.0 [,,] (SecureIM),))?if(?strcmp(!dbsetting(%subject%,CList,Group),Группа1),?puts(grp,.domain.lc),?if(?strcmp(!dbsetting(%subject%,CList,Group),Группа2),?puts(grp,.domain2.lc),?if(?strcmp(!dbsetting(%subject%,CList,Group),группа3),?puts(grp,.domain3.lc),?puts(grp,.domain0.lc))))!insert(?get(cmp),?get(grp),?len(?get(cmp)))
  • Пугаться сразу не стоит, сейчас поясню. Но перед этим скопируйте текст в блокнот, так его удобнее читать.

  • /connect: — это параметр указывающий радмину имя рабочей станции к которой следует подключиться,  а после двоеточия собственно имя рабочей станции 😉
  • Поиграться с переменными и понять синтаксис можно в Службы — Переменные, но вам, думаю, это сейчас не интересно.
  • Общий смысл такой — миранда смотрит имя группы и если оно совпадает с одним из указанных (Группа1<2, 3>) в примере), то подставляет соответствующее имя домена (domain1<2,3>.lc в прим). Если группа не найдена, то по умолчанию подставляется domain0.lc
  • Блок-условие, отвечающий за поиск соответствия группа-домен начинается с ?if(?strcmp( и заканчивается .domainX.lc)
  • Если у вас всего 3 используемых домена (в примере их 4) вы можете убрать один блок,  но не забудьте убрать одну закрывающую скобку  в этом месте — domain0.lc))))!insert(
  • И наоборот, если вы хотите добавить группу-домен, добавьте блок по аналогии в нужное место, не забыв дописать скобку.
  • Естественно групп которым принадлежит одинаковый домен может быть несколько.
  • Чтобы просто проверить корректность работы замените в конце domain.lc на имя вашего домена.
  • Корректная работа гарантируется только с пользовательским клиентом нашей же сборки, хотя главное условие — имя компьютера в качестве ресурса.
  • Ну и наконец, если у вас всего один домен, то можете использовать строку (на примере radmin)
  • /connect:?replace(!dbsetting(%subject%,?cinfo(%subject%,protocol),MirVer),Miranda IM Jabber 0.8.4.0 [,,] (SecureIM),)

Пишите ваши вопросы, замечания, опыт использования. В ближайшие дни выложу пользовательский FAQ по сборке.

Jabber-сервер корпоративной сети. Miranda как инструмент администрирования.: 14 комментариев

  1. Можно ли получить имя удаленного компьютера не используя значение ресурса?

  2. Смысл, я думаю, такой — использовать какое-то поле vcard под имя компьютера и заполнять его какими-то средствами автоматически (есть плагин для редактирования базы из консоли). Хотя, по сути, это поле уже есть (хоть и не vcard) и называется оно — ресурс 🙂 У вас ресурс под что-то занят?

  3. Дело в том, что у нас сейчас основной клиент пандион, а этот клиент не умеет в качестве ресурса использовать имя компьютера, соответственно нужно использовать какой-то другой способ. Себе на машину поставил миранду для тестов и хотел бы прикрутить к ней «Удаленного помощника». Загвоздка оказалось только в получении имени компьютера. Имя пользователя получил так:

    ?left(?cinfo(%subject%,email),?sub(?strchr(?cinfo(%subject%,email),@),1))

    Переход на миранду решил бы эту проблему, но к сожалению не решился вопрос с групповой рассылкой. А что за плагин такой для редактирования базы из консоли?

  4. Дефолтные настройки для пендиона тут — %ProgramFiles%\Pandion\Application\settings\default.xml»

    Профиль конкретного пользователя тут — «%appdata%\Pandion\Profiles\JID\settings.xml»

    тег <resource></resource> (пустой выглядит как </resource>)
    с помощью WSH, autoIT и пр можно менять скриптами.

    Специально проверил — работает. Может быть у пендиона есть свои внутренние переменные, я глубоко не искал. А вот переменная окружения %computername% так и отобразилась с процентами, следовательно не сработала.

    Плагин для редактирования базы — CmdLineToDb. Вот только он старый (2007 года на оф. сайте) и мы его не проверяли.

  5. Тоже долго мучался с групповой рассылкой в миранде, но потом нашел замечательный плагин к Openfire — Broadcast.

  6. Выдрин Михаил, добрый день!
    Строка возвращает ресурс, только если совпадает версия миранды:
    ?replace(!dbsetting(%subject%,?cinfo(%subject%,protocol),MirVer),Miranda IM Jabber 0.8.4.0 [,,] (SecureIM),)
    Если используется разные дистрибутивы,уже не формируется, как можно отдельно вытащить имя ресурса?
    вчера весь день бился 🙁

  7. В используемой сборке имя ресурса отображается как раз в поле версии, соответственно парсится версия. Я не знаю как отображается имя ресурса в вашем случае, поэтому помочь не могу. В любом случае алгоритм такой: вы должны как-то получить поле в котором есть имя ресурса и отпарсить это поле. Согласен, синтаксис довольно вырвиглазный.

  8. Михаил, имя машины как раз указывается как в Вашем случае,
    Правило ?replace(!dbsetting(%subject%,?cinfo(%subject%,protocol),MirVer),Miranda IM Jabber 0.9.47.0 [,,] (SecureIM),)
    правда оно сработает только для:
    Miranda IM Jabber 0.9.47.0 [COMP-91-3] (SecureIM)
    для ниже следующих уже не будет отрабатывать коррекно:
    Miranda IM Jabber 0.9.48.0 [COMP-91-3] (SecureIM)
    Miranda IM Jabber 0.9.48.0 [COMP-91-3] .
    пытался отпарсить с помошъю регулярных выражений в миранде, не получилось 🙁

  9. попробуйте поискать версию джаббер-протокола, чтобы не было различий в имени версии

  10. Добрый вечер, надеюсь на вашу помощь ) указываю для RDP

    Путь: %windir%\system32\mstsc.exe
    Аргументы: /v:?replace(!dbsetting(%subject%,?cinfo(%subject%,protocol),MirVer),Miranda IM Jabber 0.9.26.0 [,,] (SecureIM),)

    с такими параметрами запускает подключение, но имя компа вытаскивает со скобкой вконце USER-1]

  11. Вот оно /v:?replace(!dbsetting(%subject%,?cinfo(%subject%,protocol),MirVer),Miranda IM Jabber 0.9.26.0 [,,],,(SecureIM),)

    сам затупил, извините ))

  12. Ребята выручайте! Не могу победить скобочку [ в имени компьютера. Делаю следующий запрос
    ?puts(cmp,?replace(!dbsetting(%subject%,?cinfo(%subject%,protocol),MirVer),Miranda IM Jabber 0.9.19.0 [,,],,(SecureIM),))?puts(grp,.test.local)!insert(?get(cmp),?get(grp),?len(?get(cmp))):5901
    После чего выдает имя компьютера [comp.test.local
    уже по всякому пробовал

  13. установил Miranda IM Zeleboba`s pack Corporate mod, сделал необходимые настройки , т.е (http://it.rpkkirov.ru/jabber-server-korporativnoj-seti-razvertyvanie-openfiremiranda/) пункт 1-4, причем mirandazel-corp-user — заходит нормально, а mirandazel_corp_admin_pub — выдает ошибку «аутентификация не пройдена для user@YYY.ZZZ.local» в чем может быть проблема?! пользователь user создан в AD.

    openfire установлен на винде, подключен к AD, сервер на котором установлен openfire: XXX.YYY.ZZZ.local (пример имени сервера). Cервер с AD : YYY.ZZZ.local (NetBios name — YYY)
    настройка сервера:
    sasl.approved.realms : пустая запись
    sasl.mechs : ANONYMOUS,PLAIN,NTLM (так и остается как указано на сайте)
    sasl.realm : YYY
    xmpp.fqdn — XXX.YYY.ZZZ.local

    добавлена строка в \jre\lib\security\java.security :
    security.provider.10=net.za.darkskies.security.sasl.SSPIProvider

    добавлены файлы
    bin\SaslSspi.dll
    lib\sasl-sspi.jar
    plugins\saslmechanisms.jar

    ————————————
    принципиально нужен mirandazel_corp_admin_pub , из-за функционала Radmin , UltraVNC, TightVNC, Remote Desktop .

    ответьте пожалуйста на почту iliasko@inbox.ru .

  14. Господа, я извиняюсь, но не смотрю почти этот блог. Возможно, я обновлю целиком сборку уже на базе Miranda-NG, но это не приоритет. Ознакомьтесь с этим камментом — https://habrahabr.ru/post/181374/#comment_8778941
    и прочитайте всю статью. Это в полной мере будет работать с нашей сборкой. Вообще, рекомендую мои статьи на хабре 😉
    https://habrahabr.ru/users/yosemity/topics/

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *