어쩌다 IT
article thumbnail
반응형

개요

삼바(Samba)SMB (Server Message Block) 프로토콜을 이용하여

윈도우와 리눅스 계열 간 프린터 및 공유폴더를 사용하여 자원을 공유할 수 있는 프로그램이다.

 

삼바를 설치하고 테스트하게 된 계기는

기존 윈도우서버의 이미지 백업을 리눅스 스토리지 서버로 원격지 백업을 할 일이 생겼기 때문이다.


설치 및 설정

1. samba 설치

yum install samba
[root@localhost ~]# yum install samba
================================================================================
 꾸러미                     구조       버전                    저장소      크기
================================================================================
설치 중:
 samba                      x86_64     4.18.6-102.el9_3        baseos     931 k
종속 꾸러미 설치 중:
 libnetapi                  x86_64     4.18.6-102.el9_3        baseos     140 k
 samba-common-tools         x86_64     4.18.6-102.el9_3        baseos     455 k
 samba-dcerpc               x86_64     4.18.6-102.el9_3        baseos     684 k
 samba-ldb-ldap-modules     x86_64     4.18.6-102.el9_3        baseos      27 k
 samba-libs                 x86_64     4.18.6-102.el9_3        baseos     120 k

연결 요약
================================================================================
설치  6 꾸러미

전체 내려받기 크기: 2.3 M
설치된 크기 : 8.1 M
진행할까요? [y/N]:

y를 입력하여 진행하면 된다.

귀찮으면 애초에 yum install -y samba를 입력하면 된다.

 

 

2. samba 계정 등록

smbpasswd -a [사용자명]

를 입력했을 때 아래와 같은, 보기도 싫은, Fail 관련된 에러메시지가 뜰 수도 있다.

[root@localhost ~]# smbpasswd -a sa
New SMB password:
Retype new SMB password:
Failed to add entry for user sa.

위와 같은 경우에는

useradd를 통해서 계정을 만들고 다시 하면 된다.

[root@localhost ~]# useradd sa
[root@localhost ~]# smbpasswd -a sa
New SMB password:
Retype new SMB password:
Added user sa.
[root@localhost ~]#

 

 

3. 공유 디렉토리 생성 및 설정

samba에서 사용할 계정까지 생성했으면 공유 디렉토리를 생성하고 설정해야 한다.

공유 디렉토리 생성 위치와 권한은 각각의 환경에 맞게 설정하면 되겠다.

[root@localhost home]# mkdir /home/backup
[root@localhost home]# chmod 777 /home/backup/
[root@localhost home]# ll
합계 4
drwxrwxrwx.  2 root  root     6  3월  8 10:11 backup
drwx------.  3 sa    sa      78  3월  8 10:06 sa
[root@localhost home]#

본인은 /home/backup 이라는 폴더를 만들었고 해당 폴더에 777 권한을 주었다.

 

 

4. 삼바(samba) 환경설정

삼바 환경설정 파일은 /etc/samba/smb.conf 이다.

smb.conf 파일은 [global], [homes], [printers], [print$] 총 4개의 section으로 구성이 되어 있고,

나는 공유 폴더를 추가할 목적이기 때문에 해당 파일 하단에 section을 추가한다.

먼저 smb.conf 파일을 연다.

vi /etc/samba/smb.conf
[share]
        comment = samba shared directory
        path = /home/backup
        read only = no
        writable = yes
        guest ok = no
        create mask = 0777
        directory mask = 0777
  • comment - 해당 section에 대한 설명
  • path - 공유 디렉토리 경로
  • read only - 읽기 전용 여부
  • writable - 쓰기 가능 여부
  • guest ok - 게스트 이용 가능 여부
  • create mask - 생성 시 권한 설정
  • directory mask - 공유 폴더 권한

 

 

5. 삼바(samba) 방화벽 설정

firewall-cmd --permanent --add-service=samba
firewall-cmd --permanent --zone=public --add-port=138/udp --add-port=139/udp
firewall-cmd --reload

 

 

6. samba 활성화 및 실행

systemctl enable smb
systemctl start smb
[root@localhost home]# systemctl status smb
● smb.service - Samba SMB Daemon
     Loaded: loaded (/usr/lib/systemd/system/smb.service; enabled; preset: disa>
     Active: active (running) since Fri 2024-03-08 10:41:52 KST; 27s ago
       Docs: man:smbd(8)
             man:samba(7)
             man:smb.conf(5)
   Main PID: 7270 (smbd)
     Status: "smbd: ready to serve connections..."
      Tasks: 3 (limit: 22752)
     Memory: 9.8M
        CPU: 163ms
...

삼바(samba)를 부팅 시 자동으로 실행되게끔 활성화(enable)하고, 실행(start)까지 했다.

Active: active (running)을 통해 작동 중임을 알 수 있다.

 

7. 윈도우에서 네트워크 드라이버 연결

설치와 설정은 모두 끝냈다.

이제 잘 연결되는지만 확인하면 된다.

먼저 네트워크 드라이버 연결을 선택한다.

생성한 samba의 계정과 패스워드를 입력하고 나면 연결을 확인할 수 있다.


번외

그런데 접근을 하려고 하니 액세스 권한이 없다고 나온다.

방화벽 설정도 했고, 다 했는데 왜 안되나 싶을텐데 이는 SELinux 때문이다.

간단한 방법은 SELinux를 비활성화시키면 되겠으나,

보안때문에 설정되어 있는 SELinux를 굳이 끄고 싶지 않았고, 이를 허용하는 권한을 설정하면 된다.

setsebool -P samba_enable_home_dirs on

 

해당 설정 후에 공유 폴더에 접근을 확인했고,

위와 같이 테스트 파일 업로드 시 양쪽에서 확인할 수 있다.


정리

연결이 안되면 SELinux를 비활성화 시키거나 권한을 수정하자.

삼바(samba) SELinux 설정은 zosystem님의 동방노트에 잘 설명이 되어 있다.

 

이로써 삼바(samba) 설치, 설정을 하고 윈도우와 리눅스 연동에 관한 포스팅을 마친다.

 

반응형
profile

어쩌다 IT

@jwlish

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!