본문 바로가기
서버 및 보안

Samba (software)

by 다움위키 2023. 12. 22.

삼바(Samba)는 SMB 네트워킹 프로토콜을 다시 구현한 자유 소프트웨어이고, 원래 앤드루 트리젤(Andrew Tridgell)에 의해 개발되었습니다. 삼바는 다양한 마이크로소프트 윈도우 클라이언트를 위한 파일인쇄 서비스를 제공하고 도메인 컨트롤러 (DC) 또는 도메인 구성원으로 마이크로소프트 윈도우 서버 도메인과 통합할 수 있습니다. 버전 4부터, 그것은 Active Directory와 Microsoft Windows NT 도메인을 지원합니다.

삼바는 리눅스, 솔라리스, AIX와 애플의 macOS ServermacOS 클라이언트 (Mac OS X 10.2 이상)를 포함한 BSD 변형과 같은 대부분의 유닉스-계열 시스템에서 실행됩니다. 삼바는 역시 OpenVMSIBM i와 같은 여러 다른 운영 시스템에서 실행됩니다. 삼바는 거의 모든 리눅스 배포판에서 표준이고 마찬가지로 공통적으로 다른 유닉스-기반 운영 시스템에서 기본 시스템 서비스로 포함됩니다. 삼바는 GNU General Public License 조건에 따라 배포됩니다. 그 이름 Samba는 마이크로소프트 윈도우 네트워크 파일 시스템에 의해 사용되는 독점 프로토콜의 이름, SMB (Server Message Block)에서 따왔습니다.

Installation

데비안 저장소에서 설치합니다:

  • sudo apt install samba

Configurations

설정은 /etc/samba/smb.conf 파일에 있습니다. 대부분 설정이 잘 되어 있지만, 내용을 천천히 읽어 보시기 바랍니다. 예를 들어, 자신의 홈디렉토리 아래에 Downloads 디렉토리를 공유하기를 원하면, 다음과 같이 설정을 추가할 수 있습니다:

[MyShare]
   comment = Test folder
   path = /home/user_id/Downloads
   read only = yes
   guest ok = yes

여기에 user_id는 리눅스 사용자 아이디로 바꾸어야 하고, MyShare는 공유의 이름이므로 원하는 문자열로 바꿀 수 있지만, 가능한 영단어를 사용하는 것을 추천합니다.

그런-다음 호스트 (리눅스, 삼바 서버가 설치된 컴퓨터)의 방화벽을 열어줍니다: 방화벽을 사용하지 않으면 할 필요가 없습니다.

  • sudo ufw allow from 192.168.59.0/24 to any app Samba

여기서 192.168.59.0/24는 자신이 사용하는 내부 네트워크의 IP 대역, 즉 게스트의 대역으로 바꾸셔야 합니다. 윈도우의 명령창에서 ipconfig을 입력하면, ip를 얻은 후에, 앞의 셋의 숫자열로 바꾸어야 합니다.

그런-다음 윈도우 게스트를 부팅합니다.

  • 파일 탐색기를 실행합니다.
  • 주소창에 \\호스트 IP\MyShare를 입력하거나, 호스트이름\MyShare를 입력합니다. 여기서 MyShare는 위에서 만든 공유의 이름이고, 전자로 접근하는 것을 추천합니다. 이때, 호스트 IP는 리눅스 명령줄에서 ifconfig로 확인할 수 있습니다.
  • 드라이브 문자를 할당하고 싶으면, 왼쪽 아래에 보이는 네트워크에서 마우스 오른쪽 클릭을 해서 네트워크 드라이브 연결을 선택합니다. 네트워크 탐색은 켜지 않아도 상관없이 잘 작동합니다.

이때, 로그인할 때 다시 연결을 선택해제 합니다. 필요할 때, 연결해서 사용하는 습관이 바이러스 방어에 도움이 될 것으로 기대됩니다.

이 방법은 네트워크에 자신의 시스템들로 구성되지 않을 때에는 다른 사람들이 해당 디렉토리로 접근할 수 있어서 선호되는 방법은 아닙니다.

smbuser/smbpasswd

삼바 서버에 연결할 때, 사용자와 암호를 통해 연결하도록 공유 폴더의 속성을 바꿀 수 있습니다:

[MyShare]
   comment = Test folder
   path = /home/user_id/Downloads
   valid users = smbuser_id
   public = no
   writable = yes

설정을 바꾼 후에 서비스를 재시작합니다:

  • sudo systemctl restart smbd

이 후에, 공유 디렉토리 목록은 표시되지만, 아이디와 암호를 입력하지 않고는 디렉토리 내부로 접근할 수 없을 것입니다.

위의 설정에서, smbuser_id는 호스트 리눅스의 사용자 아이디 중 하나여야 하고, 다음과 같이 삼바 사용자로 만들면서 동시에 암호를 생성할 수 있습니다: 이 암호는 삼바 서버로 접근할 때의 암호이고, 호스트 암호와는 별도로 관리됩니다. 만약, 삼바 아이디, 암호와 게스트 (윈도우) 아이디, 암호를 같게 만들면, 해당 게스트에서는 암호를 입력하는 과정 없이 바로 접근됩니다.

  • sudo smbpasswd -a smbuser_id

암호를 바꾸고 싶을 때에는

  • sudo smbpasswd smbuser_id

사용자를 삭제하고 싶을 때

  • sudo smbpasswd -x smbuser_id

암호를 만들고, 게스트에서 암호를 입력 후에, 서비스 재시작 없이,, 즉시 디렉토리 내부로 들어가게 됩니다.

Linux client configurations

다음 도구가 필요할 수 있으므로, 설치합니다:

  • sudo apt install smbclient cifs-utils

이제, 서버에서 공유된 이름을 확인합니다:

  • smbclient -L //host_ip_address

그런-다음 다음과 같이 마운트할 수 있습니다:

  • sudo mkdir ~/Temp
  • sudo mount -t cifs -o user=samba_user_id //host_ip_address/sharename ~/Temp

클라이언트 부팅 후에 즉시 마운트하기 위해, /etc/fstab 파일을 수정합니다:

  • //<host-ip-address>/<share-name> /mnt/myFolder/ cifs username=YOURUSERNAME,password=YOURPASSWORD

See also

 

 

External links