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

 

설정 예

[public]

comment = Public dir

path = /home/pub

public = yes

writable = no

write list = +te usr01

 

[project]

comment = project

valid users = usr01  usr02

path = /home/pro1

public = no

browseable = yes

writable = yes

 

 

 


실습

1) 리눅스에 samba 설치 및 확인

리눅스에 samba 가 설치되어있는지 yum list samba로 확인한다.

 

 

yum install -y samba로 samba를 설치한다.

 

2) 그룹 및 사용자 생성, samba 사용자 생성

groupadd -g 1200 ST 그룹 생성

 

 

 

useradd -g 1200 -u 120# st## 유저 생성(+ TEST도 생성)

 

 

계정생성 - 패스워드는 12로 고정

 

smaba 계정생성 - 패스워드는 12로 고정

 

 

3) samba로 test할 디렉토리 생성 및 권한 변경

/home/ST 디렉토리 생성

 

 

 

디렉토리생성후 권한부여

 

 

4) smb.conf 파일 수정 및 samba 서비스 실행

vi /etc/samba/smb.conf

 

 

 

2024. 2. 28. 13:19