메가IT아카데미 국기과정/리눅스와 시스템보안
[2-6] SAMBA 서버
한님폐하
2022. 9. 12. 11:01
- 유닉스/리눅스 플랫폼 환경에서 파일과 하드웨어(CD-ROM, Printer)를 서로 공유할 수 있게 해주는 서비스이다.
- smbd : 파일 및 프린트 공유, 사용자 확인 및 권한 부여를 담당한다. (포트 번호 : TCP 139, TCP 445)
- nmbd : 클라이언트를 위해 Netbios Nameserver를 지원하고 서비스를 알린다. (포트 번호 : UDP 137, UDP 138)
1. SAMBA 서비스 설치 및 활성화
yum -y install samba samba-client cifs-utils
rpm -qa | egrep '^samba|^cifs-utils'
rpm -ql samba | egrep -v '/usr/lib/|/usr/lib64|/man/|/doc/'
rpm -ql samba-common | egrep -v '/man/'
rpm -ql samba-client | egrep -v '/usr/lib|/man/|/doc/'
systemctl enable --now smb nmb
systemctl status smb nmb
2. SAMBA 관련 정보 확인
netstat -antp | egrep '137|138|139|445'
netstat -anup | egrep '137|138|139|445'
ps -ef | egrep 'smbd|nmbd' | egrep -v grep
pgrep -lf smbd
pgrep -lf nmbd
smbstatus
net use # at Windows10
3. SAMBA 구성
3-1. 리눅스: 서버, 윈도우: 클라이언트
- 'testparm' 명령어를 이용하여 'smb.conf' 환경 설정 파일 내용을 확인한다.
vi /etc/samba/smb.conf
workgroup = MYGROUP
hosts allow = 127. 192.168.2. # Samba 공유가 허용되는 서브넷 설정
[public]
comment = SAMBA TEST
path = /samba
read only = no
writable = yes
public = yes
printable = no
:wq
- 'pdbedit'를 이용하여 SAMBA 계정을 생성한다. 이때 계정은 '/etc/passwd'에 등록된 계정으로 생성해야 한다.
pdbedit -a user1 # 계정 생성
pdbedit -L # 계정 확인
pdbedit -x user1 # 계정 삭제
- 'smbclient' 명령어를 이용하여 공유 유무를 확인한다.
- 윈도우10에서 윈도우 실행(원도우키 + R)을 실시하여 '\\192.168.2.200'을 확인하면 파일이 공유되는 것을 볼 수 있다.
smbclient -L localhost -U user1
smbclient //localhost/public -U user1
3-2. 리눅스: 클라이언트(192.168.2.200), 윈도우: 서버(192.168.2.1)
[윈도우10]
- 제어판 -> 프로그램 -> Windows 기능 켜기/끄기 -> SMB 1.0/CIFS 파일 공유 지원 체크 -> 재부팅 실시
- 내 PC 마우스 우클릭 -> 관리 -> 로컬 사용자 및 그룹 -> 사용자 우클릭 -> 새 사용자 -> user1/centos 계정 추가
- C 드라이브 -> samba 폴더 생성 -> 'smbfile11.txt', 'smbfile22.txt' 생성 -> samba 폴더 'user1' 공유 실시(읽기/쓰기)
[리눅스]
- 공유 마운트 디렉토리 생성하고 /etc/fstab에 마운트한다.
mount.cifs //192.168.2.1/samba /mnt/samba -o user=user1
vi /etc/fstab
/192.168.2.1/samba /mnt/samba cifs credentials=/etc/samba/cred 0 0
- '/etc/samba/cred' 파일을 생성하여 Samba 계정을 추가하고, root 계정만 확인할 수 있도록 퍼미션을 변경한다.
vi cred
username=user1
password=centos
:wq
chmod 600 cred
3-3. 리눅스 : 클라이언트(192.168.2.201), 리눅스 : 서버(192.168.2.200)
- 클라이언트에서 마운트 디렉토리를 생성하고 /etc/fstab에 마운트를 실시한다. Samba계정을 추가하고 퍼미션을 변경한다.
vi /etc/fstab
//192.168.2.200/public /mnt/samba cifs credentials=/etc/samba/cred 0 0
mount -a
vi /etc/samba/cred
username=user1
password=centos
chmod 600 /etc/samba/cred