삼바(Samba)
이기종간 운영체에와 자원 공유 프로토콜
리눅스 자원을 윈도우에서 공유
리눅스 프린터를 윈도우에 공유
삼바서버 구축에 필요한 패키지
system-config-samba-version.rpm
삼바 환경설정 패키지
samba-common-version.rpm
삼바 환경설정 패키지
samba-version.rpm
삼바 패키지
samba-client-version.rpm
삼바 클라이언트 패키지
rpm -qa | grep samba
[root@server14 ~]# rpm -qa | grep samba
samba-common-3.0.21b-2
samba-client-3.0.21b-2
samba-3.0.21b-2
system-config-samba-1.2.34-1
삼바 설정파일
/etc/samba/smb.conf
삼바의 주환경설정 파일
global, share definitions 두개의 설정으로 구성
samba 데몬
smb : samba데몬으로 smbd, nmdb 데몬을 구동
smbd : 파일, 프린터 공유, 사용자 권한 관련 데몬
nmbd : smb 클라이언트 데몬
samba 구동
/etc/rc.d/init.d/smb start/stop/restart
service smb start/stop/restart
vi /etc/samba/smb.conf
------------------------------------------------------------
workgroup = linux6
server string = sever14 Samba Server
hosts allow = 192.168.1. 192.168.2. 127.
security = user
[public]
comment = this is public directory
path = /public
public = yes
read only = yes
write list = alba
------------------------------------------------------------
/etc/samba/smb.conf
삼바 주 환경설정 파일로 2개의 섹션으로 이루어져 있다. global 섹션과 share definitons 섹션으로 구성
global 섹션
workgroup = linux6
네트워크에 사용되는 작업그룹 설정
server string = sever14 Samba Server
삼바 서버에 대한 설명을 입력
hosts allow = 192.168.1. 192.168.2. 127.
삼바 서버로 접속하는 클라이언트 네트워크를 허용하는 설정
예) host allow = 192.168.0.7
192.168.0.7 호스트 허가
예) host allow = 192.168.0. EXCEPT 192.168.1.4
192.168.0 대역을 모두 허가하는데 192.168.1.4만 허가 거부한다.
예) host allow = 10.10.0.0/255.255.255.0
10.10.0.0 대역의 접속을 허용
예) host deny = 10.10.0.5
10.10.0.5 호스트의 허가를 거부
예) host deny = 192.168.0. EXCEPT 192.168.1.4
192.168.0 대역을 모두 허가거부 192.168.1.4만 허가한다.
printcap name = /etc/printcap
삼바 서버를 프린터 서버로 운영할 경우 프린터 설정 경로를 지정
load printers = yes
/etc/printcap 파일의 프린트 목록을 로딩될수 있도록 설정
printing = cups
지원하는 프린터 시스템을 지정
cups options = raw
cups옵션으로 raster zed를 raw로 선택
guest account = pcguest
공유섹션에서 사용하는 항목으로 quest ok로 명시한 서비스 접근시 guest 계정으로 접근을 허용
log file = /var/log/samba/log.smbd
삼바서버에 접근하는 호스트들의 로그파일 위치 및 파일명을 지정
max log size = 50
로그파일 사이즈를 설정한다. 0은 파일 크기를 제한하지 않는다.
security = user
삼바 서버의 보안옵셔으로 인증 레벨을 지정
user : 사용자명 패스워드를 입력해야함
share : 인증없이 삼바 서버에 접속 가능
server : 윈도우 NT와 같이 다른 삼바 서버를 인즈을 통해 확인
domain : 윈도우 NT 서버가 존재해야 하며 사용자명/패스워드 도메인 컨트롤러 전달하여 유효한지 확인
password server = <NT-Server-Name>
보안옵셔에서 server, domain으로 설정한 경우 설정해줌
password level = 8
패스워드문자로 대소문자를 조합하여 사용할 문자의 개수를 지정
username level = 8
삼바 사용자명을 대소문자로 조합하여 사용할 문자의 개수를 지정
encrypt passwords = yes
패스워드를 암호화하여 사용하려면 설정, 기본 encrypt 모드
smb passwd file = /etc/samba/smbpasswd
encrypt passwords 설정을 활성화 하였을때 암호화된 패스워드가 기록되는 파일
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*authentication*tokens*updated*successfully*
클라이언트 호스트에서 사용자의 패스워드를 변경할 수 있도록 설정
username map = /etc/samba/smbusers
리누스 사용자와 삼바 서버의 사용자간에 이름이 다른경우 매핑시키기 위해 사용
include = /etc/samba/smb.conf.%m
접속하는 클라이언트 마다 서로다른 설정으로 서비스 할수 있도록 한다. %m은 접속하는 NetBIOS 이름으로 대체된다.
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
로컬 네트워크 상에서 삼바 서버의 성능 튜닝에 사용한다.
interfaces = 192.168.12.2/24 192.168.13.2/24
삼바에 연결된 네트워크 인터페이스를 설정한다. IP/netmask 조합으로 지정한다.
remote browse sync = 192.168.3.25 192.168.5.255
외부 공유된 컴퓨터를 볼 수 있는 리스트를 설정하는 부분이다
remote announce = 192.168.1.255 192.168.2.44
삼바서버를 호스트에게 알려줄 범위를 설정하는 부분
local master = no
삼바 서버거 네트워크에서 로컬 마스터 브라우저가 될수 있도록 허용하는 설정이다.
os level = 33
OS레벨은 마스터브라우저 선정과정에서 서버우선권을 결정한다
domain master = yes
삼바서버로 도메인 마스터 브라우저가 되도록 선정하는 옵션
preferred master = yes
로컬마스터 선거를 하도록 설정한다.
domain logons = yes
삼바서버가 windows95 워크스테이션에 대한 도메인 로그온 서버 역할을 할 경우 설정
logon script = %m.bat
logon script = %mU.bat
사용자가 로그인을 하였을 경우 다운로드 하여 작동시킬 배치파일(*.bat)또는 NT명령파일(*.cmd)을 지시해 주는 설정이다.
logon path = \\%L\Profiles\%U
windows98또는 NT에서 user.dat와 같은 로우빙 프로파이릉ㄹ 어디에 설정할것인지를 지정하는 옵션이다.
name resolve order = wins lmhosts bcast
호스트 이름을 연결시키는 방법을 결정하는 옵션
wins support = yes
삼바서버의 nmbd 데몬이 wins서버역항을 할 수 있을지 여부를 지정한다.
wins server = w.x.y.z
wins 서버를 사용할시 IP를 지정한다.
wins proxy = yes
nmbd에 의해 wins 기능을 갖추지 못한 클라이언트를 대신하여 브로드캐스트 이름 질의를 대신 응답해 줄 수 있도록 지정해 주는 옵션
dns proxy = no
dns서버를 이용하여 NetBIOS이름을 찾을 것인지 여부를 지정한다.
preserve case = no
short preserve case = no
대소문자를 유지보존 할 것인가를 지정하는 대문자로 설정한다
default case = lower
DOS파일에 대한 기본설정을 대문자로 설정한다.
case sensitive = no
대소문자에 구분에 대한 설정이다
share definitions 섹션
[] : 공유 섹션을 지정
comment : 공유디렉토리에 대한 설명을 입력
browseable : 공유이름을 브라우저에 표시할 것인지 지정
writable : 쓰기 허용을 설정
create mask : 쓰기 퍼미션을 설정
invalid users : 사용 불가능한 유저를 지정
valid users : 사용 가능한 유저를 지정
path : 공유할 디렉토리를 지정(반드시 필요)
public : 누구나 접근 가능 여부를 지정한다.
printable : 프린터 공유 디렉토리 일때 설정
guest ok : guest 접근 가능 여부 지정
write list : 쓰기 가능한 사용자 또는 그룹을 지정한다.
[homes]
183 comment = Home Directories
184 browseable = no -> 다른 사용자들이 보이지 않는다.
185 writable = yes -> 읽기 쓰기 가능하게 설정, no로 되어 있으면 읽기전용
mkidr /samba
chmod 757 /samba
vi /etc/samba/smb.conf
[server14_shared]
comment = samba server14 ->공유시 폴더면에 보여지는 comment
path = /samba
valid users = mary fred
public = no
writable = yes
printable = no
create mask = 0765
service smb start
testpam
삼바 인증모드 설정
삼바는 패스워드를 시스템 패스워드와 다른것을 사용하기 때문에 따로 설정해 주어야 한다.
security=user로 설정하고
smbpasswd -a test1
[root@server14 ~]# smbpasswd -a test1
New SMB password:
Retype new SMB password:
Added user test1.
smbpasswd -a test2
[root@server14 ~]# vi /etc/samba/smbpasswd
[root@server14 ~]# smbpasswd -a test2
New SMB password:
Retype new SMB password:
Added user test2.
/etc/samba/smbpasswd에 패스워드 내용이 추가된다.
서버를 재시작
service smb restart
다시 해당 공유폴더로 가면 이전에 공유한 share 디렉토리와 사용자의 홈디렉토리가 나온다.
사용자의 홈디렉토리가 나오지 않게 하려면
vi /etc/samba/smb.conf
#[homes]
# comment = Home Directories
# browseable = no
# writable = yes
이렇게 주석 처리해주면 홈 디렉토리가 나오지 않는다.
samba 관련 명령어
testparm
/etc/samba/smb.conf 설정이 정상적인지 구문 체크, 또는 samba 서버의 공유설정을 확인 할때 사용한다.
smbpasswd
삼바서버 사용자의 계정과 패스워드를 설정, 설정된 파일을 /etc/samba/sbmpasswd에 저장된다. 이때 추가하는 사용자는 계정의 사용자 이어야 한다.
사용법
smbpasswd [option] [user_name]
smbpasswd -a skydriver -> skydriver 사용자의 삼바 사용자 계정 들록 및 패스워드를 설정
smbpasswd -x skydriver -> skydriver 사용자의 삼바 사용자 계정을 삭제한다.
smbpasswd -d skydriver -> skydriver 사용자의 삼바 사용자 계정을 사용중지한다.
smbclient
ftp 클라이언트 형식으로 SMB 서비스 설정확인 및 접속
터미널에서 삼바 서버에 접속하기
사용법
smbclient [option] [hostname]
smbclient -L 10.10.64.14 -> 10.10.64.14의 삼바 서버 상태를 출력한다.
[root@server14 /]# smbclient //10.10.64.14/server14_shared2 -U test1
Password:
Domain=[SERVER14] OS=[Unix] Server=[Samba 3.0.21b-2]
smb: \>
[root@server14 ~]# smbclient //10.10.64.19/win -U administrator
Password:
Domain=[MYCOM] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager]
smb: \> ls
. D 0 Thu Jul 31 13:58:21 2008
.. D 0 Thu Jul 31 13:58:21 2008
001 D 0 Thu Jul 31 13:58:21 2008
11.txt A 0 Thu Jul 31 13:57:08 2008
smb: \> mget 11.txt -> 11.txt라는 파일을 다운 받는다.
파일을 받고 싶은 경로를 지정하기(lcd 명령을 이용해서 변경)
smb: \> lcd /root/Desktop
smb: \> mget 11.txt
Get file 11.txt? yes
getting file \11.txt of size 0 as 11.txt (0.0 kb/s) (average 0.0 kb/s)
smbclient //10.10.64.14/server14_shared2 -U test1
nmblookup
TCP/IP를 통하여 NetBIOS 이름을 검색
wins서버에 질의할때 사용한다. NetBIOS 이름을 검색한다.
smbstatus
삼바서버의 접근했던 IP와 유저 정보가 나온다.
[root@server14 ~]# smbstatus
Samba version 3.0.21b-2
PID Username Group Machine
-------------------------------------------------------------------
Service pid machine Connected at
-------------------------------------------------------
No locked files
printconf
프린터 설정하는 프로그램 작동
X-window 상에서 Samba설정 도구
system-config-samba &
<<문제>>
1)사용자 추가 test1, test2, test3, test4, test5, sajang, alba
2)/public 누구나 접속가능, alba만 쓰기가능
3)/insa test1, test2, sajang 만 접속가능, 쓰기가능
4)/edu test3, test4, test5, sajang 만 접속 가능, 쓰기가능
5)/sec sajang 만 접속 가능, 쓰기가능, 보이지 않음
6)개인디렉토리(O)
<<문제 풀이>>
1)사용자 추가 test1, test2, test3, test4, test5, sajang, alba
samba전용 패스워드를 설정해 주자
smbpasswd -a test1
smbpasswd -a test2
..............
공유
2)/public 누구나 접속가능, alba만 쓰기가능
[public]
comment = this is public directory
path = /public
public = yes
read only = yes
write list = alba
3)/insa test1, test2, sajang 만 접속가능, 쓰기가능
[insa]
comment = this is insa directory
path = /insa
valid users = test1 test2 sajang
writable = yes
4)/edu test3, test4, test5, sajang 만 접속 가능, 쓰기가능
[edu]
comment = this is insa directory
path = /edu
valid users = test3 test4 test5 sajang
writable = yes
5)/sec sajang 만 접속 가능, 쓰기가능, 보이지 않음
[sec]
comment = this is insa directory
browseable = no
path = /sec
valid users = sajang
writable = yes
6)개인디렉토리(O)
[homes]
comment = Home Directories
; browseable = no
writable = yes
로그인 해보기
smbclient //10.10.64.14/public -> ID없이 누구나 접속 가능
smbclient //10.10.64.14/public -U test1 ->ID로 접속하고 싶을때 -U 옵션 이용
smbclient //10.10.64.14/sajang -U sajang -> sajang이 자신의 홈 폴더에 접속하고 싶을때
삼바을 웹에서 관리하는 툴 SWAT 설치하기
1. xinetd 를 설치해준다.
2. samba-swat-3.0.21b-2.i386.rpm 패키지를 설치한다.
vi /etc/xinetd.d/swat
disable = no 로 변경해준다.
service xinetd start 해준다.
http://localhost:901 로 확인한다.