2010년 4월 27일 화요일

삼바서버 설정(smb.conf)

출처: http://cafe.naver.com/devctrl/4267

삼버 서버를 구동하기 위해서는 먼저 네트워크 환경에 맞게 설정을 해야 한다.

삼바의 설정 파일은 /etc/samba/ 아래에 있으며 smb.conf가 기본 설정 파일이다.

삼바의 설정은 매우 복잡하며 환경에 따라서 다양한 설정 방법 등이 존재하므로 처음부터 모든 것을 설정하기 보다는 가장 기본적인 것부터 설정해 나가는 것이 효율적이다.

 

# testparm

smb.conf 파일의 구문이 정확한가를 검증한다. 삼바 데몬을 실행하기에 앞서 이 유틸리티로 문법 적합성 검사를 해야 한다.

 

# service smb restart (/etc/init.d/smb restart)

smb.conf 파일을 변경한 후에는 반드시 데몬을 재시작 해야 한다.

 

[global]

삼바 서버가 공유하는 자원들에 공통적으로 적용할 기본 값을 설정하는 곳이다.

 

[homes]

리눅스 계정 사용자들의 홈 디렉토리를 로그인 홈으로 사용하기 위한 설정이다.

 

[printers]

네트워크 공유 프린트에 대한 설정 부분이다.

 

 

=== Global Settings  ===========================================================

[global]

# 한국어 지원을 위한 설정

dos charset = cp949

unix charset = cp949 (utf8, euc-kr)

 

# 윈도우즈의 작업 그룹과 같다. 공유하고자 하는 작업 그룹 이름을 작성한다.

# 삼바 서버와 클라이언트의 작업 그룹 명은 반드시 일치해야 한다.

workgroup = RND

 

# 윈도우 네트워크 환경에서 보여줄 삼바 서버에 대한 설명이다.

server string = Samba Server

 

# 삼바 서버에 접속을 허용할 IP 지정.

# IP 주소 또는 네트워크 / 넷마스크 형태로도 지정할 수 있다.

hosts allow = 192.168.41. 127.

--> 192.168.41.0 네트워크에 속한 모든 호스트들과 로컬 시스템(127.0.0.1)만 허용

hosts allow = 192.168.41. except 192.168.41.100  192.168.41.101

--> 192.168.41.100번과 101번을 제외한 192.168.124의 모든 호스트들은 접속 허용

hosts allow = 192.168.41.0/255.255.255.0

--> 192.168.41.0 네트워크에 속한 모든 사용자들을 허용하고 넷마스크를 병용하여 사용

hosts allow = wow19, wow20

--> wow19와 wow20라는 호스트들만 서버 접속 허용

 

# 삼버 서버의 printcap에 정의된 모든 프린터 목록을 자동적으로 로딩되게 할 것인가를 지정

# 네트워크 프린터를 삼바 서버에 연결하여 사용하고자 한다면 선택해야 한다.

load printers = yes

 

# 서버에 의해 사용되는 printcap name을 겹쳐쓰기 하고자 할 때 그 위치를 지정

printcap name = /etc/printcap

 

# 현재 사용하는 프린터 시스템 종류 지정

# 비표준 프린터 시스템이 아니면 지정할 필요가 없다.

printing = lprng

 

# 삼바 서버의 guest 사용자를 허용하고자 할 때에는 이 주석을 제거한다.

# 즉, 이 옵션은 삼바 서버에 손님 권한으로 접속하였을 때에 어떤 권한을 부여할 것인가를 설정하는 것이다.

# 가능한 시스템에 특별한 권한이 없는 nobody와 같은 권한으로 설정하기 바란다.

#guest account = nobody

 

# 삼바 서버로 접속하는 개별 사용자드의 호스트 정보를 %m으로 받아서 개별 로그 파일을 생성하도록 한다.

log file = /var/log/samba/%m.log

 

# 접속한 호스트별로 로그 파일을 사용하지 않는다면 하나의 로그 파일을 사용할 수도 있다.

log file = /var/log/samba/smbd.log

 

# 로그 파일 최대 크기 지정

# 제한을 두었을 경우에 이를 초과하게 되면 .old 확장자를 가진 파일로 저장되고 새로운 파일이 생성된다.

# 0으로 설정하면 파일의 크기에 제한을 두지 않는다.

max log size = 0

 

# 클라인언트가 삼바 서버에  접속할 때 인증 레벨을 부여하는 옵션

# user, share, server, domain 4가지 보안 모드가 있다.

