삼바(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
----------------------------------------------- -> 인증정보
마운트를 걸어보자
윈도우에서 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로 확인