+7 (812) 325 84 00

+7 (499) 322 07 96

Веб прокси Squid на CentOS 8 в окружении Active Directory 2019

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

Статья описывает минимальную рабочую конфигурацию прокси Squid на CentOS Stream 8 в связке с Windows Server 2019 Active Directory, с авторизацией Kerberos, NTLM и, опционально, LDAP.

1.    Описание среды

·         Домен Active Directory - papa.local (NetBIOS имя PAPA), ОС контроллеров домена - Windows Server 2019 Datacenter Edition, функциональные уровни домена и леса – Windows Server 2016;

·         Подсеть - 192.168.44.0/24, шлюз по умолчанию - 192.168.44.2;

·         Контроллеры домена - cntr-dc2.papa.local (IP-адрес 192.168.44.12) и cntr-dc4.papa.local (IP-адрес 192.168.44.28); мастер всех операций - cntr-dc4.papa.local;

·         Службы DNS и WINS (для совместимости) размещены на контроллерах домена;

·         Сервер Squid с одним сетевым интерфейсом, ОС - CentOS Stream 8, имя хоста - cntr-gate4.papa.local, IP-адрес - 192.168.44.35;

·         В домене AD для авторизации Squid создан специальный пользователь PAPA\squid (UPN squid@papa.local) с достаточно стойким паролем без ограничения срока действия, учетная запись размещена в OU Papa.local/Special;

·         Вся инфраструктура – виртуальная Hyper-V (в принципе, это неважно).

2.    Установка CentOS

Установка со стандартного дистрибутива CentOS Stream 8, вариант установки – Minimal Install, задаем пароль для root:


Задаем IP-адрес, шлюз по умолчанию и серверы DNS - контроллеры домена, имя хоста cntr-gate4.papa.local и суффикс поиска DNS papa.local :

Задаем NTP-серверы - используем службу NTP контроллеров домена, временная зона Europe/Moscow:




После установки системы следует перезагрузка.

3.    Предварительная конфигурация и установка Squid

Обновляем систему:

dnf update

Устанавливаем ntpstat и проверяем синхронизацию времени:

dnf install ntpstat

ntpstat

chronyc sources -v

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


Добавляем разрешение порта 3128/tcp для прокси Squid:

firewall-cmd --permanent --add-port=3128/tcp

firewall-cmd --reload

Устанавливаем Squid (для нашей конфигурации достаточно готового пакета из репозитария):

dnf install squid

Объявляем в /etc/squid/squid.conf нашу сеть как локальную:

acl localnet src 192.168.44.0/24

Включаем службу Squid для автоматического запуска:

systemctl enable squid --now

4.    Настройка Kerberos

Сначала мы должны подготовить файл ключей (keytab) для Kerberos. Для этого запускаем на контроллере домена следующую команду:

ktpass /princ HTTP/cntr-gate4.papa.local@PAPA.LOCAL /mapuser squid@PAPA.LOCAL /crypto ALL /ptype KRB5_NT_PRINCIPAL /pass "password" /out proxy.keytab

Регистр символов важен! Пароль указывается в двойных кавычках, значение “password“ взято для примера. Результирующий файл proxy.keytab необходимо скопировать в каталог /etc/squid на системе CentOS (cntr-gate4.papa.local).

Учетная запись PAPA\squid в AD выглядит так:


Все остальное делается на системе CentOS. Устанавливаем необходимые пакеты для поддержки Kerberos:

dnf install cyrus-sasl-gssapi krb5-workstation krb5-devel

Теперь редактируем файл конфигурации Kerberos /etc/krb5.conf. У меня файл получился такой:

# To opt out of the system crypto-policies configuration of krb5, remove the

# symlink at /etc/krb5.conf.d/crypto-policies which will not be recreated.

includedir /etc/krb5.conf.d/

[logging]

   default = FILE:/var/log/krb5libs.log

   kdc = FILE:/var/log/krb5kdc.log

   admin_server = FILE:/var/log/kadmind.log

[libdefaults]

   dns_lookup_realm = false

   ticket_lifetime = 24h

   renew_lifetime = 7d

   forwardable = true

   rdns = false

   pkinit_anchors = FILE:/etc/pki/tls/certs/ca-bundle.crt

   spake_preauth_groups = edwards25519

   default_realm = PAPA.LOCAL

   default_ccache_name = KEYRING:persistent:%{uid}

[realms]

