네트워크 서비스 : samba
SMB : 마이크로소프트가 개발한 로컬 네트워크 관리용 프로토콜
samba : SMB프로토콜을 유닉스/리눅스에서 사용할 수 있도록 하는 프로그램
패키지
samba : SMB 서비스 네트워크 데몬 및 기본 유틸리티를 포함
samba-common : samba 설정 파일이나 설정 유틸리티, 맨 페이지를 포함
samba-client : SMB를 이용하여 접속하는 데 사용하는 클라이언트 유틸
samba-winbind : winbind 기능 및 NSS 라이브러리, PAM 보안 모듈을 제공
설정파일
/etc/samba
smb.conf : samba 서버 주 설정 파일
smbusers : samba 유저 별칭 정보를 담고 있는 파일
imhosts : 공유 네트워크 내에 있는 서버 리스트를 보여줌
samba와 SELinux
SELinux를 permissive 모드로 바꾸기
1. 임시 설정
#setenforce 0 // Enforcing/Permissive 모드 토글 유틸 (0:Permissive,1:Enforcing)
#getenforce
Permissive
2. 고정 설정
/etc/sysconfig/selinux
"SELINUX=Permissive" 로 수정
Enforcing 모드에서 samba 허용
#setsebool -P samba_domain_controller on
#setsebool -P samba_enable_home_dirs on
#setsebool -P samba_export_all_rw on
smb.conf의 전역 설정
네트워크 설정
workgroup = 문자열 // 작업 그룹
server string = 문자열 // 컴퓨터 설명, (%v:samba 버전 변수)
netbios name = 문자열 // 컴퓨터 이름
hosts allow = 주소 // 접속 허용 주소
interfaces = <주소|장치명> // 사용할 인터페이스
bind interfaces only = yes/no // 지정된 주소만 LISTEN 사용여부
로그 관련 설정
log file = 로그 파일 경로
max log size = 최대 크기
%m : 클라이언트 변수, 클라이언트 별로 로그 기록 사용
ex) /var/log/samba/%m.log
보안 설정
security = <user|domain|ads> // user : 윈도우 사용자와 동일한 사용자 인증(패스워드 별도)
passdb backend = <smbpasswd|tdbsam|ldapsam> // 패스워드 저장 방식
ex) security = user
passdb backend = tdbsam:/etc/samba/passdb.tdb
passdb backend = smbpasswd:/etc/samba/smbpasswd - 구 버전 사용
프린터 관련 설정
load printers = <yes|no>
cups options = "CUPS 옵션"
ex) load printers = no
cups options = raw
문자 셋 설정
dos charset = 문자 셋
unix charset = 문자 셋
ex) dos charset = CP949
unix charset = UTP-8
smb.conf 의 공유 설정
comment = Home Directories // 해당 공유의 설명문
path = /var/spool/samba // 공유할 디렉터리 경로
browseable = yes|no // yes:유저들에게 보임, no:유저들에게 안보임, 접근은 가능
public = yes|no // yes:모든 유저에게 접근 허용
valid users = test1 test2 // 접근 허용 유저 목록
read only = yes|no // 읽기전용 사용여부
writable = yes|no // 쓰기 사용여부, read only 지시자와 사용 불가
create mask = 640 // 해당 공유에서 생성되는 파일 권한 지정
write list = @staff // 접근이 허용 되는 그룹 목록, staff그룹 허용
smb.conf 검사 명령어
#testparm -v
몇몇 전역 설정을 일부에만 적용하고 싶을 때
include = /etc/samba/smb.conf.%m
ex) 컴퓨터 이름이 test1일 때
include = /etc/samba/smb.conf.test1 // smb.conf.test1 파일별도 생성 및 설정
samba 패스워드 작성 : TDB 데이터베이스
samba의 TDB SAM 파일이 저장되는 기본 위치
#smbd -b | grep PRIVATE_DIR
passdb.tdb 파일에 유저명과 패스워드 기록
#pdbedit -a -u test1 // pdbedit 유틸을 이용한 test1 계정 추가
#pdbedit -L // TDB SAM 유저 리스트
#smbpasswd // 패스워드 변경
클라이언트 프로그램 : smbclient
#smbclient -L //192.168.0.100 -N // 192.168.0.100 서버에 접속 가능한 서비스 리스트(-N:암호를 묻지 않음)
#smbclient -L //192.168.0.100/homes -U study01 // study01 유저로 homes 접속
접속 뒤, 명령어
cd : 원격지 디렉터리 이동
lcd : 로컬 디렉터리 이동
put, mput : 파일 전송
get, mget : 파일 수신
prompt : 다중 파일 전송 시 yes/no 토글
SMB 자원의 mount : 공유 드라이브 연결
#mount.cifs <service> <mount-point> [-o options]
ex) mount.cifs //192.168.0.10/c$ /media/smb -o user=administrator,pass=qwe123!@#
다음과 같이 fstab에 등록 가능
//192.168.0.10/c$ /media/smb cifs noauto,user=administrator,pass=qwe123!@#,dir_mod=0755,file_mode=0644,noexec 0 0
유저 맵의 사용
유저 맵 : 접속 시, 시스템의 계정명과 동일한 유저ID만 사용 가능 했지만, 유저ID를 다르게 할 수 있음.
smb.conf 환경 설정의 전역 설정 추가 필요
username map = /etc/samba/smbusers
ex) /etc/samba/smbusers 파일 편집
//smb계정 = smb별칭1 smb별칭2 ..
samba 관리
1) smbstatus
- 현재 samba의 서비스 상태
2) smbcontrol
- smbd, nmbd, winbindd 를 제어하기 위한 명령어
smbcontrol [option] <destination> <message-type> <parameters>
message-type
reload-config : 환경 설정을 다시 읽어 들임
close-share : 파라미터로 사용을 금지할 공유 이름(destination이 smbd만 가능)
es) smbcontrol smbd close-share guest01
#pdbedit -c "[D ]" -u guest01 // guest01 계정 정지
#pdbedit -c "[!D ]" -u guest01 // guest01 계정 해제
3) SWAT(Samba Web Administration Tool)
- 웹관리자 설정 기능
- 패키지명 : samba-swat
- inet방식 동작 : /etc/xinetd.d/swat -> disable = yes 수정 후, xinetd restart
- 901포트 사용
'#Linux' 카테고리의 다른 글
[Linux] 네트워크 서비스 - HTTP - 6.쓰레드 모델 사용 (0) | 2019.02.13 |
---|---|
[Linux] 네트워크 서비스 - HTTP - 5.apach 튜닝 (0) | 2019.02.11 |
[Linux] 네트워크 서비스 - HTTP - 4.apach 모니터링 (0) | 2019.02.11 |
[Linux] 네트워크 서비스 - HTTP - 3.가상 호스트 설정 (0) | 2019.02.11 |
[Linux] 네트워크 서비스 - HTTP - 2.메인 서버 설정 (0) | 2019.02.10 |