안녕하세요
뚱보 프로그래머 입니다.
Samba 입니다.
Samba
1. 삼바 개요
삼바는 리눅스, 유닉스 서버에서 동작하면서 서버 자원을 PC(MS-Windows 계열)에서 공유해서 사용할 수 있도록 설정하는 프로그램이다. PC에 공유해서 사용할 수 있는 서버 자원으로서는 서버의 하드 디스크와 서버에 연결되어 있는 네트워크 프린터이다. 삼바를 사용하게 되면 NFS와는 반대로 PC자원(하드 디스크와 프린터)를 리눅스나 유닉스 서버에서 사용할 수 있게 할 수도 있다. 그리고 NT의 기능을 대체한다.
2. 기본 삼바 서버 설정
1) samba 서버 설정
[root @edu00 /home]#useradd test
[root @edu00 /home]#passwd test
[root @edu00 /home]#chmod -R 777 test
[root @edu00 /home]#vi /etc/samba/smb.conf
[global]
workgroup=linuxnara
server string = Samba Server
printcap name = /etc/printcap
load printers = yes
printing = lprng
guest account = nobody
log file = /var/log/samba/%m.log
max log size = 50
security=share
encrypt passwords = yes
smb passwd file = /etc/samba/smbpasswd
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
[homes]
comment = Home Directories
browseable = no
writable = yes
[test]
comment=samba test
path=/home/test
public=yes
writable=yes
hosts allow=211.170.43. 127.0.0.1 192.168.1.
hosts deny=192.168.1.2
[root @edu00 /home]#testparm
설정 구문을 체크한다.
[root @edu00 /home]#testparm /etc/samba/smb.conf 192.168.1.10
[root @edu00 /home]#testprns
프린터 지원을 체크한다.
[root @edu00 /home]#nmblookup -B localhost
[root @edu00 /home]#nmblookup -d 2 '*'
IP 주소와 NetBIOS 이름을 매핑시킨다. MS 계열의 운영체제에서 IP 주소를 잘못 설정하여 IP 충돌이 일어날때 사용한다.
[root @edu00 /home]#/etc/rc.d/init.d/smb start
[root @edu00 /home]#mksmbpasswd.sh < /etc/passwd > /etc/samba/smbpasswd
혹은
#smbpasswd 계정명
[root @edu00 /home]#smbclient -L localhost -N
-N 옵션 사용시 passwd 인증을 하지 않는다.
[root @edu00 /home]#smbclient -L localhost
passwd 인증이 필요하다.
[root @edu00 /home]#cd /home/test
[root @edu00 test]#mkdir aa
2) 삼바 클라이언트 설정
[root @edu00 home]#smbclient //211.170.43.100(상대IP)/test
root 계정의 암호나 일반 계정 사용자(test)의 암호를 입력한다.
Smb\>help
Smb\>mput aa
3. 설정 파일 및 구문 체크
1) 삼바 주 설정 파일
리눅스를 설치하게 되면 기본적으로 삼바가 설치가 되는데, 삼바가 설치가 되었다는 것은 기본적인 홈 디렉토리와 프린터가 공유될 수 있음을 의미한다. 삼바의 설정은 다른 설정 파일과 유사하게 #이 첫머리에 사용되면 그 이후는 주석으로 처리되며, 세미콜론(;)도 마찬가지로 주석으로 처리된다.
삼바에 대한 설정은 /etc/samba/smb.conf(Server Message Block configuration)에서 모두 할 수 있는데, [global] 영역, [homes] 영역, [printers] 영역 등 크게 3 영역으로 구분된다.
먼저, [global] 영역은 공유된 자원들에 대해 설정하는 것으로, 특정 항목에 국한된 것을 설정하지 않고 삼바 서버 전체에 대한 설정을 관리하게 된다.
[homes] 영역은 사용자가 삼바 서버에 접속을 하자마자 자신의 홈 디렉토리로 이동할 수 있으며, 각자의 홈 디렉토리에 적합하도록 환경을 설정할 수 있다.
[printers] 영역은 삼바 서버에 연결된 프린터를 공유하기 위한 영역이다.
[root @edu00 linux]#vi /etc/samba/smb.conf
[global]
workgroup = linuxnara
삼바가 설치된 호스트가 참여할 윈도우의 워크그룹을 지정하는 항목이다.
server string= Samba Server
삼바가 설치된 호스트에 대한 설명을 기록하는 부분으로, 윈도우 탐색기에서 "보기->자세히" 부분을 살펴보면 ‘Samba Server’라는 설명이 나타난다.
veto files = /.?*/
서버에서 점(.)으로 시작하는 숨겨진 파일을 PC쪽에서 보이지 않도록 설정하는 항목이다. 리눅스에서도 점(.)으로 시작하는 파일들은 중요하기 때문에 보이지 않도록 되어 있는데, 이 파일들이 클라이언트에 함부로 노출되면 보안상 문제가 있기 때문에 보이지 않도록 설정하는 것이 좋다.
client code page = 949
파일 명이나 디렉토리 명이 한글로 되어 있는 경우에는 반드시 코드 페이지를 949로 설정하는 것이 좋다. 그렇지 않으면 서버측에 저장된 파일 명을 제대로 볼 수 없게 되기 때문이다. 또한 클라이언트측에서 디렉토리를 만들 때나 파일을 한글로 저장할 때도 코드 페이지를 949로 설정해두는 것이 좋다. 한글을 제대로 사용하기 위해서는 이후에 제시될 preserve case 항목과 short preserve case 항목을 참고한다.
hosts allow = 127. 211.170.43. 192.168.1.
hosts deny = 192.168.1.2
보안 관련 설정으로, 자기 자신(127.)과 211.170.43. 대역의 C 클래스에 소속된 클라이언트, 그리고 192.168.1. 대역의 사설 IP 주소를 사용하는 사용자들에게만 접근을 허용하는 내용이다. 특정 호스트를 지정하기 위해서 IP 주소를 사용하거나 도메인 명을 사용해도 되고, 호스트명이나 도메인 명을 사용할 경우에는 wild card(*, ?)을 사용하는 것이 가능하다. 특정 호스트를 지정할 경우에는 공백을 이용하여 분리하고 접속을 허용할 IP 주소를 나열한다. 만약 위와 같이 설정되어 있다면 192.168.1. 대력의 모든 IP 주소를 가진 클라이언트를 허용하지만 192.168.1.2의 IP 주소를 가진 클라이언트는 접근을 금지당한다.
다음은 사용 예들이다.
hosts allow = 192.168.1.0/255.255.255.0 (Never Use!! 192.168.1.0/24) .example.com
printcap name = /etc/printcap
printcap 파일은 프린터에 대한 ASCII 정보를 가지고 있는 데이터베이스 파일로, 기본값은 /etc/printcap이다. 만일 이 파일의 위치나 혹은 다른 파일로 변경하고 싶다면 정확한 파일 경로를 지정하면 된다.
load printers = yes
시스템에 부착된 프린터가 있는 경우 printcap에 정의한 프린터 목록이 자동으로 서비스되게 된다.
이것을 no로 설정했다면 일일이 다시 설정을 해야 한다.
printing = lprng
시스템에 부착되어 있는 프린터가 프린팅 시스템 표준에서 벗어난 것이라면 이 옵션에서 설정을 해야 한다. 현재 지원되는 프린팅 시스템은 bsd, sysv, plp, lprng, aix, hpux, qnx 등이다.
guest account = nobody
윈도우의 guest 사용자를 허가하는 설정으로, 주석 처리할 경우 윈도우의 guest 사용자는 삼바 서버
를 사용할 수 없게 된다. nobody가 아닌 다른 사용자로 설정할 경우에는 /etc/passwd 파일 내에
존재하는 사용자 계정을 추가해야 한다. 여기에
추가하는 계정은 일반 쉘로 로그인을 못하게 하는것이 보안에 좋다.
log file = /var/log/samba/%m.log
삼바 서버에 접속하는 호스트 별로 개별적인 로그파일을 기록하도록 설정하는 부분으로, "접근 호스트명.log"와 같은 파일명으로 로그가 기록되는데, %m은 삼바 설정에서 호스트명을 의미하는 변수이다.
max log size = 50
거의 모든 시스템에서 로그를 처리하는 것은 커다란 문제이다. 물론 로그를 정확하게 분석함으로써 누가 언제 접근했는지에 대한 정보를 얻을 수 있지만 로그의 크기를 무제한으로 증가하도록 할 수은 없다. 로그 파일의 크기가 커지면 시스템의 성능도 저하되고, 하드 디스크도 심각한 낭비를 초래하므로 로그 파일의 크기를 제한하는 것이 좋다. 로그 파일의 크기를 KB 단위로 제한하는 항목이다.
security = share
이 항목에서 사용할 수 있는 옵션은 user, share, server 등 세가지로, user는 유닉스 계정이름/패스워드 방식의 보안 등급을 요구하는 것이고, share는 windows 9x, NT, 2000일 경우에 사용되는 옵션이고, server의 경우인증을 위해 NT나 2000의 도메인(DNS 도메인이 아님) 서버가 필요하다.
;password server = NT-Server-Name
앞에서 security=server로 설정되면 사용자가 삼바에 접속할 경우 인증을 받는데데, 여기에 인증을
해줄 NT 도메인 서버의 이름을 입력한다.
;password level = 8
;username level = 8
패스워드와 사용자 이름을 대소문자 및 숫자 8자로 이루어지게 설정하는 항목이다.
encrypt password = yes
패스워드를 암호화할 때 사용되는 부분으로, windows 9x, NT, 2000등은 네트워크를 통해 패스워드를
암호화해서 보내기 때문에 이렇게 설정해야 한다. 그렇지 않으면 윈도우에서 패스워드를 암호화해서 전송하지 않도록 Windows 레지스트리를 변경해야 한다.
smb passwd file = /etc/samba/smbpasswd
패스워드를 암호화할 경우 /etc/samba/smbpasswd 파일을 다음과 같이 생성해야 한다. 일반적으로 기존 서버의 패스워드 파일을 삼바 패스워드 파일로 변경시킨다. 아래와 같이 mksmbpasswd.sh를 이용할 수도 있고 또는 smbpasswd 프로그램을 이용해서 삼바 사용자를 추가할 수도 있다.
[root @edu00 /home]#mksmbpasswd.sh < /etc/passwd > /etc/samba/smbpasswd
[root @edu00 /home]#cat /etc/passwd | mksmbpasswd.sh > /etc/samba/smbpasswd
리눅스 서버의 사용자 계정에 대한 패스워드를 변경한 경우, 삼바 패스워드가 자동적으로 갱신되면 좋겠지만 현실적으론 그렇지 않다. 그러므로 사용자가 리눅스 계정에 대한 패스워드를 변경하고 나면 반드시 삼바 패스워드도 변경해주는 것이 좋은데, 시스템 계정에 대한 패스워드를 변경할 때마다 위와 같이 명령을 내리는 것은 힘들기 때문에 삼바 패스워드를 변경하기 위해서는 다음과 같은 명령을 이용한다.
#smbpasswd edu00_user
New SMB password:
Retype new SMB password:
; 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*
smbpasswd 명령을 매번 실행하지 않고 시스템 계정의 암호를 바꿀 때마다 삼바의 패스워드도 자동
으로 변경되도록 설정할 수 있는데, 단 이 옵션은 encrypt password와 smb passwd file 옵션은 함께
사용해야 한다.
username map = /etc/samba/smbusers
리눅스 사용자 이름과 SMB 사용자 이름이 달라 둘 사이를 매칭시켜주는 역할을 하는 파일로 기본적
으로 윈도우 클라이언트에서 지정한 이름과 리눅스 사용자 이름이 같다면 상관없다. 다를 경우 이 파일이 시스템 계정과 삼바 계정을 연결시키는 역할을 하게 되다.
; include = /etc/samba/smb.conf.%m
삼바의 설정을 접속하는 호스트마다 다르게 설정하고 싶을 경우 사용되는 항목으로, 접속하는 클라이언트마다 완전히 다른 내용으로 설정해야 한다면 유용한 항목이다.
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
대부분의 경우 성능 향상의 효과를 위해 설정하는 부분으로 TCP 상에서 데이타를 지체(delay)하지 말고 바로 전송할 것을 지정하고 데이터 송수신시에 사용할 버퍼의 크기를 8MB까지 지정한다.
;interfaces = 192.168.12.2/24 192.168.13.2/24
삼바를 운영하고 있는 서버가 여러 개의 이더넷 카드를 가지고 있는 경우 해당 이더넷을 사용하도록
설정하는 것으로, 여러 개의 NIC(Network Interface Card)를 가지고 있다면 그 인터페이스들을 모두 기록해 주는 것이 좋다. 위의 예는 두 개의 NIC를 가지고 192.168.12.와 192.168.13. 네트워크에 대해서 삼바 서비스를 지정한 것이다.
; remote browse sync = 192.168.1..255
원격 브라우즈 목록과의 동기화에 대한 설정으로 192.168.1.1-254까지의 호스트를 동기화한다.
; remote browse sync = 192.168.3.25 192.168.5.255
원격 브라우즈 목록과의 동기화에 대한 설정으로 192.168.3.과 192.168.5. 대역의 모든 호스트를
동기화하겠다는 설정이다.
remote announce = 192.168.1.255 192.168. 2.44
삼바 서버가 네트워크 상에서 잘 보이지 않을 때 설정하며 브로드캐스팅에 사용되는 주소를 입력한다.
; local master = no
만약 삼바가 여러분의 네트워크에서 마스터 브라우저가 되기를 원하지 않는다면 local master를 no로 설정한다.
; os level = 33
OS Level은 마스터 브라우저 선출에 있어서 이 서버의 우선 순위를 결정한다.
;domain master = yes
이 항목은 삼바가 도메인(인터넷의 도메인이 아님)의 마스타 브라우저가 되도록 설정하는 것으로
삼바는 서브넷으로부터 브라우저 목록을 모으는 작업을 하게 된다. 이미 이러한 기능을 담당하고
있는 NT나 2000(도메인 컨트롤러) 서버가 있다면 이 항목을 사용해서는 안된다.
; domain controller = <NT-Domain-Controller-SMBName>
주 도메인 컨트롤러(PDC: Primary Domain Controller)로 설정된 NT 서버가 존재할 경우에 사용한다.
; domain logons = yes
삼바가 Windows 95 워크스테이션에 대한 도메인(인터넷 도메인이 아님) 로그온 서버 역할을 하기
원하는 경우에 사용하는 항목으로 NT 서버가 있다면 불필요하다.
; wins support = yes
; wins server = w.x.y.z
; wind proxy = yes
WINS(Windows Internet Naming Service) 지원을 설정하는 항목들이다.
dns proxy = no
DNS Proxy는 Samba가 DNS nslookup을 통해 NetBIOS names를 해결할 것인지 아닌지를 알려준다.
preserve case = yes
short preserve = yes
삼바 서버에서 대소문자를 구분하기 위한 설정으로, 한글을 보기 위해 이 구분이 필요하며, 각 디렉토리 공유별로 따로 설정이 가능하다.
[homes]
사용자의 홈 디렉토리를 공유하고, 특정한 작업을 위한 공유 등을 설정한다. 먼저 사용자의 홈 디렉토리를 공유한다.
comment = Home Directories
browseable = no
공유 리스트에 나타나지 않으며 만약 yes를 설정하면 공유 리스트에 나타난다.
writable = yes
위의 설정은 리눅스 시스템의 사용자 계정과 윈도우 로그인 사용자 계정이 일치할 경우에 접근을
허용하는 것으로, 그렇지 않은 경우 위에서 설정한 smbusers 파일에서 사용자를 매칭시켜야 한다.
path라는 옵션을 사용하여 모든 사용자들이 동일한 디렉토리를 공유하도록 지정할 수도 있지만 path옵션을 생략하여 접속하는 사용자의 홈 디렉토리를 사용하도록 설정하고 있다. 특히 path 옵션은
클라이언트가 삼바 서버에 접속할 때 smb.conf 파일을 읽어서 클라이언트가 사용할 홈 디렉토리를 결정하기 때문에 서버를 다시 가동할 필요가 없다.
[homes] 영역에서 한가지 주의할 것이 있다. guest가 접근할 수 있는 권한을 설정해두면 삼바 서버에 존재하는 모든 사용자의 홈 디렉토리가 패스워드를 입력하지 않아도 윈도우 탐색기 상에 나타나기 때문에 주의를 해야 한다. 이런 경우에 대비해 읽기 전용으로만 접근할 수 있도록 설정을 해야 한다.
또한 서버 사용자 계정에 대한 browseable 설정은 [homes] 영역에서는 제대로 동작하지 않고, 단지 [global] 영역에서 설정된 대로만 영향을 받게 된다.
; [netlogon]
; comment = Network Logon Service
; path = /home/netlogon
; guest ok = yes
; writable = no
; share modes = no
도메인 로그온을 위한 netlogon 공유 디렉토리 설정이다. 물론 도메인 로그온 기능을 지원할 때만 사용 가능한 것으로, MS 계열의 운영체제로 구성된 클라이언트 네트워크에서 도메인 컨트롤러(PDC 혹은 BDC: Backup Domain Controller)가 있는 경우에는 사용할 수 없는 구성이다.
[pds]
comment = 리눅스 서버 자료실
path = /pub/pds
hosts allow = 192.168.1. 127. 211.170.43.
valid users = linux admin
public = no
다른 사용자에게 공개되어 있지 않다. 즉 guest = no와 동일한 기능을 제공한다.
; guest ok = yes
writable = yes
printable = no
create mask = 0765
위의 설정은 리눅스 자료실을 만드는 설정인데, 먼저 공유할 디렉토리는 /pub/pds이고, 이 자료실을 사용할 수 있는 사용자는 linux와 admin이며, 다른 사용자에게는 공개되어 있지 않고(public = no는 guest = no와 동일한 기능을 수행한다), linux와 admin 사용자는 파일을 탑재할 수 있으며, 파일 탑재시 기록되는 방식은 765이다.
2) 설정 파일 구문 체크
[root @edu00 linux]#testparm
설정 후에 설정을 테스트하기 위해 /usr/bin/testparm 명령을 수행시킨다. 잘못된 내용을 지적하고, 서비스를 위해 정의된 내용을 화면에 출력하게 된다. 출력 내용은 위에서 언급한 내용 외에 전체 설정 사항들에 대한 것들(구체적으로 언급하지 않은 것들)에 대해서는 기본값을 출력한다.
4. GUI TOOLS
1) SWAT(Samba Web Administration Tool)
삼바에는 SWAT이라는 웹 기반 관리 툴이 포함되어 있다. 이것은 /etc/xinetd.d/swat(혹은 /etc/inetd.conf)에 설정이 되며, 접속은 901 포트를 사용하게 되어 있다.
[root @edu00 home]#vi /etc/xinetd.d/swat
--생략--
disable=yes를 disable=no로 설정한다.
[root @edu00 home]#/etc/init.d/xinetd restart
[root @edu00 home]#/etc/init.d/smb restart
[root @edu00 home]#netscape & http://localhost:901
혹은 웹 브라우져에서 http://localhost:901을 주소창에 입력하고 사용자 ID와 암호 입력창에 root 사용자와 root 사용자의 암호를 이용하여 접속한다.
주의할 것은 swat을 이용한 설정은 설정 파일 자체를 변경하기 때문에 설정시 원래의 설정 파일인 /etc/samba/smb.conf 파일을 백업해야 한다.
2) KSamba
KSamba라는 제품은 독일에서 제작된 것으로 smb.conf 설정 파일을 KDE(K Desktop Environment)에서 쉽게 설정할 수 있도록 환경을 제공해주고 있다. 이 프로그램은 자주 사용하는 설정 항목들에 대해서 마법사 기능을 제공하고 있어 MS-Windows 환경에 익숙한 사용자라면 사용해볼만 하다.
http://www.kneschke.de/projekte/ksamba/download/ksamba-0.3.4.tar.gz
3) b+b samba admin tool(bbstat)
HP에서 제작하여 무료로 배포하고 있는 b+b samba admin tool(bbstat)는 HP의 독일 파트너 회사인 B+B Unternehmensberatung에서 제작한 것으로, GUI 기반의 PC에서 삼바 설정을 편리하고 쉽게 할 수 있는 기능을 제공한다.
http://jazz.external.hp.com/src/samba/bbstat.tar.gz
http://jazz.external.hp.com/src/samba/bbstat.zip
4) smbedit
MS-Windows 계열에서 운영되는 smbedit라는 응용 프로그램이 있다. 이 프로그램 또한 smb.conf 파일을 클라이언트인 윈도우에서 편리하게 편집할 수 있는 기능들을 제공하고 있다. 즉, FTP, 텔넷 등의 프로그램이 추가되어 있기 때문에 편리하게 편집할 수 있으며, 삼바가 설치된 서버와 효율적인 작업이 가능하고 삼바 서버를 시작하거나 중지시킬 수 있다.
http://us1.samba.org/samba/smbedit/vault.html/smbedit1.02alpha8.zip
5) SMB2WWW
펄(perl) 기반의 프로그램으로 웹 브라우저를 이용하며 MS-Windows 계열의 “네트워크 환경”과 비슷한 형식의 인터페이스를 제공한다.
http://samba.org/samba/smb2www
6) webmin
다양한 응용 프로그램들에 대한 설정을 수행할 수 있는 장점을 지닌 응용 프로그램으로, 디스크 파티션부터 로그, 파일 관리, NFS 관리, DHCP, DNS의 영역(zone) 파일 등 다양하게 설정을 할 수 있다.
5. 클라이언트 이용하기
1) 공유 디렉토리 마운트
NFS처럼 공유된 삼바 디렉토리를 마운트해서 사용할 수 있다.
[root @edu00 /home]#smbmount //smb_server(IP)/shared_directory /mnt/smb_dir
[root @edu00 /home]#smbmount //smb_server(IP)/shared_directory /mnt/smb_dir –o
>username=root,password=linuxone
위와 같이 명령을 내리면 smb_server라는 시스템에서 공유된 shared_directory가 /mnt/smb_dir에 마운트된다. 만약 부팅할 때마다 마운트되게 하려면 /etc/fstab 파일을 편집한다.
2) smbclient 사용하기
삼바에서 제공하는 응용 프로그램의 일종으로, 이를 이용하면 편리하게 공유된 디렉토리를 사용할 수 있다. 먼저 접속하려는 서버에서 제공하는 디렉토리들은 어떤 것들이 있는지 확인한다.
[root @edu00 /home]#smbclient -L samba_server
-L 옵션을 이용해서 삼바 서버가 설치된 호스트의 이름을 입력하면 해당 서버에서 제공해주는 공유 디렉토리에 대한 리스트를 보여준다.
[root @edu00 /home]#smbclient //samba_server/smb_dir
Smb:\> help
[root @edu00 /home]#smbclient //samba_server/smb_dir -U 계정
3) 윈도우의 공유된 디렉토리를 접속
[root @edu00 home]#smbclient //서버이름/공유 -U Administrator
[root @edu00 home]#smbclient //공용식/hp4mv -P -N
-P옵션은 프린터로의 접속을 의미하며 –N 옵션은 패스워드 인증 없이 접속할 수 있는 기능을 제공한다.
6. 구성 프로그램
1) smbd
삼바에는 두가지 데몬이 존재하는데, 그 중에서도 가장 중요한 것이 smbd로 SMB 데몬이다. 이 프로그램은 파일 시스템과 프린팅 서비스를 클라이언트에게 제공해주고 또한 사용자의 인증에 관여하는 프로그램으로, SMB 프로토콜을 사용한다. SMB 프로토콜은 MS 계열의 운영체제에서 사용하는 LanManager 프로토콜과 호환성을 가지고 있으며, LanManager의 클라이언트로도 활용이 가능하다.
데몬이 실행될 때 사용하는 옵션으로는 다음과 같은 것들이 있다.
-D : 삼바 서버가 데몬으로 동작하도록 지정하는 것으로, smbd는 데몬으로 동작하는 성능이나 예기치 못한 클라이언트의 접속에 도움이 된다. 기본적으로 삼바 서버는 데몬으로 동작하지 않는다.
-a : 새로운 연결이 생성될 때마다 로그 파일의 끝에 메시지를 추가하는 것으로, 기본값이다.
-o : 로그 파일이 커지는 것을 막을 수 있는 것으로, 로그 파일이 열려질 때 이전 내용을 덮어쓰게 하는 설정이다.
-p# : #은 클라이언트의 접속을 받을 포트 번호로 기본적으로 139번 포트이다.
-i scope : 삼바 서버에서 NetBIOS(Network Basic Input Output System) 이름을 생성할 경우에 NetBIOS 영역을 지정하는 것으로, 거의 사용되지 않는다.
2) nmbd
NetBIOS 이름을 위한 서버로, IP 체계위에서 가동되며, MS 계열의 운영체제에서 "네트워크 환경"에 호스트 이름을 제공하는 역할을 수행한다. 일반적으로 nmbd가 제공해주는 NetBIOS의 이름은 호스트의 DNS명이 되지만 –n 옵션을 이용해서 이를 변경할 수 있다. 또한 nmbd를 이용해서 WINS 서버로 가동해도 된다. 이 프로그램과 함께 사용되는 옵션들은 다음과 같고, -D, -a, -o, -p 등의 옵션은 smbd에서와 동일하다.
-H filename : NetBIOS의 호스트 파일을 지정하는 옵션으로, MS 계열에서는 LMHOSTS 파일이 사용된다.
-n netbiosname : 삼바에서 사용되는 NetBIOS 이름을 다른 것으로 지정하는 것으로, smb.conf 파일의 “NetBIOS name” 항목과 같은 기능을 한다.
7. 암호화 문제의 해결
security 파라미터의 기본 설정은 user이다. 클라이언트(WinXX)는 사용자명과 함께 패스워드(텍스트 형태)를 입력해야 한다. 그런데, Windows 9X와 Windows NT/2000 운영체제에서 텍스트로 된 패스워드를 사용하지 않고 암호화된 패스워드를 사용하기 때문에 삼바는 사용자 확인을 할 수 없어서 클라이언트로부터의 요청을 거부할 것이다.
1) 텍스트 패스워드 설정
Windows의 암호화 문제로 인한 로긴실패는 Windows 시스템의 Password를 암호화시키지 않으므로 해결할 수 있다.
운영체제 레지스트리 편집기상의 경로: EnablePalinTextPassword
1] Windows98
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VxD\VNETSUP] dword:00000001
2] WindowsNT
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Rdr\Parameters] dword:00000001
3] Windows2000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkStation\Parameters] dword:00000001
2) 삼바 서버에서 암호화된 패스워드 사용
네트워크에서 삼바 서버로의 로긴시 윈도우즈 암호화 방법을 사용한다.
[root @edu00 linux]#cat /etc/passwd | mksmbpasswd.sh > /etc/samba/smbpasswd
[root @edu00 linux]#cat /etc/samba/smbpasswd
[root @edu00 linux]#smbpasswd wind
[root @edu00 linux]#cat /etc/samba/smbpasswd
[root @edu00 linux]#vi /etc/samba/smb.conf
[global]
.......
security = user
encrypt passwords = yes
socket options = TCP_NODELAY
dns proxy = No
…
[root @edu00 linux]#testparm
[root @edu00 linux]#/etc/rc.d/init.d/smb restart
8. Windows 2000 접속
1) 파일 시스템 마운트
Windows 2000 서버의 C 드라이브를 공유하고 특정 디렉토리를 지정하여 공유한다.
하지만 Windows 95나 Windows me는 드라이브를 공유하고 지정한다.
[root @edu00 home]#mkdir /mnt/ms
[root @edu00 home]#smbmount //wind/work /mnt/ms (username=wind)
smbmount //서버이름/공유이름 /마운팅포인트의 형식을 취한다.
[root @edu00 home] #smbumount /mnt/ms
[root @edu00 home]#smbmount //wind/wind /mnt/wind username=wind -g admin
마운트한 C 드라이브에 대해서 리눅스 시스템의 특정 사용자와 그룹만 접근가능하다.
smbmount //서버이름/디렉토리명 -u UID -g GID 형식을 따른다.
2) Windows 2000 Filesystem 접속
리눅스 시스템에서 smbclient 프로그램을 이용해 프린터에 접속한다.
접속에 성공하면 smbclient 프롬프트에 printmode text를 입력하고, /home/wind/tt1.txt를 입력하여
테스트한다.
[root @edu00 home]#smbclient //printer/qlaser2 -N -P
smbclient //삼바서버/프린터이름 -U 윈도우사용자명 -N -P (-W 작업그룹)의 형식을 따른다.
[root @edu00 home]#lpr -Plp /home/wind/tt1.txt
lpr -P프린터명 프린트할 파일경로의 형식이다.
9. Samba Power Up Configuration
1) Network상에서 운영되는 Project 공간 할당
부서별 혹은 프로젝트별로 공간을 할당한다.
[root @edu00 linux]#groupadd -g 50000 PROJECT
[root @edu00 linux]##grep PROJECT /etc/group
[root @edu00 linux]##useradd wind -g PROJECT
[root @edu00 linux]##useradd ghost -g PROJECT
[root @edu00 linux]##useradd nana -g PROJECT
[root @edu00 linux]##useradd open -g PROJECT
[root @edu00 linux]##groups wind
[root @edu00 linux]##mkdir -p /usr/SAMBA/PROJECT
[root @edu00 linux]##chown root.PROJECT /usr/SAMBA/PROJECT
[root @edu00 linux]##chmod 770 /usr/SAMBA/PROJECT
[root @edu00 linux]##vi /etc/samba/smb.conf
.........
[PROJECT]
comment = project Directory
path = /usr/SAMBA/PROJECT
public = no
writable = yes
write list = @PROJECT
printable = no
2) 각 Host별로 공간 할당하기
직원들이 사용하는 호스트별로 삼바서버에 공간을 할당한다.
[root @edu00 linux]##mkdir /usr/SAMBA/solar-wind
[root @edu00 linux]##mkdir /usr/SAMBA/venus-ghost
[root @edu00 linux]##chown wind /usr/SAMBA/solar-wind
[root @edu00 linux]##chown ghost /usr/SAMBA/venus-ghost
[root @edu00 linux]##chmod 700 /usr/SAMBA/solar-wind
[root @edu00 linux]##chmod 700 /usr/SAMBA/venus-ghost
[root @edu00 linux]##vi /etc/samba/smb.conf
.....
[HOST]
comment = HOST(%m)'s Directory
path = /usr/SAMBA/%m-%u
public = no
writable = yes
write list = %u
3) 파일 서버상에 공유 디렉토리 만들기
mp3나 동영상 파일과 같이 디스크 사용량이 많고 여러 사람이 쓰는 파일들을 각각의 호스트마다 따로 저장해서 사용한다면 디스크 낭비가 심해질 것이다.
[root @edu00 linux]##mkdir /usr/SAMBA/multimedia
[root @edu00 linux]##chown ghost /usr/SAMBA/multimedia
[root @edu00 linux]##ls -ld /usr/SAMBA/multimedia
[root @edu00 linux]##vi /etc/samba/smb.conf
........
[MEDIA]
comment = Multimedia Files
path = /usr/SAMBA/multimedia
public = yes
writable = yes
write list = ghost
printable = no
create mask = 0755
4) 애플리케이션 서버로 활용하기
관리자만이 삼바서버에 애플리케이션을 설치할 수 있으며, 일반 사용자들은 읽기권한으로 프로그램을 실행시킬 수 있다.
[root @edu00 linux]##mkdir /usr/SAMBA/applications
[root @edu00 linux]##chown nana /usr/SAMBA/applications
[root @edu00 linux]##ls -ld /usr/SAMBA/applicatons
[root @edu00 linux]##vi /etc/samba/smb.conf
.....
[APPL]
comment = Network Applications Server
path = /usr/SAMBA/applications
public = yes
writable = yes
write list = nana
printable = no