В облако на работу: Все варианты авторизации ОС сервером 1С на базе РЕД ОС 8 в домене windows. Точки над Ё

В одном из лучших руководств администраторов «UNIX and Linux System Administration
Handbook, © 2018 Pearson Education lnc.» описывается такой метод настройки систем: «Копируй, вставляй, молись».
Какой бы ни была подробной инструкция и на какой бы типовой системе она не составлялась, всегда что-то может пойти не так.
В этой публикации рассмотрим, как искать и устранять ошибки авторизации авторизации ОС сервером 1С на базе linux. Тех, кто заинтересовался, прошу под кат…

vlpeq_xxnne4cebspkycofnw2wc.png

Дай человеку рыбу и он будет сыт один день.
Дай человеку леща и он пойдет на работу.
вероятно не © Лао-цзы

Отладка, как для программистов, так и для системных администраторов, занимает значительно большую часть времени, чем самая тщательная первичная настройка систем.
Все течет, все меняется. Темные силы электричества готовы обрушить работу любого проекта, особенно если он никогда и не работал.
Поэтому сразу надо понимать как, где и с помощью чего, искать баги.


Все счастливые семьи похожи друг на друга,
а каждая несчастливая семья несчастлива по-своему.
© Л.Н. Толстой

В схеме с доменной авторизацией 1С будет почти по Толстому, на стороне клиента ошибки будут выглядеть одинаково — окно ввода пароля при попытке открыть базу 1С (как следствие, письмо от пользователя: «Не могу войти в 1С, пробовал все пароли, ни один не подходит»), но под капотом, мы имеем несколько точек отказа, которые могут случиться все или по отдельности, в огромном количестве комбинаций зависящих как от настроек, так и от версии платформы и ранга домена.

Исходные данные остаются прежними,  в смешанном домене windows (linux & windows рабочие станции) сервер 1С на базе РедОС.

Описаны в публикации «В облако на работу: Все варианты авторизации ОС сервером 1С на базе РЕД ОС 8 в домене windows. Рецепты от Капитана»,


поэтому уберу подробности под спойлер


mylgy74atekz3zng8fl-hvbvqcg.png

  • Контроллер домена, сервер Windows 2012 R2,  домен AD уровня Windows 2012. dc.test.loc
    uv8grjs4h5oeyfzxbmfywjcr9vu.png
  • Рабочая станция Windows 10. win-cln01.test.loc
    9bfh9naezzl1fggsh0rsbogfw-k.png
  • Рабочая станция РедОС 8. red8-cln01.test.loc
    asrd3xfekitvvzrgkl1e7wm05cq.png
  • Сервер 1С РедОС 8 настроенный. red8-srv.test.loc
  • Сервер 1С РедОС 8 настраиваемый. red-srv.test.loc
  • Postgres 16 от PostgresPro
  • 1С Предприятие 64-х 8.3.24.1467
  • все в домене test.loc. 
    Пользователь, от которого работает сервер 1С usr1cv83, пароли у всех 123456.
    Все эти значения произвольные и должны в скриптах быть заменены на ваши.
    Имя домена *.local не рекомендуют коллеги РедОС.
  • все по железу 4ГБ RAM 50ГБ SSD 2 Ядра CPU
  • все развернуто в облаке из оригинальных iso образов производителей для чистоты эксперимента.


Те, кто больше любит видео, могут и сейчас посмотреть его вместо чтения статьи, желательно и то, и другое.
Видео

Аксиома: Контроллер домена, сеть и рабочие станции настроены и работают штатно.
Хорошие новости: Сеть настроенную по инструкции из упомянутой выше публикации достаточно сложно поломать. Когда я для написания этой публикации пробовал воспроизвести встречавшиеся в моей практике ошибки, часть из них повторить не удалось, часть удалось, но действиями, которые трудно представить в реальной жизни и требующих административных прав, например ручной установкой времени на станции клиента.
ezsc4ncx5wv85gsvq5koejyrkte.png
Свежая платформа 1С также более лояльно относится например к различиям в KVNO.
Грешил сначала на то, что работаю под лицензиями разработчика, но потом добрые люди дали на выходные штатную лицензию и все осталось точно так же.

