2014/09/26

Samba4のインストールとActive Directoryの設定

まずは samba4のmakeに必要なものをインストールする。
CentOSに必要なものはここを参考にした。

# yum install gcc libacl-devel libblkid-devel gnutls-devel \
 readline-devel python-devel gdb pkgconfig krb5-workstation \
 zlib-devel setroubleshoot-server libaio-devel \
 setroubleshoot-plugins policycoreutils-python \
 libsemanage-python setools-libs-python setools-libs \
 popt-devel libpcap-devel sqlite-devel libidn-devel \
 libxml2-devel libacl-devel libsepol-devel libattr-devel \
 keyutils-libs-devel cyrus-sasl-devel cups-devel bind-utils
あとで configureしてわかったが、perlが入っていないのでこれも追加でインストール
# yum install perl

CentOS7のminimumセットにはwgetが入っていないのでインストール
ついでに後で必要になるであろうネットワーク関連のツールと、killallが使えなかったのでファイルシステムに関するユーティリティをインストール。
# yum install wget net-tools psmisc

ダウンロード&make&インストール
ここからSamba4の最新版をダウンロード
ftp://ftp.samba.gr.jp/pub/samba/
# wget ftp://ftp.samba.gr.jp/pub/samba/samba-4.1.12.tar.gz
# tar xfz samba-4.1.12.tar.gz
# cd samba-4.1.12
# ./configure
# make
# make install

絶対パスで指定するのが面倒なので /usr/local/(bin|sbin) に シンボリックリンクを作る
# ln -s /usr/local/samba/sbin/samba /usr/local/sbin
# ln -s /usr/local/samba/bin/samba-tool /usr/local/bin
# ln -s /usr/local/samba/bin/smbclient /usr/local/bin
# samba -V


ここから samba4の Active Directoryの設定
# samba-tool domain provision --use-rfc2307 --interactive
Realm[HOGEHOGE.LOCAL]: 
 Domain [HOGEHOGE]: 
 Server Role (dc, member, standalone) [dc]: 
 DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]: (enter)
 DNS forwarder IP address (write 'none' to disable forwarding) [8.8.8.8]: (enter)
Administrator password:
Retype password:

samba4のネームサーバーを参照させるためにDNSを設定する
/etc/resolv.conf は直接書き換えられない(再起動時に上書きされる)ので、別の場所で指定する。
# vi /etc/sysconfig/network-scripts/ifcfg-enp0p3
DNS1="127.0.0.1"
DNS2="8.8.8.8"
kerberosの設定
# mv /etc/krb5.conf /etc/krb5.conf.org
# cp /usr/local/samba/private/krb5.conf /etc/krb5.conf
samba4を起動して動作確認
まずは Active Directory(AD)のDomain Controller(DC)として動作しているかの確認
# samba
# smbclient -L localhost -U%
        Sharename       Type      Comment
        ---------       ----      -------
        netlogon        Disk
        sysvol          Disk
        IPC$            IPC       IPC Service (Samba 4.1.12)
Domain=[HOGEHOGE] OS=[Unix] Server=[Samba 4.1.12]

        Server               Comment
        ---------            -------

        Workgroup            Master
        ---------            -------
'netlogon'と'sysvol'が共有されていればOKとのこと。 つづいて、AD内の DNSサーバーが動作しているかの確認
# host -t SRV _ldap._tcp.hogehoge.local
_ldap._tcp.hogehoge.local has SRV record 0 100 389 bcnr33.hogehoge.local.

# host -t SRV _kerberos._udp.hogehoge.local
_kerberos._udp.hogehoge.local has SRV record 0 100 88 bcnr33.hogehoge.local.

# host -t A bcnr33.junauto.local
bnr32.hogehoge.local has address 192.168.1.100

# samba-tool dns zonelist localhost -U Administrator
Password for [HOGEHOGE\Administrator]:
  2 zone(s) found

  pszZoneName                 : hogehoge.local
  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.hogehoge.local

  pszZoneName                 : _msdcs.hogehoge.local
  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.hogehoge.local

kerberos認証の確認
# kinit administrator@HOGEHOGE.LOCAL
Password for administrator@HOGEHOGE.LOCAL:
Warning: Your password will expire in 38 days on 2014年10月21日 15時21分38秒

# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: administrator@HOGEHOGE.LOCAL

Valid starting       Expires              Service principal
2014-09-12T17:00:45  2014-09-13T03:00:45  krbtgt/HOGEHOGE.LOCAL@HOGEHOGE.LOCAL
        renew until 2014-09-13T17:00:42

ワーニングは、パスワードの有効期限とのこと。

