CIFS (windows <->windows)
NFS 처럼 네트워크를 통해 원격지 컴퓨터상의 파일이나 서비스를 이용할 수 잇는 프로토콜 windows 진영에서 개발하고 있으며 CIFS 를 모방한 오픈소스 진영의 SMB도 있다.
* CIFS = SMB + NetBIOS
SAMBA (linux <-> windows)
samba 는 smb 프로토콜을 오픈소스 형태로 개발된 프로그램 이름이다. 가장 큰 특징은 이기종간의 분산파일 시스템을 지원한다. 즉 유닉스/리눅스 파티션과 윈도우와 공유 등 서로의 자원을 이기종간 공유하여 사용할 수 있다. 대표적으로 활용되는건 가정용 NAS 는 모두 linux로 구현되어있으나 windows 에서도 이용가능한 그런점에서 samba가 이용된다고 볼수 있다.
SAMBA server
패키지: samba, samba-clinet, cifs-utils
데몬 & 포트 & 프로토콜: smbd, 137/udp 138/udp 139/tpc 445/tcp
주 설정 파일: /etc/samba/smb.conf
하위 설정 파일: /etc/samba/*
스크립트: smb.services
주 설정 파일 (/etc/samba/smb.conf)
samba 파일의 설정파일들
* /etc/samba/smb.conf : 주설정파일, smb.example 파일에 자세하게 내용이 규정되어있다.
* /etc/samba/lmhosts : /etc/host와 유사함, samba에 IP 주소 매핑파일
* /var/log/samba/log.* : samba logfile
/etc/samba/smb.comf 의 주요 지시자
[전역설정]
workgroup = MYGROUP
윈도우의 작업그룹처럼 공유그룹을 지정한다, windows와 liunx를 같은 그룹으로 맞춰준다.
server string = Samba Server Version %v
윈도우에서 확인할 때 사용하는 smaba server 이름을 지정. %v의 경우 버전정보인데 표시를 안하는게좋다.
interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24
NIC 카드와 지정된 영역대에서만 접속할 수 있게끔 허용하는 기능. ( 인트라넷에서 좋음 )
hosts allow = 127. 192.168.12. 192.168.13.
host allow/deny : 허용할 호스트 및 거부할 호스트를 지정할 수 있다. 대역으로 지정할 수도 있다. allow를 사용할 경우 반드시 본인도 지정해둬야 서비스에 문제가 없다. 이 부분엔 IP 및 network 대역, 장치의 이름등이 올 수 있다.
[서버별 독립 옵션]
security = user
보안관련 옵션, client가 samba server 접속 시 인증레벨을 부여한다. 5가지의 모드가 있다.
user : samba server 접속 시 windows로그인 ID passwd 와 동일하게 samba server 접속 시 ID passwd를 입력해야한다. (기본설정)
ADS : ADS 서버가 있어야 가능, ID와 passwd를 ADS 에게 유효여부 확인 방식
share : samba server 접속 시 ID 와 Passwd를 입력하지 않고 접속가능
server : 윈도우NT 서버 있어야 가능, ID와 passwd를 다른 samba 서버와 유효여부 확인 방식
domain : 윈도우 서버가 있어야 가능, ID와 passwd를 domain 에게 유효여부 확인 방식
[공유 설정]
[mydata]
공유 서버의 이름.
comment = shared-files in mydata directory
설명 간단한 코맨트로 서버 설명 가능.
path = /home/user01/private
공유 디렉토리 위치 지정
read only = no
공유 디렉토리를 읽기만 가능하도록 지정
writable = yes
공유 디렉토리를 쓰기 허용을 가능하도록 지정 (write ok = yes 으로 지정도 가능)
valide user = user01 user02 user03
공유 디렉토리 접근 사용자 목록 지정, 만약 이 옵션이 생략되면 모든 사용자가 접근할 수 있다.
public = no
사용자의 허가여부 no 설정하면 다른 사용자들은 이용할 수 없고 등록된 사용자만 이용이 가능
browseable = no
이용 가능한 공유 목록을 보여줄 것인가를 지어하는 옵션, no 지정하면 목록을 보여주지 않는다. 접속은 가능
printable = no
서비스로 지정된 디렉토리에 스풀 파일을 지정할 것인가를 지정하는 옵션, 프린터 공유 디렉토리가 아니므로 대부분 no로 설정
create mask = 0765
create mode 같은 옵션으로 파일을 생성할 때 사용되는 mask 값(rwx)
SAMBA server 절차
1) 패키지 설치 ( yum install samba samba-client cifs-utils )
samba : 서버 패키지
samba-client : 클라이언트 패키지
cifs-utils : 마운트 패키지
2) 서버 설정 ( vi /etc/samba/smb.comf )
3) 서비스 기동 ( systemctl enable --now smb )
4) 방화벽 등록 ( firewall-cmd --permanent --add-service=smb )
SAMBA 관련 CMD
smbclient
공유 자원 확인 및 공유 자원 디렉토리 접근할때 사용 (FTP와 비슷한 형식 및 내부 명령어 비슷)
smbclient -L : 로컬에 공유된걸 확인
smbclient -N : 암호없이 검색이 가능한경우 (-U 암호 있이 검색이 가능한경우)
smbclient -L [IP or hostname] : 상대에게 공유된 자원 확인
smbclient //192.168.0.250/share : 공유 자원에 접속
* smbclient //192.168.10.202/share -U soldesk 형식으로 접속
smbstatus
samba server 연결 상태를 보여준다.
testparm
서버 설정 파일(/etc/samba/smb.conf)의 문법점검 명령어 점검 결과도 출력한다.
testparm -s -v : 즉시 (-s)문법점검을 하며 결과를 자세히(-v)보여준다.
mount.cifs
CIFS 마운트 하기 위한 패키지 (mount -t cifs 와 동일하다.) 기본적으로 mount CMD 와 유사함.
* 주요 포맷
mount -t cifs //172.16.6.X/samba_share /mnt/server -o username=soldesk
mount.cifs 172.16.6.X:samba_share /mnt/server -o user=soldesk
[참고] NFS vs CIFS/SMB
* 공유절차
NFS server | SAMBA server | |
공유자원 생성 | mkdir -p /share | mkdir -p /share |
공유설정 | vi /etc/exports /share *(rw) systemctl restart nfs-server |
vi /etc/samba/smb.conf security = user hosts allow = 127. 172.16. [public] path = /share writable = yes valid users = test1 systemctl restart smb |
공유확인 | showmount -e [IP] | smbclient -L [IP] -N |
* 마운트 절차
NFS server | SAMBA server | |
공유 자원 확인 | showmount -e [IP] | smbclient -L [IP] -N |
마운트 작업 | mkdir /p mount -t nfs -o timeo=10,intr \ 172.16.6.2XX:/share /p vi /etc/fstab |
mkdir /p |
마운트 확인 | df -h | df -h |
[참고] SAMBA 활용
1) usr/share 디렉토리 공유
-> 윈도우에서 리눅스 문서를 보기 위해서
2) 개발자가 소스 폴더(EX: /source)를 공유하는 경우
-> 개발 환경은 LINUX 이지만 LINUX VI 편집기 사용이 불편한 경우
-> LINUX 서버에 소스 공유를 걸고
-> 윈도우에서 툴(Edit Plus, Ultra Editor)을 통해 개발한다.
3) "L4/DNS --- WEB1/WEB2/WEB3 --- NFS/SAMBA" 구조
4) File Server(Windows File Server or Linux File Server)
-> 윈도우 서버의 폴더를 공유하여 파일들을 공유하는 경우 바이러스(프로그램) 배포의 원인이 될 수 있다.
-> 리눅스 서버의 폴더를 공유하여 파일들을 공유하는 경우 바이러스(프로그램)가 정상 동작하지 않는다.
5) Disk(Resource) 공간 제공
-> Windows Server(100G) + 5TB(공간 필요) <------ Linux(SAMBA)
6) Windows(Printer) -------> Linux Server
# lp /etc/passwd
[실습] 기본 samba 서버 구축
[실습] windows 공유폴더를 linux에 에 마운트하기.
[실습] linux 공유폴더를 windows에 마운트하기.
[실습] linux 공유폴더를 linux에 마운트하기.
'모의해킹 침해대응 과정 > Liunx 관리' 카테고리의 다른 글
NTP server / day 22 (0) | 2021.04.26 |
---|---|
Log server / day 21 (0) | 2021.04.23 |
NFS server / day 20 (0) | 2021.04.22 |
Mail / day 19 (0) | 2021.04.21 |
FTP server / day18 (0) | 2021.04.20 |