Аутентификация в 1С средствами ОС в домене

18.03.24

Администрирование - Информационная безопасность

Настройка сквозной авторизации в БД 1С (БП, ЗУП). Клиенты - вин-машины с тонкими клиентами в домене. Сервер 1С - ubuntu 18, НЕ в домене. Домен - Samba DC

За основу взята оф статья 1С. Только у них про КД на винде. Я же гордый владелец домена на SambaDC, вшитого в SynologyDSM. Есть некоторые подводные камни, которые касаются именно Synology - трудности с рут-доступом по ssh через winCSP. Основной функционал основывается на работе Samba DC (samba-tool).

Итак, имеем:

  • Клиенты - тонкий клиент на win10pro в домене
  • Сервер 1С - Ubuntu 18LTS. Не в домене. Установка - штатная
  • Домен - Samba DC (в исполнении от synology)

Хотим: "чтобы работало одной кнопкой" (когда-нибудь). Сегодня - сквозная авторизация на клиенте.


Переменные, используемые в мануале (чтобы заменить их в notepad++):
    %FQDN сервера 1с% = полный dns-адрес сервера 1с. Например, 1csrv.domain.example
    %ПОЛНЫЙ АДРЕС ДОМЕНА% = realm. так, как написано в настройках домена. Например, DOMAIN.EXAMPLE
        Если эта переменная указана ПРОПИСНЫМИ, то реальные данные указывать ПРОПИСНЫМИ. Если строчными - строчными. Не надо самодеятельности
    %IP ДНС-сервера% = ip днс-сервера, обслуживающего Домен. Чаще всего - Контроллер домена. Например, 192.168.0.2
    %хост КД% = hostname Контроллера домена. Например, dc01
    %FQDN контроллера домена% = полный dns-адрес Контроллера домена. Например, dc01.domain.example
    %Учетка% = имя пользователя домена. Не заблокирован, Без Суффикса. Например, Admin
    %Версия% = версия действующего Сервера 1с. Например, 8.3.22.2283
    %рабочая директория% = путь до исполняемых файлов Сервера 1с. Например, /opt/1cv8/x86_64/8.3.22.2283

на АД (synology DSM - samba-dc):
	1. Добавить хост сервера 1с в ДНС (хост должен иметь статичный IP)
	2. Создать пользователя (usr1c) с рандомным паролем. Без особых групп. Галочка про использовать DES - снята.
	3. Войти от root по SSH на КД. (для synology +: sudo -i)
	4. Добавить SPN к созданному пользователю
		samba-tool spn add usr1cv8/%FQDN сервера 1с% usr1c
	5. Отредактировать вручную данные пользователя (найти строку, начинающуюся на userPrincipalName и привести к виду, указанному ниже)
		samba-tool user edit usr1c
		userPrincipalName: usr1cv8/%FQDN сервера 1с%@%ПОЛНЫЙ АДРЕС ДОМЕНА%
		:wq
		должно появиться сообщение "Modified User 'usr1c' successfully"
	6. Экспортировать keytab
		samba-tool domain exportkeytab /tmp/usr1cv8.keytab --principal=usr1cv8/%FQDN сервера 1с%@%ПОЛНЫЙ АДРЕС ДОМЕНА%
		должно появиться сообщение "Export one principal to /tmp/usr1cv8.keytab"
	7. Скопировать keytab	
		Для synology:
			Установить права для скачивания
				chmod 755 /tmp/usr1cv8.keytab
		войти через WinSCP
		скопировать на копм файл "/tmp/usr1cv8.keytab"

