====== SambaによるActiveDirectory構築 ====== ===== パッケージインストール ===== $ sudo dnf install samba samba-client samba-dc wbinfoを使えるように以下もインストールしておくとよい。 $ sudo dnf install samba-winbind-clients CUPSプリントサーバーを利用する場合 $ sudo yum install cups killallをインストール $ sudo yum install psmisc kinitをインストール $ sudo yum install krb5-workstation ===== Sambaの設定 ===== ==== 設定ファイルのバックアップ ==== $ sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.org ==== 設定ファイルの作成 ==== $ sudo samba-tool domain provision --use-rfc2307 --interactive Realm [FIREBALL.LOCAL]: <- Enterを入力 Domain [FIREBALL]: <- Enterを入力 Server Role (dc, member, standalone) [dc]: <- Enterを入力 DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]: <- Enterを入力 DNS forwarder IP address (write 'none' to disable forwarding) [192.168.1.254]: 129.250.35.250 <- Public DNSサーバーのIPを入力 Administrator password: <- パスワードを入力(英数記号の組み合わせで7文字以上) Retype password: <- 確認用パスワードを入力 Looking up IPv4 addresses Looking up IPv6 addresses No IPv6 address will be assigned 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=fireball,DC=local 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=fireball,DC=local 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 /var/lib/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: blue-dc NetBIOS Domain: FIREBALL DNS Domain: fireball.local DOMAIN SID: S-1-5-21-450207414-3644643225-592770093 ===== bindの設定(SAMBA_INTERNALの場合は不要) ===== ==== Sambaの設定を追加 ==== $ sudo vi /etc/named.conf options { ... tkey-gssapi-keytab "/var/lib/samba/private/dns.keytab"; ... }; include "/var/lib/samba/private/named.conf"; ==== dlzの設定 ==== Fedora 19ではbind-9.9.3なので、9.9用の設定に修正する。(標準では9.8用に設定されている)\\ ※再設定を行う場合は修正し直す必要がある。\\ $ sudo vi /var/lib/samba/private/named.conf # # This configures dynamically loadable zones (DLZ) from AD schema # Uncomment only single database line, depending on your BIND version # dlz "AD DNS Zone" { # For BIND 9.8.0 # database "dlopen /usr/lib64/samba/bind9/dlz_bind9.so"; # For BIND 9.9.0 database "dlopen /usr/lib64/samba/bind9/dlz_bind9_9.so"; }; ==== パーミッション設定 ==== bindによる設定ファイルの読み込みを許可する。 $ sudo chgrp named /var/lib/samba/private $ sudo chmod 750 /var/lib/samba/private ※これを忘れるとbindが起動しないので注意!!\\ ※Sambaパッケージをアップデート後にも必要!!\\ ==== 設定の反映 ==== bindを再起動する。 $ sudo systemctl restart named.service ===== Kerberosクライアントのデフォルト設定 ===== ==== 設定ファイルのバックアップ ==== $ sudo cp /etc/krb5.conf /etc/krb5.conf.org ==== 設定ファイルの編集 ==== $ sudo vi /etc/krb5.conf [logging] default = FILE:/var/log/krb5libs.log kdc = FILE:/var/log/krb5kdc.log admin_server = FILE:/var/log/kadmind.log [libdefaults] default_realm = FIREBALL.LOCAL <- dns_lookup_realm = false <- 追記 dns_lookup_kdc = true <- ticket_lifetime = 24h renew_lifetime = 7d forwardable = true rdns = false [realms] # EXAMPLE.COM = { # kdc = kerberos.example.com # admin_server = kerberos.example.com # } FIREBALL.LOCAL = { <- kdc = blue-dc.fireball.local <- 追記 } <- [domain_realm] # .example.com = EXAMPLE.COM # example.com = EXAMPLE.COM .fireball.local = FIREBALL.LOCAL <- 追記 fireball.local = FIREBALL.LOCAL <- ===== Samba AD DCの起動確認 ===== $ sudo samba -i -M single --debuglevel=3 samba version 4.1.0 started. Copyright Andrew Tridgell and the Samba Team 1992-2013 samba: using 'single' process model ===== サービス自動起動設定 ===== $ sudo systemctl enable samba.service ===== サービス起動 ===== $ sudo systemctl start samba.service ===== ファイヤーウォールの設定 ===== $ sudo firewall-cmd --permanent --add-service=samba-dc $ sudo firewall-cmd --reload ===== Samba AD DCの動作確認 ===== ==== サービス起動確認 ==== スタンダードプロセスモードで起動していることを確認する。 $ sudo systemctl status samba.service ● samba.service - Samba AD Daemon Loaded: loaded (/usr/lib/systemd/system/samba.service; enabled; vendor preset: disabled) Active: active (running) since Sat 2019-01-05 22:25:16 JST; 8min ago Docs: man:samba(8) man:samba(7) man:smb.conf(5) Main PID: 742 (samba) Status: "smbd: ready to serve connections..." Tasks: 23 (limit: 546) Memory: 213.4M CGroup: /system.slice/samba.service ├─742 /usr/sbin/samba --foreground --no-process-group ├─806 /usr/sbin/samba --foreground --no-process-group ├─807 /usr/sbin/samba --foreground --no-process-group ├─808 /usr/sbin/samba --foreground --no-process-group ├─809 /usr/sbin/samba --foreground --no-process-group ├─810 /usr/sbin/samba --foreground --no-process-group ├─811 /usr/sbin/samba --foreground --no-process-group ├─812 /usr/sbin/samba --foreground --no-process-group ├─813 /usr/sbin/smbd -D --option=server role check:inhibit=yes --foreground ├─814 /usr/sbin/samba --foreground --no-process-group ├─815 /usr/sbin/samba --foreground --no-process-group ├─816 /usr/sbin/samba --foreground --no-process-group ├─817 /usr/sbin/samba --foreground --no-process-group ├─818 /usr/sbin/krb5kdc -n ├─819 /usr/sbin/samba --foreground --no-process-group ├─820 /usr/sbin/samba --foreground --no-process-group ├─821 /usr/sbin/samba --foreground --no-process-group ├─822 /usr/sbin/winbindd -D --option=server role check:inhibit=yes --foreground ├─823 /usr/sbin/samba --foreground --no-process-group ├─824 /usr/sbin/samba --foreground --no-process-group ├─834 /usr/sbin/smbd -D --option=server role check:inhibit=yes --foreground ├─835 /usr/sbin/smbd -D --option=server role check:inhibit=yes --foreground └─836 /usr/sbin/smbd -D --option=server role check:inhibit=yes --foreground ==== サービス起動確認2 ==== ポートのlisten状況を確認するには以下のコマンドを実行する。 $ sudo netstat -tulpn | egrep "samba|smbd|nmbd|winbind" tcp 0 0 0.0.0.0:3268 0.0.0.0:* LISTEN 811/samba tcp 0 0 0.0.0.0:3269 0.0.0.0:* LISTEN 811/samba tcp 0 0 0.0.0.0:389 0.0.0.0:* LISTEN 811/samba tcp 0 0 0.0.0.0:135 0.0.0.0:* LISTEN 807/samba tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 813/smbd tcp 0 0 0.0.0.0:464 0.0.0.0:* LISTEN 814/samba tcp 0 0 0.0.0.0:53 0.0.0.0:* LISTEN 824/samba tcp 0 0 0.0.0.0:636 0.0.0.0:* LISTEN 811/samba tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 813/smbd tcp 0 0 0.0.0.0:49152 0.0.0.0:* LISTEN 807/samba tcp 0 0 0.0.0.0:49153 0.0.0.0:* LISTEN 807/samba tcp 0 0 0.0.0.0:49154 0.0.0.0:* LISTEN 807/samba tcp6 0 0 :::3268 :::* LISTEN 811/samba tcp6 0 0 :::3269 :::* LISTEN 811/samba tcp6 0 0 :::389 :::* LISTEN 811/samba tcp6 0 0 :::135 :::* LISTEN 807/samba tcp6 0 0 :::139 :::* LISTEN 813/smbd tcp6 0 0 :::464 :::* LISTEN 814/samba tcp6 0 0 :::53 :::* LISTEN 824/samba tcp6 0 0 :::636 :::* LISTEN 811/samba tcp6 0 0 :::445 :::* LISTEN 813/smbd tcp6 0 0 :::49152 :::* LISTEN 807/samba tcp6 0 0 :::49153 :::* LISTEN 807/samba tcp6 0 0 :::49154 :::* LISTEN 807/samba udp 0 0 0.0.0.0:53 0.0.0.0:* 824/samba udp 0 0 172.16.78.10:389 0.0.0.0:* 812/samba udp 0 0 0.0.0.0:389 0.0.0.0:* 812/samba udp 0 0 172.16.78.10:137 0.0.0.0:* 808/samba udp 0 0 172.16.78.255:137 0.0.0.0:* 808/samba udp 0 0 0.0.0.0:137 0.0.0.0:* 808/samba udp 0 0 172.16.78.10:138 0.0.0.0:* 808/samba udp 0 0 172.16.78.255:138 0.0.0.0:* 808/samba udp 0 0 0.0.0.0:138 0.0.0.0:* 808/samba udp 0 0 172.16.78.10:464 0.0.0.0:* 814/samba udp 0 0 0.0.0.0:464 0.0.0.0:* 814/samba udp6 0 0 :::53 :::* 824/samba udp6 0 0 :::389 :::* 812/samba udp6 0 0 :::464 :::* 814/samba ==== ActiveDirectoryに必要な共有を提供しているか確認 ==== $ smbclient -L localhost -U% Unable to initialize messaging context Sharename Type Comment --------- ---- ------- netlogon Disk sysvol Disk IPC$ IPC IPC Service (Samba 4.9.4) Reconnecting with SMB1 for workgroup listing. Server Comment --------- ------- Workgroup Master --------- ------- ==== 認証の確認 ==== $ smbclient //localhost/netlogon -U Administrator -c 'ls' Unable to initialize messaging context Enter FIREBALL\Administrator's password: . D 0 Sat Jan 5 21:58:46 2019 .. D 0 Sat Jan 5 21:58:52 2019 265107456 blocks of size 1024. 260945176 blocks available ==== DNSの動作確認 ==== $ host -t SRV _ldap._tcp.fireball.local _ldap._tcp.fireball.local has SRV record 0 100 389 blue-dc.fireball.local. $ host -t SRV _kerberos._udp.fireball.local _kerberos._udp.fireball.local has SRV record 0 100 88 blue-dc.fireball.local. $ host -t A blue-dc.fireball.local blue-dc.fireball.local has address 172.16.78.10 ※hostコマンドはbind-utilsパッケージに含まれている。 ===== Kerberosの動作確認 ===== $ kinit administrator@FIREBALL.LOCAL Password for administrator@FIREBALL.LOCAL: <- パスワードを入力 Warning: Your password will expire in 41 days on 2013年11月20日 01時23分51秒 ===== 参考文献 ===== [[http://www.oss-d.net/samba4/ad|Samba4でのActive Directory構築 - OSSでLinuxサーバ構築]]\\ [[http://kplace.plala.jp/pc1/pc762.html|Samba4 ADDC/HowToメモ@cbreeze]]\\ [[http://kplace.plala.jp/pc1/pc765.html|Samba4 Ports番号メモ@cbreeze]]\\ [[http://d.hatena.ne.jp/enakai00/20130917/1379374797|Systemd入門(4) - serviceタイプUnitの設定ファイル - めもめも]]\\ [[https://wiki.samba.org/index.php/Samba_port_usage|Samba port usage - SambaWiki]]\\ [[http://slashdot.jp/~ribbon/journal/422877|Unable to connect to CUPS server localhost | ribbonの日記 | スラッシュドット・ジャパン]]\\