Show Table of Contents
このページには機械翻訳が使用されている場合があります (詳細はこちら)。
21.5. NIS から IdM への移行
既存の NIS サーバーから Identity Management (IdM) に移行するには、以下のステップを実行します。
21.5.1. IdM でのネットグループエントリーの準備
移行前に、現行の NIS サーバーで管理されている ID を確認します。
- ユーザーエントリー
- NIS が提供しているユーザー情報を使用しているアプリケーションを判定します。
sudo
などのユーティリティーは NIS netgroup を必要としますが、通常の UNIX グループを使用できるものもあります。移行は、以下の手順で実行します。- 対応するユーザーアカウントを IdM に作成します。「ユーザーエントリーの移行」 を参照してください。
- さらに netgroup が必要な場合は、以下を実行します。
- netgroup を追加します。「Netgroup の追加」 を参照してください。
- ユーザーを netgroup に追加します。「Netgroup エントリーの移行」 を参照してください。
- ホストエントリー
- IdM でホストグループを作成する際、一致するシャドウ NIS グループが自動的に作成されます。これらのシャドウ NIS グループには、
ipa netgroup-*
コマンドは使用しないでください。ipa netgroup-*
は、netgroup-add
コマンドで作成した native ネットグループをマージするときにのみ使用してください。 - 直接変換の場合
- ユーザーおよびホストエントリーですべて同じ名前を使用する必要がある場合は、IdM 内の同一名を使用してエントリーを作成します。
- netgroup で参照されているユーザーすべてについてエントリーを作成します。
- netgroup で参照されているホストすべてについてエントリーを作成します。
- 元の netgroup と同じ名前の netgroup を作成します。
- ユーザーとホストをこの netgroup の直接のメンバーとして追加します。ユーザーおよびホストがグループまたはホストグループのメンバーである場合は、これらのグループを netgroup に追加します。
21.5.2. Identity Management で NIS リスナーを有効にする
「Identity Management で NIS を有効にする」 を参照してください。
21.5.3. 既存 NIS データのインポートおよびエクスポート
NIS サーバーには、ユーザー、グループ、ホスト、netgroup、および自動マウントマップの情報が含まれます。これらのエントリータイプはいずれも IdM に移行することができます。
以下のセクションでは、
ypcat
コマンドを使ってデータをNIS サーバーからエクスポートし、その出力を使用して対応する ipa *-add
コマンドでエントリーを IdM にインポートします。
21.5.3.1. ユーザーエントリーの移行
NIS
passwd
マップには、UID、プライマリーグループ、GECOS、シェル、およびホームディレクトリーなどのユーザー情報が含まれます。このデータを使用して NIS ユーザーアカウントを IdM に移行します。
- オプションで、弱いパスワードのサポートが必要な場合は、「NIS ユーザー認証用に脆弱なパスワードハッシュを有効にする」 を参照してください。
- 以下のコンテンツで
/root/nis-users.sh
スクリプトを作成します。#!/bin/sh # $1 is the NIS domain, $2 is the NIS master server ypcat -d $1 -h $2 passwd > /dev/shm/nis-map.passwd 2>&1 IFS=$'\n' for line in $(cat /dev/shm/nis-map.passwd) ; do IFS=' ' username=$(echo $line | cut -f1 -d:) # Not collecting encrypted password because we need cleartext password # to create kerberos key uid=$(echo $line | cut -f3 -d:) gid=$(echo $line | cut -f4 -d:) gecos=$(echo $line | cut -f5 -d:) homedir=$(echo $line | cut -f6 -d:) shell=$(echo $line | cut -f7 -d:) # Now create this entry echo passw0rd1 | ipa user-add $username --first=NIS --last=USER \ --password --gidnumber=$gid --uid=$uid --gecos=$gecos --homedir=$homedir \ --shell=$shell ipa user-show $username done
- IdM
admin
ユーザーとして認証します。[root@nis-server ~]# kinit admin
- 以下のようにスクリプトを実行します。
[root@nis-server ~]# sh /root/nis-users.sh nisdomain nis-master.example.com
注記
このスクリプトはハードコーディングされた値を性、名に使用し、パスワードをpassw0rd1
に設定します。ユーザーは次回ログイン時にこのパスワードを変更する必要があります。
21.5.3.2. グループエントリーの移行
NIS
group
マップには、グループ名、GID、グループメンバーなどのグループ情報が含まれます。このデータを使用して NIS グループを IdM に移行します。
- 以下のコンテンツで
/root/nis-groups.sh
スクリプトを作成します。#!/bin/sh # $1 is the NIS domain, $2 is the NIS master server ypcat -d $1 -h $2 group > /dev/shm/nis-map.group 2>&1 IFS=$'\n' for line in $(cat /dev/shm/nis-map.group); do IFS=' ' groupname=$(echo $line | cut -f1 -d:) # Not collecting encrypted password because we need cleartext password # to create kerberos key gid=$(echo $line | cut -f3 -d:) members=$(echo $line | cut -f4 -d:) # Now create this entry ipa group-add $groupname --desc=NIS_GROUP_$groupname --gid=$gid if [ -n "$members" ]; then ipa group-add-member $groupname --users={$members} fi ipa group-show $groupname done
- IdM
admin
ユーザーとして認証します。[root@nis-server ~]# kinit admin
- 以下のようにスクリプトを実行します。
[root@nis-server ~]# sh /root/nis-groups.sh nisdomain nis-master.example.com
21.5.3.3. ホストエントリーの移行
NIS
hosts
マップには、ホスト名や IP アドレスなどのホスト情報が含まれます。このデータを使用して NIS ホストエントリーを IdM に移行します。
- 以下のコンテンツで
/root/nis-hosts.sh
スクリプトを作成します。#!/bin/sh # $1 is the NIS domain, $2 is the NIS master server ypcat -d $1 -h $2 hosts | egrep -v "localhost|127.0.0.1" > /dev/shm/nis-map.hosts 2>&1 IFS=$'\n' for line in $(cat /dev/shm/nis-map.hosts); do IFS=' ' ipaddress=$(echo $line | awk '{print $1}') hostname=$(echo $line | awk '{print $2}') master=$(ipa env xmlrpc_uri | tr -d '[:space:]' | cut -f3 -d: | cut -f3 -d/) domain=$(ipa env domain | tr -d '[:space:]' | cut -f2 -d:) if [ $(echo $hostname | grep "\." |wc -l) -eq 0 ] ; then hostname=$(echo $hostname.$domain) fi zone=$(echo $hostname | cut -f2- -d.) if [ $(ipa dnszone-show $zone 2>/dev/null | wc -l) -eq 0 ] ; then ipa dnszone-add --name-server=$master --admin-email=root.$master fi ptrzone=$(echo $ipaddress | awk -F. '{print $3 "." $2 "." $1 ".in-addr.arpa."}') if [ $(ipa dnszone-show $ptrzone 2>/dev/null | wc -l) -eq 0 ] ; then ipa dnszone-add $ptrzone --name-server=$master --admin-email=root.$master fi # Now create this entry ipa host-add $hostname --ip-address=$ipaddress ipa host-show $hostname done
- IdM
admin
ユーザーとして認証します。[root@nis-server ~]# kinit admin
- 以下のようにスクリプトを実行します。
[root@nis-server ~]# sh /root/nis-hosts.sh nisdomain nis-master.example.com
注記
このスクリプトでは、エイリアスなどの特定なホスト設定は移行されません。
21.5.3.4. Netgroup エントリーの移行
NIS
netgroup
マップには、netgroup についての情報が含まれます。このデータを使用して NIS netgroup を IdM に移行します。
- 以下のコンテンツで
/root/nis-netgroups.sh
スクリプトを作成します。#!/bin/sh # $1 is the NIS domain, $2 is the NIS master server ypcat -k -d $1 -h $2 netgroup > /dev/shm/nis-map.netgroup 2>&1 IFS=$'\n' for line in $(cat /dev/shm/nis-map.netgroup); do IFS=' ' netgroupname=$(echo $line | awk '{print $1}') triples=$(echo $line | sed "s/^$netgroupname //") echo "ipa netgroup-add $netgroupname --desc=NIS_NG_$netgroupname" if [ $(echo $line | grep "(," | wc -l) -gt 0 ]; then echo "ipa netgroup-mod $netgroupname --hostcat=all" fi if [ $(echo $line | grep ",," | wc -l) -gt 0 ]; then echo "ipa netgroup-mod $netgroupname --usercat=all" fi for triple in $triples; do triple=$(echo $triple | sed -e 's/-//g' -e 's/(//' -e 's/)//') if [ $(echo $triple | grep ",.*," | wc -l) -gt 0 ]; then hostname=$(echo $triple | cut -f1 -d,) username=$(echo $triple | cut -f2 -d,) domain=$(echo $triple | cut -f3 -d,) hosts=""; users=""; doms=""; [ -n "$hostname" ] && hosts="--hosts=$hostname" [ -n "$username" ] && users="--users=$username" [ -n "$domain" ] && doms="--nisdomain=$domain" echo "ipa netgroup-add-member $hosts $users $doms" else netgroup=$triple echo "ipa netgroup-add $netgroup --desc=NIS_NG_$netgroup" fi done done
- IdM
admin
ユーザーとして認証します。[root@nis-server ~]# kinit admin
- 以下のようにスクリプトを実行します。
[root@nis-server ~]# sh /root/nis-netgroups.sh nisdomain nis-master.example.com
21.5.3.5. 自動マウントマップの移行
自動マウントマップは、場所 (親エントリー) と関連のキーおよびマップを定義する入れ子および相互関連のエントリーになります。以下の手順で NIS 自動マウントマップを IdM に移行します。
- 以下のコンテンツで
/root/nis-automounts.sh
スクリプトを作成します。#!/bin/sh # $1 is for the automount entry in ipa ipa automountlocation-add $1 # $2 is the NIS domain, $3 is the NIS master server, $4 is the map name ypcat -k -d $2 -h $3 $4 > /dev/shm/nis-map.$4 2>&1 ipa automountmap-add $1 $4 basedn=$(ipa env basedn | tr -d '[:space:]' | cut -f2 -d:) cat > /tmp/amap.ldif <<EOF dn: nis-domain=$2+nis-map=$4,cn=NIS Server,cn=plugins,cn=config objectClass: extensibleObject nis-domain: $2 nis-map: $4 nis-base: automountmapname=$4,cn=$1,cn=automount,$basedn nis-filter: (objectclass=*) nis-key-format: %{automountKey} nis-value-format: %{automountInformation} EOF ldapadd -x -h $3 -D "cn=Directory Manager" -W -f /tmp/amap.ldif IFS=$'\n' for line in $(cat /dev/shm/nis-map.$4); do IFS=" " key=$(echo "$line" | awk '{print $1}') info=$(echo "$line" | sed -e "s#^$key[ \t]*##") ipa automountkey-add nis $4 --key="$key" --info="$info" done
このスクリプトでは NIS 自動マウント情報がエクスポートされ、LDAP データ変換形式 (LDIF) の自動マウントの場所と関連マップが生成され、LDIF ファイルが IdM Directory Server にインポートされます。詳細については、「自動マウントマップの NIS クライアントへの公開」 を参照してください。 - IdM
admin
ユーザーとして認証します。[root@nis-server ~]# kinit admin
- 以下のようにスクリプトを実行します。
[root@nis-server ~]# sh /root/nis-automounts.sh location nisdomain \ nis-master.example.com map_name
21.5.4. NIS ユーザー認証用に脆弱なパスワードハッシュを有効にする
Directory Server コンポーネントのデフォルト設定を使用すると、
userPassword
属性に保存されているパスワードはソルト付き SHA を使ってハッシュ化されます。お使いの NIS クライアントでパスワード用に脆弱なハッシュ化アルゴリズムが必要な場合は、パスワード保存スキームの設定を更新します。
脆弱なパスワードハッシュ化スキームの有効化は、
userPassword
属性に保存されているパスワードにのみ影響があります。Kerberos はこの属性を使用しないので、この設定は Kerberos 暗号化に影響しないことに留意してください。
たとえば、
CRYPT
ハッシュ化パスワードを有効にするには、以下を実行します。
[root@server ~]# ldapmodify -D "cn=Directory Manager" -W -p 389 -h ipaserver.example.com -x dn: cn=config changetype: modify replace: passwordStorageScheme passwordStorageScheme: crypt
注記
パスワードハッシュは暗号化解除ができないため、Directory Server は既存のパスワードハッシュを変換しません。サーバーは、ストレージスキームの変更後に設定されたパスワードにのみ、新規パスワードストレージを適用します。
このページには機械翻訳が使用されている場合があります (詳細はこちら)。