на сервере 1с (ubuntu):
	1. Настроить резолв
		nano /etc/resolv.conf
			nameserver %IP ДНС-сервера%
			search %ПОЛНЫЙ АДРЕС ДОМЕНА%
			сохранить
			systemctl restart systemd-resolved
	2. Проверить, что пинги по короткому dns (имени хоста КД) работают
	3. Сверить время. Установить, если надо, синхронизацию
		ntpdate %хост КД%
	4. Установить (если не установлен) krb
		apt install krb5-user
	5. Настроить конфиг:
		nano /etc/krb5.conf
			[libdefaults]
				default_realm = %ПОЛНЫЙ АДРЕС ДОМЕНА%
				dns_lookup_realm = false
				dns_lookup_kdc = false
				default_tkt_enctypes = rc4-hmac
				default_tgs_enctypes = rc4-hmac
			[logging]
				default = FILE:/var/log/krb5libs.log
				kdc = FILE:/var/log/krb5kdc.log
				admin_server = FILE:/var/log/kadmind.log
			[realms]
				%ПОЛНЫЙ АДРЕС ДОМЕНА% = {
					kdc = %FQDN контроллера домена%
					default_domain = %ПОЛНЫЙ АДРЕС ДОМЕНА%
				}
			[domain_realm]
				%полный адрес домена% = %ПОЛНЫЙ АДРЕС ДОМЕНА%  // тут именно маленькие буквы
				.%полный адрес домена% = %ПОЛНЫЙ АДРЕС ДОМЕНА% // тут именно маленькие буквы
				%ПОЛНЫЙ АДРЕС ДОМЕНА% = %ПОЛНЫЙ АДРЕС ДОМЕНА%
				.%ПОЛНЫЙ АДРЕС ДОМЕНА% = %ПОЛНЫЙ АДРЕС ДОМЕНА%
			[appdefaults]
				pam = {
					debug = true
					ticket_lifetime = 36000
					renew_lifetime = 36000
					forwardable = false
					krb4_convert = false
				}
	6. Проверить, что настроили правильно. Получить билет на учетку, данные от которой заранее известны и валидны
		kinit %Учетка%@%ПОЛНЫЙ АДРЕС ДОМЕНА%
		пароль от %Учетка%
			Если никаких сообщений об ошибках - все ок.
		klist
			Должно вывести что-то подобное
				Ticket cache: FILE:/tmp/krb5cc_0
				Default principal: %Учетка%@%ПОЛНЫЙ АДРЕС ДОМЕНА%
		kdestroy
	7. Найти рабочую директорию 1с
		systemctl status system-srv1cv8*
			будет что-то подобное "/opt/1cv8/x86_64/%Версия%
		перейти в папку
			cd %рабочая директория%
	8. Скопировать в %рабочая директория% файл, полученный с КД "usr1cv8.keytab". Название должно быть таким же
	9. Выставить права (если, конечно, пользователь и группа по-умолчанию)
		chown usr1cv8:grp1cv8 usr1cv8.keytab
		chmod 600 usr1cv8.keytab
	10. Проверить, что файл читается и в нем тот пользователь, что требуется
		klist -e -k -t %рабочая директория%/usr1cv8.keytab
		должно вывести что-то похожее
			KVNO Timestamp           Principal
			---- ------------------- ------------------------------------------------------
				1 15.03.2024 17:30:43 usr1cv8/%FQDN сервера 1с%@%ПОЛНЫЙ АДРЕС ДОМЕНА% (arcfour-hmac)
	11. Пробуем подключиться к ДК с помощью этого файла
		kinit -k -t %рабочая директория%/usr1cv8.keytab usr1cv8/%FQDN сервера 1с%@%ПОЛНЫЙ АДРЕС ДОМЕНА%
		если нет ошибок klist
			предполагаемый вывод:
				Ticket cache: FILE:/tmp/krb5cc_0
				Default principal: usr1cv81/%FQDN сервера 1с%@%ПОЛНЫЙ АДРЕС ДОМЕНА%
				Valid starting     Expires            Service principal
				15.03.2024 17:33:56  16.03.2024 03:33:56  krbtgt/%ПОЛНЫЙ АДРЕС ДОМЕНА%@%ПОЛНЫЙ АДРЕС ДОМЕНА%
						renew until 16.03.2024 17:33:56
		если похоже - все ок. 
		kdestroy

