강좌
클라우드/리눅스에 관한 강좌입니다.
해킹&보안 분류

리눅스마스터1급 : NIS 설정 및 활용- NIS 서버 설치

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

리눅스마스터1: NIS 설정 및 활용- NIS 서버 설치

 

 

 

NIS는 대부분의 리눅스 배포판에서 패키지 형태로 제공되며, 설치 및 업데이트 도구를 통해 쉽게 설치할 수 있다.

 

 

 

다음과 같은 방법으로 설치하자.

 

 

 

 

 

yum install ypserv

 

 

 

 

 

 

NIS Master 서버 설정

 

 

NIS 도메인 설정 및 hostname 설정

 

 

 

 

 

 

[root@SULinux-64Bit ~]# ypdomainname sulinux.net

[root@SULinux-64Bit ~]# nisdomainname

sulinux.net

 

 

 

 

 

 

 

위와 같이 ypdomainname 명령어로 도메인 이름을 설정한다.

 

 

 

여기서 도메인 이름은 꼭 DNS 도메인일 필요는 없다.

 

 

 

 

 

 

 

 

[root@SULinux-64Bit sysconfig]# hostname nis.sulinux.net

[root@SULinux-64Bit sysconfig]# hostname

nis.sulinux.net

 

 

 

 

 

서버의 호스트네임을 설정한다.

 

 

 

여기서 설정된 호스트 이름이 NIS Slave서버 및 NIS 클라이언트가 참조하는 NIS Master 이름이 된다.

 

 

 

 

 

위와 같이 설정하였다면, 서버 부팅 후에도 위 사항이 적용될 수 있게 다음과 같이 설정파일(/etc/sysconfig/network)에 다음 내용을 수정 및 추가 해 준다.

 

 

 

 

 

 

 

 

 

NISDOMAIN=sulinux.net

HOSTNAME=nis.sulinux.net

 

 

 

 

 

설정한 호스트네임에 대한 IP를 호스트설정파일(/etc/hosts)에 설정한다.

 

 

 

여기서 주의할 점은 아래 설정하는 내용이 설정파일의 최 상단에 들어가야 한다.

 

 

 

그렇지 않으면, ypinit 과정에서 원하지 않는 호스트에 대한 설정을 만나게 될 것이다.

 

 

 

 

 

 

 

 

 

192.168.0.129 nis.sulinux.net

 

 

 

 

 

 

NIS 서버에 대한 보안 설정

NIS서버에 대해 접속할 수 있는 NIS Slave 서버 및 NIS 클라이언트에 대한 IP 대역을 /var/yp/securenets 파일에 설정한다.

 

 

 

 

 

 

 

 

 

255.255.255.255 127.0.0.1

255.255.255.0 192.168.0.0

 

 

 

 

 

 

 

위 설정 내용은 127.0.0.1(localhost)에서 접근가능하며, 192.168.0.xxx 에서 NIS 서버에 대해 접근 가능하게 설정하는 것이다.

 

 

 

여기서 주의할 점은 localhost 127.0.0.1에 대한 접근을 허용하지 않으면, NIS 클라이언트에서 사용자 비밀번호를 변경하였을 경우 rpc.yppasswdd 에서 ypserv에 신호를 보내지 못해 바로 적용되지 않는 문제가 있다.

 

 

 

 

NIS 데이터베이스()생성에 대한 설정

 

 

예전에는 passwd파일에 비밀번호를 함께 저장하였으나 보안상의 문제로 모든 리눅스에서 비밀번호를 shadow 파일에 저장한다.

 

 

 

NIS 서버의 기본 설정은 shadow 파일을 사용하지 않고 passwd 데이터베이스 파일에 합치는 설정이지만, shadow를 따로 생성하도록 /var/yp/Makefile 파일을 다음과 같이 수정한다.

 

 

 

 

 

 

 

 

 

# MERGE_PASSWD=true|false

MERGE_PASSWD=true

#===> 수정 ==>

MERGE_PASSWD=false

 

# MERGE_GROUP=true|false

MERGE_GROUP=true

#===> 수정 ==>

MERGE_GROUP=false

 

 

all: passwd group hosts rpc services netid protocols mail \

#===> 수정 ==>

all: passwd shadow group hosts rpc services netid protocols mail \

 

 

 

 

 

 

 

 

NIS 서버 시작

 

 

NIS 서버에서 필요한 portmap 서비스, NIS 서버 ypserv 서비스, NIS 비밀번호 변경을 위해 필요한 yppasswdd 서비스, NIS Slave에서 NIS Master의 데이터베이스를 가져오기 위해 필요한 ypxfrd 서비스를 모두 시작하고, 서버 부팅시 자동시작 될 수 있게 다음과 같이 설정한다.

 

 

 

 

 

 

 

 

 

[root@SULinux-64Bit sysconfig]# service portmap start

portmap ()를 시작 중: [ OK ]

[root@SULinux-64Bit sysconfig]# service ypserv start

