Open GoogleCodeExporter opened 8 years ago
Ого, мощно. Жаль, проверить не могу. А зачем
вводить любой пароль? Может лучше
сделать, что если в настроках выставлено
Allow NTLM - поле ввода пароля становится
неактивным?
Еще в патче нужно заменить все пробелы в
начале строк на табы. И, думаю, можете
запостить его непосредственно в апстрим.
Original comment by wadea...@gmail.com
on 19 Feb 2010 at 5:08
grincart: Интересует совместимость с ejabberd.
wadealer: этот патч может и нам пригодиться.
Original comment by vladimir.shelukhin
on 19 Feb 2010 at 6:10
Конечно, пригодится! Это мощная штука.
Просто я думаю, что его должны в апстрим
взять
Original comment by wadea...@gmail.com
on 19 Feb 2010 at 7:27
wadealer: по поводу неактивного поля пароля
вопрос спорный...
NTLM можно также использовать с машины не в
домене, тогда пароль нужен.
только зачем в этом случае NTLM...
vladimir.shelukhin: думается, что совместимость с
ejabberd будет, т.к. пакеты
аутентификации формирует виндовая
библиотека.
про табы не понял... патч же diff делает. как-то
не так сделал?
Original comment by grinc...@gmail.com
on 19 Feb 2010 at 7:31
wadealer: с апстримом может быть косяк, т.к. патч
накладывается в основном на iris и
его qca.
как я только вчера обнаружил, существует
qca-wingss-2.0.0-beta1.tar.bz2 SASL GSSAPI (for Kerberos)
но, видимо, т.к. Windows Only, то в Psi не
используется.
qca NTLM не нашёл.
короче, имо, в Psi с этим патчем пошлют куда
подальше...
Original comment by grinc...@gmail.com
on 19 Feb 2010 at 7:39
Дело не в патче, а в самом коде. В исходном
коде psi перед строкой нет пробелов, там
табы. А в твоем коде - пробелы. Нужно
исправить.
Original comment by wadea...@gmail.com
on 19 Feb 2010 at 8:06
[deleted comment]
исправил.
Original comment by grinc...@gmail.com
on 19 Feb 2010 at 11:19
Attachments:
наложил патч последним, компилирую.
Original comment by vladimir.shelukhin
on 20 Feb 2010 at 11:50
скомпилилось успешно. теперь осталось
найти ёжика с ntlm и доменом :)
Original comment by vladimir.shelukhin
on 20 Feb 2010 at 12:19
я правильно понимаю что это windows-only патч?
я не вижу ни одного ifdef в патче и тем не
менее похоже он подключает что-то только
вендовое (security.h).
по псишному кодестайлингу нужно
использовать табы для отступов в строках
Original comment by rion4ik
on 20 Feb 2010 at 8:26
Original comment by rion4ik
on 21 Feb 2010 at 7:55
> я правильно понимаю что это windows-only патч?
да.
> я не вижу ни одного ifdef в патче и тем не
менее похоже он подключает что-то только
>вендовое (security.h).
будет чуть позже, совсем забыл
>по псишному кодестайлингу нужно
использовать табы для отступов в строках
http://code.google.com/p/psi-dev/issues/detail?id=261#c8
здесь поправил на табы, не знаю как
перезалить на первом сообщении...
Original comment by grinc...@gmail.com
on 21 Feb 2010 at 1:10
> не знаю как перезалить на первом
сообщении...
при написании комментария можно
приаттачить новый патч, а предыдущие
аттачи можно не
трогать.
Original comment by vladimir.shelukhin
on 21 Feb 2010 at 1:29
неправда. ничего там не исправлено.
Original comment by rion4ik
on 21 Feb 2010 at 6:13
> неправда. ничего там не исправлено.
чего-то перекосило меня. исправил.
добавил ifdef, но м.б. коряво. под линуксом
собрать не пробовал.
Original comment by grinc...@gmail.com
on 22 Feb 2010 at 11:45
Attachments:
в *.pri файлах тоже надо сделать условное
подключение windows-oly файлов
Original comment by rion4ik
on 23 Feb 2010 at 7:45
>в *.pri файлах тоже надо сделать условное
подключение windows-oly файлов
как-то так...
Original comment by grinc...@gmail.com
on 23 Feb 2010 at 9:13
Attachments:
патч приму если будет написан с поддержкой
Libntml(http://josefsson.org/libntlm/) с минимальным
дублированием кода для вин и всего
остального.
Original comment by rion4ik
on 13 Jul 2010 at 7:14
А аналогичную штуку можно сделать для
аутентификации на прокси сервере в
настройках подключения черех прокси?
Original comment by maksim.maj
on 14 Jul 2010 at 10:49
я обычно люблю говорить что нет ничего
невозможного =)
Original comment by rion4ik
on 14 Jul 2010 at 10:51
> написан с поддержкой Libntml(http://josefsson.org/libntlm/)
а смысл?
чтоб использовать NTLM под linux?
это всё задумывалось, чтобы использовать
single sign on,
т.е. вход без пароля в домене windows
Original comment by grinc...@gmail.com
on 14 Jul 2010 at 11:15
@grincart, да именно.
я честно говоря, слабо представляю как этот
single sign on и вообще использование вендового
домена можно организовать под линуксом, но
догадываюсь аутентификации по NTLM как
таковая может понадобиться.
ну и кроме того, я несколько недолюбливаю
однобокие решения. это уж так, моё скромное
мнение =)
Original comment by rion4ik
on 14 Jul 2010 at 11:35
@rion4ik, просьба принять патчи, поскольку то,
что вы предлагаете - бессмысленно
Никакой libntlm под линуксом никогда никому
нужен не будет, по одной простой причине.
Стек протокола уже реализован в самбе, и
указанная авторизация автоматически
задействуется только при включении
рабочей станции в windows домен.
Хотел бы также заметить, что
распространению джаббера очень сильно
мешает отсутствие вменяемой подержки NTLM,
Kerberos и некоторых других вещей.
На данный момент клиентов, поддерживающих
(реально, а не на бумаге) Kerberos целых одна
штука, сереров - такое же количество. В то же
время клиентов, которые желают иметь
подобный клиент и сервер для
корпоративного IM - миллионы.
Спасибо.
Original comment by fer...@gmail.com
on 6 Feb 2012 at 2:31
не знаю что там с libntlm, но в остальном
всецело псиплюсую!
Original comment by maksim.maj
on 6 Feb 2012 at 8:26
Протестировал патч - он нерабочий
Я так понимаю, код позаимствован из миранды
В миранде код тоже нерабочий
Единственный рабочий клиент - это Pandion,
тестировалось на ejabberd с соответствующими
патчами, разумеется.
Если у автора есть желание исправить
протокол - милости прошу в почту отозваться
на серверной стороне обеспечу любую
подержку, по требованию могу предоставить
тестовое окружение.
Спасибо.
Original comment by fer...@gmail.com
on 12 Mar 2012 at 4:31
Можно поинтересоваться, что именно не
работает?
Не накладывается патч или в принципе не
работает?
Последний раз собирал год назад ( 21.04.11 ).
До сих пор работает домен на 40 клиентов.
Странно говорить, что в миранде код
нерабочий...
Может ejabberd не поддерживает NTLM, а Pandion входит
используя что-то другое
Kerberos/GSS/SASL ?
Original comment by grinc...@gmail.com
on 12 Mar 2012 at 6:55
патч накладывается
в миранде код нерабочий, я уже понял почему
баг проявляется только в 7/2008 системах и
является общеизвестной регрессией
дело в том, что с висты NTLMSSP отключен и
теперь для совместимости он включается
несколькими на мой взгляд странными
манипуляциями, но, опять же, по
рекомендации МС
ссылок сейчас при себе нет, ключевые слова
SPNEGO, NEGOex, гугл много чего говорит на сей счет
самая эталонная и "правильная" реализация -
в пандионе
мне удалось обнаружить в чем именно
несоответствие, но его легко найти и если
просто сравнить вывод обоих клиентов
прошу также заметить, что далеко не я один
"в курсе"
например:
https://support.process-one.net/secure/ViewProfile.jspa?name=sm97
в миранде используется "жесткая схема"
response-challenge, первое сообщение НЕ должно
содержать никаких данных, только заявление
о выборе механизма
SASL предполагает определенный набор шагов,
видио, здесь он просто нарушается
Pandion же работает, просто потому что написан
на js и просто используется соответствующий
интерфейс к SSPI (что единственно верно)
Фикс должен быть предельно простой, но дело
в том, что я не программер и править С код
мне тяжеловато. Если кто-нить готов помочь -
я буду только рад, тесты гарантирую.
Original comment by fer...@gmail.com
on 12 Mar 2012 at 7:48
да, забыл добавить, я довел до рабочего
состояния NTLM на ejabberd
подсистема авторизациии сервера вообще
довольно в плачевном состоянии, её похоже
никто никогда не тестирует, код там с
огромным числом ошибок и фактически "из
коробки" работает только PLAIN
Original comment by fer...@gmail.com
on 12 Mar 2012 at 7:52
ссылка неправильная, и, еще раз прочитав
комменты, вижу, что причина кроектся даже
не в отключенном NTLMSSP, он косвенным
способом может задействоваться, а вот в
этих словах
"Miranda works only if disable SASL. Pidgin have hardcoded support for SASL so
it cannot be disabled."
https://support.process-one.net/browse/EJAB-629
Original comment by fer...@gmail.com
on 12 Mar 2012 at 8:04
Такс...
По ссылке мне пройти.
В википедии ж чётко написано - "... 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 пилить?
Original comment by grinc...@gmail.com
on 12 Mar 2012 at 8:07
Механизм согласования я оставлял
оригинальным.
Из mirand-ы взят только ntlm и добавлен как
возможный протокол аутентификации.
Про SASL всё правильно написано.
Он невозможен к использованию, т.к.
требуется известный пароль со стороны
клиента.
Так же, аналогично, в linux нельзя настроить
авторизацию ntlm->samba->unix user
Original comment by grinc...@gmail.com
on 12 Mar 2012 at 8:12
+#ifdef Q_OS_WIN
+ if (mech == "NTLM" && allow_NTLM) {
+ mechanism_ = "NTLM";
+ break;
+ }
+#endif
вот break здесь наверное не очень к месту
опять же, код С++ я не сильно понимаю, так что
мои комментарии могут быть бесполезны, я
еще не смотрел толком внутрь подсистемы
авторизации psi+
Original comment by fer...@gmail.com
on 12 Mar 2012 at 8:18
"В википедии ж чётко написано - "... 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
это самый толковый способ, просто потому
что будет поддерживаться лучше всего
Original comment by fer...@gmail.com
on 12 Mar 2012 at 8:22
"У Openfire есть свой клиент вполне
поддерживающий Kerberos." Мне так и не удалось
его настроить, это раз. Во-вторых, опенфайр
страшно тормозной. У меня около 1000
пользователей в домене, а опенфайр дохнет
по некоторым данным уже на 50-100. Ejabberd сделан
именно так, как должен быть сделан сетевой
сервис - предельно модульным и практически
неубиваемым.
Original comment by fer...@gmail.com
on 12 Mar 2012 at 8:26
"Может имеет смысл Kerberos SSP пилить?" Уже давно
пилю, пришлось разбираться полностью в
коде, что заняло огромное количество
времени. Существующий код под ejabberd опять же
нерабочий, пилю по мере возможности. На
первом этапе устроит NTLM. Kerberos допилю позже.
Original comment by fer...@gmail.com
on 12 Mar 2012 at 8:28
Ну тогда нужно сравнивать трафик рабочего
клиента с нерабочим и уже делать какие-то
выводы.
Original comment by grinc...@gmail.com
on 12 Mar 2012 at 8:34
Ребята, здесь не форум. Это багтрэкер. Есть
желание пообщаться - или в личной
переписке, или на форуме
Original comment by wadea...@gmail.com
on 13 Mar 2012 at 7:38
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!
Original comment by fer...@gmail.com
on 27 Apr 2012 at 4:36
Attachments:
патчик непригоден для апстрима из-за плохо
знания Qt и C++ а также хренового местами
кодестайла. но в пси+ жить резрешаю. но
исключительно последним в очереди
Original comment by rion4ik
on 27 Apr 2012 at 5:51
После того, как QCA убрали из исходников,
патч перестал быть актуальным
Original comment by wadea...@gmail.com
on 26 Oct 2012 at 7:38
А есть возможность адаптировать патч к
последней версии Psi+ ?
Original comment by obtim1...@gmail.com
on 17 Sep 2013 at 5:48
Original issue reported on code.google.com by
grinc...@gmail.com
on 18 Feb 2010 at 10:56Attachments: