본문 바로가기
정보통신기술

리눅스 samba 서비스 설치 및 설정 가이드

by 주니미 2024. 12. 8.

리눅스에서 Samba 서비스 설치 및 설정 가이드

Samba는 리눅스와 윈도우 간 파일 공유 및 프린터 공유를 가능하게 하는 서비스입니다. 아래는 Samba 서비스 설치와 설정 과정을 단계별로 정리한 내용입니다.


1. Samba 설치

1.1. 설치 명령어

Samba 패키지는 대부분의 리눅스 배포판에서 기본 리포지토리에 포함되어 있습니다. 설치하려면 다음 명령어를 사용합니다.

Red Hat 계열 (CentOS, Rocky Linux, AlmaLinux 등)

sudo dnf install samba samba-client samba-common -y

Debian 계열 (Ubuntu 등)

sudo apt update
sudo apt install samba smbclient -y

1.2. 설치된 Samba 버전 확인

smbd --version

2. Samba 구성 파일

Samba의 주요 구성 파일은 /etc/samba/smb.conf입니다. 이 파일에서 공유 디렉토리 및 접근 권한을 설정합니다.

2.1. 기본 설정 파일 확인

cat /etc/samba/smb.conf

2.2. 설정 파일 수정

설정을 수정하려면 텍스트 편집기를 사용합니다.

sudo nano /etc/samba/smb.conf

3. 설정 예제

다음은 기본 공유 설정의 예입니다.

[공유 설정 샘플]

[global]
   workgroup = WORKGROUP
   server string = Samba Server %v
   netbios name = samba-server
   security = user
   map to guest = bad user
   dns proxy = no

[SharedFolder]
   path = /srv/samba/shared
   writable = yes
   guest ok = yes
   read only = no
   browsable = yes

옵션 설명

  • workgroup: Windows 워크그룹 이름.
  • security: 사용자 인증 모드 (기본값은 user).
  • guest ok: 손님 계정으로 접근 허용 여부.
  • path: 공유 디렉토리 경로.
  • writable: 디렉토리 쓰기 권한 설정.
  • read only: 읽기 전용 여부 설정.

4. Samba 계정 생성 및 설정

Samba는 별도의 사용자 계정을 관리합니다.

4.1. 시스템 사용자 생성

sudo useradd -M -s /sbin/nologin sambauser

4.2. Samba 사용자 추가

sudo smbpasswd -a sambauser

4.3. Samba 사용자 활성화

sudo smbpasswd -e sambauser

5. 디렉토리 생성 및 권한 설정

공유 디렉토리를 생성하고 올바른 권한을 설정해야 합니다.

5.1. 디렉토리 생성

sudo mkdir -p /srv/samba/shared

5.2. 권한 설정

sudo chmod -R 0777 /srv/samba/shared
sudo chown -R nobody:nogroup /srv/samba/shared

6. Samba 서비스 시작 및 활성화

Samba 서비스를 시작하고 부팅 시 자동 시작되도록 설정합니다.

6.1. 서비스 시작

sudo systemctl start smb nmb

6.2. 서비스 상태 확인

sudo systemctl status smb nmb

6.3. 부팅 시 자동 시작 설정

sudo systemctl enable smb nmb

7. 방화벽 설정

Samba 서비스를 네트워크에서 사용할 수 있도록 방화벽을 설정합니다.

7.1. 방화벽에서 Samba 허용

Firewalld (Red Hat 계열)

sudo firewall-cmd --add-service=samba --permanent
sudo firewall-cmd --reload

UFW (Debian 계열)

sudo ufw allow samba

8. Samba 공유 테스트

8.1. 네트워크 공유 확인

다른 시스템에서 Samba 공유 디렉토리를 확인합니다.

smbclient -L //<Samba 서버 IP> -U sambauser

8.2. 마운트 테스트 (Linux)

Linux 클라이언트에서 Samba 공유를 마운트합니다.

sudo mount -t cifs -o username=sambauser,password=<비밀번호> //<Samba 서버 IP>/SharedFolder /mnt

9. 필요 패키지 설치

Samba의 호환성을 높이고 다양한 기능을 사용하려면 다음 패키지를 설치하는 것이 좋습니다.

  • samba-libs: Samba 라이브러리.
  • samba-vfs-modules: 가상 파일 시스템 관련 모듈.
  • winbind: 윈도우 인증을 위한 도구.
  • cifs-utils: CIFS 마운트 지원.

설치 명령어:

# Red Hat 계열
sudo dnf install samba-libs samba-vfs-modules winbind cifs-utils -y

# Debian 계열
sudo apt install samba-libs samba-vfs-modules winbind cifs-utils -y

10. 문제 해결

10.1. 로그 확인

Samba 관련 문제는 로그를 통해 확인합니다.

sudo journalctl -u smb -xe
sudo cat /var/log/samba/log.smbd

10.2. SELinux 설정 (Red Hat 계열)

SELinux 활성화된 환경에서는 Samba 디렉토리를 허용해야 합니다.

sudo setsebool -P samba_enable_home_dirs on
sudo chcon -t samba_share_t /srv/samba/shared

마치며

Samba 서비스는 리눅스 환경에서 윈도우와 손쉽게 파일을 공유할 수 있는 강력한 도구입니다. 위의 단계를 따라 설치 및 설정을 완료하고, 추가 요구 사항에 따라 설정 파일을 조정하면 효율적으로 사용할 수 있습니다.