Skip to content

Document Header

Настройка OpenVpn с доменной авторизацией Samba 4 через ldap auth

Настройка OpenVpn с доменной авторизацией Samba 4 через ldap auth published on Комментариев к записи Настройка OpenVpn с доменной авторизацией Samba 4 через ldap auth нет

Настройка OpenVpn с доменной авторизацией в Samba 4 server AD DC через ldap auth.

Предполагается, что у вас установлена и настроена samba 4 server в режиме контроллера домена active directory.
Установлен openvpn с поддержкой ldap. В моей системе он шел отдельным пакетом openvpn-auth-ldap
В active directory существует обычный (без привелегий) пользователь ldapuser и группа openvpn, в которую добавлены пользователи, которые будут получать доступ через openvpn.
192.168.5.0 – физическая подсеть
192.168.7.0 – виртуальная подсеть

Создадим сертификаты при помощи скриптов easy-rsa. У меня они находятся в /etc/openvpn/easy-rsa так же они могут быть в /usr/share/doc/openvpn. Если у вас их нет, их можно взять здесь.

Создадим директорию для ключей:

# mkdir /etc/openvpn/keys

Загрузим переменные в оболочку:

# cd /etc/openvpn/easy-rsa/2.0/
# . ./vars

Запустим скрипт для создания серийного и индексного файла для новых ключей:

# ./clean-all

Создадим корневой сертификат.

# ./build-ca

Создадим сертификат для сервера.

# ./build-key-server server

Создадим ключ Диффи Хельман:

# ./build-dh

Создадим ключ для tls-аутентификации:

# openvpn --genkey –secret ta.key

Скопируем все ключи ca.crt, dh1024.pem, server.crt, server.key, ta.key из /etc/openvpn/easy-rsa/2.0/keys/ в /etc/openvpn/keys/

Создадим основной конфигурационный файл /etc/openvpn/server.conf

plugin /usr/lib64/openvpn/plugin/lib/openvpn-auth-ldap.so "/etc/openvpn/ldap.conf" #подгружаем плагин и конфигурационный файл для него.
proto udp # tcp/udp, рекомендуется udp, так как более «легкий» протокол.
dev tap # тип интерфейса tun/tap
port 5050
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/server.crt
client-cert-not-required #без клиентского сертификата, будем использовать ldap-авторизацию.
key /etc/openvpn/keys/server.key
dh /etc/openvpn/keys/dh1024.pem
server 192.168.7.0 255.255.255.0
push "route 192.168.5.0 255.255.255.0"
route 192.168.7.0 255.255.255.252
tls-server
tls-auth /etc/openvpn/keys/ta.key 0
tls-timeout 120
persist-key
persist-tun
route-gateway 192.168.7.1
push "route-gateway 192.168.7.1"
keepalive 10 120
comp-lzo
max-clients 30
client-to-client
verb 3
user openvpn
group openvpn
status /var/log/openvpn-status.log
log /var/log/openvpn.log
auth MD5
cipher BF-CBC

Создадим конфигурационный файл для ldap-авторизации /etc/openvpn/ldap.conf

<LDAP>

URL        ldap://127.0.0.1 #адрес ldap-сервера samba 4
BindDN        cn=ldapuser,cn=Users,dc=test,dc=loc #Существующий обычный (без привелегий) пользователь от которого будем производить поиск в LDAP
Password    User_123 #пароль пользователя для поиска в ldap-каталоге.
Timeout        15
TLSEnable    no
FollowReferrals yes
TLSCACertDir    /etc/ssl/certs

</LDAP>
<Authorization>

BaseDN        «cn=Users,dc=test,dc=loc»
SearchFilter    «(&(sAMAccountname=%u)(objectClass=user)(memberOf=cn=openvpn,cn=Users,dc=test,dc=loc))» #Правило фильтра, по которому будет осуществляться поиск, а при совпадении правила и авторизация. Логика фильтра такая же как в proftpd. Более подробно можно почитать здесь.
RequireGroup    false #Штатная возможность проверки пользователя в группе. Не использовал, потому что пока не придумал как запросить пользователя через MemberAttribute.
<Group>

BaseDN        «cn=Users,dc=test,dc=loc»
SearchFilter    «(|(cn=openvpn))»
MemberAttribute    member

