samba4ADドメインに参加しているLinuxマシンにrshでリモートログインしてみる。
その際、kerberos認証を使ってパスワードなしで接続を試みた。

2014y08m02d_140724397.png

マシン構築

2台のマシンがある c2 と c3。最小構成でCentOS6.5をインストール CentOS6#v5460dbe
そして/homeをマウント (c2サイトでの例)

[root@c2 ~]# yum -y install nfs-utils
[root@c2 ~]# /etc/init.d/rpcbind start && chkconfig netfs on
[root@c2 ~]# echo "c:/home /home nfs defaults 0 0" >> /etc/fstab
[root@c2 ~]# echo "c:/Appl /Appl nfs defaults 0 0" >> /etc/fstab
[root@c2 ~]# mkdir /Appl && mount -a

ntp設定

何でもそうなのだが、時計合わせは重要(c2サイトでの例)

[root@c2 ~]# yum -y install sssd ntp samba4-common
[root@c2 ~]# cat << _EOT_ >/etc/ntp.conf
driftfile /var/lib/ntp/drift
server 192.168.0.3
_EOT_
[root@c2 ~]# echo "192.168.0.3" >> /etc/ntp/step-tickers
[root@c2 ~]# chkconfig ntpd on && chkconfig ntpdate on
[root@c2 ~]# /etc/init.d/ntpdate start && /etc/init.d/ntpd start

ドメイン名変更

不要なのかもしれないが、samba4ADドメインの所属にさせておく(c2サイトでの例)

[root@c2 ~]# sed -i 's/HOSTNAME=c2.chaperone.jp/HOSTNAME=c2.cerius.local/' /etc/sysconfig/network
[root@c2 ~]# sed -i 's/search chaperone.jp/search cerius.local/' /etc/resolv.conf
[root@c2 ~]# vi /etc/hosts
127.0.0.1    localhost
192.168.0.23 c2.cerius.local
192.168.0.3  c.cerius.local c
[root@c2 ~]#

samba4ADに参加

yum配布のsambaを使ってsamba4ADに参加します(c2サイトでの例)

[root@c2 ~]# yum -y install sssd ntp samba4-common
[root@c2 ~]# cat << _EOT_ >/etc/samba/smb.conf
[global]
  workgroup = CERIUS
  security = ADS
  realm = CERIUS.LOCAL
  encrypt passwords = yes
  password server = 192.168.0.3
_EOT_
[root@c2 ~]#
[root@c2 ~]# net ads join -Uadministrator

ただし、参加させたいクライアントマシンがsamba4ADDCにDNS登録されない場合がある。
その際はsamba4ADDCにおいて手動で

[root@c ~]#  kinit administrator@CERIUS.LOCAL
[root@c ~]# nsupdate -g
update add c2.cerius.local 3600 in A 192.168.0.24
send
quit
[root@c ~]#

とする

sssdによるユーザアカウント共有

samba4ADDCからユーザ情報の引き出し方法には sssd による keytab 方式を採用した
まずは keytab ファイルをsamba4ADDC(c)で作成して、クライアントマシン(c2)にコピーする。

[root@c ~]# /opt/samba/bin/samba-tool spn list c2$
c2$
User CN=c2,CN=Computers,DC=cerius,DC=local has the following servicePrincipalName:
         HOST/C2
         HOST/c2.cerius.local
[root@c ~]# /opt/samba/bin/samba-tool domain exportkeytab /etc/krb5.c2.keytab --principal=c2$
[root@c ~]# scp /etc/krb5.c2.keytab root@c2:/etc

次に、/etc/sssd/sssd.conf を作成して、authconfig で sssd からもユーザ情報を取得させる
参照:samba4/MemberServer/sssd-keytab#h45043a6

krb5.conf設定

Linuxマシンc2にて、リンクファイル/etc/krb5.keytabを用意して、/etc/krb5.confも調整する

[root@c2 etc]# ln -s /etc/krb5.c2.keytab /etc/krb5.keytab
 
[root@c2 etc]# vi /etc/krb5.conf
[libdefaults]
 default_realm = CERIUS.LOCAL
 dns_lookup_realm = ture                   *samba4ADDCのDNS機能を利用します
 dns_lookup_kdc = true                     *KDCの場所をDNSから採取
 ticket_lifetime = 24h
 renew_lifetime = 7d
 forwardable = true
[root@c2 ~]#

kerberos関係のインストール

[root@c3 ~]# yum install krb5-workstation
[root@c3 ~]# klist -e -k /etc/krb5.c3.keytab
Keytab name: FILE:/etc/krb5.c3.keytab
KVNO Principal
---- --------------------------------------------------------------------------
   1 c3$@CERIUS.LOCAL (des-cbc-crc)
   1 c3$@CERIUS.LOCAL (des-cbc-md5)
   1 c3$@CERIUS.LOCAL (arcfour-hmac)
[root@c3 ~]#

クライアントアプリ

[root@c3 ~]# yum install krb5-appl-clients
[root@c3 ~]# rpm -qali krb5-appl-clients
[root@c3 ~]#

サーバーデーモン

[root@c2 ~]# yum install krb5-appl-servers
[root@c2 ~]# rpm -qali krb5-appl-servers
[root@c2 ~]#

サーバ側でデーモン起動

[root@c2 ~]# chkconfig klogin on
[root@c2 ~]# chkconfig kshell on
[root@c2 ~]# /etc/init.d/xinetd start

っでc3にログイン後、c2にrshでログインしてみる

[illya@c ~]$ ssh  c3
illya@c3's password:
Last login: Thu Jul 31 01:13:03 2014 from c.cerius.local
[illya@c3 ~]$ rsh c2
Last login: Thu Jul 31 01:13:08 from c3.chaperone.jp
[illya@c2 ~]$

とパスワードなしでログインできる。

*もっと手古摺るかな?って思ったけど、意外にすんなり。

エラー

Server rejected authentication エラー発生

[illya@c ~]$ rsh c2
Couldn't authenticate to server: Server rejected authentication (during sendauth exchange)
Server returned error code 60 (Generic error (see e-text))
Error text sent from server: No such file or directory
trying normal rlogin (/usr/bin/rlogin)
^C
[illya@c ~]$

これはrsh接続先に/etc/krb5.keytabが存在しないため。samba4ADDCでkeytabを発行して、それをコピーして /etc/krb5.keytab とするか、リンクを貼っておくこと。

[root@c2 etc]# ln -s /etc/krb5.c2.keytab /etc/krb5.keytab

not authorized エラー発生

[illya@c ~]$ rsh c2
klogind: User illya@CERIUS.LOCAL is not authorized to login to account illya.
trying normal rlogin (/usr/bin/rlogin)
^C
[illya@c ~]$

これは /etc/krb5.conf の[libdefaults]項目内 default_realm の値が間違ってるからかも


トップ   編集 添付 複製 名前変更     ヘルプ   最終更新のRSS
Last-modified: 2014-08-02 (土) 14:13:33 (1084d)