웹사이트 검색

RHEL, Rocky Linux 및 AlmaLinux에서 Samba 서버를 설정하는 방법


파일 공유는 서버 관리의 필수적인 부분입니다. 이를 통해 사용자가 작업을 수행하는 데 필요한 리소스를 네트워크를 통해 공유할 수 있습니다. 널리 사용되는 파일 공유 소프트웨어 중 하나는 Samba입니다.

널리 사용되는 SMB(서버 메시지 차단) 프로토콜을 다시 구현한 Samba는 파일과 파일을 공유할 수 있는 안정적이고 무료인 애플리케이션입니다. 네트워크를 통한 인쇄 서비스. 소프트웨어는 Linux 및 Windows 시스템 모두에서 공유 파일에 액세스할 수 있는 중앙 Linux 서버에 설치됩니다.

이 가이드에서는 CentOS Stream, Rocky Linux와 같은 RHEL 기반 배포판에 Samba 서버를 설치하는 과정을 안내합니다. AlmaLinux.

1단계: Linux에 Samba 설치

Samba를 시작하려면 클라이언트 패키지를 포함한 Samba 핵심 패키지를 설치하세요.

sudo dnf install samba samba-common samba-client 

이 명령은 출력에 표시된 종속성과 함께 지정된 패키지를 설치합니다. 설치가 완료되면 설치된 모든 패키지에 대한 요약이 표시됩니다.

2단계: Samba 공유 생성 및 구성

모든 samba 패키지가 설치되면 다음 단계는 samba 공유를 구성하는 것입니다. 삼바 공유는 단순히 네트워크의 클라이언트 시스템 전체에서 공유되는 디렉토리입니다.

여기서는 /srv/tecmint/ 디렉토리 경로에 /data라는 삼바 공유를 생성하겠습니다.

sudo mkdir -p /srv/tecmint/data

다음으로 권한과 소유권을 다음과 같이 할당하겠습니다.

sudo chmod -R 755 /srv/tecmint/data
sudo chown -R  nobody:nobody /srv/tecmint/data
sudo chcon -t samba_share_t /srv/tecmint/data

다음으로 Samba의 기본 구성 파일인 smb.conf 구성 파일에 몇 가지 구성을 하겠습니다. 하지만 그렇게 하기 전에 파일 이름을 다른 파일 확장자로 바꾸어 파일을 백업하겠습니다.

sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.bak

다음으로 새로운 구성 파일을 생성하겠습니다.

sudo vim /etc/samba/smb.conf

구성 파일에 표시된 줄을 추가하여 Samba 공유에 액세스할 수 있는 사람에 대한 정책을 정의합니다.

[global]
workgroup = WORKGROUP
server string = Samba Server %v
netbios name = rocky-8
security = user
map to guest = bad user
dns proxy = no
ntlm auth = true



[Public]
path =  /srv/tecmint/data
browsable =yes
writable = yes
guest ok = yes
read only = no

구성 파일을 저장하고 종료합니다.

작성된 구성을 확인하려면 다음 명령을 실행하십시오.

sudo testparm

다음으로, 표시된 대로 Samba 데몬을 시작하고 활성화합니다.

sudo systemctl start smb
sudo systemctl enable smb
sudo systemctl start nmb
sudo systemctl enable nmb

smbnmb 데몬이 모두 실행 중인지 확인하세요.

sudo systemctl status smb
sudo systemctl status nmb

원격 Windows 시스템에서 Samba 공유에 대한 액세스를 활성화하려면 방화벽에서 Samba 프로토콜을 열어야 합니다.

sudo firewall-cmd --permanent --add-service=samba
sudo firewall-cmd --reload
sudo firewall-cmd --list-services

3단계: Windows에서 Samba 공유에 액세스

지금까지 samba를 설치하고 samba 공유를 구성했습니다. 이제 원격으로 액세스할 준비가 되었습니다. Windows 클라이언트에서 이 작업을 수행하려면 Windows 로고 키 + R를 눌러 실행 대화 상자를 시작하세요.

제공된 텍스트 필드에 다음과 같이 삼바 서버의 IP 주소를 입력합니다.

\\server-ip

'공개'라고 표시된 다음 창이 나타납니다. 이는 /srv/tecmint/data 디렉토리에 있는 삼바 공유를 가리키는 디렉토리라는 점을 기억하십시오.

현재 파일을 생성하지 않았으므로 디렉토리가 비어 있습니다. 이제 터미널로 돌아가서 Samba 공유 디렉토리에 몇 가지 파일을 생성하겠습니다.

cd /srv/tecmint/data
sudo touch file{1..3}.txt

이제 이전에 생성한 파일이 표시될 'Public' 폴더로 이동하겠습니다.

완벽한. samba 공유에 성공적으로 액세스했습니다. 그러나 우리 디렉토리는 누구나 액세스할 수 있으며 누구나 마음대로 파일을 편집하고 삭제할 수 있습니다. 이는 민감한 파일을 호스팅하려는 경우 특히 권장되지 않습니다.

다음 단계에서는 보안 Samba 공유 디렉터리를 생성하고 구성하는 방법을 보여 드리겠습니다.

4단계: Samba 공유 디렉터리 보안

먼저, 새로운 Samba 사용자를 생성하겠습니다.

sudo useradd smbuser

다음으로 Samba 사용자의 비밀번호를 구성하겠습니다. 인증 시 사용되는 비밀번호입니다.

sudo smbpasswd -a smbuser

다음으로 보안 Samba 공유를 위한 새 그룹을 만들고 새 Samba 사용자를 추가하겠습니다.

sudo groupadd smb_group
sudo usermod -g smb_group smbuser

그런 다음 안전하게 액세스할 또 다른 Samba 공유를 생성하십시오. 우리의 경우에는 다음과 같은 경로에 다른 디렉터리를 만들었습니다.

sudo mkdir -p  /srv/tecmint/private

그런 다음 Samba 공유에 대한 파일 권한을 구성하십시오.

sudo chmod -R 770 /srv/tecmint/private
sudo chcon -t samba_share_t /srv/tecmint/private
sudo chown -R root:smb_group /srv/tecmint/private

다시 한 번 Samba 구성 파일에 액세스하십시오.

sudo vim /etc/samba/smb.conf

삼바 공유를 보호하기 위해 정의하려면 다음 줄을 추가하세요.

[Private]
path = /srv/tecmint/private
valid users = @smb_group
guest ok = no
writable = no
browsable = yes

변경 사항을 저장하고 종료합니다.

마지막으로 표시된 대로 모든 삼바 데몬을 다시 시작합니다.

sudo systemctl restart smb
sudo systemctl restart nmb

이번에 서버에 액세스하면 '개인' 폴더가 추가로 생성된 것을 볼 수 있습니다. 폴더에 액세스하려면 Samba 사용자 자격 증명으로 인증해야 합니다. 이전 단계에서 생성한 사용자의 사용자 이름과 비밀번호를 입력하고 '확인'을 클릭하세요.

5단계: Linux 클라이언트에서 Samba 공유에 액세스

Linux 클라이언트에서 공유에 액세스하려면 먼저 Samba 클라이언트 패키지가 설치되어 있는지 확인하십시오.

sudo dnf install samba-client 

그런 다음 smbclient 명령을 다음과 같이 사용하세요.

smbclient ‘\2.168.43.121\private’ -U smbuser

이것으로 RHEL, CentOS Stream, Rocky Linux에서 Samba 설정에 대한 가이드를 마칩니다. AlmaLinux. 이 가이드에 대한 귀하의 의견은 매우 감사하겠습니다.