dil: (Default)
dil ([personal profile] dil) wrote2011-05-25 09:21 am

Отгадка про Windows

Загадка была тут, и никто её не отгадал, хотя мысли в правильном направлении были.

Там действительно сломался керберос. Причём даже при включённом режиме диагностики (HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters\LogLevel=1) в логах не было ВООБЩЕ НИЧЕГО про ошибки кербероса. Были сообщения про наведённые ошибки, в частности, “The RPC protocol sequence is not supported”, вероятно, случалось из-за попытки выполнить какие-то действия, требующие аутентификации, после того, как сама эта аутентификация не сработала.

Вот по комбинации наведённых ошибок и была найдена статья с рекомендацией принудительно перевести керберос в режим TCP (HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa\ Kerberos\Parameters\MaxPacketSize=1).

С какого бодуна оно перестало на одной конкретной машине работать по UDP — загадка великая есть.

С какого бодуна быдлокодеры из Майкрософта решили, что максимальный размер UDP-пакета – 2000 байт, я тоже не знаю, но там так написано: “By default, the maximum size of datagram packets for which Windows Server 2003 uses UDP is 1,465 bytes. For Windows XP and for Windows 2000, this maximum is 2,000 bytes. Transmission Control Protocol (TCP) is used for any datagrampacket that is larger than this maximum.”

Почему те же быдлокодеры ниасилили вывести в лог хоть что-нибудь про неработающий керберос? Видимо, потому что быдлокодеры.

И как можно было так скрестить NTLM authentication с керберосом, чтобы разделяемые ресурсы на сервере успешно подключались, но в них ничего не было видно — это уже вообще за гранью разума.

В общем, ещё один повод считать, что для сколько-нибудь серьёзных задач Windows использовать не следует. Иначе придётся танцевать с бубном, пытаясь _угадать_, что же там сломалось.

Оригинал этой записи. Комментировать можно тут или там.

Любые материалы из этого блога запрещается использовать на сайте livejournal.ru в любой форме и любом объёме

[identity profile] kritik-at-work.livejournal.com 2011-05-25 09:42 am (UTC)(link)
поэтому в крупных компаниях делают образ для каждой модели писюка, и если что-то странное происходит, то тут же заливают свежий образ, предварительно забэкапив данные пользователя.

[identity profile] dil.livejournal.com 2011-05-25 09:45 am (UTC)(link)
Как было явно указано в предыдущем посте, это была не крупная компания.
Да и в любом случае, система, которую проще переставить, чем понять, чтО в ней сломалось, и как его чинить, - это неправильная система.

[identity profile] kritik-at-work.livejournal.com 2011-05-25 10:28 am (UTC)(link)
холивар не буду затевать, скажу только, что бизнес принимает решения, что использовать в качестве desktop OS.

[identity profile] dil.livejournal.com 2011-05-25 10:31 am (UTC)(link)
Вот он и принял.. Результат: пара дней плясок с бубном и простоя сотрудника, у которого на этой машине были установлены очень специальные программы.

[identity profile] lazyboa.livejournal.com 2011-05-26 07:12 am (UTC)(link)
Да и не в крупных тоже. Но оно опять же, при очередном апдейте рискует поломаццо.

[identity profile] dmarck.livejournal.com 2011-05-25 10:23 am (UTC)(link)
need-to-fragment, стало быть, поломался?

но сама по себе история, да, феерична.

[identity profile] dil.livejournal.com 2011-05-25 10:25 am (UTC)(link)
Про need-to-fragment я не знаю, честно говоря. Сеть-то без маршрутизаторов, если что, фрагментировать должен был сам отправитель. То ли он не фрагментировал, то ли сервер не мог собрать, то ли ещё что..

[identity profile] dmarck.livejournal.com 2011-05-25 10:31 am (UTC)(link)
У меня недавно была история похожей недиагностируемости.

Одна Win7 внезапно переставила себе MTU на эзернете на 1504. Некоторые сетевые штуки перестали работать, причём иногда.

