Samba 서버 · 3 min read · Dec 06, 2025

CentOS 7에서 Samba 서버 설치 및 구성

이 튜토리얼은 CentOS 7에서 익명 및 보안 Samba 공유로 Samba 서버를 구성하는 방법을 설명합니다. Samba는 Windows와 같은 SMB/CIFS 클라이언트에 원활한 파일 및 인쇄 서비스를 제공하는 오픈 소스/무료 소프트웨어 모음입니다. Samba는 다른 SMB/CIFS 구현과 달리 무료로 제공되며, Linux/Unix 서버와 Windows 기반 클라이언트 간의 상호 운용성을 허용합니다.

1 사전 참고

저는 Samba 서버를 설치할 새로 설치된 CentOS 7 서버를 가지고 있습니다. 물론 CentOS 7 서버에 도달할 수 있는 Windows 머신이 필요합니다. 제 CentOS 7 서버의 호스트 이름은 server1.example.com이고 IP는 192.168.0.100입니다.

참고:

  • Windows 머신은 동일한 작업 그룹에 있어야 합니다. Windows 머신에서 cmd 프롬프트에서 다음 명령을 실행하여 값을 확인하십시오.
net config workstation

이렇게 표시됩니다:

Windows 로그인 도메인 이름

귀하의 Windows 머신은 CentOS 7.0 서버와 동일한 워크스테이션 도메인에 있어야 합니다. 즉, 제 경우에는 WORKGROUP입니다.

  • Windows에서 Windows 머신에 도달할 수 있도록 하려면 다음과 같이 진행하십시오. 실행 터미널에서 서버 IP 주소의 항목을 추가하십시오:
notepad C:\Windows\System32\drivers\etc\hosts

제 경우에는 이렇게 되어 있었고, 값을 저장하기만 하면 됩니다.

[...]  
192.168.0.100  server1.example.com  centos

2 익명 Samba 공유

먼저 익명 공유로 Samba를 설치하는 방법론을 설명하겠습니다. Samba 소프트웨어를 설치하려면 다음을 실행하십시오:

yum install samba samba-client samba-common

현재 Samba 버전이 CentOS 소프트웨어 저장소에서 설치됩니다.

이제 Samba를 구성하려면 /etc/samba/smb.conf 파일을 편집하십시오. 변경하기 전에 원본 파일의 백업을 /etc/samba/smb.conf.bak로 만들겠습니다.

cp -pf /etc/samba/smb.conf /etc/samba/smb.conf.bak

빈 파일로 시작하고 싶으므로 cat 명령을 사용하여 smb.conf를 비우겠습니다. vi에서 모든 줄을 삭제하는 것보다 빠릅니다.

cat /dev/null > /etc/samba/smb.conf

이후 다음과 같이 항목을 추가하십시오.

vi /etc/samba/smb.conf
[global]
workgroup = WORKGROUP
server string = Samba Server %v
netbios name = centos
security = user
map to guest = bad user
dns proxy = no
#============================ Share Definitions ============================== 
[Anonymous]
path = /samba/anonymous
browsable =yes
writable = yes
guest ok = yes
read only = no
mkdir -p /samba/anonymous  
systemctl enable smb.service  
systemctl enable nmb.service  
systemctl restart smb.service  
systemctl restart nmb.service  

CentOS 7 Firewall-cmd가 Samba 액세스를 차단하므로 이를 제거하기 위해 다음을 실행합니다:

firewall-cmd --permanent --zone=public --add-service=samba
[root@server1 ~]# firewall-cmd --permanent --zone=public --add-service=samba
success
[root@server1 ~]#

마지막으로 변경 사항을 적용하기 위해 방화벽을 다시 로드합니다.

firewall-cmd --reload
[root@server1 ~]# firewall-cmd --reload
success
[root@server1 ~]#

이제 Windows에서 다음과 같이 CentOS 7 공유에 액세스할 수 있습니다. 실행 프롬프트로 가서 \centos를 입력하십시오:

\centos

Windows에서 Samba 공유 열기

Windows 머신에서 폴더를 탐색하고 텍스트 파일을 생성하려고 시도하지만 권한 거부 오류가 발생합니다.

Windows에서 Samba로 공유된 폴더 탐색

Samba 공유에 대한 익명 액세스 테스트

공유 폴더의 권한을 확인하십시오.

ls -l

drwxr-xr-x. 2 root root 6 Jul 17 13:41 anonymous  
[root@server1 samba]#

익명 사용자에 대한 액세스를 허용하려면 권한을 다음과 같이 설정하십시오:

cd /samba
chmod -R 0755 anonymous/  
chown -R nobody:nobody anonymous/
ls -l anonymous/
total 0  
drwxr-xr-x. 2 nobody nobody 6 Jul 17 13:41 anonymous  
[root@server1 samba]#

추가로, Samba 구성을 위해 SELinux를 허용해야 합니다:

chcon -t samba_share_t anonymous/

이제 익명 사용자가 폴더 내용을 탐색하고 생성할 수 있습니다.

익명 사용자에 의한 폴더 액세스

서버에서 콘텐츠를 교차 확인할 수도 있습니다.

ls -l anonymous/
total 0  
-rwxr--r--. 1 nobody nobody 0 Jul 17 16:05 anonymous.txt  
[root@server1 samba]#

3. 보안 Samba 서버

따라서 smbgrp 그룹과 srijan 사용자를 생성하여 적절한 인증으로 Samba 서버에 액세스하겠습니다.

groupadd smbgrp
useradd srijan -G smbgrp
smbpasswd -a srijan
[root@server1 samba]# smbpasswd -a srijan
New SMB password:<--yoursambapassword
Retype new SMB password:<--yoursambapassword
Added user srijan.
[root@server1 samba]#  

이제 /samba 폴더에 secured라는 이름의 폴더를 만들고 다음과 같이 권한을 설정합니다:

mkdir -p /samba/secured

다시 SELinux를 통해 수신을 허용해야 합니다:

cd /samba
chmod -R 0777 secured/
chcon -t samba_share_t secured/

다시 구성 파일을 다음과 같이 편집하십시오:

vi /etc/samba/smb.conf

[...]  
[secured]
 path = /samba/secured
 valid users = @smbgrp
 guest ok = no
 writable = yes
 browsable = yes
systemctl restart smb.service
systemctl restart nmb.service

추가로 설정을 다음과 같이 확인하십시오:

testparm
[root@server1 samba]# testparm 
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[Anonymous]"
Processing section "[secured]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions <--ENTER

[global]
    netbios name = CENTOS
    server string = Samba Server %v
    map to guest = Bad User
    dns proxy = No
    idmap config * : backend = tdb

[Anonymous]
    path = /samba/anonymous
    read only = No
    guest ok = Yes

[secured]
    path = /samba/secured
    valid users = @smbgrp
    read only = No
[root@server1 samba]# 

이제 Windows 머신에서 적절한 자격 증명으로 폴더를 확인하십시오.

비밀번호로 보안 Samba 액세스

사용자 srijan에게 쓰기 권한을 부여하려면 다음을 수행하십시오:

cd /samba  
chown -R srijan:smbgrp secured/

이제 Samba 사용자는 폴더에 쓸 수 있는 권한을 갖습니다. 축하합니다, CentOS 7에서 Samba 서버를 설정했습니다! :)

Windows에서 Samba 공유의 폴더 목록

Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.