samba
• 네트워크를 통해 파티션을 공유하도록 제공하는 서비스
• 유닉스 시스템과 windows 시스템간 파일 시스템 공유
• 유닉스 계열의 거의 모든 시스템에서 제공
• 시스템의 리소스를 직접 제공하는 서비스이므로 보안에 주의한다.
- 응용을 제공하는 것이 아니라 리소스를 제공하는 서비스이다.
Samba 서버 확인 및 설치
# yum list samba
# yum install -y samba
데몬
/usr/sbin/smbd
- 공유 기능을 담당하는 데몬 (139번 포트 이용)
/usr/lib/systemd/system/smb.service
- 데몬 실행 스크립트
/etc/samba/smb.conf
- Samba 설정파일
데몬 실행
# systemctl start smb.service
관련 파일
• 환경 설정 파일 : /etc/samba/smb.conf
관련 명령어
• 사용자 등록 및 password 변경 : /usr/bin/smbpasswd
- smbpasswd [-a] 유저명
-a : 유저 등록
-x : 유저 삭제
-d, -e : 사용중지, 재사용
• 삼바 계정 확인 :
- pdbedit -w -L
• smb.conf 구문 검사 : /usr/bin/testparm
• NetBIOS명 검색 : /usr/bin/nmblookup
Samba – smb.conf [Global]
workgroup
: NT 도메인 명 지정
netbios name
: 네트워크 이름
(기본값 : 호스트명)
hosts allow (allow 지정된 것만 접속 가능)
: 허가 항목 지정(지정된 것만 접속 가능)
ex) host allow = 1.1.1. EXCEPT 1.1.1.11 1.1.1.12
= 1.1.1.0/255.255.255.0
hosts deny
: 접속 거부 항목 지정 (형식은 hosts allow와 동일)
guest account
• 윈도우의 quest 사용자 매핑 계정 설정
• nobody 또는 유닉스 계정으로 매핑 가능
• 주석 처리하면 guest 접속 불가(권장)
security
• user, share, server(domain) 중 설정
- security = user
- passdb backend = tdbsam
• 일부 예전 버전의 경우 user 설정 시 추가 설정 필요
- encrypt passwords = yes
- smb passwd file = /etc/samba/smbpasswd
Link 디렉토리 접근
보안 설정으로 인해 Symlink 디렉토리에 대한 기본 접근이 불허된다.
이를 허용하기 위해서는 아래와 같이 추가한다.
follow symlinks = yes
wide links = yes
unix extensions = no
언어셋 지정 (반드시 test 후 설정한다.)
unix charset = utf-8
dos charset = cp949
유닉스 계열의 언어셋과 클라이언트인 윈도의즈 계열의 언어셋이 서로
다름으로 반드시 지정해야 한다.
Smb.conf 파일에 다음을 내용 추가
• server signing = auto
[auto | mandatory | disabled]
• mandatory는 smb2만 지원하므로 이전 버전의 windows에서는 접
속이 불가능 할 수도 있다.
윈도우 XP와 같은 Samba 접속이 거부되는 운영체제의 경우 다음
설정을 활성화 해준다.
lanman auth = yes
ntlm auth = yes
비활성화\ 된 경우 SPNEGO 지원의 클라이언트만 허용한다.즉 이는 NTLMv2
가 NTLMSSP 내에서만 지원됨을 의미한다.
• SPNEGO는 The Simple and Protected GSS-API Negotiation
Mechanism(IETF RFC 2478)에 정의된 표준 스펙.
• NTLM은 Windows 네트워크에서 NT LAN Manager는 Microsoft 보안 제품
군으로 사용자에게 인증, 무결성 및 기밀성을 제공하기위한 프로토콜로 이전
Microsoft 제품인 Microsoft LAN Manager의 인증 프로토콜의 후속 제품
입니다.
comment = 여기는 공유 경로입니다.
• 주석 처리
path = /home/data
• 공유 경로 지정
browseable = no
• 공유 정보를 제공할지 여부(yes/no)
• 권한이 없는 사용자에게는 보이지 않는다.
writable = yes
• 쓰기 권한 접근 허용여부(yes/no)
• Write list 설정과 무관하게 퍼미션이 있으면 쓰기 가능하다.
Public = no
• 누구에게나 접근을 허용 할지 여부(yes/no)
Read only = yes
• 읽기 전용 접근 여부(yes/no)
valid users = fred
• 접근 가능한 사용자
write list = +group user
• 공유 경로에서 쓰기 가능한 그룹이나 유저
(force) create mask = 644
(force) directory mask = 755
(force) group = 그룹명
[homes]는 기본 이름으로 사용됨
• 각 계정의 홈 디렉토리 사용
[homes]
comment = Home Directories
browseable = no
writable = yes
Samba – smb.conf [Share]
설정 예
[public] // 누구나 접근 가능
comment = Public dir
path = /home/pub
public = yes
writable = no
write list = +te usr01 // te 그룹에 속한 사람 업로드 가능
[project] //몇명만 사용 가능
comment = project //이름 지정하는거라 아무거나 지정
valid users = usr01 usr02
path = /home/pro1
public = no
browseable = yes
writable = yes
samba 서버 확인
실습
실습 내용
192.168.10.131번 컴퓨터에서 실행
st01, st02, test 계정이 공동으로 사용할 st 를 구현한다.
• st01, st02는 자원에 대한 모든 권한이 있지만 test는 read only로 지정한다. (패스워드는 12로 설정)
작업일지
1) 리눅스에 samba 설치 및 확인
2) 그룹 및 사용자 생성, samba 계정 생성
3) samba로 test할 디렉토리 생성 ( /home/st ) 및 권한 변경
4) smb.conf 파일 수정 및 samba 서비스 실행
5) 윈도우에서 st01, st02, test 테스트
1) 리눅스에 samba 설치 및 확인
리눅스에 samba 가 설치되어있는지 yum list samba로 확인한다.
yum install -y samba 로 samba 를 설치한다.
2) 그룹 및 사용자 생성, samba 사용자 생성
groupadd -g 1600 st 그룹 생성
useradd -g 1600 -u 160# st## 유저 생성
패스워드는 모두 12 로 한다.
samba 계정도 만들어준다
3) samba로 test할 디렉토리 생성 및 권한 변경
/home/st 디렉토리 생성
권한을 777로 준다.
권한을 777로 주지 말고 아래와 같이 그룹소유자와 권한을 변경해 확인한다.
# chown st01.st st
# chmod 770 st
# ll
4) smb.conf 파일 수정 및 samba 서비스 실행
vi /etc/samba/smb.conf
[st]
comment = Test dir
path = /home/st
public = no
writable = no
write list = st01 st02
create mask = 0755
directory mask = 0755
valid users = st01 st02 test
browseable = yes
systemctl start smb.service 시작한다.
5) 윈도우에서 st01, st02, test 테스트
st01
st01로 로그인한다.
st와 st01이 잘 보이는 것을 확인한다.
st01에서 txt 파일을 생성하면 읽기와 쓰기가 가능하므로 작업이 가능하다.
파일이 잘 생성되는 것을 확인할 수 있다.
st01에서 test_02를 읽으면 잘 읽힌다.
다른 계정으로 실행하기 위해 cmd 창에서 net use /delete \\192.168.10.131 을 입력해 연결을 해제한다.
이 방법이 안된다면 컴퓨터를 리부트하는 방법도 있다.
st02
st02로 로그인 한다.
읽기와 쓰기가 잘 된다.
test
test계정으로 쓰기하려면 쓰기가 안된다. read only 설정이라 저장 권한이 없다.
현재 사용하고 있는 계정을 알고 싶으면 net use 를 입력한다.
'리눅스 공부 기록' 카테고리의 다른 글
아파치 설치 및 PHP 설치, 디렉토리 업로드 (3) | 2021.11.26 |
---|---|
samba 실습 2 - webmaster samba 실습 (1) | 2021.11.24 |
NFS 실습 2 - exports 옵션을 통한 nfs 서버 실습 (0) | 2021.11.22 |
NFS 실습 1 - NFS 서비스 구성 (0) | 2021.11.22 |
리눅스 18 - NFS (0) | 2021.11.22 |