Active Directory: Установка на Raspberry Pi, Odroid и подобное.

Создаём или редактируем /etc/dhcpcd.conf

# explicitely use eth0 and set static IPs, as well as domain specifics
interface eth0
static routers=192.168.1.1
static domain_name_servers=127.0.0.1
static domain_name_servers=192.168.1.1
static ip_address=192.168.1.2
static domain_search=my.domain.local
Устанавливаем необходимые пакеты

apt-get install samba smbclient winbind krb5-user krb5-config krb5-locales winbind libpam-winbind libnss-winbind samba-dsdb-modules samba-vfs-modules bind9 dnsutils
Останавливаем и отключаем сервисы, иначе будут ошибки

systemctl stop samba-ad-dc.service smbd nmbd winbind
systemctl disable samba-ad-dc.service smbd nmbd winbind

Очищаем место под конфиги, которые сгенерируются сами

mv /etc/samba/smb.conf /etc/samba/smb.conf.backup
rm /etc/krb5.conf
Удалим все файлы *.tdb и *.ldb из ниже найденных директорий

# smbd -b | egrep "LOCKDIR|STATEDIR|CACHEDIR|PRIVATE_DIR"
  LOCKDIR: /usr/local/samba/var/lock/
  STATEDIR: /usr/local/samba/var/locks/
  CACHEDIR: /usr/local/samba/var/cache/
  PRIVATE_DIR: /usr/local/samba/private/
Запускаем создание домена

samba-tool domain provision --dns-backend "BIND9_DLZ" --use-rfc2307 --interactive
Создаём ссылку в нужном месте

ln -sf /var/lib/samba/private/krb5.conf /etc/krb5.conf
Подключим и запустим службу

systemctl unmask samba-ad-dc
systemctl status samba-ad-dc
systemctl enable samba-ad-dc
systemctl status samba-ad-dc
systemctl start samba-ad-dc
Редактируем /etc/resolv.conf

search my.domain.local
nameserver 192.168.1.2
Что бы не было проблем после перезагрузки запретим изменения

chattr +i /etc/resolv.conf
Редактируем /etc/krb5.conf

[libdefaults]
        default_realm = DOMAIN.LOCAL
        dns_lookup_realm = false
        dns_lookup_kdc = true
[realms]
    DOMAIN.LOCAL = {
        kdc = 192.168.1.2
    }
Редактируем /etc/samba/smb.conf

[global]
        dns forwarder = 192.168.1.2
        netbios name = DC
        realm = DOMAIN.LOCAL
        server role = active directory domain controller
        server services = s3fs, rpc, nbt, wrepl, ldap, cldap, kdc, drepl, winbindd, ntp_signd, kcc, dnsupdate
        workgroup = DOMAIN
        idmap_ldb:use rfc2307 = yes
        kerberos method = system keytab
        client ldap sasl wrapping = sign
        allow dns updates = nonsecure and secure
        nsupdate command =  /usr/bin/nsupdate -g
        local master = yes
        os level = 255
        preferred master = yes
        log level = 3
        username map = /etc/samba/username.map
[netlogon]
        path = /var/lib/samba/sysvol/domain.local/scripts
        read only = No
[sysvol]
        path = /var/lib/samba/sysvol
        read only = No
Создаём или редактируем /etc/samba/username.map

root=DOMAIN\Administrator
Редактируем /etc/bind/named.conf

// include Active Directory support
include "/var/lib/samba/bind-dns/named.conf";
include "/etc/bind/rndc.key";
Перезагружаем сервер и проверяем что можем залогиниться под админом, смотрим зону

kinit Administrator@DOMAIN.LOCAL
dig -t axfr domain.local
Полезные ссылки:
https://www.kerstner.at/2018/11/setting-up-an-active-directory-domain-controller-with-samba-4-on-a-raspberry-pi-3/
https://wiki.samba.org/index.php/Setting_up_Samba_as_an_Active_Directory_Domain_Controller#Installing_Samba
Поделиться:

2 комментария

Nil
Привет! Если не секрет, для каких целей Samba на Raspberry ставите? Много ли пользователей? Хватает ли производительности для своих задач?
Заранее спасибо!
SlavaMakarov
Вечер добрый.

Используем для маленьких предприятий которые не могут или не хотят тратить большие деньги на полноценный сервер. В основном там около 20-30 сотрудников и необходимость разграничивать права в общих папках по отделам, группам или отдельным пользователям.
Производительности на такое количество человек достаточно, очень редко бывает конечно система подвисает, спасает перезагрузка по питанию.