</Group>

</Authorization>

Настройка windows-клиента
Скачаем клиента.
При установке будем использовать путь по умолчанию.

После установки скопируем с сервера ca.crt ta.key из /etc/openvpn/keys на клиента в директорию C:Program FilesOpenVPNconfigtest_loc

Создадим файл конфигурации C:Program FilesOpenVPNconfigtest_loc.ovpn

auth-user-pass
remote 192.168.5.50 #адрес нашего vpn-сервера
proto udp
dev tap
port 5050
client
resolv-retry infinite
ca test_loc/ca.crt
tls-auth test_loc/ta.key 1
auth MD5
cipher BF-CBC
ns-cert-type server
persist-key
persist-tun
comp-lzo

Запускаем сервер openvpn, подключаемся клиентом.

openvpn client connect

Настройка Proftpd для Samba 4 через auth mod_ldap.

Настройка Proftpd для Samba 4 через auth mod_ldap. published on Комментариев к записи Настройка Proftpd для Samba 4 через auth mod_ldap. нет

Настройка Proftpd для Samba 4 server в режиме domain controller через ldap.

Предполагается, что у вас установлена и настроена samba 4 server в режиме active directory domain controller.
Установлен proftpd с поддержкой ldap.

В AD созданы 3 пользователя:
1. ldap_user – обычный (без привелегий) пользователь от которого будем производить поиск в LDAP с паролем User_123
2. user1
3. user2
В AD созданы 2 группы ftp1 и ftp2.
2 группы нам понадобятся исключительно для наглядной иллюстрации работы фильтра. В реальной ситуации достаточно 1-ой.
user1 входит в обе группы (ftp1 и ftp2)
user2 только в одну из них, допустим только в ftp1
Domain name: test.loc
Hostname: pdc.test.loc
На файловой системе создана директория /share/ftp

Заглянем в /etc/proftpd.conf изменим/добавим необходимые для нашей задачи строки:

LoadModule mod_ldap.c      # подгружаем модуль LDAP

RequireValidShell no      # пока не отменил данную проверку shell, proftpd отказывался меня авторизовывать.

# Use pam to authenticate (default) and be authoritative
AuthPAMConfig            proftpd
#AuthOrder            mod_auth_pam.c* mod_auth_unix.c
AuthOrder            mod_ldap.c       # добавляем авторизацию через ldap
PersistentPasswd        off

# Use this to excude users from the chroot
#DefaultRoot            ~ !adm
DefaultRoot            /share/ftp/%u      # Помещение пользователя в chroot. Ограничение корневого уровня, выше которого пользователь не сможет подняться. В данном случае пользователь имеет возможность находиться только в пределах своей директории (homedir).

#<IfModule mod_ldap.c>      # 2-ой способ подгрузки модуля. В моей версии не заработал.
LDAPServer "pdc.test.loc"      # адрес нашего LDAP сервера.
LDAPAttr uid SAMAccountname      # LDAP атрибут
LDAPDNInfo "cn=ldap_user,cn=Users,dc=test,dc=loc"  "User_123"      #Существующий обычный (без привелегий) пользователь от которого будем производить поиск в LDAP
LDAPAuthBinds on
LDAPDoAuth on "cn=Users,dc=test,dc=loc" (&(sAMAccountname=%u)(objectClass=user)(memberOf=cn=ftp1,cn=users,dc=test,dc=loc)(memberOf=cn=ftp2,cn=users,dc=test,dc=loc))      #Наш «боевой» фильтр, в котором указано, что доступ к ftp получит только тот пользователь, который будет входить в обе группы ftp1 и ftp2. Фильтр ищет совпадение всех вышеперечисленных полей в LDAP (objectclass=значение)(memberOf=значение)(memberOf=значение). Если какого-то поля для пользователя не существует, например, потому, что он не является членом группы, то совпадения не будет, а, следовательно, в доступе будет отказано.
#LDAPDoAuth on "cn=Users,dc=test,dc=loc" (&(sAMAccountname=%u)(objectClass=top)(ObjectCategory=user)(objectclass=person))      #Еще один пример фильтра, который предоставит доступ к ftp любому существующему пользователю домена.
LDAPdoUIDLookups on "cn=Users,dc=test,dc=loc"
LDAPdoGIDLookups on "cn=Groups,dc=test,dc=loc"
LDAPDefaultUID 99     # Можно использовать любой UID, однако пока гуглил встретил описание «глюка» с upload файлов при UID 10000. Для своих целей взял nobody.
LDAPDefaultGID 99     # Можно так же использовать любой GID. Для своих целей взял nobody.
LDAPGenerateHomedir on      #Создать homedir для пользователя
LDAPForceGeneratedHomedir on      #Принудительно создать homedir для пользователя
LDAPGenerateHomedirPrefix /share/ftp      #Префикс для homedir
#</IfModule>

