SAMBA
: SMB 프로토콜을 기반으로한 유닉스 계열 OS와 Windows 계열 OS 간의 파일 및 하드웨어 공유 시스템
- SMB (Server Message Block)
: Windows 시스템과 다른 시스템 간 자원 공유를 위해 개발한 프로토콜
: 현재 SMB는 CIFS (Common Internet File System)으로 확장됨
- CIFS (Common Internet File System)
: IETF에 의해 인터넷 표준으로 제안된 SMB의 확장판 프로토콜
: TCP/IP 및 Net BIOS 프로토콜 지원. Lan Manager 기능 지원
SAMBA 관련 명령어
- smbclient
- smbstatus
- testparm
- nmblookup
- mount.cifs
- smbpasswd
- pdbedit
smbclient
: 리눅스 및 유닉스에서 사용하는 SAMBA 클라이언트. Windows 서버 접근 시 사용
- 형식
: smbclient [option] [host]
> 대상 호스트가 리눅스인 경우 호스트 이름. Windows인 경우 컴퓨터 이름.
> 호스트 이름 다음에 공유 디렉터리명 입력 가능. \\을 두 개씩 써줘야함. /의 경우 호스트명 앞에 2개 나머지는 1개씩
- 주요 옵션
: -L (--list)
> 접속하려는 SAMBA 서버의 공유 디렉터리 정보 출력
: -U (--user=<user[%password]>)
> SAMBA 서버에 접속할 때의 사용자 입력
: -M (--message <message>)
> 지정한 호스트에 전송할 메시지
- 예시
: smbclient -L 2mukee -U administrator
> 2mukee 라는 호스트에 Windows 관리자 계정으로 접속하여 확인
smbstatus
: SAMBA 서버에서 사용하는 명령어로, 클라이언트와 연결된 상태를 출력
testparm
: SAMBA의 환경설정 파일인 smb.conf의 설정 내용 확인
- 형식
: testparm [file path] [host] [ip address]
- 예시
: /etc/samba/smb.conf 2mukee 192.168.0.3
> 192.168.0.3 서버의 호스트 이름이 2mukee인 서버의 환경 설정 파일 확인
nmblookup
: WINS 서버에 질의
> WINS = 네트워크에 있는 컴퓨터와 그룹에 대한 NetBIOS 이름에 대응되는 IP 주소를 찾아주는 서버
- 형식
: nmblookup [option]
- 주요 옵션
: -U
> 조회할 서버 이름
: -R
> 조회할 NetBIOS 이름
mount.cifs
: CIFS 기반의 마운트 명령. Windows에 공유된 디렉터리 마운트 시 사용
- 형식
: mount.cifs //<server>/<directory> /<mount target>
- 예시
: mount.cifs //192.168.0.3/video /home/2mukee
smbpasswd
: SAMBA의 사용자 생성 및 삭제, 수정
- 형식
: smbpasswd [option] [user]
- 주요 옵션
: -a
> 사용자 추가. linux 시스템에 존재하는 계정이어야함
: -x
> 사용자 제거
: -d
> 사용자 비활성화
: -e
> 사용자 활성화
: -n
> 해당 사용자를 비밀번호 없이 로그인 가능하도록 설정
> smb.conf에 null passwords=yes 기입 필요
pdbedit
: SAMBA 사용자의 데이터베이스 파일인 SAM database 관리자
- 형식
: pdbedit [option] [user]
- 주요 옵션
: -a
> 사용자 추가. linux 시스템에 존재하는 계정이어야함
: -L
> 등록된 SAMBA 사용자 목록 출력
: -v
> 등록된 SAMBA 사용자 목록 자세히 출력
SAMBA 관련 파일
- /etc/samba/smb.conf
/etc/samba/smb.conf
: SAMBA 서버의 환경설정 파일. 공유할 시스템 자원에 대한 설정.
: Windows의 win.ini와 비슷한 구성
: [] 기호를 통해 섹션으로 구분
- 형식
option variable = value
- 파일 내부 유형
: #
> 주석
: ;
> 주석 (Windows의 주석. SAMBA 서버에서는 모두 인정)
: []
> 섹션 정의
: variable = value
> 옵션과 값 설정
- 주요 섹션
: [global]
> SAMBA 서버 전체적인 환경 설정
: [homes]
> 각 사용자들이 자신의 홈 디렉터리에 접근할 때의 권한 설정
: [printers]
> 프린터 관련 권한
/etc/samba/smb.conf의 [global] 섹션
```
workgroup = SAMBA
# 공유 그룹명 (Windows의 작업 그룹)
server string = Test Samba Server
# 서버에 대한 설명
netbios name = 2MukeeServer
# Windows로 이름으로 접속할 때 사용할 관련 이름
interfaces = lo eth0 192.168.0.3/24 192.168.1.3/24
# 네트워크 인터페이스별 접근 제어
hosts allow = 127. 19.168.0 192.168.1 EXCEPT 192.168.0.8 hacker_pc
# SAMBA 서버에 접속을 허용할 호스트 지정. 호스트는 IP 및 호스트명, 넷마스크 형태 등으로 지정 가능.
# 제외할 호스트는 EXCEPT 키워드 뒤에 작성
# 거부할 호스트는 allow 대신 deny로 작성
log file = /var/log/samba/log.%m
# SAMBA 서버에 접속하는 호스트의 로그파일 지정
max log size = 50
# 로그 파일의 최대 크기. KB 단위. 설정값 초과 시 .old 파일로 저장. 0으로 설정 시 무제한
sercurity = user
# SAMBA 서버 접속 시 인증모드
# user = 사용자명과 비밀번호 필요
# domain = Windows의 도메인 컨트롤러에 전달하여 유효한 사용자 여부 확인
# ads = Active Directory Server 사용 시 이를 통해 인증
passdb backend = tdbsam
# security가 user일 때 사용자의 비밀번호를 설정하는 방식
```
/etc/samba/smb.conf의 [share] 섹션
- comment
: 간단한 설명 설정
- path
: 공유 디렉터리의 경로 설정
- read only
: 공유 디렉터리를 읽기 전용으로 설정
- writable, write ok
: 공유 디렉터리를 쓰기 가능으로 설정
- valid users
: 공유 디렉터리 가용 사용자 지정
- write list
: 공유 디렉터리에 대한 접근 및 쓰기 가능 사용자 지정. 그룹의 경우 @를 앞에 붙혀서 기재
- public, guest ok
: 다른 사용자들이 이용할 수 있도록 설정
- browseable, browsable
: 공유 디렉터리의 리스트 출력
- printable
: 공유 디렉터리에 스풀 파일 지정
- create mask, create mode
: 파일 생성 시 허가권 설정
SAMBA 서버 설정 (Linux)
1) SAMABA 설치
- yum install samba, samba-common
: samba
> SAMBA 서버 패키지. 데몬, 서버 관련 라이브러리 등 포함
: samba-common
> SAMBA 서버 및 클라이언트에게 필요한 패키지. smb.conf, combpasswd, testparm 등 포함
: samba-client
> SAMABA 클라이언트 패키지. smbclient, smbtree 등 포함
※ SAMBA 관련 데몬
- smbd
: 파일과 프린터 공유, 사용자 권한 부여 등 인증 담당
- nmbd
: WINS 담당 데몬, 클라이언트를 위해 NetBIOS nameserver 지원, browsing (서비스 통지) 지원. 컴퓨터 이름과 IP 주소 연결 등 수행
2) 공유 디렉터리 생성 및 권한 부여
- mkdir /share_test
- chmod 1777 /share_test
3) /etc/samba/smb.conf 파일 설정
- vim /etc/samba/smb.conf
```
[share_test]
hosts allow = 127. 19.168.0 192.168.1 EXCEPT 192.168.0.8 hacker_pc
...
```
: smb.conf에 대해 필요한 설정 기입
4) smb.conf 파일 검증
- testparm
5) 사용자 추가
- smbpasswd -a 2mukee
6) 데몬 실행
- service smb start
7) 데몬 동작 확인
- ps aux | grep smb
SAMBA 클라이언트 (Windows 10)에서 접근
1) 접속
- 윈도우키 + r > \\192.168.0.1
: SAMABA 서버 주소 입력
2) 아이디 및 비밀번호 입력
3) 디렉터리 확인
Refference
'Certification > 리눅스마스터' 카테고리의 다른 글
리눅스 파일 서버 관리 3 - FTP (0) | 2022.10.20 |
---|---|
리눅스 파일 서버 관리 2 - NFS (0) | 2022.10.20 |
리눅스 인증 서버 관리 (NIS/LDAP) (0) | 2022.10.20 |
리눅스 HTTP 서버 관리 (0) | 2022.10.17 |
리눅스 시스템 백업 (1) | 2022.10.13 |