# user:

#    삼바 서버에 접속하는 사용자는 반드시 윈도우에서 사용하는 로그인 ID와 동일해야 한다.

# share:

#    공유 디렉토리 등에 설정하는 것으로써 ID와 패스워드의 인증없이 접속하는 것을 허용한다.

# server:

#    별도의 인증 서버에 ID와 패스워드 인증을 받도록 한다.

# domain

#    윈도우 NT 서버가 있어야 가능하며, 삼바 서버가 사용자 명과 패스워드를 윈도우 NT의 도메인 컨트롤러(Domain Controller)에

#    전달하여 유효한지 확인 하는 방법이다. 아예 Windows NT 도메인으로 삼바 서버를 참가시키는 방법을 사용한다.

security = user

 

# security 값이 server로 설정되었을 때에만 설정할 수 있는 옵션으로 인증 서버로 사용할 서버를 지정한다.

password server =

 

# 패스워드 문자로 대소문자를 조합하여 사용할 문자의 개수를 지정한다.

password level = 8

 

# 삼바 사용자 명을 대소문자 조합하여 사용할 문자의 개수를 지정한다.

username level = 8

 

# 삼바 서버에 클라이언트의 접속이 이뤄지는 과정에서 인증을 위하여 암호화된 패스워드 옵션을 사용할 수 있다.

# 기본 패스워드 모드는 encrypted 모드이다.

encrypt passwords = yes

 

# encrypt passwords 항목과 함께 사용되는 것으로 암호화된 삼바 사용자의 아이디와 패스워드가 기록되는 파일이다.
# 삼바의 암호 모드가 윈도우와 호환되도록 설정한다.
# 이 파일에 패스워드를 추가하는 명령은 smbpasswd이다.
smb passwd file = /etc/samba/smbpasswd

 

# 클라이언트 호스트에서 사용자의 패스워드를 변경할 수 있도록 해주는 옵션이다.
# 단, 이 경우에는 encrypt password, smb passwd file 두 옵션을 반드시 사용해야 한다.

unix password sync = Yes

passwd program = /usr/bin/passwd %u

passwd chat = *New*UNIX*password* %n\\n *ReType*new*UNIX*password* %n\\n

*passwd:*all*authentiction*tokens*updated*successfully*

 

# 대부분 삼바에서 사용하는 ID와 리눅스 계정 ID는 동일하게 사용한다. 만약 삼바 사용자 명과 리눅스 계정 사용자 명을 다르게 사용할 경우

# 이를 매칭할 수 있도록 하기 위한 옵션으로써 매칭 테이블 파일을 설정한다.

username map = /etc/samba/smbusers

 

# 접속하는 각 클라이언트마다 서로 다른 설정을 사용할 수 있게 해주는 것으로 %m은 접속하는 NetBIOS 이름으로 대치된다.

include = /etc/samba/smb.conf.%m

 

# 사용자의 로컬 네트워크 상에서 삼바 서버가 최적의 성능을 발휘할 수 있도록 튜닝할 때 사용한다.

# IPTOS_LOWDELAY, IPTOS_THROUGHPUT 등의 옵션이 있다.

socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192

 

# 삼바 서버에서 두 개 이상의 네트워크 인터페이스(NIC)를 사용하도록 지원하기 위한 옵션이다.

# 삼바 서버가 사용하는 모든 인터페이스의 네트워크 대역을 설정해 두어야만 그 네트워크 인터페이스를 사용할 수 있다.

# 삼바에 연결된 네트워크 인터페이스를 설정하는 것으로 인터페이스는 IP / netmask 조합으로 지정할 수 있다.

interfaces = 192.168.41.3/24 192.168.124.33/24

 

# 지역 서브넷에서 삼바 서버를 잘 인식하도록 하기 위하여 자기 자신을 알리도록 한다.

remote browse sync =

remote announce =

 

# 삼바 서버가 nmbd에 의해 서브넷 상에서 로컬 마스터 브라우저가 될 수 있도록 허용하는 것으로

# no라고 설정하면 nmbd 데몬은 서브넷 상에서 로컬 마스터 브라우저가 되지 않는다.

local master = no

 

# 삼바 서버가 브라우저 선거에 있어서 자신을 알릴 수 있는 레벨을 설정하는 것으로
# 이 값에 의해서 nmbd 데몬이 로컬 브로드캐스트 지역에서 WORKGROUP에 대해 로컬마스터 브라우저가 될 수 있는지 결정된다.
# 이 값을 0으로 설정하면, nmbd 데몬은 윈도우 머신에 대해서 선거권을 상실하므로 로컬마스터 브라우저가 되지 못한다.

