• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Traveler. не обновляются статусы приглашений на ipad

A

apatic

Traveler: IBM Traveler 9.0.1.6 Build 201506291144_20
Traveler: running on IBM Domino server Release 9.0.1FP4 June 07, 2015 on Windows/64 Traveler: using maximum database schema 20150314
Почтовый сервер 853fp6 дизайн почты 853ru
iPad синхронизируется по http через ActiveSync

Проблемка:
1. создаётся событие в календаре с участниками.
2. участники принимают приглашение.
3. в лотусе в событии отображается, что участники его приняли.
4. на ipad'e в календаре знаки вопросов(неизвестный статус).
Заходим в почту и календари в профиль тревелера. Снимаем ползунок с календарей - события удаляются. Ставим обратно - они возвращаются. И теперь у события видны статусы приглашений.
Т.е. проблема в том, что тревелер не подхватывает изменения и не загружает их с сервера.
Еще вариант в лотусе изменить что-нибудь важное в документе события, например, добавить описание - тогда тревелер перезагружает событие со статусами. Простое поднятие Sequence Number, т.е. пересохранение документа результата не даёт. Зато есть магическое поле SequenceNum, которое, вроде бы, заставляет тревелер перезагрузить событие. Оно не меняется, когда приходит приглашение.

APAR, вроде, этот.
В девятке должно было исправиться, но у меня нет... Есть идеи?
Логи Traveler Error - пустые.
 

puks

Lotus Team
03.02.2007
1 919
55
BIT
3
Я не уверен, что это именно тот APAR. Там говорится, что девайс обнуляет статусы на сервере. У тебя, судя по описанию, этого нет.

Надо устанавливать Finest log level для user и смотреть xml файлы.
 
A

apatic

Поднял SSL, в IBM Verse тоже самое, стало очень грустно.

@puks, привет. подскажи, пожалуйста, на что там смотреть и какие выводы можно делать?
Я вижу, что после того, как в событии появился статус "принят", захожу в календарь, он обновляется и создаётся xml
Код:
<FolderSync xmlns="FolderHierarchy:">
  <Status>1</Status>
  <SyncKey>1</SyncKey>
- <Changes>
  <Count>0</Count>
  </Changes>
  </FolderSync>

а когда отмодифицировал событие, добавил комментарий - событие перезаливается.

Код:
- <Sync xmlns="AirSync:">
- <Collections>
- <Collection>
  <SyncKey>8</SyncKey>
  <CollectionId>3</CollectionId>
  <Status>1</Status>
- <Commands>
- <Add>
  <ServerId>6151</ServerId>
- <ApplicationData>
  <AllDayEvent xmlns="Calendar:">0</AllDayEvent>
  <Body xmlns="AirSyncBase:">***** Sensitive Data (length 4) Removed *****</Body>
  <DtStamp xmlns="Calendar:">20150812T171109Z</DtStamp>
  <EndTime xmlns="Calendar:">20150814T190000Z</EndTime>
  <Location xmlns="Calendar:" />
  <MeetingStatus xmlns="Calendar:">1</MeetingStatus>
  <ResponseRequested xmlns="Calendar:">1</ResponseRequested>
  <BusyStatus xmlns="Calendar:">2</BusyStatus>
  <OrganizerEmail xmlns="Calendar:">TestFF@veb.ru</OrganizerEmail>
  <OrganizerName xmlns="Calendar:">TestFF/IVEB</OrganizerName>
  <Sensitivity xmlns="Calendar:">0</Sensitivity>
  <StartTime xmlns="Calendar:">20150814T180000Z</StartTime>
  <Subject xmlns="Calendar:">Test ipad</Subject>
  <AppointmentReplyTime xmlns="Calendar:">20150812T171109Z</AppointmentReplyTime>
  <ResponseType xmlns="Calendar:">3</ResponseType>
  <TimeZone xmlns="Calendar:">TP///0EAcgBhAGIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEEAcgBhAGIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==</TimeZone>
  <UID xmlns="Calendar:">040000008200E00074C5B7101A82E00800000000646C6F747573C30100000000000000001000000020EC9E2BA6B762F343257E9F005DF434</UID>
