다음 이전 차례

8. NIS 서버 세팅하기

8.1 서버 프로그램 ypserv

본 문서는 "ypserv" NIS 서버의 세팅에 대해서만 언급한다.

NIS 서버 소프트웨어는 다음에서 구할 수 있다:

Site            Directory                       File Name

ftp.kernel.org  /pub/linux/utils/net/NIS        ypserv-1.3.6.tar.gz

여러분은 http://www.suse.de/~kukuk/linux/nis.html 에서 더 많은 정보를 얻을 수 있다.

서버의 셋업은 전통적인 NIS나 NYS모두 같다.

ypservmakedbm 프로그램을 얻기 위해 소프트웨어를 컴파 일하라. securenet 파일 혹은 tcp_wrapper를 사용하기 위해서 ypserv를 설정할 수 있다. tcp_wrapper는 보다 더 유연하나, 많은 이들이 그것을 이용하는 데 있어 문제를 일으킨다. 그리고 tcp_wrapper를 위한 어떤 설정은 메모리 누출까 지 일으킬 수 있다. 만약 여러분이 tcp_wrapper를 위해 컴파일 된 ypserv와 문 제를 일으킬 경우, securenet 파일을 이용하여 다시 그것을 컴파일 하라. ypse rv --version 명령이 여러분이 어떤 버전을 가지고 있는지 가르쳐 줄 것이다.

여러분의 서버를 master로 사용하고 있다면, NIS를 사용 가능하게 하기 위해 어 떤 파일을 요구할 것인지를 결정하고, /var/yp/Makefile에 모든 rule 에 대한 적절한 엔트리들을 추가하거나 혹은 제거하라. 여러분은 항상 Makefile 을 보고 파일의 앞부분의 옵션들을 수정해야 한다.

ypserv 1.1 과 ypserv 1.2사이에는 하나의 큰 변화가 있었다. 버전 1.2에서는 파 일의 핸들들이 캐쉬가된다. 이것은 여러분이 새로운 map을 만들때, 항상 -c 옵션 으로 makedbm을 호출해야한다는 의미이다. 여러분이 ypserv 1.2혹은 그 이후버전 에서의 새로운 /var/yp/Makefile을 사용하던지 아니면, Makefile에서 m akedbm을 하는 부분에 -c 플래그를 추가해 줘야한다. 이렇게 하지 않으면, ypser v는 계속 이전의 map을 사용하게 되어 업데이트된 map을 사용하지 않을 것이다.

이제 /var/yp/securents/etc/ypserv.conf 파일을 작성해라 . 보다 많은 정보를 위하여, 메뉴얼 페이지 ypserv(8)과 ypserv.conf(5) 를 참조 하라.

portmapper (portmap(8))이 돌아가고 있는 것을 확인하라. 그리고 서버인 yp serv를 실행하라. 명령

        % rpcinfo -u localhost ypserv

을 실행하면 다음과 비슷한 결과를 출력해야 한다.

        program 100004 version 1 ready and waiting
        program 100004 version 2 ready and waiting

"version 1" 라인은 ypserv의 버전과 여러분의 confiuration에 따라서 없을 수 도 있다. 이것은 여러분이 예전의 SunOS 4.x의 클라이언트일 때만 필요하다.

이제 NIS (YP) 데이터베이스를 생성하자. master상에서, 다음을 실행하라.

        % /usr/lib/yp/ypinit -m

slave에서 ypwhich -m 명령이 작동하는지 확인하라. 이것은 여러분 의 slave가 다음 명령을 실행하기전에 NIS 클라이언트로서 configure되야 하는 지를 의미한다. 다음 명령은 호스트가 NIS slave가 되도록 인스톨한다.

        % /usr/lib/yp/ypinit -s masterhost

만약 여러분에게 어떤 더 큰 문제가 있다면, 서로 다른 xterm에서 디버그 모드 로 ypservypbind를 시작할 수 있다. 디버그의 출력은 여러분에게 무엇이 잘못되었는지를 보여준다.

