Эта записка как дополнение. В ней собраны некоторые ошибки и их решения, которые возникают при работе Samba4. Также рассказывается про дополнительные настройки, например как сделать резервную копию Samba4 и т.д. Инфа может быть не точной.
Ошибки DNS сервера Samba
Ошибка №1 - "in-addr.arpa type=PTR error=insufficient access rights"
samba_dlz: starting transaction on zone 50.168.10.in-addr.arpasamba_dlz: disallowing update of signer=CLIENT7\$\@COMPANY.RU name=37.50.168.10.in-addr.arpa type=PTR error=insufficient access rightsclient 10.168.50.37#53772/key CLIENT7\$\@COMPANY.RU: updating zone '50.168.10.in-addr.arpa/NONE': update failed: rejected by secure update (REFUSED)samba_dlz: cancelling transaction on zone 50.168.10.in-addr.arpa
Это возникает тогда, когда вы задаете статический IP адрес сетевой карте клиента. При этом прямая зона обновляется, а обратная нет. Есть два решения, первое рабочее и второе, которое можно сделать в целях профилактики.
ПЕРВОЕ РЕШЕНИЕ
Надо удалить обратную зону и заново ее создать:
# samba-tool dns zonedelete companypdc 50.168.10.in-addr.arpa
# samba-tool dns zonecreate companypdc 50.168.10.in-addr.arpa
Так как мы удалили всю обратную зону, не помешает туда добавить запись о нашем доменном контроллере:
/usr/local/samba/bin/samba-tool dns add companypdc 50.168.10.in-addr.arpa 2 PTR companypdc.company.ru
Также не забывайте про время, оно должно быть одинаковое на сервере и на клиенте
Вот теперь можно заново зарегистрировать DNS записи, для этого на клиенте введите команды:
# net time /domain /set /y
# ipconfig /registerdns
ВТОРОЕ РЕШЕНИЕ
Удаление записи о компьютере в каталоге AD.
Находим наш ПК в каталоге:
# ldbsearch -H /usr/local/samba/private/sam.ldb --cross-ncs |grep client7
dNSHostName: client7.company.ru
servicePrincipalName: HOST/client7.company.ru
Удаляем запись клиента из каталога:
# ldbdel -H /usr/local/samba/private/sam.ldb "dc=client7,DC=company.ru,CN=MicrosoftDNS,DC=DomainDNSZones,DC=company,DC=ru"
Deleted 1 record
Удаляем A и PTR:
# samba-tool dns delete companypdc 50.168.10.in-addr.arpa 35 PTR client7
# samba-tool dns delete companypdc company.ru client7 A 10.168.50.35
Ошибка №2 - update 'company.ru/IN' denied
Эта ошибка связана с точным временем. В логах появляется что-то вроде этого:
samba_dlz: starting transaction on zone company.ru
client 10.168.50.37#57261: update 'company.ru/IN' denied
samba_dlz: cancelling transaction on zone company.ru
Обычно хватает задать правильное время на клиенте, и провести повторную регистрацию на DNS сервере Samba:
c:\> net time /domain /set /y
c:\> ipconfig /registerdns
Переустановка Samba4
Удалите файл /usr/local/samba/etc/smb.conf и повторите команду создания домена provision...
Если Samba4 первоначально не установилась из за нехватки зависимостей, установите зависимости и повторите команды ./configure, make, make install. И не забудьте выполнить команду make clean.
Отключение IPv6
Открываем файл /etc/sysctl.conf
и добавляем туда две строчки:
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
Бекап Samba4
# tar -czf samba_db.tgz /usr/local/samba/private /usr/local/samba/var/lock /usr/local/samba/var/locks
Проверка версии Samba4
4.3.0
Подключение сетевых дисков
# net use в логон-скриптах OU
Перемещаемые профили
Настраиваем перемещаемые профили (Roaming Profiles), машина Windows 7
1. Указываем Samba, чтобы профили перемещаемые и место хранение в каталоге /usr/local/samba/var/profiles, включаем следующие настройки:
[profiles]
path = /usr/local/samba/var/profiles
read only = no
2. Создаем каталог для хранения профилей пользователей:
# mkdir /usr/local/samba/var/profiles
3. В настройках Active Direcory, выделяем всех пользователей и заходим в свойства
4. Во вкладке Профили, меняем "Путь к профилю" например на следующий:
\\sambaserver.samdom.example.com\profiles\%USERNAME%
5. Нажимаем OK, проверяем, выходим и заходим на компьютер, теперь профили перемещаемые.
Если у вас проблема с DDNS, не происходит обновления A записи с ошибкой:
client 127.0.0.1#63106/key rndc-key: updating zone 'company.ru/NONE': update failed: rejected by secure update (REFUSED)samba_dlz: cancelling transaction on zone company.rusamba_dlz: starting transaction on zone company.ruclient 10.168.50.103#55228: update 'company.ru/IN' denied
Значить у вас на клиенте расходится время с доменным контроллером. Протокол аутентификации Kerberos, очень чувствителен к времени. Поэтому можно сделать следующее на клиенте Windows:
Обновить время взяв его с вашего доменного контроллера:
c:\> net time /domain /set /y
Но также не помешает проверить часовой пояс.
И заново произвести процедуру регистрации DNS:
c:\> ipconfig /registerdns
Как сделать общею папку на сервере Samba4
Создаем общею папку:
# mkdir -p /data/public
Открываем главный конфигурационный файл и добавляем описание общей папки /data/public
# vi /usr/local/samba/etc/smb.conf
# Global parameters[global]workgroup = COMPANYrealm = company.runetbios name = COMPANYPDCserver role = active directory domain controllerserver services = rpc, nbt, wrepl, ldap, cldap, kdc, drepl, winbindd, ntp_signd, kcc, dnsupdate, smbdcerpc endpoint servers = epmapper, wkssvc, rpcecho, samr, netlogon, lsarpc, spoolss, drsuapi, dssetup, unixinfo, browser, eventlog6, backupkey, dnsserver, winreg, srvsvcidmap_ldb:use rfc2307 = yeskerberos method = system keytabclient ldap sasl wrapping = signallow dns updates = nonsecure and secure# nsupdate command = /usr/bin/nsupdate -g -dnsupdate command = /usr/local/samba/sbin/samba_dnsupdate -d 3[netlogon]path = /usr/local/samba/var/locks/sysvol/company.ru/scriptsread only = Nowrite ok = Yes[sysvol]path = /usr/local/samba/var/locks/sysvolread only = Nowrite ok = Yes[shares]comment = Global share for all userspath = /data/publicread only = No