목차 1. NIS 2. NIS 구성 시 고려 사항 3. NIS server 설정 4. NIS slave 설정 5. NIS client 설정
1. NIS(Network Information Service)
네트워크 정보 서비스(Network Information Service, NIS)는 썬 마이크로시스템즈(현 Oracle사에 인수됨)의 클라이언트 서버 디렉터리 서비스 프로토콜이며, 컴퓨터 네트워크 위의 컴퓨터들 사이에 있는 사용자와 호스트 이름과 같은 시스템 구성 데이터를 여러 곳에 제공합니다.(출처 wikipedia)
2. NIS 구성 시 고려 사항
NIS는 secure protocol이 없습니다. 이는 네트워크 상에 passwd list가 평문(plain text)로 전송이 되어 쉽게 sniffing이 될 수 있다는 의미입니다. 그러므로, NIS 구성은 매우 제한된 network에서 구성을 해야 합니다.
Private network 상에서 구성할 것
서로 다른 Network 구간에서 연동이 필요할 경우, VPN tunnel을 이용할 것
data를 text 파일로 관리해야 하기 때문에 많은 account를 관리해야 할 경우 권장하지 않음. 꼭 해야 한다면 별도의 관리 프로그램을 만들기를 권장
Multi master 구성이 안됨
참고!NIS+ 는 secure protocol을 지원합니다만, NIS와 NIS+는 별개의 서비스 입니다. 또한, NIS+는 Solaris에서 사용되던 서비스를 Linux에서 사용할 수 있도록 porting이 된 것이 있지만 널리 사용되지 않아 개발이 더디고 문서화가 잘 안되어 있으며, 설정이 복잡하여 리눅스에서는 널리 사용되지 않습니다.
adduser script는 기본으로 MD5 방식의 암호를 생성합니다. 만약 연동할 시스템들이 sha512를 지원하는 버전으로만 구성이 되어 있다면 (예를 들어 CentOS/RHEL 5는 sha512를 지원하지 않습니다.), adduser script의 METHOD 변수 값을 sha512로 수정 하는 것을 권장 합니다.
만약 동작을 하지 않거나 에러 메시지가 나온다면, yum update 명령을 이용하여 shadow-tuils package를 최신 버전으로 업그레이드 하십시오.
!참고
Web server에서도 NIS 인증을 사용하기 위하여 apache 또는 lighttpd, nginx의 nis 모듈을 사용할 계획이라면, shadow system을 사용할 수 없습니다. yp_match call이 non-root 권한에서는 빈 값을 return 하기 때문에 웹서버를 root 권한으로 실행을 해야합니다. 그러므로 shadow system을 사용하지 말고 구성을 하십시오. 또는, 웹서버의 nis 모듈을 사용하지 말고, cronjob으로 ypcat 명령을 이용하여 .htaccess file을 주기적으로 갱신하여 사용하도록 하십시오.
또한, 보안을 고려 한다면 NIS 보다는 ldap을 이용하여 구성하는 것을 고려 하십시오.
3.3.2 /var/yp/Makefile 설정
/var/yp/Makefile 중에서 다음의 설정들을 수정합니다.
# slave NIS를 구성할 것이라면 값을 true로 변경 합니다. 기본값은 false 입니다.# slave NIS를 구성할 것이 아니라면 false로 나두십시오.NOPUSH=true# 인증 통합시에 system uid/gid와 충돌할 경우가 발생할 수 있습니다. 그러므로# 충분한 값을 주도록 합니다. 대략 10000번 이상대를 사용하면 거의 충돌할 일이# 없습니다.# 이 값은 passwd나 group 파일에 지정한 uid나 gid보다 작으면 database에 포함시키지# 않음을 의미합니다.MINUID=10000MINGID=10000# system의 passwd/group 을 사용하지 않을 것이기 때문에, false 로 설정 합니다.MERGE_PASSWD=falseMERGE_GROUP=false# system의 passswd/group을 사용하지 않을 것이기 때문에, 위에서 작업한 디렉토리로# passwd/group file이 위치한 경로를 변경해 줍니다.YPPWDDIR=/var/yp/etc# If you don't want some of these maps built, feel free to comment# them out from this list.# passwd/group 만 다루기 때문에 생성할 DB를 제한 합니다. (제한하지 않으면 설정# 누락으로 DB 생성 실패 되는 경우가 있습니다.) 여기서는 기존의 설정에서# ***shadow*** 추가하고, ***netid***를 제거 하였습니다.all:passwdshadowgrouphostsrpcservicesprotocolsmail \# netgrp shadow publickey networks ethers bootparams printcap netid \# amd.home auto.master auto.home auto.local passwd.adjunct \# timezone locale netmasks
3.3.3 /etc/sysconfig/yppasswdd 설정
/etc/sysconfig/yppasswd 를 다음과 같이 수정 합니다.
[root@an3 ~]$ cat /etc/sysconfig/yppasswd# The passwd and shadow files are located under the specified# directory path. rpc.yppasswdd will use these files, not /etc/passwd# and /etc/shadow.ETCDIR=/var/yp/etc..중략..# Additional arguments passed to yppasswd# 방화벽 설정을 위해 port를 static 하게 설정 합니다.YPPASSWDD_ARGS="--port 836"[root@an3 ~]$
3.4 보안 설정
NIS 질의를 할 수 있는 네트워크 대역을 제한 합니다. 형식은 NETMASK NETWORK 형식으로 설정 합니다. 다음의 설정은 127.0.0.0/8 과 192.168.0.0/24 네트워크에서 NIS 질의에 응답하도록 설정한 것입니다.
[root@an3 ~]$ service rpcbind start[root@an3 ~]$ service ypserv start[root@an3 ~]$ service ypxfrd start[root@an3 ~]$ service yppasswdd start[root@an3 ~]$ # booting 시에 시작 되도록 설정[root@an3 ~]$ systemctl enable rpcbind ypbind ypxfrd yppasswdd
ypinit 명령은, 최초에 한번만 실행을 해 주면 됩니다. 그 이후, passwd (/var/yp/etc/passwd)나 group (/var/yp/etc/group) 파일을 수정 한 후에는 /var/yp 에서 make 명령을 실행하면 database가 갱신이 됩니다.
[root@an3 ~]$ cd /var/yp[root@an3 ~]$ makegmake[1]:Enteringdirectory'/var/yp/KLDP-NIS'gmake[1]:'ypservers'는이미갱신되었습니다.gmake[1]:Leavingdirectory'/var/yp/KLDP-NIS'gmake[1]:Enteringdirectory'/var/yp/KLDP-NIS'Updatingpasswd.byname...Updatingpasswd.byuid...gmake[1]:Leavingdirectory'/var/yp/KLDP-NIS'[root@an3 ~]$
4. NIS slave 설정
master server는 nis1.domain.com, slave server는 nis2.domain.com으로 가정을 합니다.
home directory 생성 실패 시 login을 불허 할 것이라면 required로 설정을 하고, home directory 생성 실패를 하더라도 login을 허락할 것이라면 optional로 설정 하십시오. 위의 예제는 4개의 파일 설정이 모두 동일함으로 password-auth-sc 만 예시를 보여 줍니다.
또한, 인증과 암호 변경을 위하여 password entry에 nis 설정을 추가 합니다. 역시 모든 파일 공통 사항입니다.
system 에 연동이 잘 되었는지 getent 명령으로 확인을 해 봅니다. /etc/passwd 내용 아라애 NIS passwd entry가 추가로 나와야 합니다. NIS에서는 10000 이상의 UID를 사용하므로, 10000대의 UID가 있는지 확인해 보시면 됩니다.
UID 확인을 쉽게 하기 위하여 pwck 명령으로 passwd file을 UID 순서대로 정렬한 후에 getent를 실행 합니다.