웹사이트 검색

RHEL, CentOS 및 Fedora에 Samba 서버를 설치하는 방법


Samba는 최종 사용자가 동일한 네트워크에 있는 모든 Windows 시스템에서 Linux 공유 디렉토리에 액세스할 수 있게 해주는 오픈 소스이자 가장 널리 사용되는 프로그램입니다.

Samba는 네트워크 파일 시스템이라고도 하며 Linux/Unix 운영 체제에 설치할 수 있습니다. Samba 자체는 SMB(서버 메시지 블록) 및 CIFS(공용 인터넷 파일 시스템)의 클라이언트/서버 프로토콜입니다. ).

Windows smbclient(GUI) 또는 파일 탐색기를 사용하여 최종 사용자는 모든 Windows 워크스테이션에서 Samba 서버에 연결하여 공유 파일 및 프린터에 액세스할 수 있습니다.

이 튜토리얼에서는 RHEL, CentOS StreamFedora 시스템에 Samba 서버(파일 서버)를 설치하는 방법을 설명합니다. 또한 SMB 프로토콜을 사용하여 네트워크를 통해 파일을 공유하도록 구성하는 방법과 Samba 사용자 데이터베이스에 시스템 사용자를 생성하고 추가하는 방법을 살펴보겠습니다.

시연을 위해 호스트 이름이 tecmint이고 IP 주소가 192.168.43.121RHEL 8 시스템을 사용하고 있습니다.

RHEL에서 Samba 설치 및 구성

Samba를 시작하려면 다음과 같이 Samba 코어 패키지와 samba-client 패키지를 설치해야 합니다.

dnf install samba samba-common samba-client 

모든 Samba가 설치된 후에는 동일한 로컬 네트워크에 있는 모든 클라이언트 시스템과 공유되도록 적절한 권한과 소유권으로 Samba 공유 디렉터리를 구성해야 합니다.

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

다음으로 Samba의 기본 구성 파일인 smb.conf 파일에 Samba 공유 디렉터리를 구성하겠습니다.

mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
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

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

다음으로 Samba 구성에 오류가 있는지 확인하십시오.

testparm

모든 것이 괜찮아 보인다면 Samba 데몬을 시작하고 활성화하고 상태를 확인하세요.

systemctl start smb
systemctl enable smb
systemctl start nmb
systemctl enable nmb
systemctl status smb
systemctl status nmb

Windows에서 Samba 공유에 액세스

Windows 시스템에서 Samba 공유에 액세스하려면 Windows 로고 키 + R을 눌러 실행 대화상자를 실행하고 삼바의 IP 주소를 입력하세요. 표시된 대로 서버.

연결되면 /srv/tecmint/data 디렉토리에서 삼바 공유의 'Public' 디렉토리가 표시됩니다.

Samba 공유에 파일을 생성하지 않았으므로 'Public' 디렉터리는 비어 있습니다. 다음 명령을 사용하여 몇 가지 파일을 생성해 보겠습니다.

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

파일을 생성한 후 Samba 'Public' 폴더에 액세스하여 파일을 확인해 보세요.

Windows에서 삼바 공유를 성공적으로 구성하고 액세스했습니다. 그러나 파일을 편집하고 삭제할 수 있는 권한이 있는 모든 사람이 우리 디렉터리에 액세스할 수 있으므로 중요한 파일을 호스팅할 때는 권장되지 않습니다.

다음 섹션에서는 Samba 공유 디렉터리를 보호하는 방법을 배우게 됩니다.

RHEL의 보안 Samba 공유 디렉터리

Samba 공유를 보호하려면 새 Samba 사용자를 생성해야 합니다.

useradd smbuser
smbpasswd -a smbuser

그런 다음 새 그룹을 만들고 이 그룹에 새 Samba 사용자를 추가합니다.

sudo groupadd smb_group
sudo usermod -g smb_group smbuser

그런 다음 Samba 사용자가 안전하게 파일에 액세스할 수 있도록 또 다른 보안 Samba 공유 디렉터리를 만듭니다.

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

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

vi /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 공유에 액세스해 보십시오. 이번에는 추가 '개인' 디렉터리가 표시됩니다. 이 디렉터리에 액세스하려면 표시된 대로 Samba 사용자 자격 증명으로 인증해야 합니다.

Linux 시스템에서 Samba 공유에 액세스하려면 먼저 samba-client 패키지를 설치하고 연결을 시도하십시오.

dnf install samba-client 
smbclient ‘\2.168.43.121\private’ -U smbuser

이것으로 RHEL, CentOS StreamFedora에 Samba를 설치하고 구성하는 방법에 대한 기사를 마칩니다. 이 기사에 대한 귀하의 의견은 매우 감사하겠습니다.