삼바 (Samba)

삼바는 SMB(Server Message Block)/CIFS(Common Internet File System) 네트워킹 프로토콜을 구현한 자유 소프트웨어이다. 오스트리아의 Andrew Tridgell가 최초로 개발하였다.

삼바는 컴퓨터간 파일과 프린터 공유를 할수 있게 해주는 프로그램이다. 리눅스와 윈도우 끼리도 가능하다. 이러한 것은 삼바서버가 SMB(Server Message Block) / CIFS(Common Internet File System) 프로토콜을 흉내냄으로써 가능해진다.

  1. 유닉스 머신에 남아도는 하드디스크를 윈도우 사용자들에게 제공하고 싶을 경우, 삼바를 설치하고 각 개인별로 공간을 제공한다.
  2. 유닉스 머신에서 윈도우 머신에 물린 프린터로 인쇄를 하고 싶을 경우, smbclient 패키지를 사용한다.
  3. 윈도우 머신에서 유닉스 머신에 달린 백업 장치에 접근하고 싶을 경우, 삼바를 사용한다.

SMB

SMB(Server Message Block)는 마이크로소프트사와 인텔이 윈도우 시스템이 다른 시스템의 디스크나 프린터와 같은 자원을 공유할 있도록하기 위해 개발되었다. SMB는 OS/2, NT, WIN9x를 사용하는 컴퓨터끼리 파일 공유등의 서비스를 구현하는데 사용되는 프로토콜임. TCP/IP 기반하의 NetBIOS 프로토콜을 이용하기 때문에 이 프로토콜은 NFS (Network File System), NIS, lpd 와 같은 유닉스의 분산인증구조와 유사함. 따라서, 윈도우 중심의 네트워크 환경에서는 필수적이라고 하겠다.

CIFS

CIFS(Common Internet File System) 는 인터넷을 위한 SMB 파일 공유 프로토콜의 확장된 버전임. SMB 프로토콜 위에 DNS(Domain Name Service)를 이용한 확장성, 느린 전화 접속 네트워킹을 위한 최적화, 유니코드를 따르는 파일 이름 지원을 덧붙여, 윈도우와 유닉스 환경을 동시에 지원하는 인터넷의 표준 파일 규약임. 이전의 폐쇄적인 SMB 프로토콜과는 달리 CIFS 규약 정의에 여러 유닉스 업체들이 참여했다. 삼바도 버전이 올라감에 따라(삼바 2.2 계열) CIFS(Common Internet File System) 규약을 준수하고 있다.

설치

삼바는 리눅스 설치시 대부분 자동으로 설치가 된다. 설치가 되어 있지 않다면, 다음의 명령으로 samba 패키지를 설치함.

sudo apt install samba      

최신판

sudo add-apt-repository ppa:linux-schools/samba-latest
sudo apt update

https://launchpad.net/~linux-schools/+archive/ubuntu/samba-latest 참조

설정

삼버 서버를 구동하기 위해서는 먼저 네트워크 환경에 맞게 설정을 해야 함. 삼바의 설정파일은 /etc/samba/smb.conf 임.

삼바의 설정은 매우 복잡하며 환경에 따라서 다양한 설정 방법등이 존재하므로 처음부터 모든 것을 설정하기 보다는 가장 기본적인 것부터 설정해 나가는 것이 효율적임. 먼저, 아래 가장 쉬운 smb.conf 를 보며 설명하겠다.

먼저, 기본 smb.conf 를 백업한 후 작성 함. 기본 smb.conf 는 나중에 좋은 참고서가 된다.

  cd /etc/samba
  sudo mv smb.conf smb.orig.conf
  sudo nano smb.conf

이제 수정해본다.

 sudo nano /etc/samba/smb.conf
[global]
workgroup = VASLORNET
server string = %h
security = user
map to guest = Bad User
encrypt passwords = true
unix password sync = yes

[pds]          # 윈도우에서 보이는 공유 자원(폴더) 이름
comment = 창고 # 폴더의 설명
path = /data   # 삼바 서버로 공유할 리눅스의 폴더를 지정
public = yes   # 손님사용자에게 접근을 허용
writable = yes # 사용자에게 쓰기권한을 준다.

security = share 는 삭제되었다.

재시작

 sudo service smbd restart

접속

여기까지 하면 윈도에서 \\서버아이피주소\ 로 접근하면 누구나 pds라는 폴더가 보이고 파일을 읽고/쓰고 할 수 있다

윈도우에서 시작→실행

\\192.168.1.199\

입력 하면

프린터와 사용자 계정 디렉토리가 보임.

사용자에 따라 홈계정에 접속할 경우에는 \\ip\\사용자계정 식으로 접속할 수도 있다. 윈도우에서 부팅시마다 항상 접속하게 하려면 내 컴퓨터에서 오른쪽 마우스 버튼을 눌러 '네트워크 드라이브 연결' 을 사용하면 된다.

혹은 시작메뉴에서 검색을 누른 후 다른 항목 찾기 부분에서 컴퓨터를 선택한 후 검색해서 찾아서 간다. - Sensui

특정 아이피만 허용하려면

/etc/samba/smb.conf 파일의 [global] 내부에 다음과 같이 추가함.

[global]
hosts allow = 192.168.0. 5.

(192.168.0.로 시작하는 로컬 네트워크와 5. 로 시작하는 하마치 네트워크 허용.)

특정 유저만 허용하려면

vaild users = chalie, maxon # 특정유저만 접속가능
read only = no

기타

외부 접속 문제 해결

국내 모든 인터넷 회선은 트랙픽 및 해킹문제로 ISP업체들이 139번 포트을 막아놓았다. 1) 그래서 telnet 이나 ftp, SSH(Secure Shell) 등은 되지만 윈도우즈 탐색기을 통한 smb/cifs 연결은 안된다. 해결책으로

  1. VPN이 지원되는 공유기을 사용하면 저럼하게 외부에서 내부망처럼 사용 가능함. iptime 등 참조.
  2. ssh 를 이용한 방법…http://oskernel.tistory.com/63
  3. 삼바를 안쓰는 방법;;; 2)

같이 보기

1)
한때…그러니까 ADSL 쓰던 시절… 에는 그냥 탐쉑기에 IP주소 치면, 그냥 옆동네 컴퓨터의 야동공유폴더가 보였었다.

연결문서