검색

21.5. NIS에서 IdM으로 마이그레이션

download PDF
기존 NIS 서버에서 IdM(Identity Management)으로 마이그레이션하려면 다음 단계를 수행해야 합니다.

21.5.1. IdM에서 Netgroup Entries 준비

마이그레이션하기 전에 현재 NIS 서버에서 관리 중인 ID를 확인합니다.
사용자 항목
NIS에서 제공하는 사용자 정보를 사용하고 있는 애플리케이션 확인. sudo 와 같은 일부 유틸리티에는 NIS netgroups가 필요하지만 다른 일부 유틸리티에서는 일반 UNIX 그룹을 사용할 수 있습니다.
마이그레이션하려면 다음을 수행합니다.
  1. IdM에 해당 사용자 계정을 생성합니다. 21.5.3.1절. “사용자 항목 마이그레이션” 참조하십시오.
  2. 또한 netgroups가 필요한 경우:
    1. 네트그룹을 추가합니다. 21.3.1절. “Netgroup 추가” 참조하십시오.
    2. 사용자를 netgroup에 추가합니다. 21.5.3.4절. “Netgroup Entries 마이그레이션” 참조하십시오.
호스트 항목
IdM에서 호스트 그룹을 생성하면 해당 shadow NIS 그룹이 자동으로 생성됩니다. 이 shadow NIS 그룹에서 ipa netgroup-* 명령을 사용하지 마십시오. ipa netgroup-* 명령을 사용하여 netgroup-add 명령을 통해 생성된 기본 netgroups만 관리합니다.
직접 변환의 경우
모든 사용자 및 호스트 항목에 동일한 이름을 사용해야 하는 경우 IdM에서 동일한 이름을 사용하여 항목을 생성할 수 있습니다.
  1. netgroup에서 참조한 모든 사용자에 대한 항목을 만듭니다.
  2. netgroup에서 참조되는 모든 호스트에 대한 항목을 만듭니다.
  3. 원래 netgroup과 동일한 이름으로 netgroup을 만듭니다.
  4. 사용자 및 호스트를 netgroup의 직접 구성원으로 추가합니다. 사용자와 호스트가 그룹 또는 호스트 그룹의 구성원인 경우 이러한 그룹을 netgroup에 추가할 수도 있습니다.

21.5.2. ID 관리에서 NIS Listener 활성화

21.5.3. 기존 NIS 데이터 내보내기 및 가져오기

NIS 서버에는 사용자, 그룹, 호스트, 네트그룹 및 자동 마운트 맵에 대한 정보가 포함될 수 있습니다. 이러한 항목 유형을 IdM로 마이그레이션할 수 있습니다.
다음 섹션에서는 ypcat 명령을 사용하여 현재 NIS 서버의 데이터를 내보내고 해당 ipa *-add 명령을 사용하여 출력을 IdM으로 가져옵니다.
  • 마이그레이션 스크립트에서 사용된 ypcat 명령을 제공하므로 yp-tools 패키지를 설치해야 합니다.
    [root@nis-server ~]# yum install yp-tools -y

21.5.3.1. 사용자 항목 마이그레이션

NIS passwd 맵에는 이름, UID, 기본 그룹, GECOS, 쉘 및 홈 디렉터리와 같은 사용자에 대한 정보가 포함되어 있습니다. 이 데이터를 사용하여 NIS 사용자 계정을 IdM으로 마이그레이션합니다.
  1. 선택 사항: 취약한 암호 지원이 필요한 경우 21.5.4절. “NIS 사용자 인증을 위한 Weak Password Hashing 활성화” 을 참조하십시오.
  2. 다음 콘텐츠를 사용하여 /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
  3. IdM admin 사용자로 인증합니다.
    [root@nis-server ~]# kinit admin
  4. 스크립트를 실행합니다. 예를 들어 다음과 같습니다.
    [root@nis-server ~]# sh /root/nis-users.sh nisdomain nis-master.example.com
    참고
    이 스크립트는 이름, 성에 하드 코딩된 값을 사용하고 암호를 passw0rd1 로 설정합니다. 사용자는 다음 로그인 시 임시 암호를 변경해야 합니다.