# TLS      #Включаем TLS.
# Explained at http://www.castaglia.org/proftpd/modules/mod_tls.html
TLSEngine            on
TLSRequired            off
TLSRSACertificateFile        /etc/pki/tls/certs/proftpd.pem
TLSRSACertificateKeyFile    /etc/pki/tls/certs/proftpd.pem
#TLSCipherSuite            ALL:!ADH:!DES
TLSOptions            NoCertRequest
TLSVerifyClient        off
#TLSRenegotiate        ctrl 3600 data 512000 required off timeout 300
TLSLog                /var/log/proftpd/tls.log
TLSProtocol SSLv23

<Directory /share/ftp*>      #Описание нашей директории
AllowOverwrite        yes
<Limit ALL>
AllowAll
</Limit>

<Limit ALL SITE_CHMOD>
AllowAll
</Limit>
</Directory>

Не знаю насколько понятно объяснил про механизм работы фильтра. Для того, чтобы снять любые вопросы запустим из консоли следующую команду:

#ldapsearch -h localhost -W -x -D "cn=ldap_user,cn=Users,dc=test,dc=loc" -b "cn=Users,dc=test,dc=loc" sAMAccountName= user1
Enter LDAP Password:
# extended LDIF
#
# LDAPv3
# base <cn=Users,dc=test,dc=loc> with scope subtree
# filter: sAMAccountName=user1
# requesting: ALL
#

# user1, Users, test.loc
dn: CN=user1,CN=Users,DC=test,DC=loc
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: user
cn: user1
givenName: user1
instanceType: 4
whenCreated: 20130410135259.0Z
displayName: user1
uSNCreated: 5271
name: user1
objectGUID:: *****************
badPwdCount: 0
codePage: 0
countryCode: 0
badPasswordTime: 0
lastLogoff: 0
lastLogon: 0
primaryGroupID: 513
objectSid:: ********************************
accountExpires: 9223372036854775807
logonCount: 0
sAMAccountName: user1
sAMAccountType: 805306368
userPrincipalName: user1@test.loc
objectCategory: CN=Person,CN=Schema,CN=Configuration,DC=test,DC=loc
userAccountControl: 66048
pwdLastSet: 130101055070000000
whenChanged: 20130410221147.0Z
uSNChanged: 5276
memberOf: CN=ftp1,CN=Users,DC=test,DC=loc
memberOf: CN=ftp2,CN=Users,DC=test,DC=loc
distinguishedName: CN=user1,CN=Users,DC=test,DC=loc

# search result
search: 2
result: 0 Success

# numResponses: 2
# numEntries: 1

Как вы видите мы могли бы использовать для фильтра и другие поля. Например, вместо (objectclass=person) мы с тем же успехом могли использовать (objectClass=organizationalPerson) ну или (objectCategory=CN=Person,CN=Schema,CN=Configuration,DC=test,DC=loc)

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

Теперь сделаем запрос из консоли для 2-ого пользователя user2:

#ldapsearch -h localhost -W -x -D "cn=ldap_user,cn=Users,dc=test,dc=loc" -b "cn=Users,dc=test,dc=loc" sAMAccountName= user2
Enter LDAP Password:
# extended LDIF
#
# LDAPv3
# base <cn=Users,dc=test,dc=loc> with scope subtree
# filter: sAMAccountName=user2
# requesting: ALL
#

