●概要
参考URL:Active Directoryメンバーサーバ追加(Winbind)
Linuxサーバ(CentOS 7)をActive Directoryドメインへメンバーサーバとして参加させ、Active Directoryドメインのユーザ情報を利用できるようにします。
■構築例
※Active Directoryのドメインコントローラーは既に構築済であることが条件となります。
ドメインコントローラーのホスト名:dc01、dc02
ドメインコントローラーのIPアドレス:192.168.0.1、192.168.0.2
メンバーサーバのホスト名:centos7 注)メンバーサーバのホスト名は15文字以内
ドメイン名:bigbang
レルム:bigbang.local
●準備
問い合わせ先のDNSサーバをドメインコントローラに変更します。
●ドメインへの参加
CentOS 7をメンバーサーバとしてドメインに参加させます。
winbindをインストールします。
「ユーザ情報」-「Winbindを使用」を選択
「認証」-「Winbind認証を使用」を選択
「次」を選択します。
Winbindの設定で
「セキュリティモデル」-「ads」を選択
「ドメイン」にドメイン名(例:BIGBANG)を入力
「ドメインコントローラ」にドメインコントローラーのホスト名(例:dc01)を入力
「ADSレルム(Realm)」にレルム(例:BIGBANG.LOCAL)を入力
「テンプレートシェル」でシェル(例:/bin/bash)を選択
「ドメイン参加」
を選択します。
設定の保存で
「はい」を選択
Joinの設定で
ドメインのAdministratorのパスワードを入力します。
●ドメイン参加の確認
ドメインに参加できているかどうか確認します。
●Winbindの設定
Active Directoryドメイン上のユーザをLinuxユーザとして使用できるように下記を設定をします。
・シェルを利用できるようにする
・ホームディレクトリを「/home/ユーザ名」にする
・ユーザ名を「ドメイン名\ユーザ名」ではなく「ユーザ名」にする
winbindの設定ファイルを編集します。
●ホームディレクトリ自動作成設定
Linuxサーバ上ではユーザを作成しないためユーザのホームディレクトリが存在しません。Active Directoryドメイン上のユーザでLinuxサーバへのアクセス時に、自動的にホームディレクトリが作成されるようにします。
●Webページ認証
Active Directoryドメイン上のユーザ名/パスワード認証によるアクセス制限を行えるようにします。ここでは、/var/www/html/secretディレクトリにアクセス制限を行うようにします。
※mod_SSL導入済であること
※WebサーバがメンバーサーバしてActive Directoryドメインに参加済であること
EPELリポジトリを導入します。
表示されない場合、下記を確認してください。
●パスワード変更
Active Directoryドメイン上のユーザのパスワード変更は通常、Windows上で行います。Windowsにログオンできない場合、外部から変更出来るようにUserminを使用します。
※UserminサーバがメンバーサーバとしてActive Directoryドメインに参加していること
参考URL:Active Directoryメンバーサーバ追加(Winbind)
Linuxサーバ(CentOS 7)をActive Directoryドメインへメンバーサーバとして参加させ、Active Directoryドメインのユーザ情報を利用できるようにします。
■構築例
※Active Directoryのドメインコントローラーは既に構築済であることが条件となります。
ドメインコントローラーのホスト名:dc01、dc02
ドメインコントローラーのIPアドレス:192.168.0.1、192.168.0.2
メンバーサーバのホスト名:centos7 注)メンバーサーバのホスト名は15文字以内
ドメイン名:bigbang
レルム:bigbang.local
●準備
問い合わせ先のDNSサーバをドメインコントローラに変更します。
# vi /etc/sysconfig/network-scripts/ifcfg-eth0 DNS1=192.168.0.1 DNS2=192.168.0.2ネットワークを再起動し、設定を反映させます。
# systemctl restart network # /etc/rc.d/init.d/network restart問い合わせ先のDNSサーバを変更します。ただし、NetworkManagerにより自動的に設定される場合、設定不要です。
# vi /etc/resolv.conf nameserver 192.168.0.1 nameserver 192.168.0.2
●ドメインへの参加
CentOS 7をメンバーサーバとしてドメインに参加させます。
winbindをインストールします。
# yum -y install samba-winbind samba-winbind-clients認証設定をします。
# authconfig-tui認証の設定で(※項目間の移動はTabキー、選択はSpaceキー、決定はEnterキー)
「ユーザ情報」-「Winbindを使用」を選択
「認証」-「Winbind認証を使用」を選択
「次」を選択します。

Winbindの設定で
「セキュリティモデル」-「ads」を選択
「ドメイン」にドメイン名(例:BIGBANG)を入力
「ドメインコントローラ」にドメインコントローラーのホスト名(例:dc01)を入力
「ADSレルム(Realm)」にレルム(例:BIGBANG.LOCAL)を入力
「テンプレートシェル」でシェル(例:/bin/bash)を選択
「ドメイン参加」
を選択します。

