개인/리눅스

[리눅스] 다수의 서버에 대한 인증 프로그램 NIS

OmeGa2 2020. 2. 23. 16:33

NIS가 만들어진 이유

리눅스같은 유닉스계열의 운영체제를 사용하기 위해서는 기본적으로

사용자의 아이디와 패스워드를 입력해 인증을 거쳐야 한다.

 

하나의 서버를 이용하는 경우에는 이런 인증절차가 문제되지는 않지만,

서버의 개수가 수십대가 넘어가는 경우 사용자가 각 서버별로 아이디나 패스워드가 등록되어야 하는데

이는 다소 번거로운 부분도 있지만 사용자가 개인정보를 변경해야 하는 경우,

여러 서버에 있는 개인정보를 모두 바꿔야하는 불편함이 있다.

 

이런 문제를 해결하기 위해 네트워크 기반의 인증서비스가 여럿 등장했다.

네트워크 기반의 인증서비스는 하나의 서버에 사용자에 대한 정보를 저장한 뒤

나머지 서버에게 제공해주는 서비스이며 관련 프로그램으로는 NIS, LDAP 등이 있다.

 

 

 

NIS(Network Information Service)란?

NIS는 네트워크 기반으로 여러가지 정보를 제공해 주는 서비스를 말하는데,

Sun Microsystems 사에서 개발한 프로토콜 중 하나이다.

 

다수의 서버를 운영해야하는 시스템에서 사용자의 계정정보가 모든 서버에 개별로 저장되어

변경하거나 이용하기 불편한 점을 보완하기 위해서 만들어진 네트워크 기반의 인증서비스이다.

 

NIS는 하나의 서버에만 사용자의 계정이나 암호 등을 저장해 두면 이 서버가 다른 시스템과

계정정보를 공유하는 서비스이다.

 

NIS에서는 RPC 를 사용하기 때문에 관련 데몬을 반드시 사용해아하며, 도메인 없이 NIS를 사용하기 위해

/etc/hosts 파일에 등록해서 사용할 수도 있다.

 

RPC (원격 프로시저 호출)

네트워크 서버 프로그램에서 작업코드와 메인 코드를 독립시키는 방식

프로그램 코드 중 네트워크를 연결하는 코드 / 실행을 담당하는 코드로 나눈다.

외부의 프로그램을 실행시킬때 주로 사용한다.

 

 

 

NIS 서버 구성하기

리눅스에서 NIS를 사용하기 위해 먼저 RPC 데몬을 실행한다.

 

1. RPC 관련 데몬 실행

]# etc/rc.d/init.d/rpcbind start

]# service rpcbind start

 

2. DNS 없이 사용하기 위해 hosts 파일 수정

]# vi /etc/hosts

[IP주소]    [server name]

 

 

3. ypserv 패키지 설치 

스크립트 위치 : /etc/rc.d/init.d

]# yum install ypserv

ypserv       : NIS 서버를 운영하는 데몬

yppasswdd : NIS 클라이언트에서 패스워드 변경시에 적용

ypxfrd       : NIS 서버와 클라이언트간의 맵핑속도 관련 데몬

NIS 관련 패키지는 yum 명령을 통해 다운받을 수 있다.

다운로드가 완료되면 /etc/rc.d/init.d 위치에 NIS 데몬 관련 스크립트가 3개 생성된다.

 

 

 

4. 도메인 설정 후 데몬 시작

 

- 도메인 설정

]# nisdomainname [도메인명]

]# vi /etc/sysconfig/network

NISDOMAIN=[도메인명]

NIS에서 사용할 도메인은 보통 nisdomainname 명려을 이용해 지정할 수 있다.

부팅시에 자동으로 적용시키기 위해서는 /etc/sysconfig/network에 관련 도메인을 추가한다.

 

 

- 계정 생성 후 데몬 시작

]# useradd test

]# service ypserv start

]# service yppasswdd start

]# service ypxfrd start

]# ps -aux | grep yp

NIS 클라이언트에서 사용할 계정을 만든 뒤, 관련 데몬(ypserv, yppasswdd, ypxfrd) 3개를

모두 실행하고 작동중인지 ps명령을 통해 확인한다.

 

 

- NIS 정보 갱신

]# cd /var/yp ; make

]# make -C /var/yp

설정한 NIS 서버에서 계정을 추가하거나, 설정을 변경하는 등의 작업 후 관련정보를

갱신하기 위해서는 make 명령을 사용한다.

 

명령을 사용하면 /var/yp 안에 NIS 서버 이름으로 디렉터리가 생성되며, 그 안에는

관련정보가 들어있는 맵 파일이 생성된다.

 

 

 

 

NIS 관련 명령어

 

1. 도메인 확인

]# nisdomainname

]# nisdomainname

= NIS 관련 도메인을 출력한다.

 

]# nisdomainname test.co.kr

= 도메인명을 test.co.kr 로 설정한다.

 

 

2. 서버나 맵 파일명 확인

]# ypwhich

-m : nis 서버의 맵 파일 출력

NIS 클라이언트에서 사용하는 명령어로 NIS 서버와 관련된 맵 파일명을 출력한다.

 

]# ypwhich

= NIS 서버명 출력

 

 

3. 맵파일의 내용 확인

]# ypcat

NIS 클라이언트에서 사용하며 서버의 맵 파일에 대한 내용을 확인할 수 있다.

 

]# ypcat [맵파일명]

= 해당 맵파일 확인

 

]# ypcat passwd

= NIS 서버 사용자와 관련된 정보를 확인할 수 있다.

 

 

4. 설정정보 테스트

]# yptest

NIS 클라이언트에서 관련 설정을 테스트할 수 있다.

도메인명과 맵 파일, 사용자 계정정보 등을 출력한다.

 

 

5. 비밀번호 변경

]# yppasswd

NIS 클라이언트에서 사용하며, 서버에 등록된 사용자의 패스워드를 변경한다.

 

 

6. 쉘 변경

]# ypchsh

NIS 클라이언트에서 서버에 등록된 사용자의 쉘을 변경한다.

 

 

7. 개인정보 변경

]# ypchfn

NIS 클라이언트에서 서버에 등록된 사용자의 정보를 변경한다.