본문 바로가기

Programming/Linux Tip

Samba Server 셋팅하기

원문 : http://www.linux4u.co.kr/RedhatAS/s1-samba-configuring.html

1. Window 에서 접속할때 id 부분이 비활성화 되고 guest 로 고정되어 있어서 몇일을 삽질했다.
이것은 뒤에 나오겠지만 samba -> server settings -> sevurity 탭 -> authentication mode 를 use 로 해 놓아야 암호를 넣을 수 있다.

2. 그 이후에도 쓰기 권한을 주었는데도 불구하고 쓰기가 계속 안되었다.
이번 문제는 SELinux 설정이었다.

설치할때 분명 disable 로 해 놓고 설치해서 완전히 믿고 있었는데,
나중에 들어가 보니 그게 아니었다.
> vi /etc/selinux/config
보면
SELINUX = disable
로 되어 있어야 해제된 상태이다
이것이 켜져 있으면 yum 도 잘 동작하지 않는다.

일시적으로 SELinux disable 방법은 다음과 같다.
> setenforce 0

3. 마지막으로 주의할 것은 공유 폴더를 chmod 777 로 꼭 권한 변경을 해야 한다는 것이다.

이것으로 삼바 삽질은 끝이다...;;


아래 내용은 좀 오래된 것임. 다음 사이트에 잘 나와있음

삼바 재시작하기

sudo service smbd restart

sudo service nmbd restart




24.2. Samba 서버 설정하기

디폴트 설정 파일 (/etc/samba/smb.conf)은 사용자가 자신의 홈 디렉토리를 Samba 공유로 사용할 수 있게 해줍니다. 또한 시스템에 설정된 모든 프린터를 Samba 공유 프린터로 공유하도록 설정도 가능합니다. 즉, 네트워크 연결된 Windows 컴퓨터에서 리눅스 시스템에 연결된 프린터로 인쇄할 수 있습니다.

24.2.1. 그래픽 모드로 설정

그래픽 인터페이스를 사용하여 Samba를 설정하시려면, Samba 서버 설정 도구를 사용하시기 바랍니다. 명령행을 사용한 설정을 원하시면, 24.2.2 절로 넘어 가십시오.

Samba 서버 설정 도구는 Samba 공유와 사용자, 그리고 기초 서버 설정을 관리하는 그래픽 인터페이스 입니다. 이 프로그램은 /etc/samba/ 디렉토리에 저장된 설정 파일들을 수정합니다. 이 프로그램을 사용하지 않고 설정 파일이 변경되었다면, 그 설정은 변경되지 않고 보존됩니다.

이 응용 프로그램을 사용하시려면 X 윈도우 시스템이 실행 중이고, 루트 허가가 있어야 하며, redhat-config-samba RPM 패키지가 설치되어 있어야 합니다. 데스크탑에서 Samba 서버 설정 도구를 시작하기 위해서 패널에서 주 메뉴 버튼 => 시스템 설정 => 서버 설정 => Samba를 선택하시거나 쉘 프롬프트 (예, XTerm이나 GNOME 터미널)에서 redhat-config-samba 명령을 입력하시기 바랍니다.


그림 24-1. Samba 서버 설정 도구

알림 알림
 

Samba 서버 설정 도구는 공유 프린터나 Samba 서버 상에서 사용자의 홈 디렉토리를 볼 수 있게 해주는 기본 설정을 보여주지 않습니다.

24.2.1.1. 서버 설정

Samba 서버를 설정하는 첫번째 단계는 서버에 대한 기초적인 설정과 몇몇 보안 옵션을 설정하는 것입니다. 응용 프로그램을 시작하신 후, 풀다운 메뉴에서 설정 => 서버 설정을 선택하시기 바랍니다. 그림 24-2에서 처럼 기본 탭이 나타날 것입니다.

그림 24-2. 서버 기본 설정

기본 탭에서, 컴퓨터가 소속될 작업그룹과 컴퓨터에 대한 간단한 설명을 입력해 주십시오. 이곳에서 입력하신 정보는 smb.conf 파일에서 workgroupserver string 명령에 해당합니다.

※중요 : 여기서 사용자로 되어 있어야 Window 에서 접근할때 id/pass 를 정상적으로 입력할 수 있다. 또한 Guest Account : 항목에 등록된 사용자를 추가해 주어야 write 가 수월하다.

그림 24-3. 보안 서버 설정하기

보안 탭에는 다음과 같은 옵션이 있습니다:

  • 인증 모드security 옵션에 해당합니다. 다음 중 한가지 인증 유형을 선택하실 수 있습니다.

    • ADS — Samba 서버는 ADS (Active Directory Domain) 영역에서 도메인 구성원으로 작동합니다. 이 옵션을 사용하기 위해서는 서버에 커베로스가 설치되고 설정되어야하며 samba-client 패키지에 속한 net 유틸리티를 사용하여 Samba를 ADS 영역의 구성원으로 만들어야 합니다. 자세한 정보는 net 메뉴얼 페이지를 참조해 보십시오. 이 옵션은 Samba를 ADS 제어기로 설정하지는 않습니다.

    • 도메인 — Samba 서버가 Windows NT 일차 도메인 컨트롤러 또는 백업 도메인 컨트롤러를 사용하여 사용자를 인증하도록 설정. 서버는 사용자명과 암호를 컨트롤러에 전달 후 응답을 기다립니다. 인증 서버 란에 일차 도메인 컨트롤러나 백업 도메인 컨트롤러의 NetBIOS 이름을 지정해 주십시오.

      암호를 암호화하기 옵션을 사용하시려면, 항목을 선택하시기 바랍니다.

    • 서버 — Samba 서버가 사용자명과 암호 조합을 다른 Samba 서버에 보내어 인증 시도하도록 설정. 만일 다른 서버가 인증에 실패하면, 서버는 사용자 인증 모드를 사용하여 인증을 시도합니다. 따라서 인증 서버 란에 다른 Samba 서버의 NetBIOS 이름을 지정하시기 바랍니다.

    • 공유 — Samba 사용자가 Samba 서버마다 사용자명과 암호를 입력할 필요가 없는 설정. Samba 서버에서 특정 공유 디렉토리에 접속될 때까지 사용자명과 암호가 요청되지 않습니다.

    • 사용자 — (디폴트) Samba 사용자는 Samba 서버마다 유효한 사용자명과 암호를 입력하도록 설정. Windows 사용자명 옵션을 사용하시려면, 이 옵션을 선택하시기 바랍니다. 보다 자세한 정보는 24.2.1.2 절을 참조해 보십시오.

  • 암호를 암호화하기 — 클라이언트가 Windows 98, 서비스 팩 3을 갖춘 Windows NT 4.0, 또는 그 외 다른 Microsoft Windows 최신 버전으로부터 접속한다면, 이 옵션을 사용하셔야 합니다. 암호는 서버와 클라이언트 사이에서 누가 가로챌 가능성이 있는 평문 형식이 아닌 암호화된 형식으로 전달됩니다. 이 옵션은 encrypted passwords 옵션에 해당합니다. 암호화된 Samba 암호에 대한 보다 자세한 정보를 원하신다면, 24.2.3 절을 참조하시기 바랍니다.

  • 미등록된 사용자 계정 — 사용자나 미등록된 사용자가 Samba 서버에 로그인할 경우, 서버 상에 등록된 유효한 사용자명과 일치해야 합니다. 시스템 상 기존 사용자명 중 미등록된(guest) Samba 계정이 될 사용자명을 선택해 주십시오. 미등록된 사용자가 Samba 서버에 로그인한다면, 선택하신 사용자와 동일한 허가를 갖게 됩니다. 이 옵션은 guest account 옵션에 해당합니다.

확인 버튼을 클릭하신 후, 변경 사항이 설정 파일에 기록되며 데몬이 재시작될 것입니다; 따라서 변경 사항이 즉시 효력을 발생합니다.

24.2.1.2. Samba 사용자 관리하기

Samba 서버 설정 도구를 사용하기 위해서는 Samba 사용자를 추가하기 이전에 Samba 서버로 작동하는 시스템 상에서 활성화된 기존 사용자 계정이 있어야 합니다. Samba 사용자는 기존 사용자 계정과 연관됩니다.

그림 24-4. Samba 사용자 관리하기

Samba 사용자를 추가하시려면, 설정 => 풀다운 메뉴에서 Samba 사용자를 선택하신 후 사용자 추가 버튼을 클릭하시면 됩니다. 새로운 Samba 사용자 만들기 창에서, 지역 시스템 상에 이미 존재하는 사용자 목록에서 Unix 사용자명을 선택하시기 바랍니다.

만일 Windows 시스템에서 다른 사용자명을 가진 사용자가 Windows 시스템에서 Samba 서버로 로그인한다면, Windows 사용자명 란에 Windows 사용자명을 지정해 주십시오. 이 옵션을 사용하시려면, 서버 설정보안 탭에서 인증 모드사용자로 설정하셔야 합니다.

또한 Samba 사용자의 Samba 암호를 설정해 주셔야 합니다. 암호를 입력하신 후 한번 더 입력하여 올바른 암호를 확인하시기 바랍니다. Samba에 암호화된 암호를 사용하기로 선택하셨더라도, 사용자의 시스템 암호와는 다른 Samba 암호를 지정하시기 바랍니다.

기존 사용자를 편집하시려면, 목록에서 사용자를 선택하신 후 사용자 편집 버튼을 클릭하시면 됩니다. 기존 Samba 사용자를 삭제하시려면, 해당 사용자를 선택하신 후 사용자 삭제 버튼을 클릭하시기 바랍니다. Samba 사용자를 삭제하셔도 관련된 시스템 사용자 계정은 삭제되지 않습니다.

확인 버튼을 클릭하시면, 사용자 정보가 즉시 수정됩니다.

24.2.1.3. 공유 추가

그림 24-5. 공유 추가

공유를 추가하시려면 추가 버튼을 클릭하시면 됩니다. 기본 탭에서는 다음과 같은 옵션을 설정 가능합니다:

  • 디렉토리 — Samba를 통해 공유할 디렉토리. 이미 존재하는 디렉토리여야 합니다.

  • 설명 — 공유에 대한 간략한 설명.

  • 기본 허가 — 사용자가 공유 디렉토리에 저장된 파일을 읽을 수 있도록 허용할 것인지 또는 사용자가 공유 디렉토리에 읽고 쓸 수 있도록 허용할 것인지 여부.

접근 탭에서는 오직 지정된 사용자만이 공유에 접근할 것인지 또는 모든 Samba 사용자가 공유에 접근할 수 있는지 여부를 선택해 주십시오. 특정 사용자만 접근할 수 있도록 허용하신다면, 사용 가능한 Samba 사용자 목록에서 허용할 사용자를 선택하시기 바랍니다.

확인 버튼을 클릭하시는 즉시 공유가 추가됩니다.

24.2.2. 명령행 설정

Samba는 /etc/samba/smb.conf 파일을 설정 파일로 사용합니다. 만일 이 설정 파일이 변경되면, service smb restart 명령을 사용하여 Samba 데몬을 재시작해야 변경 사항이 적용됩니다.

Windows 작업그룹과 Samba 서버에 대한 간략한 설명을 지정하시려면, smb.conf 파일에서 다음과 같은 줄을 편집하시면 됩니다:

workgroup = WORKGROUPNAME
server string = BRIEF COMMENT ABOUT SERVER

앞의 명령에서 WORKGROUPNAME 부분은 이 컴퓨터가 속할 Windows 작업그룹 이름으로 변경해 주십시오. BRIEF COMMENT ABOUT SERVER 란은 Samba 시스템에 대한 Windows의 간략한 설명으로서 작성하셔도 되고 안하셔도 무방합니다.

Linux 시스템 상에 Samba 공유 디렉토리를 만드시려면, smb.conf 파일을 여러분과 시스템의 필요에 맞게 수정시킨 후에 다음과 같은 부분을 첨가하시기 바랍니다:

[sharename]
comment = Insert a comment here
path = /home/share/
valid users = tfox carole
public = no
writable = yes
printable = no
create mask = 0765

위의 예시에서는 Samba 클라이언트 상의 tfox와 carole이라는 사용자가 Samba 서버 상의 /home/share 디렉토리를 읽고 쓸 수 있도록 해줍니다.

24.2.3. 암호화된 암호

보안 강화를 위하여 암호화된 암호 (encrypted password)를 기본으로 사용합니다. 암호화된 암호가 사용되지 않는 경우 평문(plain text) 암호를 사용합니다. 하지만 평문 암호는 다른 사용자가 네트워크 패킷 스니퍼 (network packet sniffer)를 사용하여 가로챌 가능성이 있습니다. 따라서 암호화된 암호를 사용하시기를 권장합니다.

Microsoft SMB 프로토콜은 평문 암호를 사용해왔습니다. 그러나 서비스 팩 3 이후 Windows NT, Windows 98, Windows 2000, Windows ME 및 Windows XP로부터 암호화된 Samba 암호가 사용됩니다. 리눅스 시스템과 앞서 설명된 Windows 운영 체제 간에 Samba를 사용하시려면, Windows 레지스트리 (registry)를 평문 암호를 사용하도록 편집하시거나, 리눅스 시스템 상의 Samba가 암호화된 암호를 사용하도록 설정하시면 됩니다. 레지스트리를 수정하기로 선택하셨다면, 모든 Windows 시스템의 레지스트리를 수정하셔야 합니다. — 하지만 이 방법을 사용하시면 더 많은 충돌을 가져올 수 있으므로 위험합니다. 보안을 강화하기 위해 암호화된 암호를 사용하시길 권장합니다.

