 |
|
난이도 : 초급 Daniel Robbins, CEO, Gentoo Technologies, Inc
2000 년 7 월 01 일 이전 글에서 필자는 Samba의 기능에 대해 기술하였다. 이제 Samba를 시스템에서 실행시키기를 시도한다. 이 글에서 저자는 Samba(2.0.7 버전)가 사용자 환경에 적합한 작동을 위해 Samba 컴파일, 설치 및 초기 구성 프로세스를 검토할 것이다.
Samba 다운로드하기
Samba 2.0.7 또는 이상의 버전을 Samba.org 웹 사이트에서 다운로드한다(이 글 후반부의 참고
자료 참조). 화면 중앙의 "Download"라는 머릿글 바로 다음에 있는 단락에서 링크를 찾을 수 있을 것이다. 자칫
스크롤하고 난 후 어떤 링크를 클릭해야 하는지 혼돈할 수 있기 때문에 알려주는 것이다.
설치시 주의사항:
저자는 소스로부터 Samba를 컴파일했지만, 일반 사용자는 리눅스 배포판과 함께 제공되는 RPM 같은 바이너리 패키지에서 설치하는
것이 최선의 방법이다. 그러나 이전 글에서 언급하였듯이 설명과 같이 실행한다면 사용자의 파일 위치는 여기서 기술되는 것과 약간
다를 수 있다.
Samba 2.0.7 또는 그 이상을 다운로드한 후, 선택 디렉토리 위치로 압축을 풀어서 명령 프롬프트에 다음을 입력한다
:
% tar xzvf samba-2.0.7.tar.gz
|
samba-2.0.7 디렉토리가 생성된다. 이 디렉토리로 이동하여 내용을 살펴보자. 먼저 docs 디렉토리의 내부를 주목하면
textdocs 디렉토리가 나타날 것이다. 일명 textdocs라는 디렉토리에 전체 Samba 문서가 포함되었다. textdocs
디렉토리에서 가장 중요한 파일 중의 하나가 DIAGNOSIS.txt 파일이다. 이 파일은 Samba의 정상적인 작동 중에 야기되는
문제를 단계적인 프로세스를 통해 진단한다. 이 파일에 언급된 진단 절차 중 몇 가지를 설명할 것이다.
Samba 컴파일 및 설치하기
samba-2.0.7 메인 디렉토리에서 소스 디렉토리를 발견할 수 있다. 모든 makefile을 정확히 셋업하도록 잘 설계된
구성 스크립트(configure script)가 이 소스 디렉토리 내부에 나타난다. 다른 구성 스크립트와 같이, 구성 옵션(configuration
options) 리스트를 검토하기위해 다음과 같이 명령한다 :
아마도 파이프를 통해 'more'로 모든 옵션들을 보고 싶을 것이다:
$ ./configure --help | more
|
디렉토리 및 파일명 옵션을 주의한다. 전체 파일의 설치 위치 및 디폴트 설치 경로(default install path)가
/user/local/samba 라는 것에 주목한다. Samba를 구성할 때 "-prefix=/usr/local" 옵션을 사용하여,
이 경로를 /user/local로 변경할 수도 있다. 예를 들어 다음과 같이 패스를 지정할 수 있다 :
$ ./configure --prefix=/usr/local --localstatedir=/var/log --sysconfdir=/etc
|
위의 구성 옵션으로 Samba의 디폴트 트리(default tree)는, 구성 파일들을 제외하고 /urs/local 내부에
존재한다. Samba는 이 구성 파일들을 /etc와, /var/log에서 끝나는 log 파일들에서 발견할 것이다. 이러한 구성
옵션들을 생략한다면, usr/local/samba 디렉토리 트리에서 모든 것을 발견할 수 있다(/usr/local/samba/var,
/usr/local/samba/etc.).
이제 컴파일을 시작한다. 구성을 실행한 후 다음과 같이 명령한다 :
컴파일이 완료되면 소프트웨어를 설치할 루트(root)로서 다음을 명령한다:
서버 구성하기
Samba 구성은 대부분 smb.conf 파일로 시작하여 그것으로 끝난다. 이 파일이 Samba의 메인 구성 파일이다. 여기에는
여러 구성 옵션들이 있다. 혼란을 피하기 위하여 Samba의 정상 작동에 필수적인 옵션 만으로 시작할 것이다. 첫째, smb.conf
파일 위치를 파악해야 한다. 위에서 지정한 구성 옵션들을 사용했다면, smb.conf 파일을 /etc에 위치시켜야 한다. 디폴트
경로를 사용했다면, Samba는 그것을 /urs/local/samba/etc에서 찾을 것이다. 시동 전에 적합한 디렉토리로 이동하고,
선호하는 텍스트 편집기를 가동한다. 그리고 다음 행을 입력한다. 각 옵션의 기능에 대해 사용자가 이해하기에 쉽게 분리하여 설명하겠다.
smb.conf 파일에 아래의 행들을 추가한다 :
[global]
workgroup = YOURWORKGROUP
security = user
encrypt passwords = yes
guest account = guest
|
첫째 행은 "global" 섹션의 옵션 지정을 의미한다. 단지 이 섹션에만 쓸 수 있는 많은 옵션들이 있다. 이러한 옵션들은
Samba의 전역적인(global) 작동을 제어한다.
둘째 행은 Samba가 생성할 Windows 작업 그룹명을 지정한다. YOURWORKGROUP을 적당한 사용자 작업 그룹명으로
대체하라.
셋째 행은 Samba가 일반 사용자 보안 모드에서 실행되는 것을 의미한다. 이 옵션으로 Samba는 연결되는 모든 윈도우
클라이언트에게 유효한 사용자명/패스워드 조합을 제공하여 그들이 네트워크 리소스에 접속할 수 있게 한다. 이것은 분명히 올바른
방법이다. 일반 사용자 수준의 보안은 Samba에서 가장 대중적인 보안 수준인데, 그 이유는 대다수의 파일 공유 상태와 일치하기
때문이다. 어쨌든 다른 보안 수준도 사용할 수 있다. 하나의 유용한 모드는 현재의 Windows NT 또는 2000 서버의 보안
데이터베이스에 대하여 모든 사용자를 확인한다. 이 특별한 모드는 여기에서는 다루지 않겠다. 그것에 관하여 더 알고 싶다면 smb.conf
파일의 메인 페이지에서 "security" 옵션을 검토한다.
이제 네 번째 행이다. 이 옵션으로 Samba는 암호화 모드(encrypted mode)의 Samba와 패스워드를 교환한다.
모든 클라이언트 머신이 Workgroups-era 머신용 Windows같은 매우 오래된 것이 아니라면, Samba가 항상 암호화
모드(encrypted mode)에서 실행되기를 원할 것이다. Samba에서 암호화된 패스워드를 사용하려면, 표준 Unix 패스워드
데이터베이스 이외에 Samba의 자체 패스워드 파일이 필요하다. 만약 암호화된 패스워드를 사용하지 않는것이 좋다고 생각되고 두
개의 패스워드 파일을 관리하기 싫다면, 그렇게 하지 않으면 된다. 암호화 패스워드의 사용을 중지함으로써 Windows 2000
및 기존의 Windows NT 4.0 버전과의 공유 문제를 야기시킬 수도 있다. 정말로 두개의 분리된 데이터베이스를 관리하고
싶지 않다면, Samba는 양쪽 데이터베이스를 동기화시키는 몇 가지 방법을 제공하는데, 이것이 더 나은 접근법이다.
다음 행은 게스트 접속을 위하여 사용될 유효한 Unix 일반 사용자 계정을 지정한다. 사람들은 종종 "guest account=nobody"
옵션을 사용하지만, 시스템에 "guest" 계정이 존재하지 않는다면, 문자 그대로 "guest" 사용자를 추가하길 권한다. 새로운
"guest" 계정은 패스워드 세팅이 필요 없고, 대화식으로 로그인 하지 않아도 된다. (패스워드와 유효한 디폴트 쉘로 게스트를
구성하면 된다)
이제 smb.conf 파일에 WINS 지원 옵션을 추가할 준비가 되었다. 다음의 두 행에서 하나를 글로벌 섹션에 추가한다
:
wins support = yes
OR
wins server = IP address of WINS server
|
현재 사용자의 서브넷(예를 들면, WINS를 실행하는 Windows NT 서버)에 이미 WINS 서버가 있다면, 두 번째
옵션으로 등호(equals sign)의 오른쪽에 WINS 서버명을 지정하고자 할 것이다. 그러면 Samba 내부의 WINS 서비스는
사용할 수 없고, Samba는 사용자 지정 WINS 서버를 사용한다.
서브넷에 가동중인 WINS 서버가 없거나 Samba를 사용자의 집에서 직접 세트하고 WINS 서버의 정확한 정체가 불투명하면,
첫번째 옵션을 사용한다. 이 옵션으로 Samba가 사용자 LAN용 WINS 서버가 될 것이다.
WINS의 기능에 대해 궁금할 것이다. 기본적으로, WINS는 로컬 동적인 DNS 데이터베이스로 간주될 수 있다. Samba가
WINS 서버로서 실행될 때, 동일 서브넷의 전체 Windows 호환 기종은 그것의 IP 주소와 NetBIOS명을("computer
name"으로 알려진) Samba에 등록할 것이다. 이렇게 하여 Windows 머신은 Samba의 WINS 데이터베이스를 이용하여
개별 NetBIOS명에 대한 IP 주소를 요청할 수 있다. WINS는 네트워크 검색의 핵심 구성 요소이다. Windows 머신에서
"네트워크 환경" (Network Neighborhood)의 내부를 찾는 것이 바로 네트워크 검색이다.
이제 글로벌 섹션에 몇 개의 옵션을 더 추가할 준비가 되었다 :
local master = yes
os level = 99
domain master = yes
preferred master = yes
|
이 옵션들은 모두 네트워크 검색과 관련이 있다. WINS가 네트워크 검색의 핵심 구성 요소라고 말했지만, 검색이 정확하게
수행되려면 다른 요소가 필요하다. 로컬 마스터 브라우저(local master browser)가 있어야 한다. 낯설게 들리는가?
보충 설명을 하겠다.
정확한 검색이 수행되려면, 로컬 서브넷에 어떤 머신들과 작업그룹(workgroup)의 존재여부를 놓치지 않고 그 진로를 쫓는
중심 위치(location)가 있어야 한다. 이 개별적인 리스트를 검색 리스트(browse list)라고 한다. 검색 리스트는
처음 네트워크 컴퓨터에 클릭할 경우 나타나는 작업 그룹, 도메인 및 머신 리스트 작성을 위해 필요하다. 최신의 어떠한 Windows
머신도 로컬 마스터 브라우저가 될 수 있다. 이상적으로는, Samba가 네트워크의 로컬 마스터 브라우저(Local master
browser)가 되었으면 좋겠다.
로컬 마스터 브라우저(Local master browser)는 어떻게 완성되는가? 기본적으로, 몇 개의 강력한 서브넷 Windows
호환 머신들이 로컬 마스터 브라우저를 결정할 때 사용자의 LAN을 가로질러 패킷(packet)들을 전후로 돌진하여 그것을 정규적으로
선출할 것이다. 이 프로세스를 "browser election"라고 한다.
 |
스포츠 정신을 발휘해라.
당신의 조직에서 Microsoft 관리자들을 골탕먹일 구실로 'browser election'에서 Windows를
공격하지 말라.. 정정 당당한 승자가 되는 것이 중요하다는 것을 기억하라..
|
|
결국 이 브로드캐스트 패킷 전쟁(broadcast packet war)의 "winner"가 로컬 마스터 브라우저가 된다.
os level = 99 옵션 사용으로 Samba가 이 전투에서 승리하도록 할 수 있다. 이 옵션으로 Samba는 LAN 상의
다른 모든 머신을 이길 수 있다. 이것은 모든 Windows 버전(Windows 95 ~ NT ~ 2000)이 하드코드(hard-coded)
OS 등급을 가지고 있기 때문인데, 이 등급은 Windows의 가장 앞선 버전이 로컬 마스터 브라우저가 되도록 고안되었다 (Windows의
나중 버전은 더 큰 숫자를 가진다). Samba를 99에 세트로 Samba는 모든 Microsoft 제품을 물리치고, 언제든지
로컬 마스터 브라우저가 될 수 있다.
보안 옵션
글로벌 섹션을 마치기 전에, 관심을 가질 몇 개의 보안 옵션이 있다. 호스트의 'allow' 옵션으로 Samba에 접속할 수
있는 IP주소를 제한할 수 있다 :
hosts allow = 192.168.1. 127.
|
이 옵션으로 로컬호스트(localhost)인 127을 포함하여, 192.168.1 네트워크에 있는 머신 만이 Samba에
연결할 수 있도록 한다. 항상 hosts allow 행의 끝에 127.이 있는지 확인하라.
사용자의 머신이 다중 네트워크 인터페이스(multiple network interfaces)를 가지고 있다면, 인터페이스
옵션은 매우 유용하다. 이 옵션으로 Samba가 이용되는 네트워크 인터페이스를 지정할 수 있다. 다음과 같이 사용한다 :
이것은 Samba를 필요한 인터페이스에 제한하는 쉬운 방법이다. 인터페이스 한정으로 원치 않는 사용자 해킹을 방지할 수 있다.
테스트 공유(test share)
이제 Samba의 글로벌 옵션을 구성했고, /tmp 디렉토리 접근을 허용하는 테스트 공유를 생성하기 위해 다음의 행들을 첨가한다
:
[tmp]
path=/tmp
writeable=yes
|
Samba가 시동할 때, 이 세팅으로 tmp라는 사용 가능한 공유(share)를 만든다. 이 공유는 Samba 서버에 /tmp
디렉토리의 내용을 포함시킨다. 또한 개별 사용자가, 거의 대부분이 그렇듯이, /tmp 기록 허용을(write permission)
가지고 있다면, 그 사용자는 이 디렉토리에서 파일을 생성하고 수정할 수 있다.
이제 이러한 모든 항목(entry)들을 smb.conf 파일에 추가했으니, 구성이 정확한지 확인해 봅시다. 이를 위하여 testparm
유틸리티를 사용한다 :
[Enter]를 친 후, 모든 구성 옵션들의 리스트가 화면에 나타날 것이다. 또한 smb.conf 파일의 에러가 표시되고
설명될 수도 있다. 에러가 있다면 문제를 해결하는 화면상의 지시를 따르라. 이제 Samba 유저를 설정하고 테스트 구동을 위해
Samba를 시작하라.
사용자 생성
"myuser" 사용자가 "mypass" 패스워드로 Samba를 사용할 수 있기 위하여, 다음 사항들이 반드시 필요하다:
- 유효한 "myuser" Unix 계정이 있어야 한다. myuser는 로그 인이 필요 없고, Samba는 myuser의
Unix 패스워드를 사용하지 않으므로, 좋다면 쓸데없는 값을 세팅할 수 있다. myuser가 또한 대화식으로 Samba 서버에
로그인 한다면, 그것 역시 좋다.
- smbpasswd 파일에 유효한 "myuser" 계정이 존재해야 한다. smbpasswd 파일은 private 디렉토리에서
찾을 수 있는데, 이 디렉토리는 디폴트 Samba 설치 프리픽스(install prefix)에 있다(이 예에서는 /user/local/private).
root권한으로 다음과 같은 smbpasswd 명령을 사용하여 myuser를 smbpasswd 파일에 추가한다:
# smbpasswd -a myuser
New SMB password: <enter "mypass" here>
Retype new SMB password: <enter "mypass" again>
Added user myuser.
|
이 단계들은 모든 새로운 Samba 일반 사용자에게 반복되어야 한다. Samba를 사용할 수 있는 현재 Unix 계정이라면,
사용자의 username과 password를 smbpasswd 파일에 추가하는 것을 잊지 마라. Windows 만 사용하는 사용자를
추가한다면, 그 사용자를 smbpasswd 파일에 추가하는 것에 더하여, 같은 username으로 유효한 Unix 계정을 만들어야
함을 또한 잊지 마라. 실제로, 먼저 Unix 계정을 만들어야 하는데, smbpasswd 파일이 Unix 계정이 없는 사용자는
추가하지 않기 때문이다.
두 계정이 모두 필요한 이유는, Unix 계정은 디스크 사용에 대한 합당한 허가를 위하여, 그리고 smbpasswd 파일은
인증을 목적으로 사용하기 때문이다. 여러분이 Windows NT로부터 연결하려고 한다면, 여러분은 Samba "administrator"
사용자를 만들고 싶을 것이다.
최종 서버 구성하기
Samba를 시동하고 클라이언트 머신을 구성할 준비가 거의 되었다. 그러나 먼저 Samba 머신이 네트워크의 모든 Windows
클라이언트 머신을 이름으로서 검색할 수 있는지 확인해야 한다. 작동하지 않는다면, /etc/hosts에 엔트리를 추가하거나 또는
DNS를 갱신하여 Samba 머신이 Windows 머신을 정확히 찾도록 해야 한다.
"localhost" 이름이 127.0.0.1.에 매핑되도록 /etc/hosts가 구성되었을 때, Samba는 최적으로 작동한다는
것을 알면 또한 도움이 된다. 사용자의 머신의 FQDN(fully qualified domain name)이 여러분의 LAN에서
사용되는 1차 IP 주소에 배치되어야 한다. 다음의 예제를 보자.:
#/etc/hosts excerpt
127.0.0.1 localhost
192.168.1.1 mybox mybox.mydomain.com
|
Samba 시동하기
Samba는 이제 구성되어 실행할 준비가 되었다. Samba를 시동하고 나서 Windows 머신의 정확한 구성에 중점을 둘 것이다.
시동하기 위하여 루트로서 다음을 입력한다:
Samba의 두 메인 서버 프로세스, smbd와 nmbd가 시작된다. 이것들은 각각 /var/log/log.smb 파일과
/var/log/log.nmb 파일에 통보 메시지와 에러 메시지를 기록한다. 이제 Unix 쪽이 작동하고 있으니, 클라이언트
머신을 정확히 세팅할 차례이다.
클라이언트 구성하기
Samba Workgroup에 참여할 수 있도록 Windows 머신을 구성하려면, TCP/IP 프로토콜이 정확히 구성되었는지
확인해야 한다. 또한 다음 사항을 확인해야 한다:
- 사용자의 Windows 머신에서 Unix 머신을 찾을 수 있어야 한다. (C:\> 프롬프트에서 "ping myserver"를
입력하라.)
- Windows 머신은 WINS 서버를 사용하도록 구성되어 있어야 한다. Samba가 WINS 서비스를 제공하고 있다면,
Samba 머신의 IP 주소가 세팅되어 있어야 한다. 그렇지 않다면, 유효한 WINS 서버의 IP 주소를 세팅하라. 이 세팅은
보통 TCP/IP 세팅 대화상자 안에서 볼 수 있다.
- 사용자의 Windows 머신은 YOURWORKGROUP의 멤버이어야 한다.
테스트하기
절정의 순간이다. Windows 머신을 다시 부팅한 후, Samba가 승인하는 사용자명/패스워드를 사용하여 Windows에 로그
온(log on) 해야 한다. Windows 95/98을 사용하고 있다면, 이 사용자이름/패스워드 조합은 단순히 파일에 저장되어
나중에 네트워크 리소스에 연결할 때 사용될 것이다.
Windows NT 워크스테이션을 사용한다면, 사용자명/패스워드 조합은 NT의 지역 보안 데이터베이스에 있어야 한다(그렇지
않으면, 처음에 NT에 로그인할 수 없을 것이다). 이를 위하여, administrator로서 NT에 로그 온하고 사용자 관리를
사용하여 계정을 만든다. 이후, 로그아웃(log out)하고 새로운 사용자로서 로그인 한다.
정확히 로그인 한 후, "네트워크 환경"(Network Neighborhood)을 더블 클릭하고 해당 작업그룹의 내부를 살펴보라.
Samba 서버가 리스트에 있는지 보라. 그것에 더블 클릭하여 /tmp 공유가 리스트에 있는지 보라. 있다면, Samba 가
작동하고 있는 것이다! 그렇지 않다면, 다음을esolution)이 정확히 수행되도록 해야 한다.
이러한 사항들을 모두 확인했는데도 Samba가 작동하지 않는다면, docs/textdocs 디렉토리의 DIAGNOSIS.txt
파일에 있는 각각의 단계를 확인해 보라. 여러분은 구성 또는 네트워크 문제를 몇분 안에 정확히 지적하여 처리할 수 있을 것이다.
어떤 방식으로든 smb.conf 파일을 변경했다면, smb.conf 파일을 다시 읽도록 하는 HUP 신호를 smbd 와 nmbd에
보내야 한다. 다음과 같이 한다:
# kill -hup <pid of smbd>
# kill -hup <pid of nmbd>
|
혹은 단순히 smbd와 nmbd를 중단하고 이것들을 다시 시작할 수 있다.
공유 구성하기
다음에는 Samba의 고급 옵션에 보다 익숙해질 것이다. 그러면 여러분이 원하는 방식대로 정확한 기능을 가지는 공유를 구성할
수 있다. 또한 Samba의 인쇄와 같은 Samba의 몇 가지 앞선 특징들을 살펴볼 것이다.
참고자료
- developerWorks worldwide 사이트에서 이 기사에 관한 영어원문.
- Samba Web site : Samba 다운로드
- Amiga
Samba에 메일 주소 등록
- 최신 Redhat용Samba Notes
참조. 미완성 버전인 Red Hat 6의 Samba 2 및 기존 버전인 Red Hat 5.x 의 Samba 1 참조
- Microsoft's Message Block (SMB)로 서비스 제공하기 위한 HP e3000 작동 MPE/iX 운영
시스템 기반의 프로그램인 Samba/iX Samba/iX
을 참조
- IBM Learning 서비스는 Samba 기반의 2-day
hands-on course 제공
- Steve Litt의 Samba
Unleashed 참조
- Using Samba (O'Reilly
출판, 1999년)는 Samba 관리 가이드. Windows NT 도메인 및 최근 SWAT 그래픽 구성 툴 통합 첨가 포함.
필자소개  | |  | Daniel Robbins는 Gentoo Technologies, Inc.의 회장/CEO이고, Gentoo Project의 핵심 설계자이며, Caldera OpenLinux Unleashed, SuSE Linux Unleashed, Samba Unleashed의 저자이다.
|
기사에 대한 평가
 |
| 이 문서 북마킹 하기
|
|