Windows AD(LDAP)認証Linuxにログインする方法

更新日 2017-04-08 (土) 05:35:26

Vine6.xのSamba の winbind を利用する方法ではADの設定を変更することなく、Linux側のsmb.conf と pam と nss の設定だけで利用できる

事前設定

  • DNSをWindowsに向ける

/etc/resolv.conf

# Generated by NetworkManager
domain ism21.net
search ism21.net
nameserver 192.168.10.65   ← Windows Server の DNS

resolv.confはNetworkManagerによりOS起動時に書き換わるときは以下も設定

/etc/sysconfig/network-scripts/ifcfg-Auto_eth1

HWADDR=00:0C:29:8D:48:1E
TYPE=Ethernet
BOOTPROTO=dhcp
DEFROUTE=yes
PEERDNS=no
PEERROUTES=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="Auto eth1"
UUID=f867dc55-2cee-447a-a8f8-3610d6e5365b
ONBOOT=yes
DEVICE=Auto_eth1
USERCTL=no
DNS1=192.168.10.100 ←ここ
NM_CONTROLLED=yes
  • WINSサーバの動作も確認しておく

Samba のインストール/設定

以下rpmをインストール

  • samba-3.6.22-1vl6.x86_64
  • samba-winbind-3.6.22-1vl6.x86_64
  • samba-common-3.6.22-1vl6.x86_64
  • samba-winbind-clients-3.6.22-1vl6.x86_64
  • samba-client-3.6.22-1vl6.x86_64

sambaの設定

''/etc/samba/smb.conf

# ----------------------- Network-Related Options -------------------------

;;      workgroup = MYGROUP
        workgroup = VMW     ← AD Domainを指定
       server string = Samba Server Version %v

;       netbios name = MYSERVER

;       interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24
;       hosts allow = 127. 192.168.12. 192.168.13.


# ----------------------- Standalone Server Options ------------------------


;;      security = user      ← コメントアウト
;;      passdb backend = tdbsam   ← コメントアウト 



# ----------------------- Domain Members Options ------------------------


        security = domain    ←  domainというキーワードを指定
;       security = ads
;       passdb backend = tdbsam
;       realm = MY_REALM
        realm = VMW.ISM21.NET   ←  DomainのFQDNを指定

;       password server = <NT-Server-Name>
        password server = VMWIN2008R2   ←  Domainサーバを指定

##[global]の最後に以下を追加

## Edit By JE2ISM

    idmap uid = 40000-50000    ←ログインするユーザ名に割り当てる 
                                 UID の範囲を指定Windows SID から自動計算
                                 LinuxのUIDとの重複を避ける
    idmap gid = 40000-50000    ←同じようにLinuxのGIDとの重複を避ける
    template homedir = /home/%U   ←初めてのログイン時に作成するhomeディレクトを指定
    template shell = /bin/bash    ←ログインシェルを指定
    winbind use default domain = yes
;    winbind separator = +
    winbind cache time = 15    ←winbindd がユーザ及びグループの情報をキャッシュする秒数
    encrypt passwords = yes    ←暗号化パスワードを使用するか否かを指定 かならず "yes"
    wins server = 192.168.10.65 ←WINS サーバの IP アドレスを指定します




#============================ Share Definitions ==============================

[homes]

nssの設定

/etc/nsswitch.conf

passwd:     files winbind   ←winbindを追加
shadow:     files
group:      files winbind   ←winbindを追加

PAMの設定

注)「account sufficient pam_winbind.so」(a)のsufficient→required」にしたら winbindが起動しなくなってはまった

/etc/pam.d/system-auth

#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth        required      pam_env.so
auth        sufficient    pam_unix.so nullok try_first_pass
auth        requisite     pam_succeed_if.so uid >= 500 quiet
#
auth        sufficient    pam_winbind.so use_first_pass  ←この行を追加
auth        required      pam_deny.so