Samba 서버가 암호화된 암호를 사용하도록 설정하시려면, 다음과 같은 단계를 따르십시오:

  1. Samba에 사용될 별개의 암호 파일을 생성해 주십시오. 기존의 /etc/passwd 파일을 이용하여 새 암호 파일을 생성하기 위해서는, 쉘 프롬프트에서 다음과 같은 명령을 입력하시면 됩니다:

    cat /etc/passwd | mksmbpasswd.sh > /etc/samba/smbpasswd

    만일 시스템이 NIS를 사용한다면 다음의 명령을 입력해 주십시오:

    ypcat passwd | mksmbpasswd.sh > /etc/samba/smbpasswd

    mksmbpasswd.sh 스크립트는 samba 패키지와 함께 /usr/bin 디렉토리에 설치되어 있습니다.

  2. 다음과 같은 명령을 사용하여 Samba 암호 파일의 허가를 루트 권한을 가진 사용자만 읽고 쓸 수 있도록 변경해 주십시오:

    chmod 600 /etc/samba/smbpasswd
  3. 이 스크립트는 사용자 암호를 새로운 파일에 복사하지 않으며, 암호가 설정될 때까지 Samba 사용자 계정이 활성화되지 않습니다. 보안을 강화하기 위해, 사용자의 Samba 암호를 사용자의 사용자의 시스템 암호와는 다르게 설정하시기 바랍니다. 각 Samba 사용자의 암호를 설정하시려면, 다음과 같은 명령을 사용하십시오 (username을 각 사용자의 사용자명으로 교체하시면 됩니다):

    smbpasswd username 
  4. 암호화된 암호가 사용되어야 합니다. 디폴트로 이미 활성화되어 있으므로 특별히 설정 파일에서 지정하실 필요는 없습니다. 그러나 설정 파일에서 이 옵션이 비활성화되어서도 안됩니다. 따라서 /etc/samba/smb.conf 파일에서 다음과 같은 줄이 존재하지 않는 것을 확인해 주십시오:

    encrypt passwords = no

    만일 존재하지만 줄 앞에 세미 콜론 (;)을 사용하여 주석화된 경우 이 줄은 무시될 것이며 암호화된 암호가 사용됩니다. 이 줄이 있지만 주석화되지 않았다면 줄을 삭제하거나 주석화시키시기 바랍니다.

    설정 파일에 특별히 암호화된 암호를 사용하도록 지정하시려면 etc/samba/smb.conf 파일에서 다음과 같은 줄을 편집하시면 됩니다:

    encrypt passwords = yes
    smb passwd file = /etc/samba/smbpasswd
  5. 셀 프롬프트에서 service smb restart 명령을 입력하여 smb 서비스를 시작해 주십시오.

  6. smb 서비스가 자동으로 시작되도록 설정하시려면 ntsysv, chkconfig 또는 서비스 설정 도구를 사용하여 이 서비스를 런타임 시에 활성화시킵니다. 보다 자세한 정보를 원하시면 21 장을 참조하시기 바랍니다.

pam_smbpass PAM 모듈은 passwd 명령이 사용되었을 때 사용자의 Samba 암호와 그 사용자의 시스템 암호를 동기화하는데 사용될 수 있습니다. 만일 사용자가 passwd 명령을 사용하여 암호를 변경한다면, Red Hat Enterprise Linux 시스템 로그인 암호 뿐만 아니라 Samba 공유에 접속하기 위해 사용되는 암호도 변경됩니다.

이러한 암호 동기화 기능을 사용하시려면, /etc/pam.d/system-auth 파일에서 pam_cracklib.so 호출 아래에 다음과 같은 줄을 추가하십시오:

password required /lib/security/pam_smbpass.so nullok use_authtok try_first_pass

24.2.4. 서버 시작하고 중지하기

Samba를 통해 디렉토리를 공유하는 서버 상에서 smb 서비스가 실행 중이어야 합니다.

다음 명령을 사용하여 Samba 데몬의 상태를 살펴보시기 바랍니다:

/sbin/service smb status

다음 명령을 사용하여 데몬을 시작하십시오:

/sbin/service smb start

다음 명령을 사용하여 데몬을 중지할 수 있습니다:

/sbin/service smb stop

부팅시 smb 서비스가 시작되도록 하시려면, 다음 명령을 사용하시기 바랍니다:

/sbin/chkconfig --level 345 smb on

또한 chkconfig, ntsysv 이나 서비스 설정 도구를 사용하여 부팅시 시작될 서비스를 설정할 수 있습니다. 자세한 사항은 21 장을 참조하시기 바랍니다.


Tip. 다음을 입력하면 성능향상이 됩니다.

socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
https://www.linux.co.kr/home2/board/subbs/board.php?bo_table=linuxserver&wr_id=27986 에 따르면 오히려 뒤에 붙은 8192 가 속도 저하를 줄 수 있다는 군요.