# user2, Users, test.loc
dn: CN=user2,CN=Users,DC=test,DC=loc
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: user
cn: user2
givenName: user2
instanceType: 4
whenCreated: 20130509035833.0Z
displayName: user2
uSNCreated: 5297
name: user2
objectGUID:: ********************
badPwdCount: 0
codePage: 0
countryCode: 0
badPasswordTime: 0
lastLogoff: 0
lastLogon: 0
primaryGroupID: 513
objectSid:: *******************************
accountExpires: 9223372036854775807
logonCount: 0
sAMAccountName: user2
sAMAccountType: 805306368
userPrincipalName: user2@test.loc
objectCategory: CN=Person,CN=Schema,CN=Configuration,DC=test,DC=loc
pwdLastSet: 130125455140000000
userAccountControl: 66048
whenChanged: 20130509035835.0Z
uSNChanged: 5300
memberOf: CN=ftp1,CN=Users,DC=test,DC=loc
distinguishedName: CN=user2,CN=Users,DC=test,DC=loc

# search result
search: 2
result: 0 Success

# numResponses: 2
# numEntries: 1

Здесь мы видим, что пользователь входит только в одну группу, следовательно по шаблону (memberOf=CN=ftp2,CN=Users,DC=test,DC=loc) совпадения не будет, и пользователь доступ не получит. Если убрать эту запись из фильтра, то оба пользователя начнут получать доступ.

Настройка закончена. Теперь можно запускать proftpd и проверять работоспособность.

Для поиска проблем, можно запускать proftpd в режиме отладки с достаточным уровнем сообщений. Максимальный 10. Мне это помогло понять в каком месте конфигурационного файла я ошибся. Команда:

#proftpd --nodaemon --debug=10

Samba 4 server, Radius и PPTP с использованием MS-CHAP v2 c access_attr

Samba 4 server, Radius и PPTP с использованием MS-CHAP v2 c access_attr published on 1 комментарий к записи Samba 4 server, Radius и PPTP с использованием MS-CHAP v2 c access_attr

Хочу представить свою краткую версию настройки доступа к samba 4 server vpn dial in по протоколу pptp (MS-CHAP v2) через freeradius. Отличительной особенностью данной статьи является предложенный мной метод использования встроенных атрибутов ldap без использования ldap редакторов для ОС win vista/7/8/2008/2012. В этих ОС нет возможности графическими средствами установить значение allow/deny во вкладке свойств пользователя dial-in (входящий звонок).

Предполагается, что у вас установлена и настроена samba 4 желательно release 4.0.x в режиме active directory domain controller (если настройка не производилась, то здесь можно почитать как это сделать).
На том же сервере установлен и настроен pptpd, к которому уже осуществлялись успешные подключения по pptp с mschap mppe.
На том же сервере установлен freeradius server с поддержкой ldap, конфигурационные файлы которого находятся в /etc/raddb, у кого-то они могут быть в /etc/freeradius/
Конфигурационные файлы freeradius client находятся в /etc/freeradiusclient-ng/
Конфигурационные файлы не являются чистыми и имеют настройки по умолчанию. Если это не так рекомендую почитать эту статью.

Предположим, что ip нашего сервера 192.168.254.1
Domain: test.loc
В ad заведен обычный (без привелегий) пользователь ldap_user с паролем User_123

Заглянем в /etc/raddb/radiusd.conf изменим/добавим необходимые строки:

listen {
type = auth
ipaddr = 192.168.254.1
port = 0
interface = eth0
}
listen {
type = auth
ipaddr = 127.0.0.1
port = 0
interface = lo
}
listen {
type = acct
ipaddr = 192.168.254.1
port = 0
interface = eth0
}
listen {
type = acct
ipaddr = 127.0.0.1
port = 0
interface = lo

В /etc/raddb/clients.conf запоминаем, а лучше меняем на собственное:

secret = testing123

Это значение нами будет использовано позже.

В /etc/raddb/sites-enabled/ оставляем только default
Символические ссылки Inner-tunnel и control-socket я удалил.

В единственно оставшемся /etc/raddb/sites-enabled/default я раскомментировал:


auth_log (что является необязательным)

ldap

Auth-Type LDAP {
ldap
}


В /etc/raddb/modules/ldap я изменил следующее:

ldap {
server = "localhost" # имя нашего сервера
identify = "cn=ldap_user,cn=users,dc=test,dc=loc" # наш существующий пользователь при помощи которого мы будем осуществлять поиск в ldap
password = " User_123" # пароль пользователя
basedn = "dc=test,dc=loc" #наш домен
filter = "(sAMAccountName=%{%{Stripped-User-Name}:-%{User-Name}})" # фильтр для поиска

access_attr = "msNPAllowDialin" # ключевой атрибут фильтра в ldap, определяющий доступ к vpn для учетной записи (True/False). Здесь может быть указан иной атрибут по которому будет приниматься решение о предоставлении/отказе доступа. Пример смотрите в конце статьи.

chase_referrals = yes
rebind = yes

}

В /etc/raddb/modules/mschap я изменил следующее:

mschap {
use_mppe = yes
require_encryption = yes
require_strong = yes
with_ntdomain_hack = no
ntlm_auth = "/usr/local/samba/bin/ntlm_auth --request-nt-key --username=%{%{Stripped-User-Name}:-%{%{User-Name}:-None}} --challenge=%{%{mschap:Challenge}:-00} --nt-response=%{%{mschap:NT-Response}:-00}"
}

Примечание: в ранних версиях samba 4 (например Samba4 -4.0.0rc2) рекомендуется использовать ntlm_auth3 от samba3.

В наш настроенный /etc/ppp/pptpd-options добавляем:

plugin radius.so
plugin radattr.so

Теперь откроем /etc/freeradiusclient-ng/servers:

127.0.0.1    testing123 #secret, который мы задали в /etc/raddb/clients.conf

В файле /etc/radiusclient-ng/radiusclient.conf проверяем наличие пути dictionary
В моем случае:

dictionary    /usr/share/radiusclient-ng/dictionary

В файле /usr/share/radiusclient-ng/dictionary проверяем наличие строки:

$INCLUDE /usr/share/radiusclient-ng/dictionary.microsoft

Настройка закончена, после рестарта freeradius и pptpd все должно работать.

Для предоставления доступа к vpn-серверу используется вкладка dial-in (входящие звонки), которая будет корректно работать только для win xp с admin pack или win 2003.

dial-in properties

Для более свежих версий вкладка либо не будет отображаться вовсе, или выдавать ошибку. Чтобы решить данную проблему придется воспользоваться редактором ldap.

ldap editor
Одну из реализаций скачать можно здесь.
Однако есть способ при котором можно обойтись и без ldap редактора. Для этого нам нужно будет переопределить значение access_attr.

Покопавшись в атрибутах пользователя я нашел следующие неиспользуемые мной атрибуты во вкладке адрес. Если данные атрибуты вы аккуратно заполняете, то для своих целей можете использовать любые иные. Описание атрибутов вкладки «адрес» (привожу русские значения):

streetAddress = Улица
postOfficeBox = Почтовый ящик
l = город
ct = край, регион
postalCode = почтовый индекс

Итак, изменим значение атрибута access_attr. Для этого вернемся в /etc/raddb/modules/ldap и изменим строку:

access_attr = "msNPAllowDialin"
на, например, postOfficeBox
access_attr = "postOfficeBox"
добавим еще пару строк
access_attr_deny_value = ""
access_attr_used_for_allow = yes

Таким образом мы получим, что все пользователи по умолчанию (с чистой строкой) не будут иметь доступа к vpn. Однако, как только в этой строке (в свойствах пользователя во вкладке адрес) появится хоть какая-то запись, пользователь сможет подключаться к vpn.

Squid и LDAP-аутентификация из Active Directory Samba 4 server (squid ldap auth proxy)

Squid и LDAP-аутентификация из Active Directory Samba 4 server (squid ldap auth proxy) published on 7 комментариев к записи Squid и LDAP-аутентификация из Active Directory Samba 4 server (squid ldap auth proxy)

Данная статья повествует как подружить squid через единственный ldap_auth helper (fix me если знаете другой способ), который работает с группами AD. Причем в свежих версиях squid, установленных из пакетов для моего дистрибутива я уже этого хелпера не нашел. Так же я описал еще один способ авторизации squid пользователей, через radius.

В samba 3 я использовал ntlm_auth helper, который позволял прозрачно авторизоваться в домене для линейки браузеров IE, но ничего не знал про доменные группы. Был проект sams, который частично решал проблемы с группами, создавая собственные.

Для samba 4 интересно было бы использовать ldap_auth helper, и настраивать разграничение прав доступа для доменных групп, однако ни один браузер не умеет авторизовываться прозрачно. Требуется пароль на каждое открытие браузера. Сохранение паролей, если и возможно, то через костыли. Что на мой взгляд теряет всякий смысл. Поэтому не знаю насколько имеет смысл рекомендовать данное решение для промышленного применения. Тем не менее, если для кого-то ввод пароля не является проблемой, то с проверенной статьей можно познакомиться здесь.

Примеры политик для Samba 4 server Domain Controller

Примеры политик для Samba 4 server Domain Controller published on Комментариев к записи Примеры политик для Samba 4 server Domain Controller нет

Данную статью пишу исключительно для сохранения полноты последовательности действий. Это уже миллион раз описано различными источниками с разными акцентами и глубиной детализации, в том числе и на сайте microsoft. Все перечисленные политики успешно протестированы на samba 4.

На тестовом стенде я пробовал вводить в домен все сколько-нибудь современные ОС. Win xp/7/8, win2003/2008/2012 и все они успешно вошли в домен. Для серверных ОС я пользовался встроенным инструментарием (лишь win2003 x32 «тюнинговал» консолью gpmc). Для рабочих станций был использован admin pack + gpmc. При этом не важно когда был установлен инструментарий до или после введения компьютера в домен.

В примерах использую русскую ОС.

Для ввода в домен у клиентского компьютера должен быть прописан (присвоен) правильный dns.

add to domain
Ввод клиентского компьютера в домен

Ввод в домен Samba 4:

Вводим имя и пароль доменного администратора, и после перезагрузки мы в домене. Если ввод в домен закончился ошибкой, то еще раз посмотрите, правильно ли выполнили предварительные условия.
Так же со стороны рабочей станции могут быть отключены какие-то жизненно важные сервисы (об этом дальше) ;=)

