Active Directoryメンバーサーバー追加(Winbind)

最終更新日: 2017.02.18

<<トップページ <<新着情報 <<リンク集 <<サイト内検索 <<Scientific Linuxで自宅サーバー構築 <<Fedoraで自宅サーバー構築

■概要

Linuxサーバー(Webサーバーメールサーバーファイルサーバー)をActive Directoryドメインへメンバーサーバーとして参加させることにより、Active Directoryドメインのユーザー情報を利用できるようにする。
ここでは、Linuxサーバーにはユーザーを作成せずに、Active DirectoryドメインのユーザーでLinuxサーバー上の各種サービス(SSH、BASIC認証、メール、ファイル共有)を利用できるようにする。

Active Directoryドメインコントローラー構築済であること

【構築条件(例)】
ドメインコントローラーのホスト名:centosdc01
ドメインコントローラーのIPアドレス:192.168.1.2
メンバーサーバーのホスト名:member(注)メンバーサーバーのホスト名は15文字以内であること
ドメイン名:CENTOS
レルム:CENTOS.LOCAL

【実現イメージ】




■事前準備

[root@member ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0 ← ネットワーク設定ファイル編集
DNS1=192.168.1.2 ← 問合せ先DNSサーバーをドメインコントローラーにする

[root@member ~]# systemctl restart network ← ネットワーク再起動※CentOS7の場合
[root@member ~]# /etc/rc.d/init.d/network restart ← ネットワーク再起動※CentOS6の場合

[root@member ~]# cat /etc/resolv.conf ← 問合せ先DNSサーバー変更確認

nameserver 192.168.1.2

[root@member ~]# echo 192.168.1.2 centosdc01 >> /etc/hosts ← ドメインコントローラーのIPアドレス、ホスト名を/etc/hostsに追加する

■ドメイン参加

Linuxサーバーをメンバーサーバーとしてドメインに参加させる。

[root@member ~]# yum -y install samba-winbind samba-winbind-clients ← winbindインストール

[root@member ~]# authconfig-tui ← 認証設定

【認証の設定】※項目間の移動はTabキー、選択はSpaceキー、決定はEnterキー
「ユーザー情報」−「Winbindを使用」を選択
「認証」−「Winbind認証を使用」を選択
「次」



【Winbind設定】
「セキュリティモデル」−「ads」を選択
「ドメイン」にドメイン名(例:CENTOS)を入力
「ドメインコントローラ」にドメインコントローラーのホスト名(例:centosdc01)を入力
「ADSレルム(Realm)」にレルム(例:CENTOS.LOCAL)を入力
「ドメイン参加」



【設定の保存】
「はい」



【Join設定】
「パスワード」にドメインコントローラーのAdministratorのパスワードを入力
「OK」



【Winbind設定】
「OK」



[/usr/bin/net join -w CENTOS -S centosdc01 -U Administrator]
Enter Administrator's password:<...>

Using short domain name -- CENTOS
Joined 'MEMBER' to dns domain 'centos.local'
DNS update failed!
Winbind サービスを起動中:                                  [  OK  ]

■ドメイン参加確認

[root@member ~]# net ads info ← ドメイン参加確認
LDAP server: 192.168.1.2
LDAP server name: centosdc01.centos.local
Realm: CENTOS.LOCAL
Bind Path: dc=CENTOS,dc=LOCAL
LDAP port: 389
Server time: 日, 30 11月 2014 20:09:00 JST
KDC server: 192.168.1.2
Server time offset: 0

[root@member ~]# wbinfo -u ← ユーザー一覧表示
CENTOS\administrator
CENTOS\centos01
CENTOS\krbtgt
CENTOS\guest

■Winbind設定

Active Directoryドメイン上のユーザーをLinuxユーザーとして使用できるように以下の設定を行う。

・シェルを利用できるようにする
・ホームディレクトリを「/home/ユーザー名」にする
・ユーザー名を「ドメイン名\ユーザー名」ではなく「ユーザー名」にする

[root@member ~]# vi /etc/samba/smb.conf ← winbind設定ファイル編集
[global]
   ・
   ・
   ・
   template shell = /bin/bash ← ユーザーのデフォルトシェルを/bin/bashにする
   template homedir = /home/%U ← ユーザーのホームディレクトリを「/home/ユーザー名」にする
   winbind use default domain = true ← 「ドメイン名\ユーザー名」ではなく「ユーザー名」でユーザー認証できるようにする
   winbind offline logon = false

[root@member ~]# systemctl restart winbind ← winbind再起動※CentOS7の場合
[root@member ~]# /etc/rc.d/init.d/winbind restart ← winbind再起動※CentOS6の場合

[root@member ~]# wbinfo -u ← ユーザー一覧表示
administrator
centos01
krbtgt
guest

■ホームディレクトリ自動作成設定

Linuxサーバー上にはユーザーを作成しないことから、ユーザーのホームディレクトリが存在しないため、Active Directoryドメイン上のユーザーでLinuxサーバーへアクセスした際に、自動でユーザーのホームディレクトリが作成されるようにする。

[root@member ~]# authconfig --enablemkhomedir --update ← ユーザーホームディレクトリ自動作成有効化

[root@member ~]# chmod 1777 /home/ ← /homeディレクトリパーミッション設定

−−ファイルサーバーのみ(ここから)−−

[root@member ~]# vi /etc/samba/smb.conf ← Samba設定ファイル編集
[homes]
        comment = Home Directories
        path = %H/samba
        browseable = no
        writable = yes
        root preexec = /usr/local/sbin/mkhomedir.sh %U ← ホームディレクトリ作成スクリプト事前実行設定追加

[root@member ~]# 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

[root@member ~]# chmod +x /usr/local/sbin/mkhomedir.sh ← ホームディレクトリ作成スクリプトへ実行権限付加

[root@member ~]# systemctl restart smb ← Samba再起動※CentOS7の場合
[root@member ~]# /etc/rc.d/init.d/smb restart ← Samba再起動※CentOS6の場合

−−ファイルサーバーのみ(ここまで)−−

  • Linuxサーバー(SSHサーバー)へActive Directoryドメイン上のユーザーでログインできること、ホームディレクトリが自動で作成されること
  • Linuxサーバー(メールサーバー)へActive Directoryドメイン上のユーザーで接続できること、ホームディレクトリが自動で作成されること※Linuxメンバーサーバーがメールサーバーの場合
  • Linuxサーバー(ファイルサーバー)へActive Directoryドメイン上のユーザーで接続できること、ホームディレクトリが自動で作成されること※Linuxメンバーサーバーがファイルサーバーの場合

■Webページ認証

Active Directoryドメイン上のユーザー名/パスワード認証によるアクセス制限を行えるようにする。
ここでは、例として/var/www/html/secretディレクトリにアクセス制限を行うようにする。

mod_SSL導入済であること
※WebサーバーがメンバーサーバーとしてActive Directoryドメインに参加済であること

EPELリポジトリ導入(EPEL)を参照してEPELリポジトリを導入する

[root@member ~]# yum -y install mod_authnz_external pwauth ← mod_authnz_external、pwauthインストール

[root@member ~]# systemctl restart httpd ← httpd再起動※CentOS7の場合
[root@member ~]# /etc/rc.d/init.d/httpd restart ← httpd再起動※CentOS6,5の場合

[root@member ~]# vi /var/www/html/secret/.htaccess ← アクセス制限をかけたいディレクトリへ.htaccessファイル作成
SSLRequireSSL
AuthName "secret page"
AuthType Basic
AuthBasicProvider external
AuthExternal pwauth
require valid-user

https://メンバーサーバー名/secret/へアクセスしてActive Directoryドメイン上のユーザー名/パスワードでページが表示されること

■パスワード変更

Active Directoryドメイン上のユーザーのパスワード変更はWindows上で行うが(Ctrl+Alt+Delキー押下⇒パスワード変更)、Windowsにログオンできない外部からはUserminでパスワードを変更できるようにする。

Usermin導入済であること
※UserminサーバーがメンバーサーバーとしてActive Directoryドメインに参加済であること
[root@member ~]# vi /etc/usermin/miniserv.conf ← Usermin設定ファイル編集
#passwd_file=/etc/shadow ← 行頭に#を追加して/etc/shadow認証を無効化(PAM認証にする)

[root@member ~]# vi /etc/usermin/changepass/config ← パスワード変更設定ファイル編集
passwd_cmd=file
↓
passwd_cmd= ← /etc/shadow認証を無効化(PAM認証にする)
smbpasswd=smbpasswd
↓
smbpasswd= ← smbpasswd無効化

[root@member ~]# 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
上記内容に書き換える

[root@member ~]# systemctl restart usermin ← Usermin再起動※CentOS7の場合
[root@member ~]# /etc/rc.d/init.d/usermin restart ← Usermin再起動※CentOS6の場合

UserminでActive Directoryドメイン上のユーザーのパスワードが変更できること



▲このページのトップへ戻る

LPIロゴ Copyright© 2005-2017 fallenangels, All rights reserved.
ご自由にリンクしてください(連絡は不要です)
本ページへのご意見・ご要望、誤字・脱字・リンク切れ等のご連絡はこちらからお願いします