웹사이트 검색

Windows에서 파일 공유를 위해 CentOS 7에 Samba4를 설치하는 방법


지난 기사에서는 Ubuntu 시스템과 Windows 시스템 간의 기본 파일 공유를 위해 Ubuntu에 Samba4를 설치하는 방법을 보여주었습니다. 익명(비보안) 및 보안 파일 공유 구성을 살펴보았습니다.

여기서는 다른 Linux 시스템과 Windows 시스템 간의 기본 파일 공유를 위해 CentOS 7(RHEL 7에서도 작동)에 Samba4를 설치하고 구성하는 방법을 설명합니다.

중요: 버전 4.0부터 Samba는 AD(Active Directory) 도메인 컨트롤러(DC)로 실행될 수 있습니다. Ubuntu, CentOS 및 Windows에 대한 중요한 주제가 포함된 Samba4 Active Directory 도메인 컨트롤러 설정에 대한 특별 시리즈를 읽어 보시기 바랍니다.

CentOS 7에 Samba4 설치

1. 먼저 표시된 대로 yum 패키지 관리자 도구를 사용하여 기본 CentOS 저장소에서 Samba4 및 필수 패키지를 설치합니다.

yum install samba samba-client samba-common

2. 삼바 패키지를 설치한 후 다음 명령을 사용하여 시스템 방화벽을 통해 삼바 서비스가 허용되도록 활성화합니다.

firewall-cmd --permanent --zone=public --add-service=samba
firewall-cmd --reload

Windows 시스템 작업 그룹 설정 확인

3. Samba 구성을 진행하기 전에 Windows 시스템이 CentOS 서버에서 구성할 동일한 작업 그룹에 있는지 확인하세요.

Windows 시스템 작업 그룹 설정을 보는 방법에는 두 가지가 있습니다.

  • '이 PC' 또는 '내 컴퓨터'를 마우스 오른쪽 버튼으로 클릭 → 속성고급 시스템 설정 컴퓨터 이름.

  • 또는 cmd 프롬프트를 열고 다음 명령을 실행한 후 아래와 같이 출력에서 “워크스테이션 도메인 ”을 찾으세요.
>net config workstation

CentOS 7에서 Samba4 구성

4. 기본 삼바 구성 파일은 /etc/samba/smb.conf이며, 원본 파일에는 다양한 구성 지시어를 안내하는 사전 구성 설정이 함께 제공됩니다.

하지만 삼바를 구성하기 전에 이와 같은 기본 파일을 백업하는 것이 좋습니다.

cp /etc/samba/smb.conf /etc/samba/smb.conf.orig

그런 다음 아래 설명에 따라 익명보안 파일 공유 서비스를 위한 Samba 구성을 진행하세요.

Samba4 익명 파일 공유

5. 먼저 서버에 파일이 저장될 공유 디렉터리를 만들고 디렉터리에 적절한 권한을 설정합니다.

mkdir -p /srv/samba/anonymous
chmod -R 0775 /srv/samba/anonymous
chown -R nobody:nobody /srv/samba/anonymous

또한 Samba 공유 디렉터리에 대한 SELinux 보안 컨텍스트를 다음과 같이 변경해야 합니다.

chcon -t samba_share_t /srv/samba/anonymous

6. 다음으로 편집을 위해 삼바 구성 파일을 엽니다. 여기서 해당 지시어를 사용하여 아래 섹션을 수정/추가할 수 있습니다.

vi /etc/samba/smb.conf
[global]
	workgroup = WORKGROUP
	netbios name = centos
	security = user
[Anonymous]
	comment = Anonymous File Server Share
	path = /srv/samba/anonymous
	browsable =yes
	writable = yes
	guest ok = yes
	read only = no
	force user = nobody

7. 이제 아래 명령을 실행하여 현재 삼바 설정을 확인하세요.

testparm
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[homes]"
Processing section "[printers]"
Processing section "[print$]"
Processing section "[Anonymous]"
Loaded services file OK.
Server role: ROLE_STANDALONE

Press enter to see a dump of your service definitions

Global parameters
[global]
	netbios name = centos
	printcap name = cups
	security = USER
	idmap config * : backend = tdb
	cups options = raw
[homes]
	comment = Home Directories
	browseable = No
	inherit acls = Yes
	read only = No
	valid users = %S %D%w%S
[printers]
	comment = All Printers
	path = /var/tmp
	browseable = No
	printable = Yes
	create mask = 0600
[print$]
	comment = Printer Drivers
	path = /var/lib/samba/drivers
	create mask = 0664
	directory mask = 0775
	write list = root
[Anonymous]
 	comment = Anonymous File Server Share
	path = /srv/samba/anonymous
	force user = nobody
	guest ok = Yes
	read only = No

