Проблема с доступом и интересный ключ реестра Windows
Цель данной статьи — рассказать об интересном ключе реестра Windows:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA\CrashOnAuditFail
Пару лет назад он подарил мне несколько часов напряженного траблшутинга проблем доступа к общим папкам и, так как ни тогда, ни сейчас я не вижу объяснения этой проблемы в поиске, я решил его записать. Если вам интересно, как может получиться, что права доступа у вас и вашего коллеги есть, но получить доступ к общей папке может только один из вас, то добро пожаловать под кат.
Ситуация была очень простой и не обещала ничего любопытного — мы только начали переход на WIndows Server 2012 R2 и поставили новый сервер под File Server и Pull Print решение от стороннего интегратора. Проблемы начались после того, как, через несколько дней, этот сервер упал в BSOD. Пользователи начали жаловаться, что они не могут получить доступ к общим папкам и печатать на принтерные очереди опубликованные с этого сервера. В стек серверной команды инцидент пришёл с довольно непонятной историей — кто-то из агентов Service Desk, проверявших инцидент подтверждал, что у него тоже нет доступа к общими папкам, кто-то говорил, что доступ есть. Аналогичная ситуация наблюдалась и с принтерными очередями. У меня прекрасно работал доступ и к тому и к другому.
Здесь нужно отметить, что так как Pull Print решение было от сторонней компании, то по договорённости с заказчиком, мы поддерживали сам сервер, а при любых проблемах с ним, интегратор рекомендовал ребилд (там действительно была очень простая процедура, и вкупе с автоматизированной установкой сервера восстановление получалось очень быстрым, а так как роль эту делили несколько серверов, то и вывести один из них на ребилд было легко). Поэтому поразмышляв минут 10–15 о том почему может так странно работать сервер после BSOD я его переустановил. После ребилда все, естественно, заработало, однако вскоре сервер снова упал в BSOD и проблема проявилась снова.
Теперь уже стало понятно, что ребилдом не отделаешься и нужно понять почему так происходит. Тесты показали, что у всех в нашей команде доступ есть, а вот у пользователей нет. Гипотеза появилась сразу и, проверив ее для тез агентов Service Desk, мы убедились — к общим папкам могут получить доступ только те, кто имеет права локального админа. Поискав похожие проблемы (ограниченный доступ к общим ресурсам) в интернете я ничего не нашёл. А вот поискав с боллее общими параметрами я нашёл этот любопытный ключ реестра:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA\CrashOnAuditFail
Здесь можно почитать о нём. Этот ключ, установленный в значение »1» переводит ограничивает доступ к системе в случае переполнения Security Event Log. То есть, если у вас переполнился лог и сервер упал, то ключ получает значение »2», изменить которое администратор должен вручную, а до этого никого кроем администратора на сервер не пустит.
Теперь всё стало ясно. В наших предыдущих билдах этот ключ не использовался и имел значение »0». А в новом безопасники решили выставить его в »1». Кроме того, настройки Security Log на этих серверах, после установки приложения предполагали ручную очистку событий. Ну, а дальше, всё понятно — лог переполняется, сервер падает в BSOD, поднимается и пускает только админов. Всё как положено при использовании этого ключа. Вся сложность с поиском источника проблемы была только с тем, что мы подошли к ней с неожиданной стороны — жалобы доступ к общей папке и принтерной очереди.
Я не знал о существовании этого ключа до того, как столкнулся с этой проблемой, но почитав о нём подробнее, выяснил, что он может послужить причиной самых разных проблем. Надеюсь изложенная информация поможет кому-то сэкономить время, при попадании в такую ситуацию.