設定の保存で
「はい」を選択

Joinの設定で
ドメインのAdministratorのパスワードを入力します。

[/usr/bin/net join -w BIGBANG -S dc01 -U Administrator] Enter Administrator's password:<...> Using short domain name -- BIGBANG Joined 'CENTOS7' to dns domain 'bigbang.local' Winbind サービスを起動中: [ OK ]
●ドメイン参加の確認
ドメインに参加できているかどうか確認します。
# net ads info LDAP server: 192.168.0.1 LDAP server name: dc01.bigbang.local Realm: BIGBANG.LOCALG Bind Path: dc=BIGBANG,dc=LOCAL LDAP port: 389 Server time: 月, 16 1月 2017 14:20:08 JST KDC server: 192.168.0.1 Server time offset: 0 Last machine account password change: 月, 16 1月 2017 14:17:57 JSTユーザを一覧表示させます。
# wbinfo -u BIGBANG/guest BIGBANG/administrator BIGBANG/krbtgt
●Winbindの設定
Active Directoryドメイン上のユーザをLinuxユーザとして使用できるように下記を設定をします。
・シェルを利用できるようにする
・ホームディレクトリを「/home/ユーザ名」にする
・ユーザ名を「ドメイン名\ユーザ名」ではなく「ユーザ名」にする
winbindの設定ファイルを編集します。
# vi /etc/samba/smb.conf [global] : : : template shell = /bin/bash ← ユーザのデフォルトシェルを/bin/bashにする template homedir = /home/%U ← ユーザのホームディレクトリを「/home/ユーザ名」にする winbind use default domain = true ← 「ドメイン名\ユーザ名」ではなく「ユーザ名」で winbind offline logon = false # systemctl restart winbind # wbinfo -u administrator centos01 krbtgt guest
●ホームディレクトリ自動作成設定
Linuxサーバ上ではユーザを作成しないためユーザのホームディレクトリが存在しません。Active Directoryドメイン上のユーザでLinuxサーバへのアクセス時に、自動的にホームディレクトリが作成されるようにします。
# authconfig --enablemkhomedir --update # chmod 1777 /home/ --ユーザのホームディレクトリを作成する必要があるルサーバのみ(ここから)-- # vi /etc/samba/smb.conf [homes] comment = Home Directories path = %H/samba browseable = no writable = yes root preexec = /usr/local/sbin/mkhomedir.sh %U # vi /usr/local/sbin/mkhomedir.sh #!/bin/bash if [ ! -e /home/$1 ]; then mkdir /home/$1 chmod 700 /home/$1 shopt -s dotglob ; cp -r /etc/skel/* /home/$1 ; shopt -u dotglob chown -R $1:"Domain Users" /home/$1 elif [ ! -e /home/$1/samba ]; then mkdir /home/$1/samba chmod 700 /home/$1/samba chown $1:"Domain Users" /home/$1/samba fi exit 0 # chmod +x /usr/local/sbin/mkhomedir.sh # systemctl restart smb --ユーザのホームディレクトリを作成する必要があるルサーバのみ(ここまで)--
●Webページ認証
Active Directoryドメイン上のユーザ名/パスワード認証によるアクセス制限を行えるようにします。ここでは、/var/www/html/secretディレクトリにアクセス制限を行うようにします。
※mod_SSL導入済であること
※WebサーバがメンバーサーバしてActive Directoryドメインに参加済であること
EPELリポジトリを導入します。
# yum -y install mod_authnz_external pwauth # systemctl restart httpd # vi /var/www/html/secret/.htaccess SSLRequireSSL AuthName "secret page" AuthType Basic AuthBasicProvider external AuthExternal pwauth require valid-userhttps://メンバーサーバ名/secret/へアクセスして、Active Directoryドメイン上のユーザ名/パスワードでページが表示されればOKです。
表示されない場合、下記を確認してください。
- DirectoryIndexディレクティブで指定しているファイルがsecretフォルダ内に存在しているかどうか
- AllowOverride Allと設定されているかどうか
●パスワード変更
Active Directoryドメイン上のユーザのパスワード変更は通常、Windows上で行います。Windowsにログオンできない場合、外部から変更出来るようにUserminを使用します。
※UserminサーバがメンバーサーバとしてActive Directoryドメインに参加していること
# vi /etc/usermin/miniserv.conf #passwd_file=/etc/shadow ← 行頭に#を追加(PAM認証にする) # vi /etc/usermin/changepass/config passwd_cmd=file ↓ passwd_cmd= ← /etc/shadow認証を無効化(PAM認証にする) smbpasswd=smbpasswd ↓ smbpasswd= ← smbpasswd無効化 # vi /etc/pam.d/usermin ← Usermin用PAM認証設定ファイル編集 #%PAM-1.0 auth include password-auth account include password-auth password include password-auth session include password-auth 上記内容に書き換える # systemctl restart userminUserminでActive Directoryドメイン上のユーザのパスワードが変更できればOKです。