Раз уж вспомнились добрые люди… Если у кого будет возможность на несколько дней (выходные) дать лицензии уровня КОРП или попросить временные у 1С, то получится написать статью об отказоустойчивом кластере.
Лицензии разработчика не дают его собрать. 
Конфиденциальность гарантирую или наоборот, могу упомянуть в разделе «Благодарности»
 

Методика расследования:

Не буду употреблять иностранных слов и заменю модное «дихотомия» на «танцуем от печки».
(тем более, что дихотомия, это зачастую не тот процесс, за который его выдают искатели ошибок).

В любом случае, первое с чем надо определиться, это задать себе и ответить на несколько вопросов:

  • ошибка возникает у всех пользователей и во всех базах всех серверов 1С (если вы при этом еще видите бегущих сисадминов с горящими вырезано цензурой глазами, то возможно весь домен устал и надо просто подождать) или у одного (нескольких).
  • ошибка возникает во всех типах клиентов 1С сервера 1С или только в веб. За исключением одного случая, если авторизация не работает в тонком клиенте, в веб она тоже не заработает
  • ошибка возникает во всех базах, размещенных на сервере 1С, или в одной (нескольких)
  • немаловажный вопрос: работало ли все изначально и сломалось или не работало никогда

Первые действия в расследовании, это выполнить в консоли:

  1. timedatectl status (или та система с помощью которой вы синхронизируете время с контроллером домена) проверяем что работает
  2. nslookup dc.test.loc проверяем что видится контроллер домена
  3. id usr1cv83 проверяем что отрабатываются запросы в домене
  4. kinit usr1cv83 получаем тикет Kerberos интерактивно
  5. klist -e -k -t /1c/usr1cv83.keytab и hostname сверяемся, что файл существует, корректен и имена служб в нем выданы для настраиваемого сервера
  6. kinit -k -t /1c/usr1cv83.keytab usr1cv83@TEST.LOC получаем тикет Kerberos используя файл keytab

j4wuvn5hmh3iqmm5rhpsej0muly.png
Все эти команды должны отработать без ошибок, при наличии сообщений об ошибках здесь, двигаться дальше и переходить к настройкам 1С нет смысла.

Если при первом взгляде все выглядит пристойно, углубиться в расследование помогут журналы:

  • технологический журнал 1С с мониторингом событий CONN и EXCP, можно отдельно посмотреть VRSREQUEST и VRSRESPONSE, но в случае веб-клиента, по сути это будет дубль логов apache.
    logcfg.xml

     

     
       
       
     

       
       
     

     
     



регистрации apache, если расследуется ошибка на веб-клиенте. Настроен по умолчанию и находится в /var/log/httpd. Если запросы идут по протоколу http, то это файлы access_log error_log и ssl_access_log ssl_error_log если используется https.

rr3cr0gninngw7lg-0ms7la0zla.png

Ошибки связанные с единичными пользователями

  • Ошибка в имени пользователя или некорректно составленное имя пользователя домена.

Если имя пользователя обычно выбирают из выпадающего списка и в нем ошибиться трудно, то имени домена будет два как минимум короткое TEST и длинное TEST.LOC в нашем случае. Я видел варианты настройки систем, где они не взаимозаменяемы. В технологическом журнале 1С вы увидите с каким именем пытается авторизоваться пользователь.
81a8gpq5d12npyho36fursim-ne.png

  • Расхождение во времени с контроллером домена на клиенте

В технологическом журнале будет выглядеть clock skew too great (или похожие со словом clock/время)
Если настроен веб-сервер, то надо пробовать веб-клиент, в нем ошибки не будет.

  • Не работает авторизация в браузере

