반응형
Notice
Recent Posts
Recent Comments
Link
«   2025/03   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
Tags
more
Archives
Today
Total
관리 메뉴

hann-blume

Linux - Samba 본문

Linux

Linux - Samba

hann-blume 2020. 3. 21. 23:28

 

 

 

Samba Service

 


- Samba Service는 Linux System과 다른 운영체제가 혼합되어 운영되는 경우 

File System 및 각종 H/W 자원들을 공유하는 목적으로 사용한다.
- Samba Service는 대부분 리눅스 배포판에서 지원

1. SMB(Samba Message Block)
윈도우 시스템이 다른 시스템의 디스크나 프린터와 같은 자원을 공유할 수 있도록 

하기 위해 마이크로소프트와 엔텔사에서 개발.


따라서 SMB는 OS/2, NT, WIN9x를 사용하는 컴퓨터끼리 

파일 공유 등의 서비스를 구현하는데 사용된다.
또한 TCP/IP기반의 NetBIOS 프로토콜을 이용하기 때문에 

이 프로토콜은 유닉스의 네트워크 구조와 유사하다

2. CIFS(Common Internet File System)
SMB 파일 공유 프로토콜의 확장된 버전. SMB Protocol위에 DNS를 이용할 수 있도록 해주며, 

윈도우와 유닉스 환경을 동시에
지원하는 인터넷의 표준 파일 규약.

(SMB 프로토콜과는 달리 CIFS는 여러 유닉스 업체가 참여하여 규약을 정의하였음.)


samba패키지 설치
# yum -y install samba-*
방화벽 설정
# firewall-cmd --permanent --add-service=samba
# firewall-cmd --reload
확인
# tail -3 /usr/lib/firewalld/services/samba.xml
samba는 tcp로 445번 포트를 사용한다

 


# systemctl start smb
# systemctl start nmb

smb - Server Message Block Daemon
    - Linux 및 Windows 운영체제와 파일공유를 위한 프로그램


nmb - NetBios Name Server Daemon 
    - Windows에서 사용하는 NetBIOS통신을 리눅스 운영체제에서도 사용하기 위한 프로그램

# systemctl enable smb
# systemctl enable nmb

 


1기가 하드디스크 1개 추가


500M 500M Primary로 파티션 설정

# fdisk /dev/sdb


파일시스템(포맷)
# mkfs.xfs /dev/sdb1
# mkfs.xfs /dev/sdb2


M.P생성
# mkdir -p /samba/anonymous
# mkdir /samba/smbg


마운트
# mount /dev/sdb1 /samba/anonymous
# mount /dev/sdb2 /samba/smbg
확인
# df -h


오토마운트
# vi /etc/fstab
/dev/sdb1               /samba/anonymous                xfs             defaults                0 0
/dev/sdb2               /samba/smbg                xfs             defaults                0 0



# vi /etc/samba/smb.conf
이 파일에서 삼바서비스를 어떤 식으로 운영하겠다는 것을 정의하게된다.
들어오면 전부다 삭제하고 아래내용 추가

      [global]
              workgroup = WORKGROUP      윈도우의 기본 작업그룹 이름과 맞쳐줌
              server string = Samba Server  smaba서비스 이름지정
              netbios name = centos      리눅스에서 윈도우에 접근할 때의 netbios 이름
              map to guest = bad user    인증을 거치지않은 허가되지 않은 사용자
              security = user    인증방식 = 사용자 인증
              passdb backend = tdbsam    samba 전용 계정의 암호가 저장되는 공간 = tdbsam
              hosts allow = 192.168.131. 127.   허용하고자하는 네트워크 대역대 설정. 
                대역대의 범위지정해주고, 127.로 루프백 주소 지정.
      
     [Anonymous]
             path = /samba/anonymous 익명공유에서 사용할 디렉터리 설정
             browseable = YES 공유폴더 목록으로 출력을 해주겠다.
             writeable = YES 쓰기작업을 허용해주겠다.
             guest ok = YES 인증을 거치지 않은 접근도 허용하겠다.

 

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

      [global]
              workgroup = WORKGROUP
              server string = Samba Server
              netbios name = centos
              map to guest = bad user
              security = user
              passdb backend = tdbsam
              hosts allow = 192.168.131. 127.


     [Anonymous]
             path = /samba/anonymous
             browseable = YES
             writeable = YES
             guest ok = YES

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




서비스 재시작
# systemctl restart smb
# systemctl restart nmb

데몬 LISTEN(활성화) 상태 확인
# netstat -antp | grep smb


윈도우(클라이언트)로 와서
윈도우 + r 
\\centos 입력, 엔터 -> 위에서 정해준 netbios 이름

 


(이때 클라이언트에 ip가 설정되어있어야한다.)
위에서 8번째 줄에 명시했기 때문.

나타나는 anonymous폴더에 접근후에 어떤 파일을 만들려고하면 권한문제가 나온다.

 


다시 서버로 와서
# ls -ld /samba/anonymous/
확인해보면 other(anonymous=other)에 쓰기권한이 없다.

 


# chmod 757 /samba/anonymous/
다시 클라이언트로 와서 파일을 생성해보면 잘 생성이 된다.

 


서버로 와서 확인
# ls -l /samba/anonymous/



# groupadd smbg
# useradd -G smbg sambauser   기본그룹이 아닌 추가그룹으로 smbg를 갖는 smabauser라는 계정을 만든다.
# smbpasswd -a sambauser      samba에 유저의 계정을 추가해준다. (패스워드도 함께 지정)

# chown .smbg /samba/smbg     smbg디렉터리의 그룹소유권을 smbg로 변경 , 암호는 아무거나 지정
# chmod 775 /samba/smbg       smbg디렉터리의 허가권을 775로 그룹이 쓰기권한을 가지도록 변경
# ls -ld /samba/smbg

 


# vi /etc/samba/smb.conf

맨 아래줄에 내용을 추가해준다.


      [smbg]
              path = /samba/smbg 익명공유에서 사용할 디렉터리 설정
              browseable = YES 공유폴더 목록으로 출력을 해주겠다.
              guest ok = NO 인증이 된 사용자만 접근이 가능하도록 한다
              valid users = @smbg smbg라는 그룹에 속한 사용자만 접근이 가능하도록 한다
              create mask = 0644 기본 허가권
              directory mask = 0755 기본 허가권

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

     [smbg]
             path = /samba/smbg
             browseable = YES
             guest ok = NO
             valid users = @smbg
             create mask = 0644
             directory mask = 0755

 

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

 

 


서비스 재시작
# systemctl restart smb
# systemctl restart nmb


윈도우(클라이언트)로 와서
윈도우 + r 
\\centos 입력, 엔터

아까와는 달리 네트워크 계정의 이름과 암호를 묻는다.
위에서 인증된 계정만 접근이 가능하도록 설정했기 때문이다.


접근 후 파일 정상 생성확인.

 

 


이런식으로 매번 접근하지않고 항상 연결이 되도록 설정하는 방법.
내컴퓨터-네트워크드라이브연결
\\centos\smbg - 마침(정확한 경로를 명시해주면 된다.)
- 우클릭 - 연결끊기

cmd - net use
기존의 연결정보가 출력된다. 
삭제
net use \\centos\smbg /delete
삭제하면 나중에 접속할 때 인증을 다시해주어야한다.

SMB 끝


 

 

------
 CIFS 
------
클라이언트의 c드라이브에
CIFS_Mount라는 폴더를 만들고
공유 - 고급공유 - 선택한 폴더 공유 - 권한 - Everyone을 모든권한 설정 - 적용 - 확인

 


계정생성(계정이름,암호)
cmd - net user /add linuxuser hann

 

여기서 계정이름이 linuxuser

암호가 hann 이 된다.

 

 

보안 - 편집 - 추가 - linuxuser 추가 - 모든권한 - 적용 - 확인

 


여기까지가 windows에서의 공유세팅작업 완료이다.


서버로 와서
CIFS 패키지 설치
# yum -y install cifs*

s1이라는 그룹 생성
# groupadd -g 1005 s1
s1이라는 계정을 s1이라는 그룹을 홈디렉터리로 지정하면서 생성
# useradd -u 1005 -g s1 s1
s1 계정 확인
# id s1

backup디렉터리를 생성한다.
# mkdir /backup

192.168.1.200 주소의 CIFS_Mount라는 폴더와 /backup 디렉터리를 마운트해주겠다
# mount.cifs \\\\192.168.131.200\\CIFS_Mount /backup -o user=linuxuser,pass=hann,uid=1005,gid=1005

 

 


여기서 \\\\는 \\가 문자의 형식으로 인식이 되도록 하는 용도이다
\로 한번만 입력하면 다음줄 개행의 역할이 된다.

ex)
# mkdir /backup/A \
> /backup/B \
> /backup/C \
> /backup/D \
# ls -l /backup
명령어를 한번에 이어서 입력할 수 있다.

 

다시 돌아와서

 

# vi /home/s1/cifs_user 
user=linuxuser
pass=hann

 

오토마운트 작업도 해주자
# vi /etc/fstab 
\\\\192.168.131.200\\CIFS_Mount /backup cifs credentials=/home/s1/cifs_user,uid=1005,gid=1005 0 0 

credentials=/home/s1/cifs_user는 
/home/s1/cifs_user을 신용(인증)하겠다는 의미로 
위에서 vi /home/s1/cifs_user 명령을 통해 신용을 할 윈도우의 계정의 이름과 암호를 명시. 

 


파일을 만들어보자
# touch /backup/Testfile


클라이언트를와서 폴더에 접근해보면 파일이 만들어져있다

 


오토마운트 확인은
재부팅
# init 6
확인
# df -h


 

추가적으로 위에서

# vi /etc/samba/smb.conf에 적어주었던 것의 옵션들은 따로 파일로 올려두겠다.

 

SambaOption.txt
0.01MB

 

 

 

 

 

 

 

여기까지 Samba에 대한 설명이 끝났다.

반응형

'Linux' 카테고리의 다른 글

Linux - Cron / CronTab  (0) 2020.03.22
Linux - Backup  (0) 2020.03.22
Linux - NFS (Network File System)  (0) 2020.03.21
Linux - FTP (File Transfer Protocol)  (0) 2020.03.21
Linux - VNC (Virtual Network Computing)  (0) 2020.03.21