Дом роуминговых профилей на сервере доверенного царства?
Смысл
Я безуспешно пытаюсь разместить перемещаемые профили для домена Active Directory на доверенном файловом сервере Ubuntu 12.04LTS ZFS-on-Linux. Конечная цель - создать совместимый файловый сервер для размещения домашних каталогов autofs nfs для Linux и перемещаемых профилей для Windows. С политической точки зрения мне сложно делать это исключительно с помощью серверов Windows или присоединения серверов Linux к Active Directory. Поэтому я ищу технические решения или доказательства того, что такие технические решения менее надежны, чем борьба с политическими битвами.
Я подозреваю, что моя текущая трудность связана с Windows-клиентом и взаимодействием с samba, а не с zfs, но я немного не в себе, поэтому я не исключаю этого полностью. Не могли бы вы, дорогой читатель, указать, почему то, что я делаю, неправильно, и объяснить правильную процедуру?
Что я думаю я знаю
- Пользователь может успешно войти на клиентский компьютер из области Kerberos. Однако пользователь вошел в систему с временным профилем.
- Папка профиля создается (предположительно в процессе входа в систему) на файловом сервере, но другие файлы не создаются в этой вновь созданной папке профиля.
- Папка профиля создается автоматически с соответствующим владельцем / группой.
- Учитывая это, кажется маловероятным, что профиль загружается до того, как будет создан экземпляр кэша учетных данных или предоставлен krbtgt.
- При входе во временный профиль пользователь может создавать файлы на файловом сервере, не предоставляя файловому серверу какие-либо (дополнительные) учетные данные. То есть подсказки нет. Эти файлы также создаются с соответствующим владельцем / группой.
Дополнительная информация
Это все настройки, о которых я думаю, вы захотите узнать, но я могу ошибаться.
Я прошу прощения за то, что не нашел способ сделать его разборным.
Краткий обзор систем и машин, участвующих
AD domain: ad.example.com (Functional Level 2012)
domain controllers: dc1.ad.example.com, dc2.ad.example.com (OS: Windows Server 2012 Std)
mit-krb5 realm: EXAMPLE.COM
mit-krb5 kdcs: kdc1.example.com, kdc2.example.com (mit-krb5: 1.9.4)
smb/cifs server: zfs.example.com (OS: Ubuntu 12.04LTS)
client: client.ad.example.com (OS: Windows 8 Enterprise)
Бревно самбы
root@zfs:~# cat /var/log/samba/client.log
[2013/06/14 14:37:26.194496, 0] param/loadparm.c:9114(process_usershare_file)
process_usershare_file: stat of /var/lib/samba/usershares/tank_test failed. Permission denied
[2013/06/14 14:37:26.460344, 0] param/loadparm.c:9114(process_usershare_file)
process_usershare_file: stat of /var/lib/samba/usershares/tank_test failed. Permission denied
[2013/06/14 14:44:04.352344, 0] param/loadparm.c:9114(process_usershare_file)
process_usershare_file: stat of /var/lib/samba/usershares/tank_test failed. Permission denied
Не уверен, на что он жалуется...
root@zfs:~# ls -l /var/lib/samba/usershares/tank_test
-rw-r--r-- 1 root root 110 Jun 14 12:57 /var/lib/samba/usershares/tank_test
Общий доступ к файловому серверу перед входом в систему
root@zfs:~# ls -la /tank/test/
total 38
drwxrwxrwt 2 root root 2 Jun 14 09:12 .
drwxr-xr-x 5 root root 5 Jun 13 15:52 ..
Общий доступ к файловому серверу.
root@zfs:~# ls -la /tank/test/
total 57
drwxrwxrwt 3 root root 3 Jun 14 09:16 .
drwxr-xr-x 5 root root 5 Jun 13 15:52 ..
drwxr-xr-x 2 user user 2 Jun 14 09:16 user.V2
root@zfs:~# find /tank/test
/tank/test
/tank/test/user.V2/
Кэш учетных данных пользователя при входе в систему
Current LogonId is 0:0x6c79e3
Cached Tickets: (7)
#0> Client: user @ EXAMPLE.COM
Server: krbtgt/EXAMPLE.COM @ EXAMPLE.COM
KerbTicket Encryption Type: AES-256-CTS-HMAC-SHA1-96
Ticket Flags 0x60a90000 -> forwardable forwarded renewable pre_authent name_canonicalize 0x80000
Start Time: 6/14/2013 14:44:24 (local)
End Time: 6/15/2013 2:44:24 (local)
Renew Time: 6/21/2013 14:44:24 (local)
Session Key Type: AES-256-CTS-HMAC-SHA1-96
Cache Flags: 0x2 -> DELEGATION
Kdc Called: kdc2.example.com
#1> Client: user @ EXAMPLE.COM
Server: krbtgt/AD.EXAMPLE.COM @ EXAMPLE.COM
KerbTicket Encryption Type: AES-256-CTS-HMAC-SHA1-96
Ticket Flags 0x40a90000 -> forwardable renewable pre_authent name_canonicalize 0x80000
Start Time: 6/14/2013 14:44:24 (local)
End Time: 6/15/2013 2:44:24 (local)
Renew Time: 6/14/2013 14:44:24 (local)
Session Key Type: AES-256-CTS-HMAC-SHA1-96
Cache Flags: 0
Kdc Called: kdc2.example.com
#2> Client: user @ EXAMPLE.COM
Server: krbtgt/EXAMPLE.COM @ EXAMPLE.COM
KerbTicket Encryption Type: AES-256-CTS-HMAC-SHA1-96
Ticket Flags 0x40e10000 -> forwardable renewable initial pre_authent name_canonicalize
Start Time: 6/14/2013 14:44:24 (local)
End Time: 6/15/2013 2:44:24 (local)
Renew Time: 6/21/2013 14:44:24 (local)
Session Key Type: AES-256-CTS-HMAC-SHA1-96
Cache Flags: 0x1 -> PRIMARY
Kdc Called: kdc2.example.com
#3> Client: user @ EXAMPLE.COM
Server: ldap/dc1.ad.example.com @ AD.EXAMPLE.COM
KerbTicket Encryption Type: AES-256-CTS-HMAC-SHA1-96
Ticket Flags 0x40a50000 -> forwardable renewable pre_authent ok_as_delegate name_canonicalize
Start Time: 6/14/2013 14:44:31 (local)
End Time: 6/15/2013 0:44:31 (local)
Renew Time: 6/14/2013 14:44:24 (local)
Session Key Type: AES-256-CTS-HMAC-SHA1-96
Cache Flags: 0
Kdc Called: dc1.ad.example.com
#4> Client: user @ EXAMPLE.COM
Server: LDAP/dc1.ad.example.com/ad.example.com @ AD.EXAMPLE.COM
KerbTicket Encryption Type: AES-256-CTS-HMAC-SHA1-96
Ticket Flags 0x40a50000 -> forwardable renewable pre_authent ok_as_delegate name_canonicalize
Start Time: 6/14/2013 14:44:25 (local)
End Time: 6/15/2013 0:44:25 (local)
Renew Time: 6/14/2013 14:44:24 (local)
Session Key Type: AES-256-CTS-HMAC-SHA1-96
Cache Flags: 0
Kdc Called: dc1.ad.example.com
#5> Client: user @ EXAMPLE.COM
Server: cifs/dc1.ad.example.com @ AD.EXAMPLE.COM
KerbTicket Encryption Type: AES-256-CTS-HMAC-SHA1-96
Ticket Flags 0x40a50000 -> forwardable renewable pre_authent ok_as_delegate name_canonicalize
Start Time: 6/14/2013 14:44:24 (local)
End Time: 6/15/2013 0:44:24 (local)
Renew Time: 6/14/2013 14:44:24 (local)
Session Key Type: AES-256-CTS-HMAC-SHA1-96
Cache Flags: 0
Kdc Called: dc1.ad.example.com
#6> Client: user @ EXAMPLE.COM
Server: cifs/zfs.example.com @ EXAMPLE.COM
KerbTicket Encryption Type: AES-256-CTS-HMAC-SHA1-96
Ticket Flags 0x40a90000 -> forwardable renewable pre_authent name_canonicalize 0x80000
Start Time: 6/14/2013 14:44:24 (local)
End Time: 6/15/2013 2:44:24 (local)
Renew Time: 6/14/2013 14:44:24 (local)
Session Key Type: AES-256-CTS-HMAC-SHA1-96
Cache Flags: 0
Kdc Called: kdc2.example.com
REALM Trust
ldapsearch -h ad.example.com -LLL cn=EXAMPLE.COM objectClass trustPartner instancetype trustDirection trustAttributes
SASL/GSSAPI authentication started
SASL username: user@EXAMPLE.COM
SASL SSF: 56
SASL data security layer installed.
dn: CN=EXAMPLE.COM,CN=System,DC=ad,DC=example,DC=com
objectClass: top
objectClass: leaf
objectClass: trustedDomain
instanceType: 4
trustDirection: 3
trustPartner: EXAMPLE.COM
trustAttributes: 1
Пользователь Active Directory
ldapsearch -h ad.example.com -LLL samaccountname=user profilePath altSecurityIdentities
SASL/GSSAPI authentication started
SASL username: user@EXAMPLE.COM
SASL SSF: 56
SASL data security layer installed.
dn: CN=Test User,OU=managed users,DC=ad,DC=example,DC=com
profilePath: \\zfs.example.com\tank_test\user
altSecurityIdentities: Kerberos:user@EXAMPLE.COM
Основная информация ZFS
root@zfs:~# zfs get mountpoint,casesensitivity,sharesmb,available tank/test
NAME PROPERTY VALUE SOURCE
tank/test mountpoint /tank/test default
tank/test casesensitivity mixed -
tank/test sharesmb on local
tank/test available 26.1T -
ZFS создал общий ресурс smb root@zfs:~# cat /var/lib/samba/usershares/tank_test #VERSION 2 path=/tank/test comment= Комментарий: /tank/test usershare_acl=S-1-1-0:F guest_ok=n sharename=tank_test
Конфигурация Samba
root@zfs:~# grep -v -e ^$ -e ^\; -e ^# /etc/samba/smb.conf
[global]
workgroup = EXAMPLE.COM
server string = %h server (Samba, Ubuntu)
dns proxy = no
log file = /var/log/samba/%M.log
max log size = 1000
syslog = 3
panic action = /usr/share/samba/panic-action %d
security = ADS
realm = EXAMPLE.COM
kerberos method = system keytab
map to guest = bad user
Таблица ключей файлового сервера
root@zfs:~# ktutil
ktutil: rkt /etc/krb5.keytab
ktutil: list -e
slot KVNO Principal
---- ---- ---------------------------------------------------------------------
1 2 host/zfs.example.com@EXAMPLE.COM (aes256-cts-hmac-sha1-96)
2 2 host/zfs.example.com@EXAMPLE.COM (aes128-cts-hmac-sha1-96)
3 2 host/zfs.example.com@EXAMPLE.COM (arcfour-hmac)
4 2 nfs/zfs.example.com@EXAMPLE.COM (aes256-cts-hmac-sha1-96)
5 2 nfs/zfs.example.com@EXAMPLE.COM (aes128-cts-hmac-sha1-96)
6 2 nfs/zfs.example.com@EXAMPLE.COM (arcfour-hmac)
7 2 cifs/zfs.example.com@EXAMPLE.COM (aes256-cts-hmac-sha1-96)
8 2 cifs/zfs.example.com@EXAMPLE.COM (aes128-cts-hmac-sha1-96)
9 2 cifs/zfs.example.com@EXAMPLE.COM (arcfour-hmac)
Отображение личности сервера (через sssd)
root@zfs:~# cat /etc/sssd/sssd.conf
# SSSD configuration generated using /usr/lib/sssd/generate-config
[sssd]
config_file_version = 2
reconnection_retries = 3
sbus_timeout = 30
services = nss, pam
domains = example.com
[nss]
filter_groups = root
filter_users = root
reconnection_retries = 3
[pam]
reconnection_retries = 3
[domain/example.com]
enumerate = false
cache_credentials = true
id_provider = ldap
auth_provider = krb5
chpass_provider = krb5
ldap_uri = ldap://ldap.example.com
ldap_search_base = dc=example,dc=com
ldap_tls_reqcert = demand
ldap_tls_cacert = /etc/ssl/certs/ca-certificates.crt
krb5_kdcip = kerberos.example.com
krb5_realm = EXAMPLE.COM
krb5_changepw_principle = kadmin/changepw
krb5_auth_timeout = 15
Серверные (Relavent) пакеты
root@zfs:~# uname -a
Linux zfs 3.5.0-23-generic #35~precise1-Ubuntu SMP Fri Jan 25 17:13:26 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
root@zfs:~# dpkg --get-selections | grep -e samba -e zfs -e krb -e sssd
krb5-config install
krb5-locales install
krb5-user install
libgssapi-krb5-2 install
libkrb5-26-heimdal install
libkrb5-3 install
libkrb5support0 install
libpam-krb5 install
libzfs1 install
samba install
samba-common install
samba-common-bin install
samba-tools install
sssd install
ubuntu-zfs install
zfs-dkms install
zfsutils install
1 ответ
По умолчанию клиенты Windows должны проверять папки перемещаемого профиля ACLs
с помощью использования SIDs
при загрузке роуминговых профилей. Даже имея Active Directory
пользователь с таким же uid
, uidNumber
, gidNumber
и собственно altSecurityIdentites
атрибут недостаточен.
Пока требование SID нельзя отключить. ACL
проверить себя можно. Папка должна по-прежнему читаться пользователем или группой администраторов.
Под Server 2012 эта политика называетсяDo not check for user ownership of Roaming Profile Folders
и находится вComputuer Configuration \ Administrative Templates \ System \ User Profiles
Я должен был посмотреть журналы клиента Windows ранее; Я не оправдываю это.
Журнал Windows: Windows could not load your roaming profile and is attempting to log you on with your local profile. Changes to the profile will not be copied to the server when you log off. Windows could not load your profile because a server copy of the profile folder already exists that does not have the correct security. Either the current user or the Administrators group must be the owner of the folder.