리눅스

리눅스 NIS (Network Information Service)개념 및 계정통합 서버구축 방법

coinAA 2022. 9. 18.

 

 

NIS란?

Network Information Service, NIS는 썬 마이크로시스템즈의 클라이언트 서버 디렉터리 서비스 프로토콜이며, 컴퓨터 네트워크 위의 컴퓨터들 사이에 있는 사용자와 호스트 이름과 같은 시스템 구성 데이터를 여러 곳에 제공한다.

다수의 서버를 운영해야 하는 시스템에서 사용자의 계정 정보가 모든 서버에 개별로 저장되어 변경하거나 이용하기 불편한 점을 보완하기 위해서 만들어진 네트워크 기반의 인증서비스이며, NIS는 하나의 서버에만 사용자의 계정이나 암호 등을 저장해 두면 이 서버가 다른 시스템과 계정 정보를 공유하는 서비스이다.


리눅스 같은 유닉스 계열의 운영체제를 사용하기 위해서는 기본적으로 사용자의 아이디와 패스워드를 입력해 인증을 거쳐야 하는데, 하나의 서버를 이용하는 경우에는 인증절차가 문제 되지는 않지만, 서버의 개수가 수십에서 수백 대가 넘어가는 경우 사용자가 각 서버별로 아이디나 패스워드가 등록되어야 하는 불필요한 관리 포인트가 발생한다. 이러한 문제점은 관리자에게 다소 번거로운 부분도 있지만 사용자가 개인정보까지 변경해야 하는 경우, 여러 서버에 있는 개인정보까지 모두 바꿔야 하는 불편한 관리 포인트가 있다.

 

쉽게 말해 하나의 계정 통합관리 서버를 이용하여 여러 서버들에 같은 계정을 제공하는 서버라고 이해하면 쉽게 이해할 수 있다.

 

NIS Daemon(NIS 데몬)

관련 데몬 데몬 설명
ypserv NIS Server 데몬이다.
ypxfrd NIS Server와 Cilent 간의 NIS map을 전송하는 역할을 한다.
ypbind 모든 NIS Cilent에서 동작하며, NIS Server가 Cilent에게 ypserv로 NIS 요청을 시도한다.
rpc.yppasswd NSI Client의 패스워드를 설정하는 데몬이다.
rpc.ypupdated NIS 마스터에서만 실행한다. 보안 "원격 프로시져 콜"을 사용하고 있는 경우 공용 키 맵을 업데이트한다.

 

 

 

NIS Server 구축

NIS Server 구축 환경 사전 준비

OS 정보 확인

 cat /etc/redhat-release

리눅스 NIS (Network Information Service)개념 및 계정통합 서버구축 방법 - NIS Server 구축 - NIS Server 구축 환경 사전 준비 - OS 정보 확인
cat /etc/redhat-release 결과값

 

SELinux OFF

SELinux 재부팅 하지 않고 OFF 방법

setenforce 0

 

SELinux 영구적 OFF 방법

SELINUX=enforcing 을 SELINUX=disabled 로 변경 후 저장한다.

vi /etc/sysconfig/selinux

리눅스 NIS (Network Information Service)개념 및 계정통합 서버구축 방법 - NIS Server 구축 - NIS Server 구축 환경 사전 준비 - SELinux OFF
vi /etc/sysconfig/selinux 결과값

SELinux 상태 확인

sestatus

리눅스 NIS (Network Information Service)개념 및 계정통합 서버구축 방법 - NIS Server 구축 - NIS Server 구축 환경 사전 준비 - SELinux OFF
sestatus 결과값

 

 

NIS Server 구축

NIS 관련 패키지 설치

yum -y install ypserv ypbind rpcbind

 

NIS 도메인명 설정

nisdomainname [설정할 도메인명]

#설정 도메인 확인
nisdomainname

 

NIS 도메인명 영구 설정

vi /etc/sysconfig/network

#Created by anaconda
NISDOMAIN=[도메인명]

 

NIS Service 시작 및 자동시작 등록

ypbind가 시작되지 않을 수 있으며, 정상적이다. authconfig를 이용하여 NIS 설정 활성화한 후 다시 ypbind만 시작해주면 된다.

#NIS 데몬 자동시작 등록
systemctl enable ypserv yppasswdd ypxfrd ypbind rpcbind

#NIS 데몬 시작
systemctl start ypserv yppasswdd ypxfrd ypbind rpcbind

#NIS 데몬 상태확인
systemctl status ypserv yppasswdd ypxfrd ypbind rpcbind

 

NIS Server Database 초기화

/usr/lib64/yp/ypinit -m 명령어를 입력한 이후 CTRL-D를 눌러 종료하고 y를 입력하면 초기화는 완료된다.

/usr/lib64/yp/ypinit -m

[root@localhost yp]# /usr/lib64/yp/ypinit -m

