ページ

2016年3月11日

Raspberry Pi 2とSamba4で自宅用Active Directory Domain Controller(AD DC)をセットアップする

samba4.org

 人数がそこそこ居るオフィスですと、ちょっとだけ処理能力のあるマシンを使うのですが・・・自宅でADを使うだったらRaspberry Pi2で十分処理的には間に合いそうなのでちょいちょいと設定してみました。

CentOSではたくさん事例があるようですけど、Raspberry Pi向けですとちょっと古いような気がしましたので・・・メモしておきます。

事前準備

IPアドレスを固定します、ホスト名は変えません。

IPアドレスの固定

/etc/network/interfacesを書き換えます。

こんな感じ:

auto lo
iface lo inet lookback

auto eth0
iface eth0 inet static
address 192.168.0.10
netmask 255.255.255.0
gateway 192.168.0.1
dns-nameservers 127.0.0.1
dns-search yanagida.org

...

samba4コンパイルとインストール

めんどくさいのでルートで作業してます。。。

# apt-get update; apt-get upgrade
# apt-get -y install python-dev libacl1-dev libblkid-dev libgnutls28-dev build-essential libacl1-dev libattr1-dev libblkid-dev libgnutls-dev libreadline-dev  python-dev python-dnspython gdb pkg-config libpopt-dev libldap2-dev dnsutils libbsd-dev attr krb5-user  docbook-xsl

ソースコードのダウンロードと展開

# wget https://ftp.samba.org/pub/samba/samba-4.3.6.tar.gz
# tar xvfz samba-4.3.6.tar.gz

コンフィグとコンパイル

# cd samba-4.3.6
# ./configure && make && make install

これで/usr/local/sambaにインストールされます。

samba4の設定

ドメインを設定します。

ホスト名:rpi2
ドメイン名:YANAGIDA
レルム:YANAGIDA.ORG

# /usr/local/samba/bin/samba-tool domain provision --use-rfc2307 --interactive --function-level=2008_R2
Realm: YANAGIDA.ORG
 Domain [YANAGIDA]: 
 Server Role (dc, member, standalone) [dc]: 
 DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]: 
 DNS forwarder IP address (write 'none' to disable forwarding) [192.168.251.1]: 
Administrator password: 
Retype password: 
Looking up IPv4 addresses
More than one IPv4 address found. Using 192.168.251.10
Looking up IPv6 addresses
No IPv6 address will be assigned
Setting up share.ldb
Setting up secrets.ldb
Setting up the registry
Setting up the privileges database
Setting up idmap db
Setting up SAM db
Setting up sam.ldb partitions and settings
Setting up sam.ldb rootDSE
Pre-loading the Samba 4 and AD schema
Adding DomainDN: DC=yanagida,DC=org
Adding configuration container
Setting up sam.ldb schema
Setting up sam.ldb configuration data
Setting up display specifiers
Modifying display specifiers
Adding users container
Modifying users container
Adding computers container
Modifying computers container
Setting up sam.ldb data
Setting up well known security principals
Setting up sam.ldb users and groups
Setting up self join
Adding DNS accounts
Creating CN=MicrosoftDNS,CN=System,DC=yanagida,DC=org
Creating DomainDnsZones and ForestDnsZones partitions
Populating DomainDnsZones and ForestDnsZones partitions
Setting up sam.ldb rootDSE marking as synchronized
Fixing provision GUIDs
A Kerberos configuration suitable for Samba 4 has been generated at /usr/local/samba/private/krb5.conf
Setting up fake yp server settings
Once the above files are installed, your Samba4 server will be ready to use
Server Role:           active directory domain controller
Hostname:              rpi2
NetBIOS Domain:        YANAGIDA
DNS Domain:            yanagida.org
DOMAIN SID:            S-1-5-21-1783573014-61249443-2042951556

samba4起動スクリプト

samba.orgのwikiからそのままもらってきます。

# wget "http://anonscm.debian.org/gitweb/?p=pkg-samba/samba.git;a=blob_plain;f=debian/samba.samba-ad-dc.init;h=3132d2e367675f822342a5b7bc2e50c046aa3b8f;hb=HEAD" -O /etc/init.d/samba-ad-dc
# sed -i 's|/usr/sbin|/usr/local/samba/sbin|g' /etc/init.d/samba-ad-dc
# sed -i 's|/etc/samba|/usr/local/samba/etc|g' /etc/init.d/samba-ad-dc
# sed -i 's|/var/run/samba|/usr/local/samba/var/run|g' /etc/init.d/samba-ad-dc
# sed -i 's|samba-tool|/usr/local/samba/bin/samba-tool|g' /etc/init.d/samba-ad-dc
# chmod 755 /etc/init.d/samba-ad-dc
# update-rc.d samba-ad-dc defaults

sambaを起動して簡単チェック

# /etc/init.d/samba-ad-dc start
# /usr/local/samba/bin/samba-tool dns zonelist 127.0.0.1 -U Administrator
# host -t SRV _ldap._tcp.YANAGIDA.ORG localhost
Using domain server:
Name: localhost
Address: 127.0.0.1#53
Aliases: 

_ldap._tcp.YANAGIDA.ORG has SRV record 0 100 389 rpi2.yanagida.org.
# host -t SRV _kerberos._udp.YANAGIDA.OGR localhost
Using domain server:
Name: localhost
Address: 127.0.0.1#53
Aliases: 

_kerberos._udp.YANAGIDA.ORG has SRV record 0 100 88 rpi2.yanagida.org.
# host -t A rpi2.yanagida.org localhost
Using domain server:
Name: localhost
Address: 127.0.0.1#53
Aliases: 

rpi2.yanagida.org has address 192.168.251.10

ゾーンテスト

# /usr/local/samba/bin/samba-tool dns zonelist localhost -U administrator
Password for [YANAGIDA\administrator]:
  2 zone(s) found

  pszZoneName                 : yanagida.org
  Flags                       : DNS_RPC_ZONE_DSINTEGRATED DNS_RPC_ZONE_UPDATE_SECURE 
  ZoneType                    : DNS_ZONE_TYPE_PRIMARY
  Version                     : 50
  dwDpFlags                   : DNS_DP_AUTOCREATED DNS_DP_DOMAIN_DEFAULT DNS_DP_ENLISTED 
  pszDpFqdn                   : DomainDnsZones.yanagida.org

  pszZoneName                 : _msdcs.yanagida.org
  Flags                       : DNS_RPC_ZONE_DSINTEGRATED DNS_RPC_ZONE_UPDATE_SECURE 
  ZoneType                    : DNS_ZONE_TYPE_PRIMARY
  Version                     : 50
  dwDpFlags                   : DNS_DP_AUTOCREATED DNS_DP_FOREST_DEFAULT DNS_DP_ENLISTED 
  pszDpFqdn                   : ForestDnsZones.yanagida.org

Kerberos設定

# cp /usr/local/samba/private/krb5.conf /etc/krb5.conf

Kerberosテスト

# kinit administrator@YANAGIDA.ORG
Password for administrator@YANAGIDA.ORG: 
Warning: Your password will expire in 41 days on Fri Apr 22 22:40:42 2016

準備は整った

Windows10 proクライアントをドメイン参加させます。

ホームマシンにグループポリシーを適用してどうするん?!という話は聞かなかったことにしておきましょう。。。