Char 18 Sharing System Files

Download Report

Transcript Char 18 Sharing System Files

18 장 시스템 파일 공유
(Sharing System Files)
• Content
· NIS(The Network Information Service)
· NIS+
1
개요
• Configuration file sharing 구조
· 복제형
· 중앙집중형
• 네트워크 관리 데이터베이스
· NIS
· NIS+
2
공유 configuration files
• /etc/passwd : getpwuid, getpwnam, getpwent
등으로 접근
• /etc/group
• /etc/hosts
• /etc/networks
• /etc/services
• /etc/protocols
• /etc/ethers
• /etc/aliases
• /etc/rpc
• /etc/netgroup
3
주변에 파일 복사
• Push 모델
· 제어 간단하나 보안 문제
· rdist : push files
· distfile : p481-482 참조
• Pull 모델
· 덜 중앙 집중하나 유연성 보안성
· expect : pull files
· ftp로 시스템 파일 가져온후 expect로 검색과 설치
· Tcl (Tool command language)를 확장한 스크립트 언어 :
p483-484 참조
4
NIS : 네트워크 정보 서비스
• NIS’s 원래 이름 : Sun Yellow Pages
-> yp 시작하는 명령어들
• NIS 와 NIS+ 지원
· Solaris - NIS:Partially, NIS+: Yes
· SunOS - NIS:Yes, NIS+:No
5
NIS
• NIS master server
· 시스템 파일의 권위 있는 사본(authoritative copies) 관리
· map (contents of shared files) 생성 ==> ndbm 확장 가능
해싱 루틴 (extensible hashing routine)
· make, ypmake 이용
· ndbm는 각 항목에 하나의 키 허용 ==> 여러 map으로 변환
ex) /etc/passwd ==> passwd.byname, passwd.byuid
· 모든 slave server들에 map push
· server와 client들이 domain 형성
• Server locating
· 각 네트워크 마다 최소한 하나 이상의 NIS server
· IP broadcasting으로 client 가 server 위치 파악
· ypset로 특정 서버에서 특정 client 를 지적
6
Magic NIS Cookies
• 지역 우선(Local priority)
· 지역 기계의 정보가 NIS 사본 보다 우선
· /etc/passwd, /etc/group
· 파일 안의 Magic Cookies 로 접근
· + : NIS map 전체 삽입
· +name : 지정된 account 나 group 만 포함
· netgoups
• 전역 우선(Global priority)
· NIS 사본이 지역 사본 우선
· /etc/networks, /etc/protocols, /etc/services, /etc/netgroup : 지역
사본 완전 무시
· /etc/hosts : 지역 사본 완전 무시 못함
7
Netgroups
• 다른 시스템에서 쉽게 이용할 수 있도록 user, machines, net
집합에 이름 붙이는데 이용
• /etc/netgroup 안 : p488
·
·
·
·
groupname list-of-members
list-of-members : (hostname, username, domainname)
Blank, ‘-’ symbol : 해당사항 없음
예
· bobcats (snake, , ) (headers, , )
· servers (anchor, , ) (moet, , ) (piper, , ) (kirt, , )
· allhosts bobcats servers
• 이용
· 허가(permissions) 정의하는 파일에서 사용
· /etc/exports : 파일 시스템을 마운트할 수 있는 호스트 명시
· /etc/hosts.equiv , 각 사용자의.rhosts :로그인 허가
· netgroup member의 계정 정보 얻을 때 사용
· NIS client의 /etc/passwd 에서 +@netgroup
8
NIS 장단점
• 장점
· 쉽다.
• 단점
· Domain 연결 방법이 없다.
· Network bandwidth 소모가 많다.
· 모든 검사가 패킷 교환 유발
· master server map 변경되면 모든 slave server에 복사
· 보안이 약하다.
· 어떤 호스트도 NIS domain server가 될 수 있다.
· 누구든지 NIS map 읽어 cracking program으로 패스워드 알아낼
수 있다.
· 인터넷에 연결되었다면 사용하지 말라.
9
NIS 기술 분석
• NIS directory
· /var/yp, /usr/etc/yp, /etc/yp
• map 마다 한 쌍의 ndbm file
· map.dir, map.pag
· /etc/passwd map 예
·
·
·
·
/usr/etc/yp/cssuns/passwd.byname.dir
/usr/etc/yp/cssuns/passwd.byname.pag
/usr/etc/yp/cssuns/passwd.byuid.dir
/usr/etc/yp/cssuns/passwd.byuid.dir
10
NIS 기술 분석(2)
• ypxfr 명령(slave servers): pull, ypxfrd daemon(server)
• yppush 명령(master server)
· push, ypxfr 동작 시킴, makefile
• ypservers map : domain 의 모든 서버 목록
• ypserv daemon(servers) : client로부터의 query 처리
• ypbind daemon(every machine) : domain이 있는 ypserv
위치 알아냄, 한번 bind되면 끝까지
• p492 그림 A, p493 표 18.3 참조
11
NIS Domain 설정
• 1단계 NIS server 설정: 각 server에서 ypinit 수행
· Master server
cd /var/yp
domainname foo
ypinit -m
/usr/etc/ypserv
· Slave server
cd /var/yp
ypinit -s
/usr/etc/ypserv (p495 참조)
· pull : p494 참조
• 2단계 NIS client 설정: domain 안의 모든 컴퓨터에서
· system startup files 중 하나로부터 얻은 이름으로 domain 이름 설정
· domainname command(부트시 수행) 또는 /etc/defaultdomain 읽어서
· client의 /etc/passwd, /etc/group에 네트워크 버전 참조하도록 설정
· magic cookies 이용, 단 masterdml /etc/passwd, /etc/goup에는 no cookie
12
NIS+
• NIS 단점을 보완한 분산 데이터베이스
·
·
·
·
대규모 네트워크 관리
보안 기능 내장
다중 domain 허용
NIS client 지원하나 NIS와는 전혀 다른 시스템
• NIS 와 차이점
·
·
·
·
·
각 컴퓨터는 한 domain에 속하지만 여러 domain의 정보 참조 가능
다중 키 지원으로 데이터베이스와 좀더 유사: 하나의 map 유지
NIS가 사용하는 flat file 사용 않음 : transfer
변경된 내용만 slave server에 전달하는 logging scheme 지원
Sun의 안전한 RPC system 이용: 공개키 기반 인증 및 표준 스타일
비인증 지원, 암호화된 신임장(credential) 요구 가능, owner/group
owner/world 별로 허가권 설정 가능
• DNS와 무관하나 DNS 이름 지정 기법 사용: 파일 경로와 반대
13
Solaris
• /etc/nsswitch.conf : 관리용 정보의 근원지(source) 명시
passwd: nisplus
group:
files
hosts:
dns [NOTFOUND = return] nisplus
· 근원지
·
·
·
·
·
nisplus : NIS+
nis : NIS
files : flat files (‘+’ 무시)
dns : DNS
compat : NISifiled flat files (‘+” 인정)
· 왼쪽에서 오른쪽으로 query 만족할 때까지 검색
· (예) gethostbyname은 DNS server가 UNAVAIL일 때 NIS+ 검색
14