Если вы настроили ntpd и используете samba 4 dns internal, то при 1-ом же входе в домен у вас автоматически должно синхронизироваться время и появится запись A в прямой зоне DNS.

Теперь переходим к настройке групповых политик.

Политики по своему назначению могут быть для пользователей и для компьютеров. Область применения следует из названия. Для компьютеров политики выполняются непосредственно при загрузке компьютера. Для пользователей — после ввода имени и пароля.

Настройка сервисов на рабочих станциях.

Мне нравится, когда на рабочих не запущено лишних сервисов, но включены все необходимые. Именно необходимые постараюсь перечислить. Реальный набор на ваш вкус и цвет. Для создания нашей 1-ой политики зайдем в консоль gpmc (вызвать ее можно например пуск->выполнить->gpmc.msc) в дереве выделим наш домен, правая кнопка мыши и create and link a GPO here

create and link a GPO Here
Создание политики

 

Назовем нашу политику services.
Выделяем политику, правая кнопка мыши, edit. Кликаем по дереву как показано на рисунке.

Services GPO edit

В правой части окна перечислены сервисы, которые мы будем настраивать. Их названия берутся с рабочей станции, поэтому некоторых из них может не быть на остальных клиентах. Следовательно, трогаем только системные. Те, что имеют статус «не определены» будут игнорироваться, т.е. сохранят статус, установленный на клиенте. Остальные принудительно примут значение «автоматически/вручную/запрещен(отключена)». Пользователь с административными правами на клиенте может менять этот статус, однако изменение это будет действовать либо до 1-ой перезагрузки, либо до применения политики по расписанию.

Мой список со статусом авто:

Dhcp клиент
Dns клиент
Plug & play
Диспетчер логических дисков
Диспетчер очереди печати
Диспетчер удаленного доступа
Диспетчер учетных записей безопасности
Журнал событий
Запуск серверных процессов DCOM
Защищенное хранилище
Инструментарий управления windows
Модуль поддержки NetBIOS через TCP/IP
Оборзеватель компьютеров
Рабочая станция
Сервер
Служба времени windows
Удаленный вызов процедур (RPC)
Удаленный реестр

Мой список со статусом вручную (некоторые являются зависимостями, без которых не будет работать список авто):

