Как настроить доменную авторизацию 1С на Linux-сервере с несколькими доменами?

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Как настроить доменную авторизацию 1С на Linux-сервере с несколькими доменами?

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #38422
      Фото аватараOdineski
      Участник

        как настроить доменную авторизацию в linux сервере для 1С в разных доменах? Настройки krb5 файла и все действия по шагам. Распиши максимально подробно. Не рассказывай про www web-авторизации. Только для клиента 1С.

      • #38423
        bot_avaOdin — Одинэсник
        Участник

          Настройка доменной авторизации 1С на Linux-сервере с поддержкой нескольких доменов через Kerberos — задача непростая, но выполнимая. Ниже максимально подробно расписаны шаги и пример конфигурации krb5.conf для нескольких доменов. Без веб-авторизации, только для тонкого клиента 1С.

          ## 1. Предварительные условия

          — Сервер 1С на Linux (Debian/Ubuntu, RHEL, Fedora и т.п.)
          — Контроллеры доменов Windows Active Directory нескольких доменов (например, DOMAIN.LOC, MASTER.LOC, OFFICE.LOC)
          — Пользователь домена для аутентификации (например, usr1cv8) в каждом домене или один пользователь с правами в нескольких доменах
          — Утилита ktpass (на Windows) для создания keytab-файлов
          — Права root на Linux-сервере 1С

          ## 2. Создание keytab-файлов на контроллерах доменов (Windows)

          Для каждого домена нужно создать keytab с SPN, соответствующим имени сервера 1С.

          Пример команды на Windows (cmd.exe):

          |ktpass -princ usr1cv8/srv-1cserver.domain.ru@DOMAIN.LOC -mapuser usr1cv8 -pass XxXxXx -out usr1cv8_domain.keytab -crypto RC4-HMAC-NT -ptype KRB5_NT_PRINCIPAL

          |ktpass -princ usr1cv8/srv-1cserver.domain.ru@MASTER.LOC -mapuser usr1cv8 -pass XxXxXx -out usr1cv8_master.keytab -crypto RC4-HMAC-NT -ptype KRB5_NT_PRINCIPAL

          |ktpass -princ usr1cv8/srv-1cserver.domain.ru@OFFICE.LOC -mapuser usr1cv8 -pass XxXxXx -out usr1cv8_office.keytab -crypto RC4-HMAC-NT -ptype KRB5_NT_PRINCIPAL

          -princ — имя принципала в формате usr1cv8/FQDN_сервера@ДОМЕН
          -mapuser — имя пользователя в домене
          -pass — пароль пользователя
          -crypto — рекомендуемый RC4-HMAC-NT (лучше совместимость)
          -ptype — тип принципала

          ## 3. Объединение keytab-файлов на Linux

          Скопируйте все keytab-файлы на сервер 1С, например в /etc/1c/keytabs/

          Объедините их в один:

          Проверьте содержимое:

          Должны увидеть все три принципала с разными доменами.

          ## 4. Установка Kerberos клиента на Linux

          Во время установки укажите основной домен (например, DOMAIN.LOC) — позже поправим.

          ## 5. Настройка /etc/krb5.conf для нескольких доменов

          Пример файла krb5.conf с тремя доменами:

          |[libdefaults]
          | default_realm = DOMAIN.LOC
          | dns_lookup_realm = false
          | dns_lookup_kdc = false
          | ticket_lifetime = 24h
          | renew_lifetime = 7d
          | forwardable = true
          | default_tkt_enctypes = rc4-hmac
          | default_tgs_enctypes = rc4-hmac
          |
          |[realms]
          | DOMAIN.LOC = {
          | kdc = dc1.domain.loc
          | admin_server = dc1.domain.loc
          | default_domain = domain.loc
          | }
          | MASTER.LOC = {
          | kdc = dc1.master.loc
          | admin_server = dc1.master.loc
          | default_domain = master.loc
          | }
          | OFFICE.LOC = {
          | kdc = dc1.office.loc
          | admin_server = dc1.office.loc
          | default_domain = office.loc
          | }
          |
          |[domain_realm]
          | .domain.loc = DOMAIN.LOC
          | domain.loc = DOMAIN.LOC
          | .master.loc = MASTER.LOC
          | master.loc = MASTER.LOC
          | .office.loc = OFFICE.LOC
          | office.loc = OFFICE.LOC

          — В секции [realms] указывайте KDC (контроллеры доменов) для каждого домена.
          — В [domain_realm] сопоставляйте DNS-домены с Kerberos realm.
          — Все имена доменов в uppercase в [realms], в [domain_realm] — в lowercase.

          ## 6. Настройка DNS и времени

          — В /etc/resolv.conf или netplan укажите DNS-серверы, которые могут разрешать имена контроллеров доменов.
          — Проверьте, что сервер 1С может резолвить имена контроллеров (ping dc1.domain.loc и т.п.)
          — Синхронизируйте время с контроллерами доменов (важно для Kerberos):

          ## 7. Размещение keytab и права

          — Поместите объединённый keytab в каталог, например, /etc/1c/usr1cv8.keytab
          — Установите владельца и права:

          — Пользователь, под которым работает сервис 1С, должен иметь доступ к keytab.

          ## 8. Проверка Kerberos аутентификации

          Проверяем получение тикета Kerberos с keytab:

          Повторите для каждого домена, меняя realm и principal:

          Если ошибок нет, Kerberos настроен корректно.

          ## 9. Настройка пользователей 1С

          В конфигураторе или в администрировании базы 1С:

          — Для каждого пользователя в 1С в параметрах входа выберите «Аутентификация операционной системы»
          — В поле «Пользователь» укажите доменное имя в формате:

          Обязательно указывать полный домен в формате FQDN, не NetBIOS.

          ## 10. Перезапуск сервиса 1С

          Перезапустите службу 1С, чтобы применились настройки keytab и krb5.conf.

          ## 11. Дополнительные рекомендации

          — Для отладки Kerberos можно включить трассировку, добавив в системный сервис 1С переменную окружения:

          — Проверяйте логи 1С и системные логи для ошибок аутентификации.
          — Если используется SELinux/AppArmor — настройте разрешения на keytab.

          ## Итог: кратко по шагам

          1. Создать пользователя в каждом домене, снять галочку «Use DES encryption types»
          2. На Windows с помощью ktpass создать keytab для каждого домена с SPN usr1cv8/FQDN_сервера@REALM
          3. Скопировать keytab на Linux сервер 1С
          4. Объединить keytab в один с помощью ktutil
          5. Установить krb5-user, настроить /etc/krb5.conf с несколькими доменами
          6. Настроить DNS и время
          7. Поместить keytab в каталог, выставить права
          8. Проверить kinit с keytab для каждого домена
          9. В 1С настроить пользователей с аутентификацией ОС и указать домен в формате \REALMuser
          10. Перезапустить сервис 1С

          Рекомендую посмотреть здесь для примеров и подробностей:

          https://infostart.ru/1c/articles/1762389/
          https://infostart.ru/1c/articles/2066967/
          https://infostart.ru/1c/articles/2539193/
          https://infostart.ru/1c/articles/2071706/

          Если нужна помощь с конкретными файлами или командами — могу помочь.

      Просмотр 1 ветки ответов
      • Для ответа в этой теме необходимо авторизоваться.
      База знаний 1С