Samba
- 리눅스 서버에서 원격지의 리눅스 및 윈도우를 비롯한
SMB/CIFS 프토콜을 사용하는 다양한 운영체제의
클라이언트에게 파일 및 프린터 공유 서비스를
제공하는 오픈 소스 프로그램(samba.org)
- SMB(Server Meassge Block) 프로토콜 사용
(마이크로소프트와 인텔이 개발)
-> CIFS(Common Internet File System)
( SMB + LanManager+NetBIOS )
1. Server-A(Client) , Windows(Server)
1) Windows에서 공유폴더(samba) 설정
2) 설치
samba-client
cifs-utils
#>yum install -y samba-client.x86_64
#>yum install -y cifs-utils.x86_64
3) 공유 폴더 확인
#>smbclient -L <host> -U <user_name>
ex) W?indows SAMBA서버에서 공유되고 있는 폴더 확인
#>smbclient -L 192.168.6.254 (본인 Windows_IP)
Enter root's password:(enter)
4) 마운트
#>mount -t cifs <server_공유폴더> <mount_point>
ex) Windows samba공유폴더를 /share/samba 마운트
#>mount -t cifs \\\\192.168.6.254\\samba /share/samba
ERROR : mount.cifs: bad UNC (\192.168.6.254samba)
- 확인
#>df -h
\\192.168.6.254\samba
112G 91G 22G 81% /share/samba
2. Server-A(Server) , Windows(Client)
1) 설치
samba.x86_64
#>yum install -y samba.x86_64
- 확인
#>rpm -qa | grep samba
samba-3.6.23-46el6_9.x86_64
2)설정
/etc/samba/smb.conf
(백업파일 /etc/samba/smb.conf.bak)
**man command**
#>yum install -y man.x86_64
ex) Server-A 에서 /share/samba 디렉터리 공유 설정
[global]
workgroup = WORKGROUP
security = user
[public]
path = /share/samba
read only = yes
3) 서비스 시작
#>service smb start
#>service smb status
- samba 사용자 설정
#>useradd samba
( #>passwd samba )
#>smbpasswd <option> <user_name>
-a 추가
-x 삭제
4) 방화벽
#>getenforce
#>setenforce 0
#>service iptables status
#>service iptables stop
5) Windows Client
\\100.100.100.100
[실습 - 사용자 홈디렉터리]
[global]
workgroup = WORKGROUP
security = user
[public]
path = /share/samba
read only = no
writable = yes
[homes]
read only = no
writable = yes
browseable = no
#>service smb restart
ex)smb.conf 수정 X,
Windows에서 samba사용자로 접속하였을때
public폴더에 파일을 생성 할 수 있도록 설정해 주세요!!
#>chmod o+w /share/samba
(757)
( #>setfacl samba 사용자한테만 쓰기권한 추가 )
[실습 - 로그인 없이 접속(share)]
*Windows CMD*
>net use
>net use /delete *
이 작업을 계속하시겠습니까? (Y/N) [N]: Y
[global]
workgroup = WORKGROUP
security = user
map to guest = Bad Password
[public]
path = /share/samba
read only = no
writable = yes
guest ok = yes
public = yes
#>service smb restart
[실습 - Host 접근 제어]
hosts allow = <host_ip>
hosts deny = <host_ip>
ex) 100.100.100.1 , 100.100.100.10 허용
hosts allow = 100.100.100.1 100.100.100.10
ex) 100.100.100.0 네트워크 대역대만 허용
hosts allow = 100.100.100.
ex) 100.100.100.1 만 거부
hosts deny = 100.100.100.1
#>service smb restart
-> SAMBA Port_num : 139,445
[전체설정(Global Setting)]
(1) workgroup = MYGROUP
=> 윈도우의 작업그룹과 반드시 동일해야 한다.
(2) server string = Samba Server
=> 서버에 대한 설명을 부여해 준다.
(3) hosts allow = 192.168.1. 192.168.2. 127.
=> 쌈바 서버에 접속을 허용할 호스트를 지정하는데 사용한다.
접속할 허용할 호스트는 아이피 주소, 호스트명 등을 지정할 수 있으며,
네트워크/넷마스크형태로도 지정할 수 있다.
또한 EXCEPT라는 키워드와 와일드문자도 사용가능하다.
참고로 쌈바서버에 접속이 불가능하게 하려면 hosts deny로 설정한다.
(4)printcap name=/etc/printcap
=>서버에 의해 사용되는 printcap name을 겹쳐쓰기 하고자 할떄
그 위치를 지정한다
(5)load printers=yes
=>삼바 서버의 printcap에 정의된 모든 프린터 목록이 자동적으로
로딩되게 할것인가를 지정하는 옵션.
네트워크 프린터를 삼바서버에 연결하여 사용하고자 한다면 선택해야 한다
(6)printing=lprng
=>프린터 시스템 종류를 지정한느 옵션으로 비표준 프린터시스템이
아니면 지정할 필요가 없다
(7) guest account = pcguest
=> 공유 설정 섹션에서도 사용하는 항목으로, guest ok로 명시되어 있는
서비스에 접근할 유저를 지정해 준다.
보통 클라이언트가 손님서비스(guest service)에 접속할 수 있게 된다.
이러한 유저는 /etc/passwd파일안에 존재하는 계정이어야 하며,
보통 "nobody"로 설정하면 된다.
(8) log file = /var/log/samba/%m.log
=> 쌈바 서버에 접속하는 호스트의 접속 로그에 대한 기록을
저장하는 파일을 지정한다.
(9) max log size = 0
=> 로그 파일의 최대 크기를 KB단위로 제한두려고 할 때 사용되는
옵션이다. 제한을 두었을 경우에 이를 초과하게 되면
.old확장자를 가진 파일로 저장되고 새로운 파일이 생성된다.
현재처럼 0으로 설정하면 파일의 크기에 제한을 두지 않는다.
(10) security = user
=> 보안관련 옵션으로 클라이언트가 쌈바서버에 접속할 때
인증 레벨을 부여하는 옵션이다.
보안모드에는 4가지모드가 있는데 user, share, server, domain이다.
**option
- read only : 공유 디렉토리를 읽기만 가능하게 할 것인지를 결정
- writable, write ok : 공유 디렉토리를 쓰기 가능하게 할 것인지를 결정
- valid users : 공유 디렉토리에 로그인할 수 있는 사용자를 결정
- public, guest ok : 다른 사용자들이 이용하게 할 지를 결정
- browseable : 공유 디렉토리의 리스트를 보여줄 지를 결정
- printable : 공유 디렉토리에 스풀 파일을 지정할 것인지를 결정
- path : 공유할 디렉토리의 절대경로를 지정
- comment : 간단한 설명을 적음
- create mask, create mode : 파일을 생성할 때의 모드를 결정. umask값형태로 지정.
- write list : 쓰기가 가능한 특정 사용자를 지정
**magic cookies
%u : 현재 사용중인 유저
%g : 현재 사용중인 유저 그룹
%m : 클라이언트의 NetBIOS이름
%v : 버전
%h : 호스트이름
%p : 서버의 홈디렉토리 경로
%d : 서버의 프로세서ID
%S : 현재 사용되는 서비스 이름
%P : 현재 사용되는 서비스의 루트 디렉토리
%U : 세션의 유저
%G : 셔션의 유저그룹
%H : %u로 주어진 유저의 홈디렉토리
%L : 서버의 NetBIOS이름
%M : 클라이언트 머신 이름
%N : NIS 홈디렉토리 서버의 이름
%I : 클라이언트 머신 IP
%T : 날짜와 시간
'LINUX(Server)' 카테고리의 다른 글
| FTP (2) | 2024.04.26 |
|---|---|
| DHCP (0) | 2024.04.25 |
| NC , Telnet , SSH , VNC (1) | 2024.04.23 |
| Bonding (0) | 2024.04.22 |
| 네트워크 기초 (0) | 2024.04.21 |