map을 업데이트할 필요가 있다면, NIS master의 /var/yp 디렉토리에서 make를 해준다. 이것은 소스 파일이 새로운 것이면 새롭게 업데이트를 해줄 것이고, slave 서버들에게 파일들을 전해줄 것이다. map을 업데이트 하는 데 ypinit를 사용하지 마라.

*slave 서버에서* 루트의 crontab을 작성하기를 원한다면 다음 라인들을 추가하라.

        20 *    * * *   /usr/lib/yp/ypxfr_1perhour
        40 6    * * *   /usr/lib/yp/ypxfr_1perday
        55 6,18 * * *   /usr/lib/yp/ypxfr_2perday

이것은 master에서 업데이트가 된 시점에서 slave가 다운이 되어서 업데이트가 안된 경우라도 대부분의 NIS map들이 최근것으로 되는 것을 보장한다.

여러분은 나중 언제라도 slave를 추가할 수 있다. 처음에, 새로운 slave 서버에 대하여 NIS master에 대한 contact할 권한이 있다는 것을 확인하라. 그리고 새로 운 slave 서버에서 다음을 실행하라.

        % /usr/lib/yp/ypinit -s masterhost

master 서버의 /var/yp/ypservers 에 새로운 salve서버를 추가하고 /var/yp 디렉토리에서 make를 실행시켜 map을 업데이트하라.

여러분의 NIS 서버에서 사용자들에 대하여 접근제한을 두고 싶다면, NIS 서버에 서도 ypbind를 실행시키고, /etc/passwd 패스워드 파일 중간에 플러스 엔트리를 추가하는 방법으로 세팅을 해줘야 한다. 라이브러리 function들은 NIS 엔트리 뒤 에 오는 모든 일반 엔트리들은 무시한다. 그리고 NIS를 통하여 그 다음에 오는 정보들을 취한다. 이런방법으로 NIS 접근 규칙들이 유지된다. 예를 들어:

        root:x:0:0:root:/root:/bin/bash
        daemon:*:1:1:daemon:/usr/sbin:
        bin:*:2:2:bin:/bin:
        sys:*:3:3:sys:/dev:
        sync:*:4:100:sync:/bin:/bin/sync
        games:*:5:100:games:/usr/games:
        man:*:6:100:/usr/games:
        lp:*:7:7:lp:/var/spool/lpd:
        mail:*:8:8:mail:/var/spool/mail:
        news:*:9:9:news:/var/spool/news:
        uucp:*:10:50:uucp:/var/spool/uucp:
        nobody:*:65534:65534:noone at all....:/dev/null:
        +miquels::::::
        +:*:::::/etc/NoShell
        [ All normal users AFTER this line! ]
        tester:*:299:10:Just a test account:/tmp:
        miquels:1234567890123:101:10:Miquel van Smoorenburg:/home/miquels:/bin/zsh

"tester"라는 유저가 존재하지만, /etc/NoShell을 가지고 있다. miquels는 일반 적인 액세스를 할 수 있다.

다르게, /var/yp/Makefile을 고쳐서 다른 패스워드 파일을 소스로 이용 하도록 NIS를 세팅할 수 있다. 규모가 큰 시스템에서는 NIS 패스워드와 그룹파일 들은 보통 /etc/yp/디렉토리에 저장되어 있다. 여러분이 이렇게 하기를 원한다면 passwd, chfn, adduser같은 일반적인 관리 툴은 더이상 작동하지 않는다. 따라서 이것들을 위해 어떤 특별한 툴을 만들어야 한다.

그렇지만 yppasswd, ypchsh 그리고 ypchfn이 대신 작 동할 것이다.

8.2 서버 프로그램 yps

"yps" NIS서버를 세팅할 때, 이전 문단을 참조하기 바란다. "yps" 서버 세팅은 비 슷하다. _그렇지만_ 정확하게 일치하지 않기 때문에 "ypserv" 명령을 "yps"에 적 용을 시도할 때 각별히 조심해라! "yps"는 어떤 저작자들로 부터도 지원되지 않으 며, 어느 정도 보안의 취약점을 가지고 있다. 여러분은 정말 이것을 사용하면 안 된다!