21.5.3.2. 그룹 항목 마이그레이션

NIS 그룹 맵에 는 그룹 이름, GID 또는 그룹 멤버와 같은 그룹에 대한 정보가 포함되어 있습니다. 이 데이터를 사용하여 NIS 그룹을 IdM으로 마이그레이션합니다.
  1. 다음 콘텐츠를 사용하여 /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
  2. IdM admin 사용자로 인증합니다.
    [root@nis-server ~]# kinit admin
  3. 스크립트를 실행합니다. 예를 들어 다음과 같습니다.
    [root@nis-server ~]# sh /root/nis-groups.sh nisdomain nis-master.example.com

21.5.3.3. 호스트 항목 마이그레이션

NIS 호스트 맵에 는 호스트 이름 및 IP 주소와 같은 호스트에 대한 정보가 포함되어 있습니다. 이 데이터를 사용하여 NIS 호스트 항목을 IdM으로 마이그레이션합니다.
  1. 다음 콘텐츠를 사용하여 /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
  2. IdM admin 사용자로 인증합니다.
    [root@nis-server ~]# kinit admin
  3. 스크립트를 실행합니다. 예를 들어 다음과 같습니다.
    [root@nis-server ~]# sh /root/nis-hosts.sh nisdomain nis-master.example.com
    참고
    이 스크립트는 별칭과 같은 특수 호스트 구성을 마이그레이션하지 않습니다.

21.5.3.4. Netgroup Entries 마이그레이션

NIS netgroup 맵에는 netgroups에 대한 정보가 포함되어 있습니다. 이 데이터를 사용하여 NIS netgroups를 IdM으로 마이그레이션합니다.
  1. 다음 콘텐츠를 사용하여 /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 $netgroup $hosts $users $doms"
    		else
    			netgroup=$triple
    			echo "ipa netgroup-add $netgroup --desc=NIS_NG_$netgroup"
    		fi
    	done
    done
  2. IdM admin 사용자로 인증합니다.
    [root@nis-server ~]# kinit admin
  3. 스크립트를 실행합니다. 예를 들어 다음과 같습니다.
    [root@nis-server ~]# sh /root/nis-netgroups.sh nisdomain nis-master.example.com

21.5.3.5. 자동 마운트 맵 마이그레이션

자동 마운트 맵은 위치(상위 항목), 관련 키 및 맵을 정의하는 일련의 중첩 및 상호 관련된 항목입니다. NIS의 마운트 해제 맵을 IdM으로 마이그레이션하려면 다음을 수행합니다.
  1. 다음 콘텐츠를 사용하여 /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(Data Interchange Format)를 생성하고, LDIF 파일을 IdM 디렉터리 서버로 가져옵니다. 자세한 내용은 21.4절. “NIS 클라이언트에 자동 마운트 맵 노출” 의 내용을 참조하십시오.
  2. IdM admin 사용자로 인증합니다.
    [root@nis-server ~]# kinit admin
  3. 스크립트를 실행합니다. 예를 들어 다음과 같습니다.
    [root@nis-server ~]# sh /root/nis-automounts.sh location nisdomain \
         nis-master.example.com map_name

21.5.4. NIS 사용자 인증을 위한 Weak Password Hashing 활성화

Directory Server 구성 요소의 기본 설정을 사용하여 userPassword 속성에 저장된 암호는 SSHA(Secure hash algorithm)를 사용하여 해시됩니다. 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는 기존 암호 해시를 변환하지 않습니다. 서버는 새 암호 스토리지를 스토리지 구성표를 변경한 후에 설정된 암호에만 적용합니다.
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.