리눅스 NIS (Network Information Service)개념 및 계정통합 서버구축 방법
목차
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
SELinux OFF
SELinux 재부팅 하지 않고 OFF 방법
setenforce 0
SELinux 영구적 OFF 방법
SELINUX=enforcing 을 SELINUX=disabled 로 변경 후 저장한다.
vi /etc/sysconfig/selinux
SELinux 상태 확인
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
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