После повсеместного обновления до Windows 7 на настольном компьютере у меня начались проблемы с проверкой на вирусы. В частности, при выполнении операции переименования на общем ресурсе CIFS (размещенном в файловом сервере). Похоже, что антивирусная программа запускает набор сообщений на фильтре:
[filerB: auth.trace.authenticateUser.loginTraceIP:info]: AUTH: Login attempt by user server-wk8-r2$ of domain MYDOMAIN from client machine 10.1.1.20 (server-wk8-r2).
[filerB: auth.dc.trace.DCConnection.statusMsg:info]: AUTH: TraceDC- attempting authentication with domain controller \\MYDC.
[filerB: auth.trace.authenticateUser.loginRejected:info]: AUTH: Login attempt by user rejected by the domain controller with error 0xc0000199: STATUS_NOLOGON_WORKSTATION_TRUST_ACCOUNT.
[filerB: auth.trace.authenticateUser.loginTraceMsg:info]: AUTH: Delaying the response by 5 seconds due to continuous failed login attempts by user server-wk8-r2$ of domain MYDOMAIN from client machine 10.1.1.20.
Кажется, это специально запускается на rename
Итак, мы думаем, что происходит то, что антивирусная программа видит «новый» файл и пытается выполнить сканирование при доступе. Программа проверки вирусов - ранее работала как LocalSystem и, таким образом, отправляла null
поскольку его запрос аутентификации теперь больше похож на атаку DOS, и файлер временно заносится в черный список. Эта 5-секундная блокировка каждой «попытки доступа» в большинстве случаев является незначительной неприятностью и действительно весьма существенна для некоторых операций - например, передача больших файлов, когда каждый файл занимает 5 секунд
Покопавшись, похоже, это связано с аутентификацией NLTM:
Symptoms
Error message:
System error 1808 has occurred.
The account used is a computer account. Use your global user account or local user account to access this server.
A packet trace of the failure will show the error as:
STATUS_NOLOGON_WORKSTATION_TRUST_ACCOUNT (0xC0000199)
Cause
Microsoft has changed the functionality of how a Local System account identifies itself
during NTLM authentication. This only impacts NTLM authentication. It does not impact
Kerberos Authentication.
Solution
On the host, please set the following group policy entry and reboot the host.
Network Security: Allow Local System to use computer identity for NTLM: Disabled
Defining this group policy makes Windows Server 2008 R2 and Windows 7 function like Windows Server 2008 SP1.
Итак, теперь у нас есть пара обходных путей, которые не особенно хороши - один из них - изменить этот параметр безопасности. Один из них - отключить проверку на вирусы или иным образом исключить часть инфраструктуры.
И вот здесь я пришел к моему запросу о помощи от ServerFault - как лучше всего двигаться дальше? Мне не хватает опыта работы с Windows, чтобы быть уверенным в том, что я вижу.
Я не совсем уверен, почему NTLM вообще является частью этой картины - я думал, что мы использовали аутентификацию Kerberos. Я не знаю, как начать диагностику или устранение неполадок. (Мы переходим к междоменному - учетные записи компьютеров рабочих станций находятся в отдельном домене AD и DNS для моего файла. Однако обычная аутентификация пользователя работает нормально.)
И если это не так, может ли кто-нибудь предложить другие направления расследования? Я бы хотел избежать изменения параметров безопасности всего сайта, или, если я сделаю это, мне нужно будет предоставить подробные аргументы. Точно так же отключение проверки на вирусы работает как краткосрочное решение и применение исключений. может помогите ... но я бы не стал и не думаю, что это решает основную проблему.
РЕДАКТИРОВАТЬ: у файловых серверов в AD ldap есть SPN для:
nfs/host.fully.qualified.domain
nfs/host
HOST/host.fully.qualified.domain
HOST/host
(Извините, нужно их запутать).
Может быть, без «cifs / host.fully.qualified.domain» он не будет работать? (или какое-то другое SPN?)
Изменить: в рамках поиска, который я делал, я обнаружил: http://itwanderer.wordpress.com/2011/04/14/tread-lightly-kerberos-encryption-types/
Это говорит о том, что в Win7 / 2008R2 по умолчанию было отключено несколько типов шифрования. это мощь будет уместно, поскольку у нас определенно была аналогичная проблема с Keberized NFSv4. Есть скрытый вариант, который может помочь некоторым будущим пользователям Keberos: параметры nfs.rpcsec.trace on (хотя это еще ничего мне не дало, так что может быть только для NFS).
Изменить: дальнейшее копание заставило меня отследить его до междоменной аутентификации. Это выглядит например, моя рабочая станция Windows 7 (в одном домене) не получает билеты Kerberos для другого домена, к которому мой файловый сервер NetApp присоединен по протоколу CIFS. Я сделал это отдельно для отдельного сервера (Win2003 и Win2008) и не получил билетов Kerberos для них.
Это означает, что я считать Kerberos может быть нарушен, но я не знаю, как устранить неполадки.
Изменить: еще одно обновление: похоже, что это может быть связано с тем, что билеты Kerberos не выдаются кросс-доменом. Затем это вызывает откат NTLM, который затем сталкивается с этой проблемой (начиная с Windows 7). Первым пунктом вызова будет исследование стороны Kerberos, но ни в том, ни в другом случае у нас нет ничего, указывающего на то, что Filer является основной причиной. Как таковой - как инженер по хранению - это не в моих руках.
Однако, если кто-нибудь может указать мне направление устранения неполадок Kerberos, охватывающих два домена Windows AD (Kerberos Realms), то это будет признательно.
Варианты решения, которые мы собираемся рассмотреть:
Я бы изменил вашу антивирусную политику, чтобы не сканировать файлы, совместно используемые по сети. Потенциально у вас может быть дюжина клиентов, пытающихся одновременно просканировать один и тот же файл по сети с помощью AV.
Итак, в Windows 2000, 2003, Windows XP, Vista и 2008 поведение по умолчанию таково:
Но в Windows 7 и 2008 R2 и выше поведение по умолчанию было изменено на следующее:
Источник: http://technet.microsoft.com/en-us/library/jj852275.aspx
Вы говорите, что хотели бы избежать изменения параметра безопасности для всего сайта, но вы уже сделали его, когда обновили все клиенты до Windows 7.
Что касается того, почему вы вообще не используете Kerberos, это совершенно другой вопрос, на который вы не предоставили нам достаточно данных, чтобы на него можно было ответить. Для работы Kerberos службе CIFS необходимы доверительные отношения с доменным именем и зарегистрированными именами участников службы, а клиент должен обращаться к службе с именем хоста или полным доменным именем, а не IP-адресом.
Присоединен ли ваш домен Filers? Если да, то есть ли у них CIFS / * SPN?
Я подошел к концу исследования этого и теперь знаю, почему это происходит.
В итоге:
Начиная с Windows 7/2008 поведение по умолчанию для «LocalSystem» на клиентской машине изменилось. Если раньше он использовал «нулевой» логин, он использует машинные учетные записи для NTLM.
Поскольку мы находимся между двумя лесами AD, Kerberos не используется. Это сделано намеренно. http://technet.microsoft.com/en-us/library/cc960648.aspx «Проверка подлинности Kerberos использует прозрачное транзитивное доверие между доменами в лесу, но не может проверять подлинность между доменами в отдельных лесах»
Sophos сканирует файлы «при доступе», который запускается переименованием. По соображениям политики безопасности сюда входят сетевые диски.
Поскольку Sophos работает как LocalSystem, он представляет учетную запись машины через NTLM в файловую систему. Затем эта учетная запись отклоняется со статусом STATUS_NOLOGON_WORKSTATION_TRUST_ACCOUNT, и после 10 повторных попыток файлер запускает блокировку.
Из-за этой блокировки последующие попытки сканирования на вирусы будут задерживаться на 5 секунд за попытку. Это корень нашей проблемы, потому что наш процесс копирует и переименовывает сотни файлов, и после 10-го каждый займет 5 секунд.
Это оставляет нам решения:
Измените параметр политики безопасности, как указано выше: Сетевая безопасность: разрешить локальной системе использовать удостоверение компьютера для NTLM: отключено
Применить исключение в антивирусной программе для сетевых дисков
Объедините свой отдельный домен в один и тот же лес, чтобы Kerberos работал (здесь описан другой вариант: http://xitnotes.wordpress.com/2012/03/29/kerberos-in-an-active-directory-forest-trust-vs-external-trust/ это включает в себя обновление отношений между доменами, чтобы Kerberos снова работал.
Используйте vfilers, и CIF присоединяют его к другому домену.
В фильтре также есть опция для увеличения количества повторных попыток до того, как произойдет эта блокировка - это скрытая опция, и у меня нет точного синтаксиса под рукой.