Closed Ri0n closed 8 years ago
Comment #1 originally posted by psi-plus on 2010-02-19T17:08:07.000Z:
Ого, мощно. Жаль, проверить не могу. А зачем вводить любой пароль? Может лучше сделать, что если в настроках выставлено Allow NTLM - поле ввода пароля становится неактивным? Еще в патче нужно заменить все пробелы в начале строк на табы. И, думаю, можете запостить его непосредственно в апстрим.
Comment #2 originally posted by psi-plus on 2010-02-19T18:10:37.000Z:
grincart: Интересует совместимость с ejabberd.
wadealer: этот патч может и нам пригодиться.
Comment #3 originally posted by psi-plus on 2010-02-19T19:27:13.000Z:
Конечно, пригодится! Это мощная штука. Просто я думаю, что его должны в апстрим взять
Comment #4 originally posted by psi-plus on 2010-02-19T19:31:36.000Z:
wadealer: по поводу неактивного поля пароля вопрос спорный... NTLM можно также использовать с машины не в домене, тогда пароль нужен. только зачем в этом случае NTLM...
vladimir.shelukhin: думается, что совместимость с ejabberd будет, т.к. пакеты аутентификации формирует виндовая библиотека.
про табы не понял... патч же diff делает. как-то не так сделал?
Comment #5 originally posted by psi-plus on 2010-02-19T19:39:15.000Z:
wadealer: с апстримом может быть косяк, т.к. патч накладывается в основном на iris и его qca. как я только вчера обнаружил, существует qca-wingss-2.0.0-beta1.tar.bz2 SASL GSSAPI (for Kerberos) но, видимо, т.к. Windows Only, то в Psi не используется. qca NTLM не нашёл.
короче, имо, в Psi с этим патчем пошлют куда подальше...
Comment #6 originally posted by psi-plus on 2010-02-19T20:06:44.000Z:
Дело не в патче, а в самом коде. В исходном коде psi перед строкой нет пробелов, там табы. А в твоем коде - пробелы. Нужно исправить.
Comment #7 originally posted by psi-plus on 2010-02-19T20:11:25.000Z:
в QT Creator есть "волшебная комбинация клавиш"?
Comment #8 originally posted by psi-plus on 2010-02-19T23:19:42.000Z:
исправил.
Comment #9 originally posted by psi-plus on 2010-02-20T11:50:02.000Z:
наложил патч последним, компилирую.
Comment #10 originally posted by psi-plus on 2010-02-20T12:19:38.000Z:
скомпилилось успешно. теперь осталось найти ёжика с ntlm и доменом :)
Comment #11 originally posted by psi-plus on 2010-02-20T20:26:14.000Z:
я правильно понимаю что это windows-only патч? я не вижу ни одного ifdef в патче и тем не менее похоже он подключает что-то только вендовое (security.h).
по псишному кодестайлингу нужно использовать табы для отступов в строках
Comment #12 originally posted by psi-plus on 2010-02-21T07:55:21.000Z:
<empty>
Comment #13 originally posted by psi-plus on 2010-02-21T13:10:01.000Z:
я правильно понимаю что это windows-only патч? да.
я не вижу ни одного ifdef в патче и тем не менее похоже он подключает что-то только вендовое (security.h). будет чуть позже, совсем забыл
по псишному кодестайлингу нужно использовать табы для отступов в строках http://code.google.com/p/psi-dev/issues/detail?id=261#c8 здесь поправил на табы, не знаю как перезалить на первом сообщении...
Comment #14 originally posted by psi-plus on 2010-02-21T13:29:10.000Z:
не знаю как перезалить на первом сообщении... при написании комментария можно приаттачить новый патч, а предыдущие аттачи можно не трогать.
Comment #15 originally posted by psi-plus on 2010-02-21T18:13:08.000Z:
неправда. ничего там не исправлено.
Comment #16 originally posted by psi-plus on 2010-02-22T23:45:52.000Z:
неправда. ничего там не исправлено. чего-то перекосило меня. исправил.
добавил ifdef, но м.б. коряво. под линуксом собрать не пробовал.
Comment #17 originally posted by psi-plus on 2010-02-23T07:45:34.000Z:
в *.pri файлах тоже надо сделать условное подключение windows-oly файлов
Comment #18 originally posted by psi-plus on 2010-02-23T21:13:54.000Z:
в *.pri файлах тоже надо сделать условное подключение windows-oly файлов как-то так...
Comment #19 originally posted by psi-plus on 2010-07-13T19:14:48.000Z:
патч приму если будет написан с поддержкой Libntml(http://josefsson.org/libntlm/) с минимальным дублированием кода для вин и всего остального.
Comment #20 originally posted by psi-plus on 2010-07-14T10:49:20.000Z:
А аналогичную штуку можно сделать для аутентификации на прокси сервере в настройках подключения черех прокси?
Comment #21 originally posted by psi-plus on 2010-07-14T10:51:49.000Z:
я обычно люблю говорить что нет ничего невозможного =)
Comment #22 originally posted by psi-plus on 2010-07-14T11:15:58.000Z:
написан с поддержкой Libntml(http://josefsson.org/libntlm/) а смысл? чтоб использовать NTLM под linux?
это всё задумывалось, чтобы использовать single sign on, т.е. вход без пароля в домене windows
Comment #23 originally posted by psi-plus on 2010-07-14T11:35:11.000Z:
@grincart, да именно. я честно говоря, слабо представляю как этот single sign on и вообще использование вендового домена можно организовать под линуксом, но догадываюсь аутентификации по NTLM как таковая может понадобиться.
ну и кроме того, я несколько недолюбливаю однобокие решения. это уж так, моё скромное мнение =)
Comment #24 originally posted by psi-plus on 2012-02-06T14:31:09.000Z:
@rion4ik, просьба принять патчи, поскольку то, что вы предлагаете - бессмысленно Никакой libntlm под линуксом никогда никому нужен не будет, по одной простой причине.
Стек протокола уже реализован в самбе, и указанная авторизация автоматически задействуется только при включении рабочей станции в windows домен.
Хотел бы также заметить, что распространению джаббера очень сильно мешает отсутствие вменяемой подержки NTLM, Kerberos и некоторых других вещей.
На данный момент клиентов, поддерживающих (реально, а не на бумаге) Kerberos целых одна штука, сереров - такое же количество. В то же время клиентов, которые желают иметь подобный клиент и сервер для корпоративного IM - миллионы.
Спасибо.
Comment #25 originally posted by psi-plus on 2012-02-06T20:26:35.000Z:
не знаю что там с libntlm, но в остальном всецело псиплюсую!
Comment #26 originally posted by psi-plus on 2012-03-12T16:31:50.000Z:
Протестировал патч - он нерабочий Я так понимаю, код позаимствован из миранды В миранде код тоже нерабочий
Единственный рабочий клиент - это Pandion, тестировалось на ejabberd с соответствующими патчами, разумеется.
Если у автора есть желание исправить протокол - милости прошу в почту отозваться на серверной стороне обеспечу любую подержку, по требованию могу предоставить тестовое окружение.
Спасибо.
Comment #27 originally posted by psi-plus on 2012-03-12T18:55:33.000Z:
Можно поинтересоваться, что именно не работает? Не накладывается патч или в принципе не работает?
Последний раз собирал год назад ( 21.04.11 ). До сих пор работает домен на 40 клиентов.
Странно говорить, что в миранде код нерабочий...
Может ejabberd не поддерживает NTLM, а Pandion входит используя что-то другое Kerberos/GSS/SASL ?
Comment #28 originally posted by psi-plus on 2012-03-12T19:48:11.000Z:
патч накладывается в миранде код нерабочий, я уже понял почему баг проявляется только в 7/2008 системах и является общеизвестной регрессией
дело в том, что с висты NTLMSSP отключен и теперь для совместимости он включается несколькими на мой взгляд странными манипуляциями, но, опять же, по рекомендации МС
ссылок сейчас при себе нет, ключевые слова SPNEGO, NEGOex, гугл много чего говорит на сей счет
самая эталонная и "правильная" реализация - в пандионе мне удалось обнаружить в чем именно несоответствие, но его легко найти и если просто сравнить вывод обоих клиентов
прошу также заметить, что далеко не я один "в курсе" например: https://support.process-one.net/secure/ViewProfile.jspa?name=sm97
в миранде используется "жесткая схема" response-challenge, первое сообщение НЕ должно содержать никаких данных, только заявление о выборе механизма SASL предполагает определенный набор шагов, видио, здесь он просто нарушается
Pandion же работает, просто потому что написан на js и просто используется соответствующий интерфейс к SSPI (что единственно верно)
Фикс должен быть предельно простой, но дело в том, что я не программер и править С код мне тяжеловато. Если кто-нить готов помочь - я буду только рад, тесты гарантирую.
Comment #29 originally posted by psi-plus on 2012-03-12T19:52:04.000Z:
да, забыл добавить, я довел до рабочего состояния NTLM на ejabberd подсистема авторизациии сервера вообще довольно в плачевном состоянии, её похоже никто никогда не тестирует, код там с огромным числом ошибок и фактически "из коробки" работает только PLAIN
Comment #30 originally posted by psi-plus on 2012-03-12T20:04:28.000Z:
ссылка неправильная, и, еще раз прочитав комменты, вижу, что причина кроектся даже не в отключенном NTLMSSP, он косвенным способом может задействоваться, а вот в этих словах "Miranda works only if disable SASL. Pidgin have hardcoded support for SASL so it cannot be disabled."
Comment #31 originally posted by psi-plus on 2012-03-12T20:07:27.000Z:
Такс... По ссылке мне пройти.
В википедии ж чётко написано - "... NTLMSSP has been removed from Windows Vista and Windows Server 2008 in favor of the newer Kerberos authentication protocol."
Этот патч относится только к NTLM. Далеко не безопасный вариант, но простота реализации.
По поводу "Единственный рабочий клиент - это Pandion"... У Openfire есть свой клиент вполне поддерживающий Kerberos.
SASL вообще не тот механизм, который стоит рассматривать в домене.
Опять же, на W7/2003 NTLM нормально работает. W7/2008 не проверял.
Может имеет смысл Kerberos SSP пилить?
Comment #32 originally posted by psi-plus on 2012-03-12T20:12:23.000Z:
Механизм согласования я оставлял оригинальным. Из mirand-ы взят только ntlm и добавлен как возможный протокол аутентификации.
Про SASL всё правильно написано. Он невозможен к использованию, т.к. требуется известный пароль со стороны клиента.
Так же, аналогично, в linux нельзя настроить авторизацию ntlm->samba->unix user
Comment #33 originally posted by psi-plus on 2012-03-12T20:18:33.000Z:
+#ifdef Q_OS_WIN
вот break здесь наверное не очень к месту опять же, код С++ я не сильно понимаю, так что мои комментарии могут быть бесполезны, я еще не смотрел толком внутрь подсистемы авторизации psi+
Comment #34 originally posted by psi-plus on 2012-03-12T20:22:55.000Z:
"В википедии ж чётко написано - "... NTLMSSP has been removed from Windows Vista and Windows Server 2008 in favor of the newer Kerberos authentication protocol."
повторяю - у меня работает NTLM во всех системах - XP/7/2003/linux(server-side) я смотрел в код теста libntlm и он выглядит немного отлично от мирандовского - стадии там 2 до первого ответа на challenge, если я, конечно, все верно понял
самая адекватная реализация в юниксах - в самбе, один человек очень правильно сделал, что заиспользовал их helper для server-side NTLM это самый толковый способ, просто потому что будет поддерживаться лучше всего
Comment #35 originally posted by psi-plus on 2012-03-12T20:26:02.000Z:
"У Openfire есть свой клиент вполне поддерживающий Kerberos." Мне так и не удалось его настроить, это раз. Во-вторых, опенфайр страшно тормозной. У меня около 1000 пользователей в домене, а опенфайр дохнет по некоторым данным уже на 50-100. Ejabberd сделан именно так, как должен быть сделан сетевой сервис - предельно модульным и практически неубиваемым.
Comment #36 originally posted by psi-plus on 2012-03-12T20:28:28.000Z:
"Может имеет смысл Kerberos SSP пилить?" Уже давно пилю, пришлось разбираться полностью в коде, что заняло огромное количество времени. Существующий код под ejabberd опять же нерабочий, пилю по мере возможности. На первом этапе устроит NTLM. Kerberos допилю позже.
Comment #37 originally posted by psi-plus on 2012-03-12T20:34:20.000Z:
Ну тогда нужно сравнивать трафик рабочего клиента с нерабочим и уже делать какие-то выводы.
Comment #38 originally posted by psi-plus on 2012-03-13T07:38:47.000Z:
Ребята, здесь не форум. Это багтрэкер. Есть желание пообщаться - или в личной переписке, или на форуме
Comment #39 originally posted by psi-plus on 2012-04-27T16:36:51.000Z:
Writing in english in order to attract more people to testing.
I couldn't get patch posted above to work and after some digging into the code I was finally able to find the issue and fix it. Please find updated patch in attachment.
Generally, the path strictly relies on SSPI infrastructure which is windows-related and I've found also that while it was ported from miranda's code tree it lacks support of GSSAPI which seems to be implemented there. I've found several NTLM client auth implementations including libntlm, ntlm_auth helper and several less popular (from my impression gotten after thorough googling) like heimdal libs, libkntlm4, and the best supported cntlm which does not seem to provide libraries. I was really surprised to find out that NTLM2 is supported by QAuthenticator Qt class but was unable to find any usable and clear to me examples to play with.
I'm planning to get to work GSSAPI/Kerberos later, when I'm able to fix ejabberd's code.
This path is in state worksforme, tested both on DJabberd and ejabberd with patches applied (see https://support.process-one.net/browse/EJAB-629 for details), last one got fixes to code which will be posted soon.
Thanks to patch author!
Comment #40 originally posted by psi-plus on 2012-04-27T17:51:42.000Z:
патчик непригоден для апстрима из-за плохо знания Qt и C++ а также хренового местами кодестайла. но в пси+ жить резрешаю. но исключительно последним в очереди
Comment #41 originally posted by psi-plus on 2012-10-26T07:38:31.000Z:
После того, как QCA убрали из исходников, патч перестал быть актуальным
Comment #42 originally posted by psi-plus on 2013-09-17T05:48:20.000Z:
А есть возможность адаптировать патч к последней версии Psi+ ?
qca is out of scope of Psi development now.
Original issue 261 created by psi-plus on 2010-02-18T22:56:53.000Z:
Для использования в домене MS Windows. Проверял на Openfire 3.6.4 с патчем от norman.rasmussen
Взято из miranda IM.
использование: