일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- eigrpv2
- tunneling
- ripng
- vrrp
- crontab
- 스위치
- Etherchannel
- eigrp
- CKA
- ipv6
- NAT
- 헤더
- 장비
- Vlan
- OSPF
- OSI 7 layer
- Chrony
- Redistribute
- ospfv3
- 라우터
- rip
- 명령어
- DHCP
- ACL
- stp
- Inter VLAN
- GLBP
- Today
- Total
Net Eng
SAMBA 본문
■ SAMBA 요약
- 자원공유 프로토콜 / 오픈소스 분산파일 시스템 (CIFS = SMB + NMB)
- 프로그램 : samba, samba-client, cifs-utils
- 데몬 & 포트/프로토콜 : smbd(139/tcp, 445/tcp), nmbd(137/udp, 138/udp)
- 설정 파일 : /etc/samba/smb.conf
- 하위 설정 파일 : /etc/samba/*
- 서비스 : smb.service, nmb.service
■ 삼바(SAMBA)의 기능
SAMBA 기능은 유닉스/리눅스 플랫폼 환경에서 파일과 하드웨어(CD-ROM, Printer)를
네트워크를 통해 서로 공유할 수 있게 해주는 프로토콜이다. 이것을 정리해 보면 다음과 같다.
- 유닉스/리눅스 파티션과 윈도우와의 공유
- 유닉스/리눅스의 프린터와 윈도우와의 공유
- 윈도우의 프린터와 유닉스와의 공유
■ 삼바(SAMBA)의 활용
- 유닉스/리눅스 서버의 디렉토리를 MS 윈도우에서의 하나의 드라이브로 사용
- 프린터 공유
- 유닉스/리눅스 서버의 FTP 대치(EX: File Server)
- CD-ROM 데이터 공유 ( 윈도우 파티션과 유닉스/리눅스와의 공유)
- 백업(Backup) 시스템으로 사용
■ 삼바(SAMBA) 실무 사용 예제
/usr/share/doc 디렉토리 공유
- 윈도우에서 리눅스 문서를 보기 위해서
# ls /usr/share
# ls /usr/share/doc
# ls /usr/share/doc/vsftpd
- 개발자가 소스 폴더(EX: /source)를 공유하는 경우
- > 개발 환경은 LINUX 이지만 LINUX VI 편집기 사용이 불편한 경우
- > LINUX 서버에 소스 공유를 걸고
- > 윈도우에서 툴(Edit Plus, Ultra Editor, notepad++)을 통해 개발한다.
"L4/DNS --- WEB1/WEB2/WEB3 --- **NFS**/**SAMBA**" 구조
File Server(Windows File Server or Linux File Server)
- > 윈도우 서버의 폴더를 공유하여 파일들을 공유하는 경우
바이러스(프로그램) 배포의 원인이 될 수 있다.
- > 리눅스 서버의 폴더를 공유하여 파일들을 공유하는 경우
바이러스(프로그램)가 정상 동작하지 않는다.
Windows(Printer) -------> Linux Server
**# lp /etc/passwd**
[참고] http://www.netsarang.co.kr -> xlpd(윈도우에 설치)
Disk(Resource) 공간 제공 -> 가정용 NAS
Windows Server(100G) + 5TB(공간 필요) <------ Linux(SAMBA)
■ 삼바(SAMBA) 설치 및 기본 설정
[설치]
# yum install samba samba-client cifs-utils
# cd /etc/samba
# ls
-rw-r--r--. 1 root root 20 Aug 18 2020 lmhosts
-rw-r--r--. 1 root root 706 Aug 18 2020 smb.conf
-rw-r--r--. 1 root root 12K Aug 18 2020 smb.conf.example
[서비스 데몬 확인]
# systemctl enable --now smb nmb
# systemctl status smb nmb
[방화벽 설정]
# firewall-cmd --permanent --add-service=samba
# firewall-cmd --reload
# firewall-cmd --list-all
[포트 확인]
# firewall-config
# egrep '(netbios|microsoft-ds)' /etc/services
- samba(139/tcp, 455/tcp)
- samba-client (137/udp, 138/udp)
■ 명령어
□ smbclient
공유된 자원 확인(EX: # smbclient -L 192.168.0.250 -N)
공유된 디렉토리에 접근할 때 사용 (FTP와 비슷한 방식(ftp-like)으로 접근하고 자원을 다룰수 있다.
(EX : # smbclient -L 192.168.0.250 -U administrator)
# smbclient -L localhost
# smbclient -L localhost -N
# smbclient -L system2 -U administrator **/* system2 : 윈도우서버 */**
# smbclient -L 192.168.10.202 **-U soldesk%password**
# smbclient //192.168.0.250/share -U soldesk
■ 실습
# smbclient -L 192.168.10.202
# smbclient -L 192.168.10.202 -N
# smbclient -L 192.168.10.202 -U soldesk
# smbclient //192.168.10.202/share -U soldesk
passwd : soldesk1.
smb: \> help
smb: \> dir
smb: \> lcd /tmp
smb: \> get sample.txt
smb: \> ! ls -l sample*
smb: \> quit
■ testparm CMD
삼바의 환경설정 파일인 /etc/samba/smb.conf 파일의 설정이 제대로 되었는지 확인(Syntax Check)하는 명령어이다. 또한 설정된 내용도 확인할 수 있다.
(명령어 형식)
# testparm
# testparm -v **/* -v : verbose */**
# testparm -s -v **/* -s : supress prompt */**
# testparm /etc/samba/smb.conf
# testparm -sv | sed ‘/homes/,$d’
→ 기본옵션
- browseable = Yes 공유디렉토리가 기본적으로 보인다.(if No, 숨김 공유)
- read only = Yes 기본공유 옵션은 ro 이다.(if No, rw)
- valid users = 공유디렉토리에 접근할 수 있는 사용자 목록
- write list = 공유디렉토리에 rw 권한이 가능한 사용자 목록
- printable = No 기본적으로 프린터 공유가 아니다.(if Yes, 프린터 공유)
■ mount.cifs/umount.cifs CMD
CIFS 파일시스템을 마운트 할 때 사용하는 명령어이다.
(명령어 형식)
# mount.cifs //192.168.10.202/samba_share /mnt/server -o user=soldesk
# mount -t cifs //192.168.10.202/samba_share /mnt/server -o username=soldesk
□ 실습
# smbclient -L 192.168.10.202 -U soldesk ***<share 폴더 확인>***
# mkdir -p /mnt/cifs
# mount.cifs //192.168.10.202/share /mnt/cifs -o username=soldesk
# df -hT
■ Linux → Windows 자원 공유
Samba 서버 설정
# yum -y install samba samba-client cifs-utils
# vi /etc/samba/smb.conf
--------------------------------------------
...(중략)
#
# Specific Configuration
#
[public]
comment = Samba Test
path = /samba
public = yes
writable = yes
printable = no
valid users = smbuser1, smbuser2
---------------------------------------------
# testparm -s
# mkdir -p -m 777 /samba
운영체제 사용자 생성 및 SMB 사용자 생성
# useradd -M -s /sbin/nologin smbuser1
# useradd -M -s /sbin/nolgoin smbuser2
# grep smbuser /etc/passwd
smbpasswd CMD
(SMB 사용자 추가/삭제) # smbpasswd -a|-x smbuser1
(SMB 사용자 활성/비활성)# smbpasswd -e|-d smbuser1
# smbpasswd -a smbuser1
# smbpasswd -a smbuser2
# pdbedit -L
(서비스 적용)
# systemctl enable smb nmb
# systemctl restart smb nmb
# systemctl status smb nmb
(방화벽 등록)
# firewall-cmd --permanent --add-service=samba
# firewall-cmd --reload
# firewall-cmd --list-all
# smbclient -L localhost -U smbuser1 (등록한 smbuser로 공유 정보 확인)
- Windows에서 공유 확인
→ 192.168.19.20에서 Smbuser1 / smbuser1으로 접속
# touch /samba/test1.txt
■ 임시/영구 마운트
리눅스 공유(/samba) -- mount → 윈도우 마운트
- 임시 마운트 :
<WIN + E> → \\192.168.10.20\share
- 영구 마운트:
네트워크 드라이브 연결
■ Windows → Linux 자원 공유
▷ 윈도우 설정
Windows → C드라이브에 c: \Newjeans 디렉토리 생성 (최소 한개의 파일 생성) → Minji.txt 파일 생성
(windows 공유 설정) 속성→고급공유→사용 권한 (soldesk 사용자 추가) → 모든 권한 체크 → 적용
▷ Linux 설정
# smbclient -L 192.168.10.202 -U soldesk%soldesk1.
-> Newjeans 폴더 확인
# mkdir -p /mnt/server
# mount -t cifs //192.168.10.202/Newjeans /mnt/server -o user=soldesk
Password for soldesk@//192.168.10.202/Newjeans: *********
# df -hT
//192.168.10.202/Newjeans cifs 60G 11G 50G 18% /mnt/server
# cd /mnt/server
# ls
Minji.txt
# cp /etc/passwd file1.txt
# cp /etc/hosts file2.txt
# cp /etc/group file3.txt
# ls
Minji.txt file1.txt file2.txt file3.txt
GUI 접근 방법
서버 주소 입력 부분에 **smb://192.168.10.202/ 입력**
암호 soldesk / soldesk1. 입력 후 접속
■ 임시/영구 마운트
→ 윈도우 공유(c:\samba_share) --- mount --> 리눅스 마운트
□ 임시 마운트
# smbclient //192.168.10.202/share -U soldesk
or
# mkdir -p /mnt/server ; mount.cifs //192.168.10.202/share /mnt/server -o user=soldesk
□ 영구 마운트
# mkdir -p /mnt/server
# vi /etc/fstab
-------------------------------------------------------------------
...중략...
//192.168.10.202/share /mnt/server cifs credendials=/root/cred 0 0
-------------------------------------------------------------------
# mount -a
■ Linux → Linux 자원 공유
전제조건 : 한대의 리눅스 서버에서는 미리 공유가 되어 있어야 한다.
▷ Samba 서버 설정
# vi /etc/samba/smb.conf
---------------------------------
[test1]
comment = WriteList Test
path = /smbshare
write list = @marketing
---------------------------------
# testparm -s
그룹 추가 및 공유 디렉토리 설정
# groupadd -r marketing
* -r, --system create a system account(GID: 100 ~ 999)
# mkdir -p /smbshare
# chgrp marketing /smbshare
# chmod 2775 /smbshare
* 775(rwxrwxr-x) -> 2775(rwxrwsr-x root marketing)
# ls -ld /smbshare
* drwxrwsr-x. 2 root marketing 6 Apr 23 16:15 /smbshare/
운영체제 추가 및 SMB 사용자 추가
# useradd -M -s /sbin/nologin -G marketing smbuser3
# useradd -M -s /sbin/nologin -G marketing smbuser4
# grep smbuser /etc/passwd
# smbpasswd -a smbuser3
# smbpasswd -a smbuser4
# pdbedit -L
# pdbedit -Lv
서비스 재기동 및 Test11 확인
# systemctl restart smb nmb
# systemctl status smb nmb
# smbclient -L localhost -N
▷ 클라이언트 서버 설정
# yum install samba-client cifs-utils
# smbclient -L 192.168.10.20 -U smbuser3
마운트 지점 생성 및 마운트
# mkdir -p /mnt/smbuser
# mount -o username=smbuser3 //server1/test1 /mnt/smbuser
Password for smbuser3@//server1/test1: ********
# df -h -T
//server1/test1 cifs 38G 7.8G 30G 21% /mnt/smbuser
# echo 'hello smbuser3' >> /mnt/smbuser/smbuser3.txt
# ls /mnt/smbuser
-> 정상적으로 write 가능한지 확인
'Linux' 카테고리의 다른 글
Booting mode (0) | 2024.06.18 |
---|---|
Mail (0) | 2024.06.18 |
SSH (0) | 2024.06.18 |
VIM Editor (0) | 2024.06.18 |
Process (0) | 2024.06.18 |