- <Attendees xmlns="Calendar:">
- <Attendee>
  <Name>apaticmail@gmail.com</Name>
  <Email>apaticmail@gmail.com</Email>
  <AttendeeStatus>3</AttendeeStatus>
  <AttendeeType>1</AttendeeType>
  </Attendee>
  </Attendees>
  </ApplicationData>
  </Add>
  </Commands>
  </Collection>
  </Collections>
  </Sync>

Ещё заметил, что если в поле SequenceNum поднять значение на одно - то статус "принят" исчезает и остаётся неизвестный статус. Как высчитывается этот статус не разобрался. Ipad перезаливает событие с неизвестным статусом. Поэтому агент для костыля не получается сделать...

+ у меня сервак тревелера в интернет напрямую не смотрит, пуш-уведомления включить не получится. нужно в таком случае какую-нибудь переменную добавить?
 

puks

Lotus Team
03.02.2007
1 919
55
BIT
3
Мне надо самому протестировать это. Другие iOS девайсы тоже выдают ошибку?
 
A

apatic

@puks, да. Еще попробовал создать две почтовые базы на сервере тревелера с 9 дизайном. На них тоже воспроизвелось.
 
A

apatic

@lmike, такая задача не стоит, да и с безопасниками воевать не хочу. вся движуха для одного vip-пользователя.
+ коллеги с открытыми портами на apple сообщают об аналогичной проблеме. видимо, без обращения в IBM не обойтись.
 
A

apatic

Создал PMR, оказалось, что я это могу. У кого-нибудь был опыт общения с их поддержкой? Судя по всему, русский саппорт собирает инфу, переводит на английский и пуляет куда-то. Это происходит достаточно быстро. А вот что потом будет - очень интересно.
 

savl

Lotus Team
28.10.2011
2 597
310
BIT
160
@apatic, а потом буду либо долгие обсуждения, либо скажут что такое уже было и было закрыто.
Во втором случае открою APAR снова, либо если закрыто не было, то дадут номер APAR для отслеживания.
Могут дать локальный фикс, если он был или написать что можно сделать.
 

puks

Lotus Team
03.02.2007
1 919
55
BIT
3
Извиняюсь за задержку, не было времени теситровать. Короче, у меня все работает нормально на iPhone и Traveler 9.0.1.6

Значит последовательность действий такая:

- User1 из Notes посылает приглашение User2
- Traveler добавляет митинг в календарь User1
- User2 одобряет приглашение в Notes
- Через 5 минут проиходит следующее
- iPhone посылает запрос на новые изменения серверу
- Сервер отвечает - удалить календарное событие
- Девайс удаляет митинг и посылает подтверждение
- Сервер посылает митинговый документ, где уже есть новый статус User2
 
A

apatic

@puks, спасибо. Подскажи, пожалуйста, следующее :
1. Нативный календарь или verse?
2. Сработает ли, если создать событие на устройстве?
3. Сработает ли, если отправить приглашение на gmail? И там его принять?
4. Результат команды show conf nts* на сервере тревелера

Я честно говоря плюнул. Агент запускаю, он ищет ответы на приглашения и по $ref получает событие, в нем поднимает updateseq. Тогда событие перезагружается. Индус пока молчит.
 

puks

Lotus Team
03.02.2007
1 919
55
BIT
3
1. Я тестировал Native client, так как он использует ActiveSync. Verse использует SyncML.
2. Разницы, где создается событие нет, так как в этом сценарии все равно создание календарного события инициируется Traveler. Все остальное то же самое: удалить, прислать новую версию документа.
3. В этом сценарии получается очень интересно. Traveler шлет <AttendeeStatus>5</AttendeeStatus> "Not responded" вместо <AttendeeStatus>3</AttendeeStatus> "Accepted". Я спросил IBM, посмотрим что ответят.
4. Ничего особенного там нет. Стандартная конфигурация.
[DOUBLEPOST=1440447652,1440447590][/DOUBLEPOST]Я бы очень не рекомендовал баловаться updateseq. Очень велика вероятность нарушения целостности календарного события.
 
A

apatic

@puks, еще раз спасибо.
в третьем варианте у меня после перезагрузки события нормальные статусы приходят, зато недавно понял, что чувствительно к регистру, т.е. если отправить на PupkinVV@... , а в ответ придёт от pupkinvv@... - то в лотусе будет отображаться "принято", а на устройстве Not responded, после перезагрузки события - тоже самое. Думаю об этом тоже PMR сделать. Не затруднит тоже проверить?