Попутно выяснилось, что сменить MTU в висте и семёрке -- совсем не самое простое занятие. Ref (http://networking.nitecruzr.net/2007/11/setting-mtu-in-windows-vista.html)

[identity profile] dil.livejournal.com 2011-05-25 10:33 am (UTC)(link)
А оно разве физически в езернет пролезает? Или там началась массовая фрагментация?

[identity profile] dmarck.livejournal.com 2011-05-25 10:46 am (UTC)(link)
Именно что массовая фрагментация. Хорошо, что есть роутер с любимой ОС ;)

[identity profile] bromi.livejournal.com 2011-05-25 01:59 pm (UTC)(link)
Это, кхм, как раз более простое занятие, чем искать какие-то ключили или софтинки, как раньше.
netsh или powershell - это логично и корректно отрабатывает из всяких скриптов.

[identity profile] blacklion.livejournal.com 2011-05-26 10:51 am (UTC)(link)
Одна Win7 внезапно переставила себе MTU на эзернете на 1504.
Винда же указывает размер MTU с ethernet-заголовком в отличие от UNIX'ов, нет? Т.е. у неё дефолт типа 1514, и это UNIX-овые 1500?

[identity profile] dmarck.livejournal.com 2011-05-26 10:56 am (UTC)(link)
В одних местах так, в других сяк. По команде из статейки по ссылке выше в нормальной ситуации семёрки кажут 1500.

[identity profile] blacklion.livejournal.com 2011-05-26 10:55 am (UTC)(link)
Сейчас залез в настройки сетевого адаптера на win7 — хм, там вообще только Jumbo а MTU пропало... Да, это я с XP помню про 1514...

[identity profile] dil.livejournal.com 2011-05-25 10:29 am (UTC)(link)
Кстати, поскольку сервер SBS 2008, у него может быть другое представление о максимальном размере UDP-пакетов, и он полученные от XP пакеты-переростки мог молча удалять. Но это всё догадки, в логах сервер тоже ничего не писал.

[identity profile] dmarck.livejournal.com 2011-05-25 10:33 am (UTC)(link)
Джумбы, кстати, были включены?

[identity profile] dil.livejournal.com 2011-05-25 10:34 am (UTC)(link)
Точно не знаю, но полагаю, что нет, ибо специально их никто не включал.

[identity profile] bromi.livejournal.com 2011-05-25 02:00 pm (UTC)(link)
Теперь вот подумалось - а может, среди апдейтов был апдейт драйвера сетевки?

[identity profile] dil.livejournal.com 2011-05-25 02:03 pm (UTC)(link)
Вряд ли, апдейты на все машины ставятся более-менее одинаковые, через местный WSUS.
Ну и испоганить сетевой драйвер до такой степени - это надо очень сильно постараться.

[identity profile] bromi.livejournal.com 2011-05-25 03:01 pm (UTC)(link)
Так уж постараться. У меня есть любимый пример (и машинка эта жива ещё даже) с 2000 сервером, где при заливе одного конкретного файла наступал ступор сетевого стека где-то на пару минут. При передаче оного же в архиве и распаковке на месте - никаких проблем не было. На машинке никаких антивирей или подобного никогда не было.
Такие вот дела.

[identity profile] dil.livejournal.com 2011-05-25 03:30 pm (UTC)(link)
Я аналогичный эффект видел даже на более низком уровне, когда сама карта некоторые пакеты стабильно теряла. Точнее, она их не совсем теряла, а принимала за управляющие (IPMI, кажется) и на вышележащие уровни не передавала.
Но тут машины более-менее одинаковые, и драйверы у них, соответственно, тоже.

[identity profile] olexandr bilyk (from livejournal.com) 2011-05-25 02:13 pm (UTC)(link)
А Вы где включали Logging на Kerberos - на стороне клиента или сервера?