os level = 33

 

# 삼바가 도메인 마스터 브라우저가 되도록 해준다. 이것은 삼바와 서브넷 간의 브라우저 리스트를 모집할 수 있게 해준다.

# 만일 NT 도메인 컨트롤러를 가지고 있다면 이 기능을 사용해서는 안된다.

domain master = yes

 

# 윈도우 계열 사용자들도 도메인 로그인 가능하게 할 것인가 지정

domain logons = yes

 

# 삼바 구동시 로컬 마스터 선거를 강요하여 선거에서 이길 수 있게 보다 많은 가능성을 부여해 주는 옵션이다.

# 이 옵션은 domain master = yes 옵션과 같이 사용하여 nmbd 데몬에 의해 도메인 마스터가 될 수 있도록 해준다.

preferred master = yes

 

# 사용자가 성공적으로 로그인을 하였을 때 다운로드하여 작동할 수 있도록 배치파일(*.bat) 또는 NT 명령 파일(.cmd)을 지시해 주는 옵션이다.

# 배치 파일은 마지막 줄에 cr/lf가 들어있어야 하므로 도스편집기에서 만드는 것을 권장한다.

# 내용은 사용자가 임의대로 지정할 수 있다.

# 예) 보통 모든 클라이언트 머신들이 서버와 똑같은 시간에 시간을 맞추도록 할 수 있다.

# NET TIME \\\\SERVER /SET /YES

logon script = %m.bat

logon script = %U.bat

 

# 윈도우98 및 NT에서 user.dat과 같은 로우밍 프로파일(roaming profile)을 어디에 지정할 것인가를 지정해 주는 옵션이다.

# %L은 서버의 NetBIOS이름으로 대치되고, %U는 사용자 이름으로 대치된다.

# 이 옵션을 사용할 때 [Profile]공유 항목에서 주석을 풀어 주어야 한다.

logon path = \\\\%L\\Profiles\\%U

 

# 삼바 서버에서 nmbd 데몬이 wins 서버의 역할을 할 수 있는지 여부를 지정한다.

# 만일 이 옵션을 선택하기 위해서는 반드시 다중 서브넷 네트워크를 가지고 있어야 하며 wins서버로 될 특정 nmbd 데몬이 있어야 한다.

wins support = yes

 

(참고) WINS(Windows Internet Naming Service)
마이크로소프트 윈도우NT 서버의 일부인 WINS는 각 구성 변경에 수반되는 사용자 또는 관리자가 없는 IP 주소들과 컴퓨터 이름 및 위치들과의 결합을 관리한다. WINS는 컴퓨터 이름과 IP 주소를 서로 매칭시켜 데이터를 테이블 내에 자동으로 만드는데, 이 이름들은 다른 사람의 컴퓨터 이름과 중복되지 않도록 고유한 이름으로 견지한다. 컴퓨터가 다른 장소로 옮겨지면, IP 주소의 서브넷 부분이 변경될 수 있다. WINS를 사용하면 새로운 서브넷 정보가 WINS 테이블 내에서 자동으로 갱신된다. WINS는 어떤 컴퓨터가 네트워크에 처음 정의될 때 IP 주소를 협상하는 NT서버의 DHCP를 보충하여 완전하게 한다. 예를 들면 같은 네트워크에서 사람이 많아지면 네트워크에 부하도 많이 발생한다. 이 경우 WINS를 사용하면 컴퓨터 이름과 IP 목록을 관리해주기 때문에 동보 통신에 의한 부담을 줄일 수 있다.

 

# WINS 서버 사용할시 IP 지정

wins server = host

 

# nmbd에 의해서 wins기능을 갖추지 못한 호스트들을 대신하여 브로드캐스트 이름 질의를 대신 응답해 줄 수 있도록 지정해 주는 옵션이다.

# 이것을 사용하려면 네트워크 상에 최소 하나 이상의 WINS 서버가 있어야 한다.

wins proxy = yes

 

# nmbd 데몬이 wins server 역할을 하고 등록되지 않는 NetBIOS 이름을 찾아줄 때
# DNS server를 사용하여 NetBIOS 이름을 찾아줄 것인지의 여부를 지정하는 옵션이다.
dns proxy = no

 

# 대소문자를 유지 보존할 것인가를 지정하는 옵션이다. 시스템의 기본 값은 no이다.