"yps" NIS 서버 소프트웨어는 다음에서 찾을 수 있다:

        Site                    Directory                       File Name

        ftp.lysator.liu.se      /pub/NYS/servers                yps-0.21.tar.gz
        ftp.kernel.org          /pub/linux/utils/net/NIS        yps-0.21.tar.gz

8.3 rpc.ypxfrd 프로그램

rpc.ypxfrd는 NIS master에서 NIS slave서버들로 전송되는 매우 큰 NIS map들에 대한 전송 속도를 향상시키기 위한 것이다. 만약 NIS slave가 새로운 map의 내용 을 가진 메시지를 받았을 때, 이것은 새로운 map의 전송을 위해서 ypxfr을 실행시 킬 것이다. ypxfr은 yp_all()함수를 사용하여, master서버로부터 map의 내용을 읽을 것이다. 이 프로세스는 데이터베이스 라이브러리에 저장 되어야할 map이 굉 장히 큰 것들이라면 몇 분 정도 소요된다.

rpc.ypxfrd서버는 NIS slave 서버들에게 각각들의 scartch로 부터 빌드하는 것보 다 간단히 master 서버의 map 파일들을 복사하는 것을 허용함으로써 전송 프로세 스의 속도를 향상시킨다. rpc.ypxfrd는 RPC기반의 파일 전송 규약을 사용한다. 따 라서 다시 새롭게 map 파일을 빌드하지 않아도 된다.

rpc.ypxfrd는 inted에 의해서 시작될 수 있다. 하지만 이것은 매우 늦게 시작될 것이기 때문에, ypserv와 같이 시작되어야 한다. 여러분은 rpc.ypxfrd를 NIS ma ster서버에서만 실행시켜야 한다.

8.4 rpc.yppasswdd 프로그램

사용자들이 그들의 패스워드를 바꿀때마다, NIS 패스워드 데이터베이스와 그에 의지하는 다른 NIS 데이터베이스들은 업데이트 되어야 한다. "rpc.yppasswdd"프 로그램은 패스워드의 변경을 다루고 NIS 정보들이 적절하게 업데이트 되도록 하 게 하는 서버이다. rpc.yppasswd 는 현재 ypserv에 통합되어 있다. 여러분은 따 라서 분리되었던 옛날의 yppasswd-0.9.tar.gz 혹은 yppasswd-0.10.tar.gz를 필 요로하지 않는다. 그리고 더이상 그것을 사용하면 안된다. ypserv 1.3.2에 있는 rpc.yppasswdd는 shadow의 모든 것을 지원한다. yppasswd는 이제 yp-tools-2.2. tar.gz의 부분이다.

여러분은 NIS master서버에서만 rpc.yppasswdd를 실행시키면 된다. 기본적으로, 사용자들은 그들의 완전한 이름이나 로긴 쉘을 바꾸지 못하도록 되어있다. 여러 분은 -e chfn 혹은 -e chsh옵션으로 이것을 가능하게 할 수 있다.

만약 여러분의 passwd와 shadow파일들이 다른 디렉토리 말고 /etc에 있다면, 여러 분은 -D 옵션을 추가하면 된다. 예를 들어 모든 소스 파일들을 /etc/yp에 있고 사용자들이 그들의 쉘을 바꾸는 것을 허용하게 한다면, rpc.yppasswdd를 다음과 같 은 파라미터와 함께 실행시키면 된다.

        rpc.yppasswdd -D /etc/yp -e chsh

혹은

        rpc.yppasswdd -s /etc/yp/shadow -p /etc/yp/passwd -e chsh

더이상 할것이 없다. 여러분은 단지 rpc.yppasswdd/var/yp/Make file에서 사용하는 같은 파일을 사용한다는 것만 확실히 해 두면 된다. 에 러는 syslog에 의해 기록될 것이다.


다음 이전 차례