Solaris

솔라리스 samba 초간단 설정

알 수 없는 사용자 2008. 3. 2.
728x90
솔라리스에서 삼바 서버는 지원한다.
이 문서는 선에서 지원하는 삼바서버를 참고로 한다. 소스로 삼바를 설치한다면
문서가 조금 달라질 것이다.


1. 삼바 서버 기본 환경

pkginfo 명령어로 삼바 서버가 설치되어 있는지 확인해보자.

[root@/root] # pkginfo |grep samba
system      SUNWsmbac                        samba - A Windows SMB/CIFS fileserv
er for UNIX (client)
system      SUNWsmbar                        samba - A Windows SMB/CIFS fileserv
er for UNIX (Root)
system      SUNWsmbau                        samba - A Windows SMB/CIFS fileserv
er for UNIX (Usr)

위와 같이 나온다면 당연히 설치되어 있다.

이제 계획을 잡자.
삼바 서버로 접속하는 외부 클라이언트에게 어떤 계정을 줄 것이며, 이 계정으
로 작동할 것인가?
삼버 서버의 데이터로는 어디로 할것인가? 이다.

우선 외부에서 삼바 서버로 접속하는 클라이언트에게 samba라는 계정을 주자
그리고 이 계정은 sambagroup라는 그룹으로 묶자
왜? 삼바 데이터 서버는 여러개 만들 수 있다. 그리고 각 데이터 서버로 접속
하는 클라이언트에 다른 계정을 줄 수 있다. 그러니 그룹으로 관리해주면
편할것이다.

간단히 삼바 서버의 데이터 저장 등으로 사용할 디렉토리를 /export/home/samba
로 잡자.

정리해보자

삼바 서버 계정 : samba
삼바 서버 그룹 : sambagrp
삼바 서버 디렉토리 : /export/home/samba
윈도우 작업 그룹 : MSHOME  
(이것을 확인하는 방법은 내컴퓨터-> 속성 누르면 시스템 등록 정보가 뜬다
일반, 컴퓨터 이름, 하드웨어.. 등등 많은 메뉴가 있다 이중 컴퓨터 이름에
들어가 본다면  
전체 컴퓨터 이름: canard.
작업 그룹 : MSHOME
로 등록되어 있다.)

그리고 확인해보자. 클라이언트로 사용할 컴퓨터에서 삼바 서버가 돌아가는지
확인해보자. 당연히 삼바 서버에서 서버가 작동하지 않으니 않나올 것이다.
window xp에서 확인하는 방법이다.

네트워크 -> 작업 그룹 컴퓨터 보기
해보면 작업 그룹 컴퓨터에 삼바 서버가 전혀 보이지 않는다.


2. 삼바 서버 기본 작업

자 삼바 서버 돌리기 전에 우리는 삼바 서버를 어떻게 구성할 것이며 어떤 계
정을 사용할 지 계획을 세웠다. 이에 맞춰서 작업을 해보자.
우선 그룹과 계정 및 삼바서버에서 사용할 데이터 디렉토리를 만들어야할 것
이다. 이때 데이터 디렉토리는 계정을 만들면서 사용자 홈디렉토리를 사용하면
편할 것이다. (그래서 /export/home/samba)를 사용했따.

[root@/root] # groupadd sambagrp
[root@/root] # useradd -m -d /export/home/samba -G sambagrp -s /bin/false samba
64 blocks
[root@/root] #

useradd의 옵션은 잘 아리라 생각한다. 그래서 다른 설명은 하지 않는다. 그리
고 이곳에서 보안을 위해서 쉘을 /bin/false(-s /bin/false) 사용해서 일반 접
속을 막는다.

자 이것으로 기본 설정은 끝이 났는가? 아니다. 몇가지 설정이 더 남았다.
/etc/hosts 파일과 /etc/lmhosts 파일에 삼바 서버에 접속할 클라이언트를 삽입
한다.

