SAMBA(smb)

삼바(Server Message Block) 서버란? 디렉터리 공유용 -> 윈도우에서는 기본적으로 제공함

smb nmb - 서비스명 패키지로 같이 사용 (세트로 움직임)

 MS와 Intel은 윈도우 시스템이 다른 시스템의 디스크나 프린터같은 자원(리소스)을 공유

                                                    ----------------- : 다른 윈도우 시스템

 

NFS - 리눅스용 SMB

 

사용이유 - 자원 공유 및 하드웨어 공유

== SMB 취약점을 공격하면 랜섬웨어 유포에 악용될 소지가 크다.

     SMB는 기본 프로세스 활성화 되어 있기 때문에, 일반 사용자는 막을 방법이 없다.

해결법 - 서비스 종료

 

SMB 취약점 - ver 1.0 , 2.0 , 3.0이 존재한다.

해결법 - (프로그램 추가 제거 - windows 기능 켜기/끄기 - SMB 1.0/CIFS 비활성화)

                                                                                                        -------- = SMB

sc(프로세스 관리 명령어)관리자 권한

SMB 1.0 해제 sc.exe config lanmanworkstation depend= browser/mrxsmb10/nsi

SMB 2.0 해제 sc.exe config mrxsmb20 start= disabled

 

실습을 위한 사전 준비

0. 공유를 위한 계정 생성 (smb / 1234 컴퓨터 관리 - 로컬 사용자 및 그룹 - 사용자)

1. 공유 폴더 생성  (새폴더-속성-고급공유-권한-추가-쿼리찾기)

2. 공유 확인 (cmd - net share)

3. 서브 pc에서 \\192.168.0.200\smb로 접근 시 폴더에 접근 가능(window : 경로 지정 후 ,linux : smb 프로토콜로 접근)


CentOS7에서 SMB 설정

서비스 이름 : smb

패키지 이름 : samba -> server

                      samba-client -> client

smb 설치 - yum -y install samba samba-client

smb 경로 - /etc/samba/smb.conf

백업 파일 생성 - cp -ap smb.conf smb.conf.bak

                         ----  ----                                        -> 소유자 / 권한 똑같이 복사

 

리눅스에서 사용할 공유폴더 - /share/smb

경로 디렉터리 한번에 생성 - mkdir -p /share/smb

 

samba 서비스에 사용할 계정 : geum1 / 1234

useradd -s /sbin/nologin geum1                           -> 사용할 쉘 선택

cat /etc/passwd                                                    -> 생성된지 확인

== 일반계정 geum1이 생성되었다 -> 로그인을 하더라도 bash가 실행되지 않는다. -> 명령어 사용에 제한 발생

일반계정 geum1 -> smb계정에 등록

= smbpasswd -a geum1 (대상계정)

입력할 비밀번호는 smb 접근 시 사용할 패스워드 계정이다.

 

공유폴더에 사용할 디렉터리와 geum1 계정의 동기화가 필요하다. (소유권 변경)

chown -R geum1:geum1 /share

 

vim /etc/samba/smb.conf 으로 설정파일 이동

 

[공유이름]

    comment = 주석내용

    path = 경로

    writable = 쓰기모드 설정

    write list = 쓰기 권한을 갖는 계정

    valid users = [공유이름]에서 사용할 계정

    hosts allow = 접근 가능한 대상

    browseable = 읽기 권한

 

[share]

    comment = geum's samba

    path = /share/smb

    writable = yes

    write list = geum1, @geum1

    valid users = geum1, @geum1

    hosts allow = 192.168.0.0/24

    browseable = yes

 

설정이 끝나면 systemctl restart smb nmb


smb 계정 상태 확인 (등록이 잘 된지 확인)

pdbedit --list

윈도우에서 접근

파일 탐색기에 \\192.168.0.216 으로 접속(smb설정한 CentOS IP)

로그인 시 smb 생성할 때 만든 계정 (geum1 / 1234)

 

파일 탐색기 share에 새 폴더 생성 후 리눅스에서 ls 결과 생성되는거 확인

 

상대방 공유폴더에도 접속이 가능하다.

 

리눅스에서 접근

리눅스에서 윈도우의 공유폴더에 접근

                    --------                                -> 사용자 smb

 

윈도우의 공유폴더 접근 방법 : 파일 탐색기 ->  \\접근할 ip\smb

리눅스의 공유폴더 접근 방법 : smbclient -L 192.168.0.200 -U smb

리눅스에서 접근 오류 시 비밀번호 한번 바꿔야됨

그래도 안되면 : 

윈도우 - 제어판 - 네트워크 및 인터넷 - 네트워크 및 공유 센터 - 고급 공유 설정-모든 네트워크

공용 폴더 공유 켜기, 암호로 보호된 공유 끄기

 

윈도우에서 smb 서비스 상태 확인 : cmd - net use

윈도우 smb 상태 확인 국룰 : 내pc 우클릭 - 관리 - 공유 폴더

리눅스에서 smb 서비스 상태 확인 : smbstatus

 

mount : 연결

SRC : Window /geum

DST : Linux/share/mnt

 

마운트 할 DST 디렉터리안에서 실행하면 안된다.

초기 설정값

mount -t cifs SRC DST -o username = 'ID',password='1234'

          --------                                                                                -> 연결할 때 사용할 파일 시스템

                    ------                                                                        -> 대상 : //192.168.0.200/smb

                            ------                                                                -> 타겟 : /share/mnt

                                      -----------------------------------------------     ->  인증정보

마운트를 걸어보자

mount

윈도우에서 net use 사용시 리눅스가 정상적으로 붙어있는 걸 확인할 수 있다.

관리자 권한으로 실행하면 안됨

해제는 umount

윈도우에서 상대방 연결을 끊는 법

리눅스 상에서 마운트 된 상태를 확인 


시스템 부팅 시 자동으로 적용되는 파일시스템관리 설정 파일 - fstab

/etc/fstab

설정 기본 형태

--------------------------------------   -------                                        ------         ---------------              -------

                   SRC                       DST                                파일시스템          옵션                마운트 옵션

 

//192.168.0.200/geum /share/mnt    cifs    user=smb,pass=1234,rw,uid=0,gid=0    0    0

 

설정값 넣어주고 init 6로 재부팅 후 df로 확인


 

'서버' 카테고리의 다른 글

DISKQUOTA  (0) 2023.06.22
RAID  (0) 2023.06.21
CMS  (0) 2023.06.07
PHP 설치  (0) 2023.05.30
가상호스팅(VHost)  (0) 2023.05.24