Windows installer
Диспетчер авто-подключений удаленного доступа
Локатор удаленного вызова процедур (RPC)
Поставщик поддержки безопасности NT LM
Протокол HTTP SSL
Сетевой вход в систему (при входе в домен автоматически переключается на авто)
Сетевые подключения
Служба администрирования диспетчера логических дисков
Служба обеспечения сети
Служба обнаружения SSDP
Служба протокола EAP
Служба сетевого расположения NLA
Служба управления сертификатами и ключами…
Служба шлюза уровня приложений
Службы терминалов
Смарт-карты
Телефония

После того, как мы выбрали статусы для наших служб, установили для них права, переходим обратно в окно gpmc, чтобы выбрать кому будет применяться политика. В правом окне выбираем закладку delegation, в нижнем углу нажимаем кнопку advanced. По умолчанию политика применяется к authenticated users (прошедшие проверку). Снимаю галку с «применение групповой политики» и добавляю группу domain computers и устанавливаю галку на «применение групповой политики». Теперь политика будет применяться не для authenticated users, а для domain computers.

Примечание:  в свое время столкнулся с рекомендацией от Microsoft не отключать право чтения любой политики для authenticated users. Это право позволяет уменьшить задержки при обработке политик на клиентах.

GPO permission

Политика применяется к тому объекту, который имеет статус read (from Security Filtering). В нашем случае это группа domain computers.

change GPO permissions
Область применения политики

 

 

Политика по подключению общей папки в виде сетевого диска.

Для хранения скриптов мы будем использовать папку /scripts на нашем samba 4 dc server, папка /share будет монтироваться в виде диска на клиентах.

# mkdir /scripts /share

Чтобы открыть общий доступ к папкам добавим в /usr/local/samba/etc/smb.conf (ваш путь может отличаться) следующие строки:


[scripts]
path = /scripts
comment = scripts
read only = No
[share]
path = /share
comment = share
read only = No


Создадим скрипт /script/map_drive.cmd следующего содержания:

NET USE L: /DELETE
NET USE L: pdcshare

Где pdc – это наш samba 4 dc server.

Создаем политику «map drive» аналогично предыдущему примеру.
Добавляем путь к скрипту, как показано на рисунке.

map drive
Добавление сценария

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

Перенаправление папок пользователей «мои документы» и «рабочий стол».

Для централизованного хранения на сервере «моих документов» и «рабочих столов» пользователей создадим на сервере samba 4 папку users в папке share.

#mkdir /share/user

При создании пользователей будем использовать домашнюю папку в виде диска z:

map drive
Создание домашней папки пользователя

 

Создадим новую политику или добавим в уже существующую, распространяющуюся на пользователей правило для «моих документов». Здесь есть несколько вариантов. Сделаем, например, так:

forward "my documents"
Политика перенаправления «мои документы»

 

Аналогично для «рабочих столов».

Автоустановка/автообновление программ через скрипт.

В этом примере мы автоматически установим/обновим acroread 11.x на все windows xp sp3 x32. На другие ОС и windows xp с более ранним sp acroread устанавливаться не будет.

Создадим папку /scripts/acroread

#mkdir /scripts/acroread

Скачаем в нее acroread 11.x

Распакуем архив:

#7z x AdbeRdr11000_ru_RU.exe

Создадим скрипт acroread.cmd

Reg query "HKLMSOFTWAREMicrosoftWindows NTCurrentVersion" /v ProductName|Find "Microsoft Windows XP"
if %ERRORLEVEL% == 0 (
ECHO This is Windows XP
goto XP
)
ECHO This is not Windows XP
goto end

:XP
Reg query «HKLMSOFTWAREMicrosoftWindows NTCurrentVersion» /v CSDversion|Find «Service Pack 3»
if %ERRORLEVEL% == 0 (
ECHO Service Pack 3 Already Installed
goto Acroread_11
)
ECHO This OS is not have SP3
goto end
:Acroread_11
Reg query «HKEY_LOCAL_MACHINESOFTWAREAdobeAcrobat Reader» /s | Find «11.0»
if %ERRORLEVEL% == 0 (
ECHO Acrobat Reader 11 Already Installed
goto end
)
ECHO Installing Acrobat Reader 11
«pdcscriptsacroreadsetup.exe» /sAll

:end

Традиционным образом добавим его в сценарий запуска для компьютеров

auto install/update acrobat reader
Сценарий автоустановки программ

 

Здесь полезная тема с заготовками скриптов и полноценными скриптами для политик

А это скрипт центр от Microsoft