이번에는 리눅스의 Samba 서버에 대해서 알아보겠습니다.
.
.
.
Samba 서버란?
.
.
.
삼바(samba)는 1991년 호주의 박사과정 학생이었던 앤드루 트리젤(Andrew Tridgell)라는 사람이 개발한 소프트웨어로 Windows 운영체제를 사용하는 PC에서 Linux 또는 UNIX 서버에 접속하여 파일이나 프린터를 공유하여 사용할 수 있도록 해 주는 소프트웨어입니다.
우선 SMB 프로토콜과 CIFS프로토콜에 대해서 설명하겠습니다.
SMB(Server Message Block)
SMB(Server Message Block)는 마이크로소프트사와 인텔이 원도우 시스템이 다른 시스템의 디스크나 프린터와 같은 자원을 공유할 수 있도록 하기 위해 개발이 되었습니다. SMB는 OS/2, NT, Win9x를 사용하는 컴퓨터끼리 파일 공유등의 서비스를 구현하는데 사용되는 프로토콜입니다. TCP/IP기반하의 NetBIOS 프로토콜을 이용하기 때문에 이 프로토콜은 NSF,NIS,Ipd와 같은 유닉스의 분산인증구조와 유사합니다. 따라서 윈도우 중심의 네트워크 환경에서는 필수적이라고 하겠습니다.
SMB는 어플리케이션 레이어에서 동작하는 파일, 프린터 공유를 위한 프로토콜의 이름입니다. 마이크로소프트의 윈도에서 파일 공유를 위해 사용하는 프로토콜이 이 프로토콜입니다. 처음에는 DOS에서 int 21h를 이용해 구현되다가 “윈도 포 워크그룹”에 의해 탑재되며 널리 사용되기 시작했습니다. SMB는 버전 3.1.1까지 나와있으며 윈도 비스타부터 2.0을 사용하고, 윈도 8부터 3.0을 사용하기 시작했으며 윈도 10은 3.1.1을 사용합니다.
CIFS(Common Internet File System)
CIFS(Common Internet File System)는 인터넷을 위한 SMB 파일 공유 프로토콜의 확장된 버전입니다. SMB 프로토콜 위에 DNS(Domain Name Service)를 이용한 확장성, 느린 전화 접속 네트워킹을 위한 최적화, 유니코드를 ᄄᆞ르는 파일 이름 지워을 덧붙여, 윈도우와 유닉스 환경을 동시에 지원하는 인터넷의 표준 파일 규약입니다. 한 가지 중요한 사실은 이전의 폐쇄적인 SMB 프로토콜과는 달리 CIFS 규약 정의에 여러 유닉스 업체들이 참여했다는 점입니다. 삼바도 버전이 올라감에 따라(Samba 2.2계열) CIFS 규약을 준수하고 있습니다.
삼바(Samba)
삼바란 리눅스에서 동작하면서 윈도우의 랜 매니저 기능을 흉내내는 소프트웨어입니다. 원도우 쪽에서 리눅스 서버의 하드디스크와 네트워크 프린터 자원을 공유하도록 환경을 설정할 수 있고, 삼바를 통해 리눅스 쪽에서 원도우쪽 파일시스템과 프린터로도 접근할 수 있습니다. 이러한 것은 모두 삼바서버가 SMB(Server Message Block)/CIFS(Common Internet File System) 프로토콜을 흉내냄으로써 가능해집니다. 현재 윈도에서 사용되는 SMB프로토콜은 처음의 그것과는 많이 변경이 되었는데 마이크로소프트는 이스펙에 대해서 공개를 하지는 않았습니다. SAMBA Project라는 그룹에서 리버스 엔지니어링을 통해 윈도가 아닌 운영체제에서도 사용할 수 있도록 만들었는데 그것이 Samba입니다.
Samba는 액티브 디렉터리 도메인의 부분이 될 수도 있으며, Samba는 거의 모든 리눅스 배포판의 표준이며 다른 유닉스 기반의 운영 체제에서도 기본 시스템 서비스로 대부분 포함이 됩니다.
.
.
.
Samba 서버를 사용하는 목적?
Samba 서버를 사용하는 이유는 위에서 말했던 거와 같이 간단히 말하자면 TCP/IP를 이용하여 여러 운영체제 간에 파일과 프린트 및 하드웨어 자원을 공유할 수 있도록 하는 프로그램입니다. 주로 리눅스와 원도우 서버 간의 자원(파일, 프린트 등)(파일,프린트등) 공유를 위한 용도로 사용됩니다. 주된 용도는 파일서버로 사용하기 위한 것인데, Samba는 SMB(Session Message Block)라는 프로토콜을 이용하여 운영체제 간의 자원을 공유할 수 있도록 합니다.
리눅스에 Samba를 설치해두면 다른 컴퓨터, 즉 PC로 사용하는 윈도우탐색기등에서 특정 드라이브로 설정하여 리눅스의 파일을 PC의 특정드라이브에 존재하는 폴더처럼 파일을 저장하고 삭제하는 등의 용도로 주로 사용합니다.
이러한 이유로 Samba는 FTP를 대체하는 파일서버로 사용되기도 하며 CD-ROM데이터를 공유하기 위한 용도로도 사용되며 프린터를 공유하기 위한 용도로도 사용될 수 있습니다.
Samba는 서로 연관되어 있지만 약간씩 다른 목적으로 동작되는 몇 개의 프로그램들의 집합으로 이루어져 있습니다.
아래의 표는 Samba 의 구성 요소를 표로 나타낸 것입니다.
.
.
.
이름 |
프로그램의 사용 목적 |
smbd |
삼바 서버와 클라이언트 사이의 공유된 리소스를 운영하는 역할을 담당하는 데몬 프로그램. 네트워크를 통해 접근하는 클라이언트에 대해 파일, 프린터, 탐색 서비스를 제공한다. 그외 사용자 인증, SMB 프로토콜을 통한 데이터 공유, 리소스 락을 수행합니다.
|
nmbd |
WINS와 NetBIOS의 네임서버 기능을 모방하여 간단한 네임 서비스를 제공하는 데몬입니다. 이 외에 삼바는 다음 여러가지의 unix 명령어 툴들을 포함하고 있습니다.
|
smbclient |
공유되어 있는 삼바 디렉토리에 접근하는 유닉스 커맨드입니다.
|
smbtar |
공유되어 있는 디렉토리를 백업하기 위한 커맨드. tar와 비슷한 형태로 동작합니다.
|
nmblookup |
NetBIOS 네임서비스를 제공해주는 유틸입니다..
|
smbadduser |
삼바 계정을 추가하는 유틸입니다..
|
smbpasswd |
삼바 프로그램에 의해 사용될 패스워드를 설정하는 툴입니다.
|
smbstatus |
현재 네트워크에 연결되어 있는 삼바 공유 디렉터리 정보를 삼바 서버로부터 가져와서 출력해주는 유틸입니다..
|
testparm |
삼바 설정 파일(smb.conf)의
|
testrns |
smbd에 의해 사용 가능한 프린터를 검색할 때 사용되는 유틸입니다..
|
(Samba 구성 요소)
'서버 > Linux(리눅스)' 카테고리의 다른 글
Linux (ubuntu18.04 에서 Samba 서버 설치 및 사용) (0) | 2019.12.13 |
---|---|
Linux (리눅스 Ubuntu18.04 NFS 서버 구현) (0) | 2019.12.11 |
Linux (Ubuntu18.04 FTP서버 설치 및 사용 filezilla or 알ftp 이용) (0) | 2019.12.11 |
리눅스 (Linux 웹 메일(라운드 큐브) 의 설치 및 사용) (0) | 2019.12.11 |
Linux (리눅스 메일서버 개념 및 구축) (1) | 2019.12.11 |