====== NIS 구축하기 ======
====== 설치하기 ======
두가지로 설치하는 방법이 있는데 첫 번째 방법은 RPM으로 설치하는 방법과 소스로 까는 방법이다. 필자는 개인적으로 여기선 RPM 설치방법을 주로 다룰 것이다. 소스로 깔고 싶다면 http://www.suse.de/~kukuk/nis/download.html 여기서 다운 받기를 권한다.
설치하는 방법은 모두 알 것이다. 압축풀고 configure, make, make install 이다.
- 서버 : ypserv-1.3.9-3.i386.rpm OR ypserv-1.3.11.tar.gz를 설치한다.
- 클라이언트 : yp-tools-2.4-1.i386.rpm ypbind-3.3-28.i386.rpm OR yp-tools-2.4.tar.gz ypbind-3.3.tar.gz를 설치한다.
====== 설정하기 ======
우선 서버와 클라이언트가 될 컴퓨터를 정하자! 왜냐면 각각 설정이 다르기 때문이다. 하지만 아래의 설정은 공통적으로 해주어야 한다. /etc/host.conf 파일에 다음과 고쳐준다.
-----------/etc/host.conf---------------------------------
order hosts,bind
muti on
--------------------------------------------------------
그리고 /etc/hosts 파일도 다음과 같이 추가시켜준다.
--------------/etc/hosts-------------------------------------------------
127.0.0.1 localhost.localdomain localhost
203.241.128.94 myfeel.hoseo.ac.kr myfeel
203.241.128.91 info.hoseo.ac.kr info
203.241.128.94 nis.linux.net nis <------서버다
203.241.128.91 nis_client1.linux.net nis_client1 <----클라이언트이다
-----------------------------------------------------------------------
그리고 nis 시스템들의 그룹이름을 정해주어야 한다. 다음과 같이 정해준다.
#nisdomainname linux <-----여기선 linux 로 했다.
그리고 /etc/sysconfig/network 에 다음을 추가하자!
---------------------/etc/sysconfig/network-------------------------------
NISDOMAIN=linux
-----------------------------------------------------------------------
여기까지는 서버와 클라이언트 모두에 설정해주어야 한다.
지금부턴 서버 설정을 해주자!
우선 setup 입력해서 ypserv 에 체크를 해주자! 그리고 /var/yp/Makefile 에다가 다음을 고쳐준다.
고치기전)
all: passwd group hosts rpc services netid protocols netgrp mail \
#shadow publickey # networks ethers bootparams amd.home \
auto.master auto.home passwd.adjunct
고친후)
all: passwd group hosts rpc services netid protocols netgrp mail \
shadow publickey # networks ethers bootparams amd.home \
#auto.master auto.home passwd.adjunct
고쳐주었다면,
#/etc/rc.d/init.d/yppasswdd start
#/etc/rc.d/init.d/ypserv start
데몬을 실행시키자! 확인해보자!
$ ps aux|grep yp
root 30450 0.0 0.1 4856 896 ? S Aug09 0:00 rpc.yppasswdd
root 30847 0.0 0.5 7480 2776 ? S 10:34 0:00 ypserv
root 30858 0.0 0.1 3704 952 pts/16 S 10:35 0:00 grep yp
#echo linux > /etc/gshadow
#make -C /var/yp
위와 같이 컴파일해준다. 여기서 컴파일 해주는 의미는 패스워드를 갱신한다는 의미이다. 그러므로 일정한 시간마다 갱신을 해주는 것이 좋다. 그러므로 크론 데몬등을 이용해서 갱신해주자! NIS 는 보안적으로 위험하기 때문에 /vat/yp/securenets 파일을 수정해주자!
------------------/vat/yp/securenets-----------------------------------
# securenets This file defines the access rights to your NIS server
# for NIS clients. This file contains netmask/network
# pairs. A clients IP address needs to match with at least
# one of those.
#
# One can use the word "host" instead of a netmask of
# 255.255.255.255. Only IP addresses are allowed in this
# file, not hostnames.
#
# Always allow access for localhost
255.0.0.0 127.0.0.0
# This line gives access to everybody. PLEASE ADJUST!
0.0.0.0 0.0.0.0
--------------------------------------------------------------------------
기본 설정은 모든 호스트에 허용이 되어 있다. 이것은 상당히 위험하므로 필수적으로 수정을 해주어야 할것이다. 이제 securenets를 수정해 보자.
# local host에서의 접속을 허용한다.(필수임)
255.255.255.255 127.0.0.1
# 203.249.103. 대의 network를 허용한다.
255.255.255.0 203.249.103.0
위의 설정은 C-클래스 부분을 정하여 허용하는 경우이다. 다음의 설정을 보자.
# local host에서의 접속을 허용한다.(필수임)
255.255.255.255 127.0.0.1
# between 131.234.214.0 to 131.234.215.255
255.255.254.0 131.234.214.0
위의 설정은 B-클래스를 설정하는 경우이다.
그리고 tcp_wrapper를 이용한 nis보안설정이 있다.
/etc/hosts.allow파일과 /etc/hosts.deny을 설정하는 것이다.
만약 203.249.103. 대의 주소에 있는 클라이언트를 허용하려면 다음의 경우를 보자.
/etc/hosts.allow파일내에 다음의 내용을 추가하자.
ypserv: 203.249.103.
/etc/hosts.deny파일내에 다음의 내용을 추가하자.
ypserv: ALL
이렇게 하면 203.249.103.대의 nis클라이언트들만 허용을 접속하게 된다. securenets와 같은 역할을 하게 되는 것이다. 단, securenets는 nis만을 관여하지만, tcp_wrapper는 네트워크에 관련된 전반적인 부분을 관여하게 된다. 이렇게 NIS정보를 제공할 클라이언트를 제한함으로서 보안상의 문제를 해결하기 바란다.
이젠 클라이언트를 설정해주자! setup 에서 /etc/yp.conf 파일을 설정해주어야 한다.
------------------------/etc/yp.conf -------------------------------------
server nis.linux.net
ypserver nis.linux.net
domain linux
----------------------------------------------------------------------
이제 시작해보자!
/etc/rc.d/init.d/ypbind start
에러가 없다면 성공이다.
#ypcat passwd
#yppasswd fat81
제대로 설정이 되었다면 패스워드를 바꿀 수 있을 것이다.
----
{{indexmenu>:#1|skipns=/^(wiki|etc|diary|playground)$/ skipfile=/^(about|guestbook|todays)$/ }}
----