At this point, we have to construct a list of the hosts which will run NIS
servers.  fork.kldp.org is in the list of NIS server hosts.  Please continue to add
the names for the other hosts, one per line.  When you are done with the
list, type a <control D>.
        next host to add:  nisserver
        next host to add:  <종료를 하기 위하여 CTRL-D 를 누릅니다.>
The current list of NIS servers looks like this:

nisdomain.com

Is this correct?  [y/n: y]  y
We need a few minutes to build the databases...
Building /var/yp/OOPS-NIS/ypservers...
Running /var/yp/Makefile...
gmake[1]: Entering directory `/var/yp/OOPS-NIS'
Updating passwd.byname...
Updating passwd.byuid...
Updating group.byname...
Updating group.bygid...
Updating hosts.byname...
Updating hosts.byaddr...
Updating rpc.byname...
Updating rpc.bynumber...
Updating services.byname...
Updating services.byservicename...
Updating protocols.bynumber...
Updating protocols.byname...
Updating mail.aliases...
gmake[1]: Leaving directory `/var/yp/OOPS-NIS'

nisserver has been set up as a NIS master server.

Now you can run ypinit -s nis1.domain.com on all slave server.
[root@localhost ~]$

 

NIS 정보 갱신

cd /var/yp
make

#위 경로로 이동하지 않고 make 시도
make -C /var/yp

리눅스 NIS (Network Information Service)개념 및 계정통합 서버구축 방법 - NIS Server 구축 - NIS Server 구축 - NIS 정보 갱신리눅스 NIS (Network Information Service)개념 및 계정통합 서버구축 방법 - NIS Server 구축 - NIS Server 구축 - NIS 정보 갱신
/var/yp/ 경로에서 make 결과 / make -C /var/yp 결과

 

authconfig를 이용하여 NIS 설정 활성화

authconfig --enablenis \
                       --nisdomain=[Server Domain] \
                       --nisserver=[Hostname or IP] \
                       --enablemkhomedir \
                       --update
#NIS 데몬 시작
systemctl start ypbind

#NIS 데몬 상태확인
systemctl status ypbind

 

NIS Server 계정 생성

계정 생성 이후에는 반드시 make -C /var/yp 하여 갱신해줘야 한다.

#Client 연동 후 로그인 테스트할 계정 생성
useradd [생성할 유저명]

 

NIS Firewall 방화벽 보안 설정

방화벽 설정을 위해 사용 포트 고정

#아래 경로 편집기로 이동하여 사용포트 고정
vi /etc/sysconfig/network

# Created by anaconda
NISDOMAIN=nisser
YPSERV_ARGS="-p 834"
YPXFRD_ARGS="-p 835"
YPPASSWDD_ARGS="-p 836"

NIS Port Firewall 방화벽 정책 등록

firewall-cmd --permanent --add-service=rpc-bind
firewall-cmd --permanent --add-port=834/tcp
firewall-cmd --permanent --add-port=834/udp
firewall-cmd --permanent --add-port=835/tcp
firewall-cmd --permanent --add-port=835/udp
firewall-cmd --permanent --add-port=836/udp
firewall-cmd --reload

 

NIS Iptable 방화벽 보안 설정

방화벽 설정을 위해 사용 포트 고정

#아래 경로 편집기로 이동하여 사용포트 고정
vi /etc/sysconfig/network

# Created by anaconda
NISDOMAIN=nisser
YPSERV_ARGS="-p 834"
YPXFRD_ARGS="-p 835"
YPPASSWDD_ARGS="-p 836"

 

NIS Port Iptable 방화벽 정책 등록

 

iptables -I INPUT -p tcp -m multiport --dport 111,834:835 -j ACCEPT
iptables -I INPUT -p udp -m multiport --dport 111,834:836 -j ACCEPT

#iptable 방화벽 정책 저장
service iptables save

#서비스 재시작
systemctl restart iptables

 

 

NIS Client 연동

NIS Client 패키지 설치 및 도메인 설정

#NIS 필요 패키지 설치
yum -y install ypbind rpcbind

#NSI 도메인 명 설정
nisdomainname [도메인 명]

#NIS  도메인 명 확인
nisdomainname

 

authconfig를 이용하여 NIS 설정 활성화

authconfig --enablenis \
                       --nisdomain=[Server Domain] \
                       --nisserver=[Hostname or IP] \
                       --enablemkhomedir \
                       --update

 

NIS Client 데몬 재시작

ypbund 데몬이 실행되지 않을 경우 SELinuxd의 상태를 확인 한 후 실행 중일 경우 setenforce 0하여 비활성화 한다.

Client 또한 NIS Server 설정과 마찬가지로 SELinuxd 설정을 비활성화 해야 한다.

systemctl restart ypbind rpcbind

 

NIS Server와 연동 확인

#Client에서 명령어 입력 후 결과값 나오면 성공
ypcat passwd

리눅스 NIS (Network Information Service)개념 및 계정통합 서버구축 방법 - NIS Server 구축 - NIS Client 연동 - NIS Server와 연동 확인
ypcat passwd 결과값

댓글