PAPA.LOCAL = {

   kdc = cntr-dc2.papa.local

   kdc = cntr-dc4.papa.local

   admin_server = cntr-dc2.papa.local

   admin_server = cntr-dc4.papa.local

}

[domain_realm]

   .papa.local = PAPA.LOCAL

   papa.local = PAPA.LOCAL

После правки файла /etc/krb5.conf перегружаем систему командой reboot.

Теперь нужно проверить корректность работы Kerberos. Для этого, получаем билеты от KDC и проверяем результат (я для примера сначала использую встроенную учетную запись администратора домена AD, но это не обязательно):

kinit Administrator

klist

kinit -V -k -t /etc/squid/proxy.keytab HTTP/cntr-gate4.papa.local@PAPA.LOCAL

klist

Если мы все сделали правильно, то должны увидеть что-то, похожее на это:

Файл ключей proxy.keytab критичен с точки зрения безопасности системы. Поскольку он предназначен специально для сервиса Squid, ограничиваем доступ к нему только для учетной записи службы:

chown squid:squid /etc/squid/proxy.keytab

chmod 400 /etc/squid/proxy.keytab

Теперь можно править файл конфигурации Squid. Модифицируем /etc/squid/squid.conf, для поддержки обязательной аутентификации Kerberos добавляем в него следующие строки:

auth_param negotiate program /usr/lib64/squid/negotiate_kerberos_auth -k /etc/squid/proxy.keytab -s HTTP/cntr-gate4.papa.local@PAPA.LOCAL

auth_param negotiate children 100 startup=0 idle=10

auth_param negotiate keep_alive on

acl authenticated_user proxy_auth REQUIRED

http_access deny !authenticated_user

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

Перезапускаем Squid, чтобы конфигурация вступила в силу:

service squid restart

Настройка авторизации Kerberos на этом закончена.

5.    Настройка NTLM

Так или иначе, обычно этот старый протокол в доменной среде до сих пор используется, несмотря на его очевидные недостатки. Поэтому, здесь описывается рабочая конфигурация для NTLM тоже. Для поддержки NTLM, мы используем связку Samba/Winbind.

Устанавливаем необходимые пакеты для поддержки Samba и Winbind:

dnf install samba samba-client samba-winbind samba-winbind-clients krb5-workstation

Включаем необходимые службы:

systemctl enable smb

systemctl enable nmb

systemctl start smb

systemctl start nmb

Теперь редактируем файл конфигурации Samba /etc/samba/smb.conf для членства в домене. У меня файл получился такой:

# See smb.conf.example for a more detailed config file or

# read the smb.conf manpage.

# Run 'testparm' to verify the config is correct after

# you modified it.

[global]

   workgroup = PAPA

   password server = cntr-dc4.papa.local

   realm = PAPA.LOCAL

   security = ads

   idmap uid = 10000-20000

   idmap gid = 10000-20000

   winbind use default domain = no

   winbind request timeout = 300

   wins server = 192.168.44.28

   passdb backend = tdbsam

   printing = cups

   printcap name = cups

   load printers = yes

   cups options = raw

[homes]

   comment = Home Directories

   valid users = %S, %D%w%S

   browseable = No

   read only = No

   inherit acls = Yes

[printers]

   comment = All Printers

   path = /var/tmp

   printable = Yes

   create mask = 0600

   browseable = No

[print$]

   comment = Printer Drivers

   path = /var/lib/samba/drivers

   write list = @printadmin root

   force group = @printadmin

   create mask = 0664

   directory mask = 0775

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

net ads join -U Administrator

Вводим пароль и проверяем членство в домене:

net ads testjoin

Если мы все сделали правильно, то должны увидеть “Join is OK”:

при этом, в домене AD (по умолчанию в стандартном контейнере Computers) должен создаться объект компьютера для CNTR-GATE4.

Перестартуем службы Samba и включаем Winbind:

systemctl restart smb

systemctl restart nmb

systemctl enable winbind

systemctl start winbind

Проверяем функциональность Winbind:

wbinfo -g

wbinfo -u

Должны увидеть что-то похожее на это:


(это мои примеры. В любом случае, это должны быть валидные списки групп и пользователей домена).

Теперь можно править файл конфигурации Squid. Модифицируем /etc/squid/squid.conf, для поддержки аутентификации NTLM добавляем в него следующие строки:

auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp --domain=PAPA

auth_param ntlm children 100 startup=0 idle=10

auth_param ntlm keep_alive off

Перезапускаем Squid, чтобы конфигурация вступила в силу:

service squid restart

Настройка авторизации NTLM закончена.