account     required      pam_unix.so
#
account     sufficient    pam_winbind.so   ←この行を追加(a)
account     sufficient    pam_localuser.so
account     sufficient    pam_succeed_if.so uid < 500 quiet
account     required      pam_permit.so

password    requisite     pam_cracklib.so try_first_pass retry=3 type=
password    sufficient    pam_unix.so md5 shadow nullok try_first_pass use_authtok
password    required      pam_deny.so

session     optional      pam_keyinit.so revoke
session     required      pam_limits.so
session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session     required      pam_unix.so
#
session     required      pam_mkhomedir.so skel=/etc/skel umask=0022   ←この行を追加

ADと接続

マシンアカウント作成

# net rpc join -S VMWIN2008R2 -w VMW -U JE2ISM
Enter JE2ISM's password:
Joined domain VMW.
  • -S:Windows ドメインサーバ名
  • -w:ドメイン名
  • -U:ドメインAdministratorsのユーザ

FSNOを転送したときも新しいサーバに上記のようにアカウント作成が必要かも

Windowsの「ADユーザとコンピュータ」で作成してもOK

LinuxをADと接続

# net ads join -U JE2ISM
Enter JE2ISM's password:
Using short domain name -- VMW
Joined 'LOCALHOST' to dns domain 'vmw.ism21.net'
net_update_dns_internal: Failed to connect to our DC! ← このメッセージは問題ないみたい
DNS update failed! ← このメッセージは問題ないみたい
net [ads|rap|rpc] [-w NetBIOS名 | --workgroup=NetBIOS名] [-W NetBIOS名 | --myworkgroup=NetBIOS名] \
[-U ユーザー名[%パスワード] | --user=ユーザー名[%パスワード]] [-I IPアドレス | --ipaddress=IPアドレス] \
[-p ポート番号 | --port=ポート番号] [-n NetBIOS名 | --myname=NetBIOS名] \
[-s SMB設定ファイル名 | --configfile=SMB設定ファイル名] [-S NetBIOS名 | --server=NetBIOS名] \
[-l | --long] [-P | --machine-pass] [-d デバッグ・レベル | --debuglevel=デバッグ・レベル] 
または 
net [-V | --version] 
または 
net [-h | --help} 

ads|rap|rpcは接続に使うプロトコルを指定する。adsは「Active Directory」を意味しておりKerberos認証での接続を試みる。rapは「remote administration protocol」を指し,Windows 9x系およびWindows NT 3.x系で使っている認証方式で接続する。rpcは「MS-RPC」を意味しており,Windows NTと互換性のある接続を試みる。このオプションを指定しなかった場合,netコマンドはプロトコルを自動判別して接続を試みる。

  • 接続できない場合はDNSがWindowsに向いているか確認する。
  • Kerberos認証なのでWindowsサーバとの時間差が5分以内にはする

接続確認

# wbinfo -t
checking the trust secret for domain VMW via RPC calls succeeded
# net ads info
LDAP server: 192.168.10.100
LDAP server name: win2012r2-fsmo.vmw.ism21.net
Realm: VMW.ISM21.NET
Bind Path: dc=VMW,dc=ISM21,dc=NET
LDAP port: 389
Server time: 金, 07  4月 2017 22:30:15 JST
KDC server: 192.168.10.100
Server time offset: -770
#  wbinfo -u
administrator
guest
krbtgt
yokada
 (略)
testuser2
helpdesk
tyamada3
mfilter
ghaken1
linuxuser1

サービスの起動

# /etc/rc.d/init.d/smb start
SMBサービスを起動中:                                            [  OK  ]
# /etc/rc.d/init.d/winbind start
Winbindサービスを起動中:                                        [  OK  ]
# ps ax
(略)
1970 ?        Ss     0:00 smbd -D
1983 ?        S      0:00 winbindd
1987 ?        S      0:00 winbindd
1997 ?        S      0:00 smbd -D

あとはTeratermでログインできる

参考


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-04-08 (土) 05:35:26 (562d)