Linux端末をＡＤ参加させる

#Linux端末をＡＤ参加させる



##  実施環境

* WindowsServer2012R
　　* ドメイン名　kokeshi.local
　　* IPアドレス　192.168.XXX.XXX

* CentOS6.6


## AD鯖の構築　割愛
	
* インストールしてドメイン参加できる状態が前提
* よってDNSも構築済
	

##  Linux側の設定
  
* リゾルバの設定
* samba-clientのインストール
* krb5.confの編集
* smb.confの編集
* sssd.confの作成、および編集


## 書留
	
* WindowsServer2012R2からUnixID管理ツールをAD側では入れる必要がなくなった
* CentOS6ならネットワークマネージャは切っておく。（リゾルバが書き換わってて死ぬかと思った。あとeth0も死んだ)

## インストール項目

* sssd, sssd-ad
 * SSSDのパッケージが用意されているので、それを導入する。sssd-adという、Active Directoryに対応するパッケージがあるので、それも入れる。


* krb5-workstation
 * 認証にKerberosを使用するため、Kerberos関連のパッケージを入れる。


* samba-client
  * ドメインに参加する際に、netコマンドを使用するので入れる。


* oddjob-mkhomdir
 * ドメインユーザがログインした時に、自動的にホームディレクトリを作成してくれるツールも入れる。


```bash:
	
$ sudo yum -y install sssd sssd-ad krb5-workstation samba-client oddjob-mkhomedir

```


##リゾルバの設定

```vim:/etc/resolv.conf
search kokeshi.local
nameserver 192.168.xxx.xxx
```
ADサーバのIPアドレスとドメイン名を設定


##ケロべロス(kerberos)の設定

```vim: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 = KOKESHI.LOCAL
 	dns_lookup_realm = true
 	dns_lookup_kdc = true
 	ticket_lifetime = 24h
 	renew_lifetime = 7d
 	forwardable = true
 	rdns =false

	[realms]
	KOKESHI.COM = {
  	kdc = zmksrv.kokeshi.local
  	admin_server = zmksrv.kokeshi.local
	}

 	KOKESHI.LOCAL = {
 	}

```

##Sambaの設定

```vim:smb.conf

　　workgroup = kokeshi
   realm = KOKESHI.LOCAL
   security = ads
   winbind use default domain = false
   winbind offline logon = false

   client signing =yes
   client use spnego=yes
   kerberos method =secrets and keytab  
   log file = /var/log/samba/%m.log
```

##ドメインに参加	

```bash:
$ net ads join -U administrator

```


```
Enter administrator's password:[administratorのパスワードを入力]
Using short domain name -- EXAMPLE
Joined 'KOKESHI' to dns domain 'kokeshi.local'
No DNS domain configured for jump. Unable to perform DNS Update.
DNS update failed: NT_STATUS_INVALID_PARAMETER
```
faild って出るけど問題なくドメイン参加は出来た模様

##SSSDの有効化
authconfigコマンドを使って、SSSDを使うように設定する。また、合わせてmkhomedirも有効化する。
	
```
# authconfig --enablesssd --enablesssdauth --enablemkhomedir --update

```

authconfigコマンドとは
	システム認証に必要なすべての構成ファイルおよびサービスを更新するためのコマンド。

参考URL:
http://www-01.ibm.com/support/knowledgecenter/SS6MER_9.1.0/com.ibm.tivoli.tem.doc_9.1/Platform/Config/c_using_the_authconfig_command_l.html?lang=ja

## SSSDの設定
```
$vim /etc/sssd/sssd.conf
```
sssd.confを作成する

下記の設定を流す

``` vim:/etc/sssd/sssd.conf
config_file_version = 2
domains = kokeshi.local
services = nss, pam
debug_level = 0

[nss]
filter_group=root
filter_users=root
shell_fallback=/bin/bash
allowed_shells = /bin/bash
fallback_homedir = /home/%u
[pam]


[domain/kokeshi.local]
default_shell = /bin/bash
override_homedir = /home/%d/%u

id_provider = ad
ad_server = zmksrv.kokeshi.local
ad_hostname = zmksrv.kokeshi.local
auth_provider = ad
chpass_provider = ad
access_provider = ad
ldap_schema = ad
ldap_id_mapping = True
cache_credentials = true
ldap_access_order = expire
ldap_account_expire_policy = ad
ldap_force_upper_case_realm = true
```


sssd.confのパーミッションを下記のように設定する。

```bash
$ chown root:root /etc/sssd/sssd.conf
```
```bash
$ chmod 0600 /etc/sssd/sssd.conf
```

* ここでユーザ情報を引く
id test
uid=1128601107(test) gid=1128600513(domain users) 所属グループ=1128600513(domain users)

とれた

sshでもログインできる！

わーい！


## 初回ログイン時に自動的にディレクトリが作成されるようにする

以下の内容を追記

```vim:/etc/sssd/sssd.conf
[domain/kokeshi.local]
override_homedir = /home/%d/%u
[nss]
fallback_homedir = /home/%u

```



%dは、ドメイン名、%uはユーザ名が補間される

```bash:
$ service sssd restart 
```
再起動


```
[test@zmk ~]$ pwd
/home/kokeshi.local/test
```
ホームディレクトリができた。

## デフォルトのシェル指定

以下の内容を

```vim:/etc/sssd/sssd.conf
[domain/kokeshi.local]
default_shell = /bin/bash
[nss]_
shell_fallback = /bin/sh
allowed_shells = /bin/bash
```


自分のメモ書き程度なのでざっくりとしてますが…。
ほんとざっくりざっくり…。
暇があればまた改定していこうかなと…。