preserve case = no

short preserve case = lower

 

# DOS 파일들의 기본 문자는 대문자로 인식한다. 만약 lower로 설정한다면 소문자로 인식한다.

default case = lower

 

# 대소문자 구분을 할 것인가 말 것인가를 지정하는 옵션이다.

case sensitive = no

 

 

=== Share Definitions ==========================================================

# 사용자들의 홈 디렉토리 서비스에서 사용하는 기본적인 설정 값이다.
[homes]
# 공유 자원에 대한 설명 필드와 같다.
comment = Home Directories
# 윈도우 네트워크 브라우저에서 디렉토리를 보일 것인지 결정한다.
browseable = no
# 사용자에게 쓰기 권한을 준다.
writable = yes

# 도메인 로그온을 사용하고자 할 때 사용한다. 일반적으로 사용하지 않는다.
[netlogon]
comment = Network Logon Service
path = /home/netlogon
guest ok = yes
writable = no
share modes = no

# 특정한 프로파일을 지정할 때 사용한다. 일반적으로 사용하지 않는다.
[Profiles]
path = /home/profiles
browseable = no
guest ok = yes

# 삼바 프린터를 네트워크 공유 프린터로 사용할 때
[printers]
comment = All Printers
# 프린터 위치
path = /var/spool/samba
browseable = no
# Set public = yes to allow user 'guest account' to print
# guest 계정으로 지정한 사용자, 즉 nobody가 printing을 할 수 있다
guest ok = yes
# 쓰기 설정
writable = no
# 프린트 사용 여부
printable = yes

# 여러 사람들이 파일을 공유할 목적으로 유효하게 사용할 수 있다.
# 현재 기본 값인 /tmp는 임시 작업 공간 디렉토리이므로 /var/tmp처럼 다른 디렉토리를 만들어서 사용하도록 한다.
[tmp]
comment = Temporary file space
path = /tmp
read only = no
public = yes

# 윈도우에서 보이는 공유 자원(폴더) 이름이지만 staff 그룹에 있는 사용자들을 제외한 사용자들은 오직 읽기만 사용 가능하다.
[public]
# 공유 자원에 대한 설명 필드와 같다.
comment = Public Stuff
# 삼바 서버로 공유할 실제 공유 자원(폴더)이다.
path = /home/samba/public
# 손님 사용자에게 접근을 허용한다.
public = yes
read only = no

printable = no
write list = @staff

# 사용자 정의 섹션
[posein]
comment = shared-files in posein directory
# 공유 디렉토리의 경로를 지정
path = /home/posein/pds
# 공유 디렉토리를 읽기만 가능하게 할지를 지정
read only = no
writable = yes
# 서비스 디렉토리에 사용 가능한 사용자를 말하며, 만약 이 옵션이 생략되면 모든 사용자가 접근할 수 있다.
valid user = posein xitem prehee
# guest ok와 같은 옵션으로 no로 설정하면 다른 사용자들은 이용할 수 없고 개인 사용자만 사용할 수 있게 된다.
public = no
# 이용 가능한 공유 리스트를 보여줄 것인가를 지정하는 것으로 no로 지정하면 리스트를 보여주지 않는다.
browseable = no
# 서비스로 지정된 디렉토리에 스풀 파일을 지정할 것인가를 지정하는 것으로, 프린터 공유 디렉토리가 아니므로 대부분 no로 설정한다.
printable = no
# create mode와 같은 옵션으로 파일을 생성할 때 사용되는 모드를 나타낸다.
create mask = 0644 
# 'no'로 하면 심볼릭 링크를 따르는 것이 방지된다. follow symlinks를 끄는 것은 잠재적인 보안 구멍을 제거한다.
follow symlinks = no

* 옵션
- read only : 공유 디렉토리를 읽기만 가능하다.
- writeble users : 공유 디렉토리를 쓰기 가능하다.
- valid users : 공유 디렉토리에 로그인 할 수 있도록 한다.
- public, guest ok : 다른 사용자들이 이용할 수 있도록 한다.
- browseable : 공유 디렉토리의 리스트를 보여준다.
- printable : 공유 디렉토리에 스풀 파일을 저장할 것인지를 지정한다.
- path : 공유할 디렉토리의 절대 경로이다.
- comment : 코멘트를 뜻한다.
- create mask, creat mode : 파일을 생성할 때 사용되는 모드를 의미한다.
- write list : 쓰기가 가능한 특정 사용자를 지정한다.

댓글 없음:

댓글 쓰기