클라이언트를 살펴보면
211.175.131.32 의 IP를 가지며 netbios의 이름으로 canard를 가진다. 그리고
작업 그룹으로 MSHOME를 가진다. 이곳 설정에서는 약간 난이도를 높여서 삼바
서버에서 클라이언트 서버에서 붙이는 이름과 netbios 이름을 다르게 설정해
서 테스트 해보자.

[root@/root] # cat /etc/hosts
127.0.0.1       localhost
211.175.147.154 ns      loghost
211.175.131.32 www1
211.175.131.33 www2
이 서버에서는 클라이언트의 이름을 www1으로 줬다.

다음은 /etc/lmhosts 파일이 남았다. 이 파일은 무엇이냐면 netbios 이름과
/etc/hosts 파일에서 설정해 놓은 이름과 매칭 시키는 설정 파일이다.
삼바 서버에서는 www1 컴퓨터를 가르치지만 netbios에서의 이름은 다를 수있
으며 같을 수도 있다.

[root@/root] # cat /etc/lmhosts
localhost ns
www1 canard
www2 test

자 첫 번째 이름은 서버에서 지정해 준 이름이며 두번째 이름은 netbios 이름
이다. 즉 www1은 netbios 이름으로 canard를 뜻한다.

이제 기본적인 설정은 끝이 났다. 이제 삼바 설정 파일의 설정으로 삼바 서버
가 올바로 작동하는 것인가? 아니면 올바로 작동하지 않을 것인가가 결정된다.


3. SWAT 작동시키기

우리는 삼바 서버의 설정을 편하게 하고 싶다. 이것은 사람의 욕망이라면 당연
한 반응이다. (내가 볼 때는 SWAT로 설정하거나 손으로 작업하거나 그게 그거
같다. 설정의 어려움은 대략 비슷하다.)

사람들은 manpage를 뒤져보지 않는 경향이 많다. 그러나 우리는 필히 맨패이지
를 보고 확인해야한다. 이유는? 맨페이지를 뒤져보면 활용법 및 설정이 어느
정도 선까지는 자세히 설명되어 있기 때문이다.

잡설은 넘어가고 위에서 필요로 하는 패키지가 모두 설치되어 있다면 삼바 서
버에 관련된 파일들이 모두 설치되어 있다. 당연히 swat로 설치되어 있다.
확인해보자.

[root@/root] # ls /usr/sfw/sbin/
nmbd         smbd         tcpd         tcpdmatch
safe_finger  swat         tcpdchk      try-from
[root@/root] #

위의 명령어를 사용해보니 nmbd smbd swat 파일이 모두 있다.

그리고 shell> man swat 명령어를 사용해보니 swat를 사용하기 위해서는 2가지
설정을 해줘야 한다고 나온다.
참고로 man swat 않된다고 하지 말자
[root@/root] # man swat
No manual entry for swat.
[root@/root] # export MANPATH=/usr/man:/usr/sfw/man
[root@/root] #
환경변수 MANPATH를 설정 안해줘서 그렇다.

맨패이지 중 중요한 부분을 발췌했다.

   You need to edit your /etc/inetd.conf and  /etc/services  to
   enable SWAT to be launched via inetd.

   In /etc/services you need to add a line like this:

   swat 901/tcp

    In /etc/inetd.conf you should add a line like this:

    swat stream tcp nowait.400 root /usr/sfw/sbin/swat swat

    One you have edited /etc/services  and  /etc/inetd.conf  you
    need  to  send a HUP signal to inetd. To do this use kill -1
    PID where PID is the process ID of the inetd daemon.

봐서 알겠지만 /etc/services 파일에  
swat 901/tcp
를 적어 넣으라고 나와있다

그리고 /etc/inetd.conf 파일에
swat stream tcp nowait.400 root /usr/sfw/sbin/swat swat
를 적어 넣으라고 나왔다.

그러면 이제 inetd 서버스를 재 시작해보자. 여러 방법이 있으니 알아서..
(이런 것까지는 알갈쳐준다.)

이제 삼바 서버에서 넷스케이프를 띄워서
http://localhost:901 의 주소를 사용해본다.

잘나온다. 이제 노력과 끈기로 자신의 시스템에 맞는 설정을 찾아야한다.