6.    Настройка LDAP (опционально)

Squid позволяет настроить авторизацию также и по протоколу LDAP. В данном примере, доступ предоставляется для членов группы безопасности AD InternetAccess в домене papa.local с помощью стандартного helper’а ext_ldap_group_acl. Для этого в конфигурацию Squid необходимо добавить следующие строки:

external_acl_type ldap_group %LOGIN /usr/lib64/squid/ext_ldap_group_acl -R -b "dc=papa,dc=local" -D "cn=squid,ou=special,dc=papa,dc=local" -K -W /etc/squid/password.txt -f "(&(objectclass=person) (sAMAccountname=%u)(memberof=cn=%g,cn=users,dc=papa,dc=local))" -h cntr-dc4.papa.local

acl InternetAccess external ldap_group InternetAccess

http_access allow InternetAccess all

Для LDAP-запросов к AD здесь мы используем учетную запись PAPA\squid с паролем (можно использовать и другую - право на чтение LDAP в домене по умолчанию имеет любая запись рядового пользователя в группе Domain Users). В данном примере пароль указан в дополнительном файле /etc/squid/password.txt открытым текстом, без символа перевода строки. Файл можно создать в любом текстовом редакторе (вроде vi /etc/squid/password.txt). Из соображений безопасности, доступ к нему следует ограничить для учетной записи службы:

chown squid:squid /etc/squid/password.txt

chmod 400 /etc/squid/password.txt

Альтернативно, можно указать пароль с ключом -W в хелпере прямо в файле /etc/squid/squid.conf, но это небезопасно – пароль здесь необходимо указывать открытым текстом.

После внесения изменения в конфигурацию, Squid необходимо перезапустить:

service squid restart

Одно замечание – пароль в запросах LDAP для учетной записи PAPA\squid до контроллера домена здесь передается по сети открытым текстом. А это может быть риском.

7.    Настройка доступа для группы Active Directory с авторизацией NTLM и Kerberos

Выше были описаны базовые настройки авторизации по Kerberos и NTLM. Чтобы ограничить доступ в Интернет для членов определенной группы (здесь это PAPA\InternetAccess, как в примере для LDAP), необходимо прописать следующие строки в /etc/squid/squid.conf:

external_acl_type InternetAccess_from_ad_krb ttl=300 negative_ttl=60 %LOGIN /usr/lib64/squid/ext_kerberos_ldap_group_acl -g InternetAccess@PAPA.LOCAL

external_acl_type InternetAccess_from_ad_ntlm %LOGIN /usr/lib64/squid/ext_wbinfo_group_acl -d

acl InternetAccess_acl_krb external InternetAccess_from_ad_krb

acl InternetAccess_acl_ntlm external InternetAccess_from_ad_ntlm InternetAccess

8.    Базовая аутентификация

Squid поддерживает также базовую аутентификацию с передачей пароля открытым текстом. По понятным причинам, этого лучше не делать, и в этой статье данный метод не рассматривается. Рабочий проверенный пример конфигурации для Squid можно взять здесь (применительно к ПО Kaspersky Web Traffic Security): “Приложение 2. Настройка интеграции сервиса Squid с Active Directory\Настройка Basic-аутентификации”, https://support.kaspersky.com/KWTS/6.1/ru-RU/166445.htm.

9.    Файлы конфигурации для примера из статьи

В приложении (config.7z) собраны рабочие примеры файлов конфигурации для тестовой среды, описанной в статье. Можно использовать AS IS и править:

chrony.conf (/etc/chrony.conf) – файл конфигурации NTP;

resolv.conf (/etc/resolv.conf) – файл конфигурации распознавателя DNS;

krb5.conf (/etc/krb5.conf) – файл конфигурации Kerberos;

smb.conf (/etc/samba/smb.conf) – файл конфигурации Samba;

squid.conf (/etc/squid/squid.conf) - файл конфигурации Squid. Этот пример содержит минимальные настройки для работоспособной авторизации Kerberos и NTLM для неограниченного доступа через Squid для группы безопасности AD PAPA\InternetAccess;

squid_ldap.conf (/etc/squid/squid.conf) – вариант аналогичной конфигурации Squid для работоспособной авторизации LDAP;

kt_pass.cmd – пример команды, выполняемой на контроллере домена AD для генерации файла ключей keytab для CentOS прокси.

Ссылка на конфигурацию:

Config.7z

Альтернативная ссылка на конфигурацию: https://disk.yandex.ru/d/70jIXe7V3yprGQ