Браузеры, кроме Edge, нуждаются в дополнительной настройке для доменной авторизации.
Проще всего проверить попробовав подключиться клиентом 1С в режиме веб-клиента.

Ошибки связанные со всеми пользователями и во всех типах клиентов ведут на сервер 1С (веб-сервер)

  • Расхождение во времени с контроллером домена или его недоступность на сервере 1С.

Это первые две вещи, которые стоит проверить, попав в консоль сервера, до просмотра всех журналов.
В стабильном продуктовом контуре их вероятность не велика, но в тестовом наиболее вероятна.

  • Не отключенный/не настроенный Selinux

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

  • Некорректный/отсутствующий/недоступный файл keytab

В технологическом журнале будет выглядеть как «Ошибка доступа к файлу» или «Unsupported key table format»
Если настроен веб-сервер, то аналогично в логах ahache.
Если файл присутствует, мы же его видели на шаге предпроверки, то надо проверить права доступа и владельца.

  • Отсутствие в файл keytab записи для службы 1С (службы веб-сервера)

В технологическом журнале будет выглядеть как «Не найдена запись в файле для …»
Если настроен веб-сервер, то аналогично в логах ahache.
Как вариант, запись в файле может присутствовать, но не будет для нее записи SPN.
Также на шаге предпроверки мы эту ошибку должны были поймать.
loqfdzncl4altwhwyjzfyhh4eya.png

Ошибки связанные со всеми пользователями, только в веб клиенте

  • Ошибки возникают в одной (нескольких) базах, в других все работает.

Очевидно, это связано с файлом публикации информационной базы. Как вариант поменять строку соединения в рабочем файле публикации или наоборот из рабочей публикации скопировать в нерабочую строки относящиеся к авторизации kerberos.

  • Знаменитая ошибка 402 Payment Required

Связана с тем, что в свойствах учетных записей пользователя под которым запускается служба 1С и для компьютера на котором она работает не настроено делегирование kerberos.
tcjbnfbw3sgo8ym7mm3emqqzaco.png

  • Некорректный/отсутствующий/недоступный файл keytab или смена KVNO пользователя

Веб-сервер, в этом отношении более категоричен, чем актуальные редакции платформы 1С, для него смена KVNO это повод отказать в доступе.

Конечно вариаций ошибок может быть и больше.
Напишите пожалуйста в комментариях, какие встречались вам.

По поводу предложений настроить вам сеть под ключ.
Спасибо всем, кто отписался. По моему убеждению настраивать/пробовать настроить сеть должен тот, кто будет в ней жить.
А вот если у вас что-то не получается/не получилось или есть задачи категории 1С: Эксперта, которые можно выполнять за пределами рабочего времени, то вы знаете где меня искать.

Благодарности:

Благодарю компанию ©Serverspace за предоставленное оборудование, без поддержки собрать такой пингвинариум мне было бы негде.

Итог и планы на будущее:

Так вот не торопясь мы после настройки персонального рабочего места на РедОС 7.3, посмотрели РедОС 8 и почти полностью собрали рабочую сеть 1С на отечественной ОС подходящую для работы среднего размера компании.
С веб-серверами, доменной авторизацией и прочая прочая…
Осталось настроить регулярное архивирование, чтобы не потерять нажитое, к нему и перейдем в следующей публикации, если все пойдет по плану.
Если найдутся серверные лицензии 1С, то есть достаточно свежее решение по построению отказоустройчивого кластера. Гораздо красивее, чем предлагаемое в ИТС (по крайней мере по скорости).
В итоге получится мини-курс Импортозамещение ОС в контексте 1С Предприятие. Жалко что коллеги из Яндекса не взялись помочь оформить его именно как курс.

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

Статья продолжает серию публикаций:

Серия «Рецепты от Капитана» на всякий случай

© Habrahabr.ru