티스토리 뷰

CentOS 강좌 PART 2. 8  SAMBA 서버 구축과 운영

리눅스에서는 상호 시스템간의 자원을 공유하는 방식이 여러가지 있다.
앞서 소개한 SSH기반의 SCP,SFTP가 있고, 전통적으로 많이 사용하던 FTP가 있다. 또한 NFS 기반으로 리눅스에서 상호간 파일을 공유하거나 마운트하는 방식이 있다.
하지만 윈도우와 같은 운영체제가 리눅스의 파일을 공유하기에는 한계가 많다.
SAMBA는 윈도우에서 널리 사용되던 SMB(Server Message Block)프로토콜을 리눅스 환경에서 구현한 방식으로 윈도우 또는 맥운영체제에서 리눅스 서버에 있는 파일들이나 프린터를 공유할 수 있게 한다. 클라이언트와 서버간에는 SMB/CIFS 네트워크 파일 공유 프로토콜을 사용한다.



1.SAMBA 패키지 설치.

먼저 서버가 될 호스트에 SAMBA 패키지를 설치 구성한다.

1
[root@centrepo whchoi]# yum install samba samba-client
cs

설치가 완료되면 SAMBA를 활성화하고, 재구동시에서 사용가능하도록 등록한다.

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
32
33
34
35
[root@centrepo whchoi]# systemctl start smb
[root@centrepo whchoi]# systemctl start nmb
[root@centrepo whchoi]# systemctl enable smb
[root@centrepo whchoi]# systemctl enable nmb
 
root@centrepo whchoi]# systemctl status smb
● smb.service - Samba SMB Daemon
   Loaded: loaded (/usr/lib/systemd/system/smb.service; enabled; vendor preset: disabled)
   Active: active (running) since 수 2019-04-03 02:46:06 KST; 10h ago
     Docs: man:smbd(8)
           man:samba(7)
           man:smb.conf(5)
 Main PID: 26208 (smbd)
   Status: "smbd: ready to serve connections..."
   CGroup: /system.slice/smb.service
           ├─26208 /usr/sbin/smbd --foreground --no-process-group
           ├─26210 /usr/sbin/smbd --foreground --no-process-group
           ├─26211 /usr/sbin/smbd --foreground --no-process-group
           ├─26212 /usr/sbin/smbd --foreground --no-process-group
           └─26230 /usr/sbin/smbd --foreground --no-process-group
 
[root@centrepo whchoi]# systemctl status nmb
● nmb.service - Samba NMB Daemon
   Loaded: loaded (/usr/lib/systemd/system/nmb.service; enabled; vendor preset: disabled)
   Active: active (running) since 수 2019-04-03 02:46:14 KST; 10h ago
     Docs: man:nmbd(8)
           man:samba(7)
           man:smb.conf(5)
 Main PID: 26222 (nmbd)
   Status: "nmbd: ready to serve connections..."
   CGroup: /system.slice/nmb.service
           └─26222 /usr/sbin/nmbd --foreground --no-process-group
 
# smb,nmb 데몬을 활성화 하고, 재구동시에도 동작할 수 있도록 환경설정을 한다.
# 정상적으로 구동되었는지 확인한다.
cs


2. SAMBA 공유 구성

클라이언트와 공유할 디렉토리를 생성한다.

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
[root@centrepo whchoi]# mkdir /samba
[root@centrepo whchoi]# groupadd sambashare
[root@centrepo whchoi]# chgrp sambashare /samba
 
# /samba 디렉토리를 만들고, Group을 “sambashare”를 만든다.
# /samba의 소유권한을 “sambashare”에 준다.
 
[root@centrepo whchoi]# useradd -M -d /samba/dcsamba1 -s /usr/sbin/nologin -G sambashare dcsamba1
 
[root@centrepo whchoi]# mkdir /samba/dcsamba1
[root@centrepo whchoi]# chown dcsamba1:sambashare /samba/dcsamba1
[root@centrepo whchoi]# chmod 2770 /samba/dcsamba1
[root@centrepo whchoi]# smbpasswd -a dcsamba1
New SMB password:
Retype new SMB password:
Added user dcsamba1.
[root@centrepo whchoi]# smbpasswd -e dcsamba1
Enabled user dcsamba1.
 
# samba user를 하나 생성한다. “dcsamba1"
# “dcsamba1” samba user를 위한 디렉토리를 생성하고, 권한과 소유권 설정을 해 주고, 패스워드를 생성한다.
 
[root@centrepo whchoi]# vi /etc/samba/smb.conf
[dcsamba1]
    path = /samba/dcsamba1
    browseable = yes
    read only = no
    force create mode = 0660
    force directory mode = 2770
    valid users = dcsamba1@sadmin
 
# 생성된 User에 대한 설정을 /etc/samba/smb.conf에 작성한다.
 
[root@centrepo whchoi]# useradd -M -d /samba/users -s /usr/sbin/nologin -G sambashare sadmin
[root@centrepo whchoi]# smbpasswd -a sadmin
[root@centrepo whchoi]# smbpasswd -e sadmin
[root@centrepo whchoi]# mkdir /samba/users
[root@centrepo whchoi]# chown sadmin:sambashare /samba/users
[root@centrepo whchoi]# chmod 2770 /samba/users
[root@centrepo whchoi]# vi /etc/samba/smb.conf
 
[users]
    path = /samba/users
    browseable = yes
    read only = no
    force create mode = 0660
    force directory mode = 2770
    valid users = @sambashare @sadmin
 
# 추가로 admin 권한을 생성해 본다.
 
[root@centrepo whchoi]#systemctl restart smb.service
[root@centrepo whchoi]#systemctl restart nmb.service
 
# smb,nmb 데몬을 재구동한다.
cs


3. SAMBA를 위한 보안 설정

클라이언트와 공유할 디렉토리를 생성한다.

1
2
3
4
5
6
7
8
[root@centrepo whchoi]# firewall-cmd --permanent --zone=public --add-service=samba
success
[root@centrepo whchoi]# firewall-cmd --zone=public --add-service=samba
success
[root@centrepo whchoi]# firewall-cmd --reload
success
 
# samba 서비스를 위해 방화벽 정책을 설정한다.
cs



4. SAMBA 클라이언트에서 확인 - 윈도우 및 맥 클라이언트

SMB 클라이언트가 SAMBA 서버와 정상적으로 연결이 되는지 윈도우와 맥에서 확인한다.
맥에서 파인더 메뉴의 “이동” -“서버에 연결” 메뉴를 이용해서 구성된 SAMBA 서버와 디렉토리를 지정한다.
사전에 정의한 sadmin에 대한 암호를 넣어준다.

정상적으로 SAMBA 서버에 연결되면 지정된 디렉토리가 보이게 되고, 해당 파일도 확인이 가능하다.


윈도우에서도 동일하게 해당 경로를 선언하면 디렉토리를 볼 수 있다.
해당 폴더에 접속하려면 사전에 정의된 패스워드를 입력하면 된다. 




공지사항