8. 마지막으로 삼바 서비스를 시작하고 활성화하여 다음 부팅 시 자동으로 시작되도록 하고 위의 변경 사항을 적용하여 적용합니다.

systemctl enable smb.service
systemctl enable nmb.service
systemctl start smb.service
systemctl start nmb.service

익명 Samba 파일 공유 테스트

9. 이제 Windows 시스템의 Windows 탐색기 창에서 '네트워크'를 연 다음 CentOS 호스트를 클릭하거나 다른 방법으로 시도해 보세요. IP 주소를 사용하여 서버에 액세스합니다(IP 주소를 얻으려면 ifconfig 명령을 사용하십시오).

e.g. \2.168.43.168.

10. 다음으로 Anonymous 디렉토리를 열고 여기에 파일을 추가하여 다른 사용자와 공유해 보세요.

Samba4 보안 파일 공유 설정

11. 먼저 삼바 시스템 그룹을 생성한 다음 그룹에 사용자를 추가하고 이와 같이 각 사용자에 대한 비밀번호를 설정합니다.

groupadd smbgrp
usermod tecmint -aG smbgrp
smbpasswd -a tecmint

12. 그런 다음 공유 파일을 보관할 보안 디렉토리를 만들고 삼바에 대한 SELinux 보안 컨텍스트를 사용하여 디렉토리에 적절한 권한을 설정합니다.

mkdir -p /srv/samba/secure
chmod -R 0770 /srv/samba/secure
chown -R root:smbgrp /srv/samba/secure
chcon -t samba_share_t /srv/samba/secure

13. 다음으로 편집할 구성 파일을 열고 해당 지시어로 아래 섹션을 수정/추가합니다.

vi /etc/samba/smb.conf
[Secure]
	comment = Secure File Server Share
	path =  /srv/samba/secure
	valid users = @smbgrp
	guest ok = no
	writable = yes
	browsable = yes

14. 다시 다음 명령을 실행하여 삼바 구성 설정을 확인합니다.

testparm
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[homes]"
Processing section "[printers]"
Processing section "[print$]"
Processing section "[Anonymous]"
Loaded services file OK.
Server role: ROLE_STANDALONE

Press enter to see a dump of your service definitions

Global parameters
[global]
	netbios name = centos
	printcap name = cups
	security = USER
	idmap config * : backend = tdb
	cups options = raw
[homes]
	comment = Home Directories
	browseable = No
	inherit acls = Yes
	read only = No
	valid users = %S %D%w%S
[printers]
	comment = All Printers
	path = /var/tmp
	browseable = No
	printable = Yes
	create mask = 0600
[print$]
	comment = Printer Drivers
	path = /var/lib/samba/drivers
	create mask = 0664
	directory mask = 0775
	write list = root
[Anonymous]
 	comment = Anonymous File Server Share
	path = /srv/samba/anonymous
	force user = nobody
	guest ok = Yes
	read only = No
[Secure]
	comment = Secure File Server Share
	path = /srv/samba/secure
	read only = No
	valid users = @smbgrp

15. 변경 사항을 적용하려면 Samba 서비스를 다시 시작하세요.

systemctl restart smb.service
systemctl restart nmb.service

보안 Samba 파일 공유 테스트

16. Windows 시스템으로 이동하여 Windows 탐색기 창에서 '네트워크'를 연 다음 CentOS 호스트를 클릭하거나 액세스를 시도합니다. IP 주소를 사용하는 서버.

e.g. \2.168.43.168.

CentOS 서버에 로그인하려면 사용자 이름과 비밀번호를 입력하라는 메시지가 표시됩니다. 자격 증명을 입력한 후 확인을 클릭하세요.

17. 성공적으로 로그인하면 모든 Samba 공유 디렉터리가 표시됩니다. 이제 일부 파일을 Secure 디렉터리에 넣어 네트워크에서 허용된 다른 사용자와 안전하게 공유할 수 있습니다.

네트워크에서의 Samba 파일 공유에 관한 유용한 기사를 확인할 수도 있습니다.

  1. Linux에서 로컬 및 네트워크(Samba 및 NFS) 파일 시스템을 마운트/마운트 해제하는 방법
  2. ACL(액세스 제어 목록) 사용 및 Samba/NFS 공유 마운트
  3. Linux 시스템에서 SambaCry 취약점(CVE-2017-7494)을 수정하는 방법

이 가이드에서는 CentOS와 다른 Linux 시스템 및 Windows 시스템 간의 익명의 안전한 파일 공유를 위해 Samba4를 설정하는 방법을 보여주었습니다. 아래 댓글 섹션을 통해 의견을 공유해 주세요.