hann-blume
Linux - Samba 본문
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에 적어주었던 것의 옵션들은 따로 파일로 올려두겠다.
여기까지 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 |