Автоматизированное распространение клиента Lotus Notes с настроенной конфигурацией

1. Постановка задачи
Некоторое время назад пришлось выступить консультантом по решению достаточно специфической задачи.
Предприятие разворачивало корпоративную почтовую систему на базе IBM Domino 8. Рабочих мест – до 800, впоследствии Lotus предполагалось использовать также для организации документооборота. Парк рабочих станций был разношерстным, в большом количестве присутствовали системы еще Windows 2000 Professional, были также XP/Vista/7, как 32-, так и 64-разрядные.
В процессе установки Notes очень хотелось передать клиенту некоторые настройки – как минимум, параметры подключения к серверу Domino, чтобы не тратить время на указание параметров связи на каждом клиенте вручную. Помимо этого, нужно было разворачивать дистрибутив клиентской части только с определенным набором компонент, и обеспечивать SSO - синхронизацию пароля Notes ID с паролем работающего пользователя Windows, избавив его от необходимости помнить отдельный пароль в почтовый клиент, и вводить его каждый раз.
Служба каталогов AD была, системы управления конфигурациями и распространения ПО – как обычно, нет. Требовалось организовать автоматизированное развертывание клиента имеющимися средствами.
Определенная проблема возникала также из-за разнородности клиентских ОС (особенно порадовало наличие Windows 2000; предприятие, кстати, было режимным). Вендорская матрица совместимости клиентов Notes (http://www-01.ibm.com/support/docview.wss?rs=475&uid=swg27007909) гласит, что последняя совместимая с Windows 2000 версия клиента Notes – не старше 7.0.4, а актуальной для заказчика на момент установки была 8.5.2 (встает на Windows XP SP2 и старше). Поэтому, было принято решение создать набор настроенных пакетов для установки:
· Lotus Notes 7.0.4, русская версия (для Windows 2000);
· Lotus Notes 8.5.2 x86, русская версия (для 32 и 64-разрядных Windows XP/Vista/7);
Логика выбора конкретной версии пакета для установки на каждом клиенте я решил реализовывать универсальным скриптом.
Кроме того, на клиенты Lotus Notes 8.5.2 в процессе инсталляции хотелось сразу же ставить еще и пакет обновлений FixPack 2 (http://www-01.ibm.com/support/docview.wss?uid=swg24028680; кстати, механизм SSO на клиенте 8.5.2 без установленного FP на 64-битной системе не работает).  Для клиента Notes 7.0.4 FixPack’ов не имелось.

2. Настройка пакетов
Для настройки пакетов unattended-установки клиента Notes служит утилита InstallShield Tuner. Сам процесс настройки очень подробно описан в пошаговом руководстве “The great Lotus Notes installation guide” (http://www.lotus-expert.com/en/articles/sntt-customize-client-installation.html), переписывать его не буду. Скажу только, что, для моей задачи, мне хватило следующих разделов:

· Preparations (страница A) – для подготовки дистрибутива. В качестве настроечной станции для запуска InstallShield Tuner я использовал виртуальную машину с русской версией Windows 7 Enterprise SP1 x86, никаких проблем не возникло. Замечание из предыдущего опыта – для настройки пакетов установки локализованных версий клиента Notes, всегда лучше использовать установку ОС соответствующей локали, иначе впоследствии, при развертывании пакета на целевых системах, возможны проблемы с кодировкой. В частности, я сталкивался с тем, что названия служб Notes в операционной системе в этом случае регистрировались “крякозябрами”.
JDK мне не понадобился;

· Changing the Installation Features (страница 5) – здесь необходимо выбрать компоненты для установки в составе клиента. В моем случае достаточно было стандартного набора без офисной части, клиент Sametime также не был нужен;

· Adding Notes. ini Options (страница 6) – здесь задается возможность передачи собственных параметров в файл notes. ini настройки клиента (см. ниже страницу 8, Scriptable setup). Поэтому, важный момент - необходимо установить параметр VDIR_INI, как описано в руководстве;

· Multi- user vs. single- user installation (страница 7) – в корпоративном окружении, в доменной среде используем вариант multi-user. В этом случае все настройки клиента хранятся в профиле пользователя Windows;

· Scriptable setup, страница 8. Здесь создается INI-файл с теми настройками, которые при установке отображаются в конфигурационный файл notes. ini. В частности, таким образом можно передать клиенту параметры подключения к серверу Domino, так, чтобы при первом запуске клиента никакие данные, кроме ID-файла не запрашивались. Это сильно минимизирует риск ошибок при начальной настройке.
Для автоматизации подключения к серверу почты (без IM), опций Domino. Port, Domino. Name, Domino. Server, AdditionalServices и AdditionalServices. NetworkDial минимально достаточно. Поэтому у меня получился такой файл company_notes.cfg, размещаемый в подкаталоге plugins кастомизированного пакета:

Domino.Port=TCPIP
Domino.Name=CM01/FGUP
Domino.Server=1
AdditionalServices=-1
AdditionalServices.NetworkDial=0
Нужно понимать, что для того, чтобы это заработало правильно, необходимо обеспечить корректную работу механизмов разрешения имен Notes поверх TCP/IP. Иначе может получиться так, что при первом запуске клиента документ соединения (connection document) будет создан неверно, и это потом придется исправлять на каждом клиенте вручную. О разрешении имен необходимо позаботиться заранее;

· Use the .mst (страница 13). Здесь приводится командная строка, которая применяет созданный файл преобразований (transform) к установочному пакету. Она нам понадобится при создании скрипта установки (см. ниже). То есть, мне нужен вариант 13. I. A ( Batch files).
Больше никакие разделы из данного руководства мне не понадобились. Installshield Tuner необходимо использовать для обоих пакетов (7.0.4 и 8.5.2). На выходе получаем по одному MST (transform) для каждого пакета, вся логика настройки стандартного дистрибутива содержится в них.

Для справки несколько дополнительных ссылок:
“Automating Notes installation using a silent install”, https://www-01.ibm.com/support/knowledgecenter/SSKTMJ_8.0.1/com.ibm.help.domino.admin.doc/DOC/H_AUTOMATING_INSTALLS.html;
“Setting up Notes installation using scriptable setup”, https://www-01.ibm.com/support/knowledgecenter/SSKTMJ_9.0.1/admin/inst_settingupnoteswithascriptablesetup_c.dita.

В результате сборки, у меня получилась следующая структура пакетов, размещаемая на сетевом дистрибутивном ресурсе в домене AD (под корнем \\SERVERNAME\Distr):

· Distr\Notes\7.0.4 – дистрибутив клиента Notes 7.0.4 (включая MST-файл);
· Distr\Notes\8.5.2 – дистрибутив клиента Notes 8.5.2 (включая MST-файл);
· Distr\Notes\8.5.2.FP2 – дистрибутив Notes 8.5.2 FixPack 2;
· Distr\Notes\Shortcuts\7.0.4 – ярлыки клиента Notes 7.0.4;
· Distr\Notes\Shortcuts\8.5.2\x86 – ярлыки клиента Notes 8.5.2 для 32-разрядной ОС;
· Distr\Notes\Shortcuts\8.5.2\x64 – ярлыки клиента Notes 8.5.2 для 64-разрядной ОС.

3. Универсальный VBS -скрипт установки
Скрипт можно загрузить из приложения (файл Install.7z), и при необходимости адаптировать. Хотелось бы сделать несколько замечаний:
· Разрядность ОС (логика введена для копирования ярлыков) определяется по системной переменной PROCESSOR_ARCHITECTURE, а версия ОС – по выводу встроенной команды ver командного интерпретатора cmd. exe;
· Скрипт определяет наличие клиента Notes на целевой системе по присутствию файла notes. exe в соответствующем каталоге. Если файл обнаружен, ничего не делается;
· Опытным путем установлено, что при подобной инсталляции (скриптом, запускаемым с правами системы из объекта групповой политики AD, в сочетании с пакетом клиента Notes для автоматизированной установки), операция установки проходит отлично, но, почему-то, в профилях пользователей не создаются ярлыки для программ. Поэтому я просто подготовил отдельные наборы эталонных ярлыков (файл Shortcuts.7z) для клиентов Notes 7 и 8, для x86 и x64-систем, для “Главного меню” и “Рабочего стола”, и по завершении операции установки копировал их явно командой xcopy в необходимые каталоги. Метод оказался вполне рабочим, никаких проблем не возникло;
· В процессе установки (асинхронной), хотелось оповестить работающего пользователя о выполняемой процедуре и предстоящей перезагрузке. Еще в Windows 2000 для этого существовала утилита msg. exe (выдает всплывающее сообщение на консоль), однако, здесь применен другой подход – для Windows 2000, из системы Windows XP SP3 взята утилита shutdown. exe, которая, по завершении установки, в случае, если нужна перезагрузка, выдает на пользовательский экран модальное окно о завершении работы системы, и инициирует перезапуск через 2 минуты. Перезагрузка же необходима для того, чтобы заработала служба единого входа в Lotus Notes клиент (SSO).
В Windows XP и позже утилита shutdown. exe есть штатно.
Соответствующие команды в скрипте такие:

RestartCmd = "shutdown.exe -r -f -t 120 -c " & Chr(34) & "Система будет перезагружена, приготовьтесь к завершению работы!" & Chr(34)
objShell.Run RestartCmd,0,FALSE

· Операция установки 8.5.2 FixPack 2 для Windows 2000 не нужна, так как для этой ОС устанавливается более старый клиент;
· Чтобы скрипт не был “черным ящиком”, введено простое протоколирование операций установки в текстовый файл на каждой системе во временный каталог (в файл %TEMP%\runresult.tmp). Это позволяет отследить, что именно происходило, если что-то пошло не так. Выглядит лог примерно так (вариант успешной установки клиента 8.5.2):

ЛОГ СКРИПТОВОЙ УСТАНОВКИ NOTES
13.12.2012 17:52:52
Инициализация скрипта установки...
Обнаружена операционная система Windows Vista и выше
Система имеет 64-разрядную архитектуру, путь установки Notes C:\Program Files (x86)\IBM\Lotus\Notes\notes.exe
Попытка установки клиента версии 8.5.2.
13.12.2012 18:03:05
Установщик вернул код 0
Попытка установки 8.5.2 Fixpack 2.
13.12.2012 18:06:23
Установщик вернул код 0
Путь общего пользовательского профиля C:\ProgramData
Копируем ярлыки главного меню в C:\ProgramData\Microsoft\Windows\Start Menu\Programs
xcopy "\\DM1-DC01\Distr\Notes\Shortcuts\8.5.2\x64\Lotus Applications" "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Lotus Applications" /E /I /R /Y
Копирование вернуло код 0
Копируем ярлыки рабочего стола в C:\ProgramData\Desktop
xcopy "\\DM1-DC01\Distr\Notes\Shortcuts\8.5.2\x64\Lotus Notes 8.5.lnk" "C:\ProgramData\Desktop" /R /Y
Копирование вернуло код 0
Инициирована перезагрузка системы.
Скрипт завершен.
13.12.2012 18:06:28

Все имена серверов и организации в скрипте и примере конфигурации, конечно, изменены.

4. Замечания по установке клиента Notes
По завершении установки, однократный визит на каждую рабочую станцию все-таки нужен – для того, чтобы выдать пользователю его ID-файл с начальным паролем (который потом синхронизируется с паролем Windows). ID-файлы для каждого пользователя нужно предварительно подготовить, это стандартная задача администратора Domino. Но, в любом случае, предоставление Notes клиенту ID-файла – простая операция, занимающая минимум времени, а все остальное автоматизировано.
Дальнейшие настройки Notes клиента (после подключения к предварительно сконфигурированному серверу) можно выполнять уже с помощью политик Domino. В частности, можно задать список доступных баз данных на рабочей области Notes клиента.
Клиенты Lotus Notes от версии к версии, в сущности, меняются мало, поэтому, уверен, эта методика установки будет актуальной еще долгое время.

5. Групповая политика AD
Здесь реализация стандартная. Скрипт назначается как стартовый на контейнер Computer Configuration объекта групповой политики. Дополнительно, так как установка занимает достаточно длительное время, в ветви административных шаблонов (Computer Configuration\ Policies\Administrative Templates\System\Scripts) устанавливается два параметра:
· Maximum wait time for Group Policy ScriptsEnabled, 0 (значение 0 означает, что скрипт не будет прерван принудительно, и расширение Script CSE на клиентской стороне в любом случае дождется его завершения);
· Run startup scripts asynchronously  – Enabled , задает выполнение скрипта в фоновом режиме (асинхронно по отношению к процедуре входа в систему):


GPO Script Settings.jpg

Ну и традиционное замечание: групповая политика установки применяется при следующей перезагрузке целевой рабочей станции; дабы избежать падения производительности сети и сервера с дистрибутивом, крайне рекомендуется создать специальную группу безопасности в AD, и включать в нее целевые учетные записи компьютеров поэтапно, используя для созданных групповых политик фильтрацию по ACE “Apply Group Policy” (опция Security Filtering консоли GPMC) для этой группы.

Shortcuts.7z ( 4.15 КБ) Install.7z ( 2.67 КБ)