2021_0221_Samba

이기태·2024년 2월 21일

리눅스

목록 보기
19/27

1. SMB/CIFS 소개

  • 분산 파일 시스템
    1) NFS(Network File System):
    NFSv2: UDP
    VFSv3: UDP, (=> TCP)
    VFSv4: TCP, (=> UDP), v4, v4.1, v4.2
    2) CIFS(Common Internet File System)
    -> WIN이 주로 사용하는 프로토콜.
    -> network에서 폴더를 공유하고 network에서 접근하는 방식
    -> CIFS의 오픈소스로 만든 것 ---> SMB(Server Message Block)
    -> SMB + NMB == CIFS

데이터를 전송할때 Encapsulation 할때 쓸 수 있는 규약.
서로 정보를 어떻게 맞출것인가...
오픈소스로 윈도우가 지원하고 있는 방식의 프로토콜들을 쓸 수 있게하는 프로그램 => SAMBA
SAMBA를 이용해 리눅스에서 CIFS/SMB 프로토콜을 지원하게 됌.
즉, SAMBA는 리눅스로 윈도우의 CIFS/SMB 프로토콜을 지원해주는 프로그램.

  • SAMBA의 활용
    1) 프린터 공유
    2) 백업 시스템으로 사용
    3) 디스크 공간을 연장 공간으로 사용

2. SMB Server 설정 절차

  1. 패키지 설치
    # yum -y install samba samba-client cifs-utils

  2. 서버 설정
    /etc/samba/smb.conf, /etc/samba/*
    [Samba] /etc/samba/smb.conf
    공유옵션:
    writable =yes|no // (read only = yes|no)
    valid users = u1 u2 u3 // 접근 사용자 지정
    write list = u1 u2 u3 // write 할 수 있는 사용자 지정

  3. 서비스 기동
    # systemctl enable --now smb nmb

4.방화벽 등록
# firewall-cmd --premanent --add-service=samba

  1. SELinux(?)

3. Samba CMD

(C) smbclient CMD
# smbclient -L 192.168.10.202 -U soldesk
# smbclient //192.168.10.202 -U soldesk

(S) smbstatus CMD
# smbstatus

(S) testparm CMD
# testparm
# testparm -sv | sed '/homes/,$d' | grep 'read only'

(C) mount.cifs/umount.cifs CMD
# mount.cifs //192.168.10.202/share /mnt/share -o username=soldesk

4. SMB Server 설정 + 실습

패키지: samba samba-client cifs-utils
데몬 & 포트 & 프로토콜: smbd(139/tcp, 445/tcp), nmbd(137/udp, 138/udp)
주 설정 파일: /etc/samba/smb.conf
하위 설정 파일: /etc/samba/*
서비스: smb.service, nmb.service


[ex] 기본 설정 확인
[ex] Linux 서버에서 공유 - Windows 자원 마운트
(Linux 서버 공유)
1) 패키지 설치
# yum -y install samba samba-client cifs-utils
2) 서버 설정
# vi /etc/samba/smb.conf

# mkdir -p -m 777 /samba
# useradd -M -s /sbin/nologin smbuser1
# smbpasswd -a smbuser1

3) 서비스 기동
# systemctl enable --now smb nmb
4) 방화벽 등록
# firewall-cmd --permanetn --add-service=samba
# firewall-cmd --reload
(Windows 서버 마운트)

임시적: //192.168.10.20/public
영구적:

[ex] Window 서버에서 공유 - Linux 서버에서 자원 마운트
(Windows 서버 공유)
1) 공유 서비스 기동
[네트워크 및 공유센터] > [고급 공유 설정 변경] > [현재프로필]

2) 공유할 디렉토리 생성 및 설정
C:/share 폴더 생성
폴더 속성 > [공유]탭 > [고급공유]
(Linux 서버 자원 마운트)

Linux 서버에서 자원 마운트
1) 임시적
# mkdir -p /mnt/share
# mount.cifs //192.168.10.202/share /mnt/share -o username=soldesk

2) 영구적
# mkdir -p /mnt/share
# vi /root/cred
username-soldesk
password=soldesk1.
# chmod 600 /root/cred
# vi /etc/fstab
//192.168.10.202/share /mnt/share cifs credentials=/root/cred 0 0
# mount -a
[ex] Linux 서버에서 공유 - Linux 서버에서 마운트
(server1)
# vi /etc/samba/smb.conf
[test1]
comment =TEST
path = /smbshare
write list = @marketing

# groupadd -r marketing
# mkdir -p /smbshare
# shgrp marketing
# chmod 2775 /smbshare

# smbpasswd -a smbuser3
# smbpasswd -a smbuser4

# useradd -M -s /sbin/nologin -G marketing smbuser3
# useradd -M -s /sbin/nologin -G marketing smbuser4

# systemctl restart smb nmb

(server2)
# yum -y install samba-client cifs-utils

# smbclient -L 192.168.10.20 -U smbuser3
# mkdir -p /mnt/smbuser
# mount -o username=smbuser3 //192.168.10.20./test /mnt/shareuser

0개의 댓글