PS. updateseq, вроде, ничего не портит. по крайней мере на тестах. а вот поле "Sequence Number" если поднять - то в лотусе перестаёт отображаться, что пользователь принял приглашение, на устройстве событие перезагружается с неопределенными статусами. В общем, ломается.
 

puks

Lotus Team
03.02.2007
1 919
55
BIT
3
- После перезапуска чего?
- регистр влияет на какого пользователя? Интернет или локального?
 
A

apatic

@puks, после перезагрузки события (очищаем календарь и синхронизируем заново).
- вообще у меня получилось так, что в контакте пользователя (в почтовой БД) было написано PupkinVV@..., хотя пользователь был из того же лотусового домена, но работает в outlook. В outlook'e принимал приглашение. У меня это воспроизводится. Попробую завтра на внешнюю почту отправить с большими буквами.
 

puks

Lotus Team
03.02.2007
1 919
55
BIT
3
Как ты очищаешь календарь?

Чего-то сценарий очень сумбурный. Он Лотусовый пользователь из того же Доминошного домена или нет?

Первые новости от IBM следующие. Если кто по-английски не читает, я могу потом перевести.

NTS_INVITEE_STATUS_DELAY_SECONDS in notes.ini controls the delay. It controls when the server will send an update. It won't send it before that time even if the device asks. If the user modifies the meeting via Notes client, then it will send the update immediately.
‎Originally, it defaulted to 15 minutes and then moved to 5.

Если я смогу поспроизвезти сценарии, то фикс получим быстро.
 
A

apatic

@puks, я видел эту переменную через tell traveler config
у меня было по дефолту
NTS_INVITEE_STATUS_DELAY_SECONDS = 300
поставил 60, чтобы было явно, перезапустил сервер, результато не дало. Не понимаю, почему у тебя тревелер понимает, что надо перезагрузить событие, а у меня нет... придётся индуса ждать.

Как ты очищаешь календарь?
Заходим в почту и календари в профиль тревелера. Снимаем ползунок с календарей - события удаляются. Ставим обратно - они возвращаются. И теперь у события видны актуальные статусы приглашений.

Если я смогу поспроизвезти сценарии, то фикс получим быстро.
в общем я сделал два простых теста с внешними адресами с учетом того, что у меня события сами не перезагружаются:
1. создаю событие на устройстве. приглашённый для примера tester@gmail.com из контактов (в почтовой БД) пользователя
2. захожу в контакты пользователя и заменяю одну букву на верхний регистр Tester@gmail.com.
3. создаю второе событие с участником, выбранного из контактов Tester@gmail.com.
4. в gmail принимаю оба приглашения - инициатору отправляются два ответа о принятии приглашений
5. снимаю ползунок с календарей - события удаляются. ставлю обратно - они синхронизируются.
Результат:
В лотусе во всех событиях видно, что участник принял приглашения в обоих событиях.
В календаре на устройстве у события из п.1 событие со статусом "принято", а у события из п.3 статус "нет ответов"
 

puks

Lotus Team
03.02.2007
1 919
55
BIT
3
Снятие и восстановление синхронизации календаря никак не исправляет статус у меня.

Более того, после того, как поставил NTS_INVITEE_STATUS_DELAY_SECONDS = 120 и перегрузил http и traveler, обновление статуса пришло через 2 минуты.
 
A

apatic

@puks, даже не знаю, что сказать. Насколько разное у нас поведение. А почему, непонятно. Попробовал и на 9ом дизайне почты, 9 домино почтовый сервер, разные версии ios. Может ли это быть связано с отключенными пушами?

А контакт с большой буквой не попробуешь?
 

puks

Lotus Team
03.02.2007
1 919
55
BIT
3
А чего большую букву пробовать, если у меня для интернет пользователя никогда правильный статус не посылается.

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

На данный момент по логам, у меня по крайней мере, видимость проблемы сервера. Надеюсь , что IBM что-нибудь скажет.
[DOUBLEPOST=1440524530,1440524494][/DOUBLEPOST]Про какой отключенный пуш ты говоришь? APNS?
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!