YP 서버 서비스를 시작 중: [ OK ]

[root@SULinux-64Bit sysconfig]# service yppasswdd start

YP passwd서비스를 시작 중: [ OK ]

[root@SULinux-64Bit sysconfig]# service ypxfrd start

YP map서버를 시작 중: [ OK ]

 

[root@SULinux-64Bit sysconfig]# chkconfig portmap on

[root@SULinux-64Bit sysconfig]# chkconfig ypserv on

[root@SULinux-64Bit sysconfig]# chkconfig yppasswdd on

[root@SULinux-64Bit sysconfig]# chkconfig ypxfrd on

 

 

 

 

 

 

 

 

 

NIS Master 서버 초기화

 

 

 

 

 

 

[root@SULinux-64Bit yp]# /usr/lib64/yp/ypinit -m

 

At this point, we have to construct a list of the hosts which will run NIS

servers. nis.sulinux.net 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: nis.sulinux.net

next host to add: ## Control 키와 D 키를 누른다.

 

 

 

The current list of NIS servers looks like this:

 

nis.sulinux.net

 

Is this correct? [y/n: y] y

We need a few minutes to build the databases...

Building /var/yp/sulinux.net/ypservers...

Running /var/yp/Makefile...

gmake[1]: Entering directory `/var/yp/sulinux.net'

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 netid.byname...

Updating protocols.bynumber...

Updating protocols.byname...

Updating mail.aliases...

gmake[1]: Leaving directory `/var/yp/sulinux.net'

 

nis.sulinux.net has been set up as a NIS master server.

 

Now you can run ypinit -s nis.sulinux.net on all slave server.

 

 

 

 

 

ypinit 명령어로 NIS Master 서버를 초기화 한다.

 

 

 

여기서 "-m"옵션은 NIS Master이며, "-s NIS마스터호스트네임"옵션을 주게 되면, NIS Slave가 된다.

 

 

 

NIS Master 서버에 대한 호스트네임이 "nis.sulinux.net"으로 설정된 것을 확인하고 "<Ctrl>+D"키를 누른다.

 

 

 

설정한 내역이 맞다면, "y"를 눌러 DB를 생성한다.

 

 

 

 

 

테스트 계정 생성

 

 

NIS를 테스트하기 위해 다음과 같이 시스템 계정을 생성하고 비밀번호를 입력하자.

 

 

 

 

 

 

 

[root@SULinux-64Bit sulinux.net]# useradd sulinux

[root@SULinux-64Bit sulinux.net]# passwd sulinux

Changing password for user sulinux.

New UNIX password: <비밀번호입력>

Retype new UNIX password: <비밀번호입력>

passwd: all authentication tokens updated successfully.

 

 

 

 

 

 

 

 

NIS 서버 데이터베이스() 갱신

 

 

시스템계정을 추가 하였다면, 데이터베이스를 갱신해 준다.

 

 

 

 

 

 

 

 

 

[root@SULinux-64Bit yp]# cd /var/yp/

[root@SULinux-64Bit yp]# make

gmake[1]: Entering directory `/var/yp/sulinux.net'

Updating netid.byname...

gmake[1]: Leaving directory `/var/yp/sulinux.net'

 

 

 

 

 

 

strings 명령어로 갱신된 데이터베이스를 확인해 보자.

 

 

 

 

 

 

 

[root@SULinux-64Bit yp]# strings /var/yp/sulinux.net/passwd.byname | grep sulinux

YP_MASTER_NAMEnis.sulinux.netYP_INPUT_NAME/etc/passwdYP_OUTPUT_NAME/var/yp/sulinux.net/passwd.bynameYP_LAST_MODIFIED1368924178mysqlmysql:x:500:500::/usr/local/mysql:/bin/bashsulinuxsulinux:x:501:501::/home/sulinux:/bin/bash

 

 

 

 

 

 

 

위 결과와 같이, "sulinux"계정에 대한 정보가 들어간 것을 확인 할 수 있다.

 

 

 

 

 

NIS 서버의 데이터 베이스 파일들 확인

 

 

 

 

 

 

 

[root@SULinux-64Bit yp]# tree /var/yp/

/var/yp/

|-- Makefile

|-- binding

|-- nicknames

|-- securenets

|-- sulinux.net

| |-- group.bygid

| |-- group.byname

| |-- hosts.byaddr

| |-- hosts.byname

| |-- mail.aliases

| |-- netid.byname

| |-- passwd.byname

| |-- passwd.byuid

| |-- protocols.byname

| |-- protocols.bynumber

| |-- rpc.byname

| |-- rpc.bynumber

| |-- services.byname

| |-- services.byservicename

| |-- shadow.byname

| `-- ypservers

`-- ypservers

 

 

 

 

 

 

 

 

위와 같이 도메인파일 아래에 여러개의 데이터베이스 파일이 생성된 것을 확인 할 수 있다

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,042 명
  • 현재 강좌수 :  35,846 개
  • 현재 접속자 :  104 명