待ち受けポートの確認
# netstat -antp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1574/master
tcp        0      0 0.0.0.0:636             0.0.0.0:*               LISTEN      767/samba
tcp        0      0 0.0.0.0:445             0.0.0.0:*               LISTEN      766/smbd
tcp        0      0 0.0.0.0:1024            0.0.0.0:*               LISTEN      762/samba
tcp        0      0 0.0.0.0:3268            0.0.0.0:*               LISTEN      767/samba
tcp        0      0 0.0.0.0:3269            0.0.0.0:*               LISTEN      767/samba
tcp        0      0 0.0.0.0:389             0.0.0.0:*               LISTEN      767/samba
tcp        0      0 0.0.0.0:135             0.0.0.0:*               LISTEN      762/samba
tcp        0      0 0.0.0.0:139             0.0.0.0:*               LISTEN      766/smbd
tcp        0      0 0.0.0.0:464             0.0.0.0:*               LISTEN      769/samba
tcp        0      0 0.0.0.0:53              0.0.0.0:*               LISTEN      777/samba
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      824/sshd
tcp        0      0 0.0.0.0:88              0.0.0.0:*               LISTEN      769/samba
tcp        0     52 192.168.1.100:22        192.168.1.50:50104      ESTABLISHED 1819/sshd: root@pts
tcp6       0      0 ::1:25                  :::*                    LISTEN      1574/master
tcp6       0      0 :::636                  :::*                    LISTEN      767/samba
tcp6       0      0 :::445                  :::*                    LISTEN      766/smbd
tcp6       0      0 :::1024                 :::*                    LISTEN      762/samba
tcp6       0      0 :::3268                 :::*                    LISTEN      767/samba
tcp6       0      0 :::3269                 :::*                    LISTEN      767/samba
tcp6       0      0 :::389                  :::*                    LISTEN      767/samba
tcp6       0      0 :::135                  :::*                    LISTEN      762/samba
tcp6       0      0 :::139                  :::*                    LISTEN      766/smbd
tcp6       0      0 :::464                  :::*                    LISTEN      769/samba
tcp6       0      0 :::53                   :::*                    LISTEN      777/samba
tcp6       0      0 :::22                   :::*                    LISTEN      824/sshd
tcp6       0      0 :::88                   :::*                    LISTEN      769/samba
53:DNSサーバー, 88:Kerberosキー配布センター, 389=LDAPなど

ドメインレベル・フォレストレベルを昇格させる
# samba-tool domain level raise --domain-level=2008_R2 --forest-level=2008_R2
Domain function level changed!
Forest function level changed!
All changes applied successfully!
昇格したか現在のレベルを確認する
# samba-tool domain level show
Domain and forest function level for domain 'DC=junauto,DC=local'

Forest function level: (Windows) 2008 R2
Domain function level: (Windows) 2008 R2
Lowest function level of a DC: (Windows) 2008 R2
samba4を自動起動できるようにする。
# vi /etc/init.d/samba4
スクリプトの中身
#!/bin/bash
#
# samba4 Bring up/down samba4 service
#
# chkconfig: - 90 10
# description: Activates/Deactivates all samba4 interfaces configured to \
# start at boot time.
#
### BEGIN INIT INFO
# Provides:
# Should-Start:
# Short-Description: Bring up/down samba4
# Description: Bring up/down samba4
### END INIT INFO
# Source function library.
. /etc/init.d/functions

if [ -f /etc/sysconfig/samba4 ]; then
 . /etc/sysconfig/samba4
fi

CWD=$(pwd)
prog="samba4"

start() {
 # Attach irda device
 echo -n $"Starting $prog: "
 /usr/local/samba/sbin/samba
 sleep 2
 if ps ax | grep -v "grep" | grep -q /samba/sbin/samba ; then success $"samba4 startup"; else failure $"samba4 startup"; fi
 echo
}
stop() {
 # Stop service.
 echo -n $"Shutting down $prog: "
 killall samba
 sleep 2
 if ps ax | grep -v "grep" | grep -q /samba/sbin/samba ; then failure $"samba4 shutdown"; else success $"samba4 shutdown"; fi
 echo
}
status() {
 /usr/local/samba/sbin/samba --show-build
}

# See how we were called.
case "$1" in
start)
 start
 ;;
stop)
 stop
 ;;
status)
 status irattach
 ;;
restart|reload)
 stop
 start
 ;;
*)
 echo $"Usage: $0 {start|stop|restart|status}"
 exit 1
esac

exit 0
起動時の登録
# chmod 0755 /etc/init.d/samba4
# ln -s /etc/init.d/samba4 /etc/rc3.d/S80samba4
# chkconfig --add samba4
# chkconfig --level 35 samba4 on
Samba4サーバーのAD DC準備はここまで

参考にしたサイト
Samba4でのActive Directory構築 - OSSでLinuxサーバ構築
Samba 4.xでActive Directoryを1から立てる | OSAKANA TAROのメモ帳

0 件のコメント:

色々な画像ファイル形式をhtmlに埋め込む(PHP)

画像をhtmlに埋め込む際、単一の場合は img/src、複数の拡張子を指定すると img/source/srcsetに展開してくれる便利関数。また、単一拡張子のみが指定されている場合は、ブラウザのサポート状況に応じ、avifやwebpの拡張子を持つ同名のファイルがある場合は[a...