그리고 우리는 삼바 시작 스크립트를 살펴보자.
shell> vi /etc/init.d/samba
case \"$1\" in
start)
       [ -f /etc/sfw/smb.conf ] || exit 0

       /usr/sfw/sbin/smbd -D
       /usr/sfw/sbin/nmbd -D
       ;;

위에서 보다 싶이 설정 파일은 /etc/sfw/smb.conf이다. SWAT를 작성하면 이곳
에 설정 파일이 만들어 질 것이다.
그리고 서버 시작시 삼바 서버가 작동하도록 스크립트를 활성화 시키자.


4. 삼바 설정 파일

사실 노력과 끈기로 삼바 설정파일을 구성하는 것은 상당히 힘들다. 그리고
설정의 하나하나의 뜻을 알아야 삼바 설정을 마무리 할 수 있다.
삼바 설정에 관련된 내용을 모두 적으면 무척이나 내용이 길어질 수 있다.
그래서 보안이 아~주 허술하지만 작동은 하는 설정을 예시한다.

shell> vi /etc/sfw/smb.conf
# Global parameters
[global]
       workgroup = MSHOME
       server string = nimp.samba
       security = SHARE
       guest account = samba
       hosts allow = 211.175.131.32

[samba]
       comment=SambaData
       path = /export/home/samba
       guest only = Yes
       guest ok = Yes
       read only = No

[global] 부분은 삼바에 접속하는 클라이언트에 해당하는 내용이다.
이후 내용은 삼바에서 데이터를 관리하는 부분에 관련된 설정이다.
[global] 부분은 네트워크 -> 작업 그룹 컴퓨터 보기에서 보여지는
내용이며 이후 내용은 작업 그룹 컴퓨터에서 삼바 서버로 접속시 보여지는
부분이다.
간단히 global 부분에서 설명하자면
클라이언트의 workgroup는 MSHOME의 작업그룹이며 보여지는 이름은 nimp.samba
이다. 직접확인해보면
canard 컴퓨터 옆에 nimp.samba(Ns)라는 컴퓨터가 하나더 보일 것이다. 이것이
삼바 서버로 작동하는 컴퓨터이다.
그리고 보안 방식으로는 SHARE (공유 방식)을 사용했으며, 삼바에 접속하는
클라이언트에게는 samba라는 계정을 사용하게 설정 해 놓은 것이다. 그리고
접속 가능한 클라이언트는 211.175.131.32 IP를 가지는 클라이언트 하나이다.
좀더 많은 클라이언트가 가능하게 하려면 /를 사용한다.

hosts allow = 211.175.131.32 192.168.0.1/24

이상이다. 이렇게 한다면 삼바 서버는 원할히 작동할 것이다. 자세히 설명을
읽어봐야 삼바 설정을 어떻게 해야하며, 클라이언트에 따라 어떻게 설정해야
하는 것인가를 잘 알 수 있다.

참고로 더 자세한 내용을 살펴보려면 삼바 홈페이지에 접속해서 설정에 들어
가는 옵션을 하나하나 설정해서 서버에 적용시키자. swat를 사용해도 된다.
그리고 위의 에제는 로그도 남지지 않는 아~주 보안에 허술한 설정이다. 작동
은 하지만 보안을 위해서 그대로 사용하는 것은 금물이다.

그리고 http://dosc.sun.com에 접속해서 삼바를 설정하는 것을 참고하자.
위의 내용은 리눅스에서도 적용이 가능한 내용이다. 그러나 솔라리스에서는
조금 다르게 작동할 수 있도록 할 수 있다. docs.sun.com의 자료를 살펴보면
다르게 설정할 수 있는 내용을 에시해 놓았으니, 자세히 살펴보자.
솔라리스 문서가 그렇듯, 상당히 허술하면서, 또한 상당히 복잡하다. -ㅁ-;

ps. 사실 정확히 이야기 하자면 /etc/hosts /etc/lmhosts 파일 설정 모두 필요
없다. 안해도 된다. /etc/sfw/smb.conf 만 잘작성해줘도 무난히 작동한다. -ㅁ-;
728x90

댓글