Плюс не знаю применимо ли было в Вашем случае - на MS всегда лежала дока как делать troubleshoot kerberos - так там среди прочего был такой момент что при неверно работающем kerberos в security log могут идти success auth от анонимного пользователя. и если у Вас такое было, то могло оч сильно ускорить решение вопроса даже без прямых error events от kerberos

[identity profile] dil.livejournal.com 2011-05-25 02:17 pm (UTC)(link)
На клиенте.

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

[identity profile] olexandr bilyk (from livejournal.com) 2011-05-25 02:37 pm (UTC)(link)
Ну. за что купил за то продал - была и есть дока для 2003го по kerberos delegation - я работал по ней.

сами по себе такие события конечно ни о чем не говорят, но в доке было описано, что в определенных случаях при неудачной попытке использовать kerberos, в security logs приходят Logon failed for null user, Logon failed for NT AUTHORITY\ANONYMOUS user и делается попытка использовать ntlm аутентификацию. там же в документе есть коды событий для успешных и нет поток аутентификации и для NTLM и для Kerberos.

скорее это мой предыдущий пост невнятный, чем метод диагностики странный. в моем случае мне не было куда отступать и я мирил не 1 клиентскую машину + 1 домен контроллер, а крупную корпоративную сеть с MSSQL/IIS/ Project серверами + кастомные приложения - и ничего - как оказалось документ работает.

[identity profile] evgalt.livejournal.com 2011-05-25 10:32 pm (UTC)(link)
ИМХО анонимам политикой не было запрещено подключение с правами "ты никто, звать тебя никак", потому и успешная...

Не в тему, но порадует ;) http://ifap-ru.livejournal.com/264929.html

[identity profile] dil.livejournal.com 2011-05-26 07:10 am (UTC)(link)
В данном случае для подключения к этим ресурсам надо было, как минимум, быть аутентифицированным доменным пользователем

[identity profile] evgalt.livejournal.com 2011-05-26 07:43 am (UTC)(link)
Таки оно же и не получало доступ к искомому, если я правильно помню условия задачи...

[identity profile] dil.livejournal.com 2011-05-26 09:47 am (UTC)(link)
Но ресурс-то, типа, подключался. И не только по мнению клиента, на сервере сессию тоже было видно. Значит, какая-то аутентификация срабатывала.

[identity profile] evgalt.livejournal.com 2011-05-26 10:01 am (UTC)(link)
ИМХО (и если я правильно помню свои игрища с W2k3s), то "подключался" в данном случае было не более, чем фигура речи. Анонимам не запрещено в принципе коннектиться к серверу, значит типа как соединение есть, но доступа к ресурсам, которым назначены права доступа - нет.

Что в данном случае может сделать анонимный клиент - depends on. Получить IP от DHCP ИМХО ему невозбранно. Выползти во внешний Нет - тоже, а вот получить доступ к шарам, принтерам и т.д. - фигвам.

Может быть полезным завести на сервере имена клиентских ПК, чтобы понимать, в какой момент "опознование" клиента перестает срабатывать аутенификация. Правда я уже не помню, по какому признаку там идет опознавание ПК - по MAC или по IP, выданому DHCP (со всеми граблями по этому поводу)...

А вообще да, информативность в подобных случаях неимоверно доставляет: не работает локальный принтере - получите интерактивный траблшутер со всеми возможными вариантами, нет доступа к серверу - тишина. Наверное, это в целях безопасности, чтобы враг ни о чем не догадался ;)

[identity profile] dil.livejournal.com 2011-05-26 10:03 am (UTC)(link)
Под "разделяемыми ресурсами" в данном случае имелись в виду шары, в которые анонимных пользователей не пускают. Список шар анонимному пользователю, может быть, ещё и дадут, а подключиться к конкретной шаре - точно нет.

[identity profile] evgalt.livejournal.com 2011-05-26 10:07 am (UTC)(link)
Ну так и я про то же.

[identity profile] nikulina.livejournal.com 2011-05-26 11:18 am (UTC)(link)
ИМХО (и если я правильно помню свои игрища с W2k3s), то "подключался" в данном случае было не более, чем фигура речи.

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