в Базе Данных:
	1. Администрирование - Настройки пользователей и прав - Пользователи
	2. Открыть конкретного пользователя. В параметрах входа выбрать "Аутентификация операционной системы"
	3. В открывшемся окне слева выбрать %полный адрес домена%, справа - пользователя
		должно получиться \\%полный адрес домена%\%пользователь% 
			разницы ПРОПИСНЫЕ или строчные знаки - нет. НЕ работает с коротким именем (netBIOS, суффикс)домена
	4. Записать и закрыть
	5. Проверить
	Важно!
		В настройках подключения БД "Вариант аутентификации" должен быть отмечен кружок "Выбирать автоматически"
		В файле *.v8i это параметр WA=1

Если установка 1С была штатной и по мануалу ничего не меняли, перезагружать сервер 1С не нужно.

Гуд Люк!)

См. также

AUTO VPN (portable)

Информационная безопасность Платные (руб)

Автоматизация подключения пользователей к удаленному рабочему месту или сети посредством создания автоматического VPN (L2TP или L2TP/IPSEC и т.д.) подключения без ввода настроек пользователем (с возможностью скрытия этих настроек от пользователя). Программа автоматически выполняет подключение к VPN серверу и после успешного коннекта , если необходимо, подключение к серверу удаленных рабочих столов (RDP).

1200 руб.

24.03.2020    14510    23    32    

34

Настройка аутентификации в 1С с использованием стандарта RFC 7519 (JWT)

Информационная безопасность Платформа 1С v8.3 Бесплатно (free)

Рассмотрим в статье более подробную и последовательную настройку аутентификации в 1С с использованием распространенной технологии JWT, которая пришла в программу в платформе версии 8.3.21.1302.

27.02.2024    3206    PROSTO-1C    10    

32

Device flow аутентификация, или туда и обратно

Информационная безопасность Платформа 1С v8.3 Абонемент ($m)

Интеграционные решения стали неотъемлемой частью нашей жизни. Правилом хорошего тона в современных приложениях является не давать интегратору доступ к чувствительным данным. Device flow позволяет аутентифицировать пользователя, не показывая приложению чувствительные данные (например: логин и пароль)<br> Рассмотрим Device flow аутентификацию, в приложении, на примере OpenID провайдера Yandex.

1 стартмани

27.10.2023    1721    platonov.e    1    

23

Анализатор безопасности базы сервера 1С

Информационная безопасность Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

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

5 стартмани

24.04.2023    5577    17    soulner    7    

29

Двухфакторная аутентификация в 1С через Telegram и Email

Информационная безопасность Платформа 1С v8.3 1С:ERP Управление предприятием 2 Абонемент ($m)

1С, начиная с версии платформы 8.3.21, добавили в систему возможность двойной аутентификации. Как это работает: в пользователе информационной базы появилось свойство «Аутентификация токеном доступа» (АутентификацияТокеномДоступа во встроенном языке), если установить этот признак и осуществить ряд манипуляций на встроенном языке, то появляется возможность при аутентификации отправлять HTTP запросы, которые и реализуют этот самый второй фактор. Данное расширение позволяет организовать двухфакторную аутентификацию с помощью электронной почты или мессенджера Telegram.

2 стартмани

08.12.2022    6121    33    Silenser    12    

23

История одного взлома или проверьте вашу систему на безопасность

Информационная безопасность Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

От клиента клиенту, от одной системы к другой, мы вновь и вновь встречаем одни и те же проблемы и дыры в безопасности. На конференции Infostart Event 2021 Post-Apocalypse Виталий Онянов рассказал о базовых принципах безопасности информационных систем и представил чек-лист, с помощью которого вы сможете проверить свою систему на уязвимость.

26.10.2022    9481    Tavalik    46    

113
Оставьте свое сообщение