웹사이트 검색

Windows에서 파일 공유를 위해 Ubuntu에 Samba를 설치하는 방법


Samba는 무료/오픈 소스이며 동일한 네트워크에 있는 Linux 및 Windows 호스트를 포함한 Unix 계열 시스템 간에 파일 및 인쇄 서비스를 공유하기 위해 널리 사용되는 소프트웨어입니다.

이 가이드에서는 Ubuntu 시스템과 Windows 시스템 간의 기본 파일 공유를 위해 Samba4를 설정하는 방법을 보여줍니다. 익명(비보안)보안 파일 공유라는 두 가지 가능한 시나리오를 다룰 것입니다.

권장 읽기: Windows에서 파일 공유를 위해 CentOS/RHEL 7에 Samba4를 설치하는 방법

버전 4.0부터 Samba를 AD(Active Directory) 도메인 컨트롤러(DC)로 사용할 수 있습니다. Ubuntu, CentOS 및 Windows에 대한 주요 주제로 구성된 Samba4 Active Directory 도메인 컨트롤러 설정을 위한 특별 시리즈를 구성했습니다.

  1. Samba4 Active Directory 도메인 컨트롤러 설정

Ubuntu에서 Samba 설치 및 구성

Samba 서버는 표시된 대로 apt 패키지 관리자 도구를 사용하여 기본 Ubuntu 저장소에서 설치할 수 있습니다.

sudo apt install samba samba-common python-dnspython

삼바 서버가 설치되면 이제 삼바 서버를 비보안 익명보안 파일 공유로 구성할 차례입니다.

이를 위해서는 기본 Samba 구성 파일 /etc/samba/smb.conf(다양한 구성 지시어 설명)를 편집해야 합니다.

먼저 다음과 같이 원본 삼바 구성 파일을 백업하십시오.

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

그 후에는 아래 설명에 따라 익명보안 파일 공유 서비스를 위한 Samba 구성을 진행하겠습니다.

중요: 더 진행하기 전에 Windows 시스템이 Ubuntu 서버에 구성될 동일한 작업 그룹에 있는지 확인하세요.

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

Windows 컴퓨터에 로그인하고 “이 PC” 또는 “내 컴퓨터”를 마우스 오른쪽 버튼으로 클릭합니다. 속성 고급 시스템 설정 컴퓨터 이름을 클릭하여 작업 그룹을 확인하세요.

또는 명령 프롬프트를 열고 아래 명령을 실행하여 “워크스테이션 도메인”을 찾으세요.

>net config workstation

Windows 작업 그룹을 알고 나면 파일 공유를 위해 Samba 서버를 구성해야 합니다.

익명의 Samba 파일 공유

먼저 파일이 저장될 공유 삼바 디렉터리를 만드는 것부터 시작하세요.

sudo mkdir -p /srv/samba/anonymous_shares

그런 다음 디렉터리에 대한 적절한 권한을 설정합니다.

sudo chmod -R 0775 /srv/samba/anonymous_shares
sudo chown -R nobody:nogroup /srv/samba/anonymous_shares

이제 구성 파일을 엽니다.

sudo vi /etc/samba/smb.conf
OR
sudo nano /etc/samba/smb.conf

다음으로 아래 설명된 대로 지시어 설정을 편집하거나 수정합니다.

global]
	workgroup = WORKGROUP
	netbios name = ubuntu
	security = user
[Anonymous]
	comment = Anonymous File Server Share
	path = /srv/samba/anonymous_shares
	browsable =yes
	writable = yes
	guest ok = yes
	read only = no
	force user = nobody

이제 아래 명령을 실행하여 현재 삼바 설정을 확인하십시오.

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

Press enter to see a dump of your service definitions

Global parameters
[global]
	netbios name = UBUNTU
	server string = %h server (Samba, Ubuntu)
	server role = standalone server
	map to guest = Bad User
	obey pam restrictions = Yes
	pam password change = Yes
	passwd program = /usr/bin/passwd %u
	passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
	unix password sync = Yes
	syslog = 0
	log file = /var/log/samba/log.%m
	max log size = 1000
	dns proxy = No
	usershare allow guests = Yes
	panic action = /usr/share/samba/panic-action %d
	idmap config * : backend = tdb

[printers]
	comment = All Printers
	path = /var/spool/samba
	create mask = 0700
	printable = Yes
[print$]
	comment = Printer Drivers
	path = /var/lib/samba/printers
	browseable = No
[Anonymous]
	comment = Anonymous File Server Share
	path = /srv/samba/anonymous_shares
	force user = nobody
	read only = No
	guest ok = Yes

그런 다음 Samba 서비스를 다시 시작하여 위의 변경 사항을 적용합니다.

sudo systemctl restart smbd   [Systemd]
sudo service smbd restart     [Sys V]

익명 Samba 파일 공유 테스트

Windows 시스템으로 이동하여 Windows 탐색기 창에서 '네트워크'를 엽니다. Ubuntu 호스트(이 경우에는 TECMINT)를 클릭하거나 IP 주소를 사용하여 Samba 서버에 액세스해 보세요.

\2.168.43.168

참고: Ubuntu 서버 IP 주소를 얻으려면 ifconfig 명령을 사용하세요.

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

안전한 삼바 파일 공유

삼바 공유를 비밀번호로 보호하려면 “smbgrp” 그룹을 만들고 각 사용자에 대한 비밀번호를 설정해야 합니다. 이 예에서는 사용자로 aaronkilik을 사용하고 "tecmint"로 비밀번호를 사용합니다.

sudo addgroup smbgrp
sudo usermod aaronkilik -aG smbgrp
sudo smbpasswd -a aaronkilik

참고: 삼바 보안 모드: security=user에서는 클라이언트가 공유에 연결하려면 사용자 이름과 비밀번호를 입력해야 합니다.

Samba 사용자 계정은 시스템 계정과 별개이지만 선택적으로 시스템 사용자 및 비밀번호를 Samba 사용자 데이터베이스와 동기화하는 데 사용되는 libpam-winbind 패키지를 설치할 수 있습니다.

sudo apt install libpam-winbind

그런 다음 공유 파일을 보관할 보안 디렉터리를 만듭니다.

sudo mkdir -p /srv/samba/secure_shares

다음으로 디렉터리에 대한 적절한 권한을 설정합니다.

sudo chmod -R 0770 /srv/samba/secure_shares
sudo chown -R root:smbgrp /srv/samba/secure_shares

이제 구성 파일을 엽니다.

sudo vi /etc/samba/smb.conf
OR
sudo nano /etc/samba/smb.conf

다음으로 아래 설명된 대로 지시어 설정을 편집하거나 수정합니다.

[Secure]
	comment = Secure File Server Share
	path =  /srv/samba/secure_shares
	valid users = @smbgrp
	guest ok = no
	writable = yes
	browsable = yes

이전과 마찬가지로 이 명령을 실행하여 현재 삼바 설정을 확인하세요.

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

Press enter to see a dump of your service definitions

Global parameters
[global]
	netbios name = UBUNTU
	server string = %h server (Samba, Ubuntu)
	server role = standalone server
	map to guest = Bad User
	obey pam restrictions = Yes
	pam password change = Yes
	passwd program = /usr/bin/passwd %u
	passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
	unix password sync = Yes
	syslog = 0
	log file = /var/log/samba/log.%m
	max log size = 1000
	dns proxy = No
	usershare allow guests = Yes
	panic action = /usr/share/samba/panic-action %d
	idmap config * : backend = tdb
[printers]
	comment = All Printers
	path = /var/spool/samba
	create mask = 0700
	printable = Yes
[print$]
	comment = Printer Drivers
	path = /var/lib/samba/printers
	browseable = No
[Anonymous]
	comment = Anonymous File Server Share
	path = /srv/samba/anonymous_shares
	force user = nobody
	read only = No
	guest ok = Yes
[Secure]
	comment = Secure File Server Share
	path = /srv/samba/secure_shares
	valid users = @smbgrp
	read only = No

위 구성을 완료한 후 Samba 서비스를 다시 시작하여 변경 사항을 적용하십시오.

sudo systemctl restart smbd   [Systemd]
sudo service smbd restart     [Sys V]

보안 Samba 파일 공유 테스트

이전과 마찬가지로 Windows 시스템에서 Windows 탐색기 창에서 '네트워크'를 엽니다. Ubuntu 호스트(이 경우에는 TECMINT)를 클릭합니다. 다음 단계로 진행하지 않으면 아래 오류가 발생할 수 있습니다.

IP 주소를 사용하여 서버에 액세스해 보십시오. \\192.168.43.168 이렇게요. 그런 다음 aaronkilik 사용자의 자격 증명(사용자 이름 및 비밀번호)을 입력하고 확인을 클릭하세요.

이제 모든 공유 디렉토리가 표시됩니다. 보안을 클릭하여 엽니다.

일부 파일을 이 디렉터리에 놓으면 네트워크에서 허용된 다른 사용자와 안전하게 공유할 수 있습니다.

Ubuntu의 UFW 방화벽에서 Samba 활성화

시스템에 UFW 방화벽이 활성화/활성화되어 있으면 Samba가 방화벽을 통과할 수 있도록 규칙을 추가해야 합니다.

이를 테스트하기 위해 192.168.43.0 네트워크 구성표를 사용했습니다. 네트워크 주소를 지정하여 아래 명령을 실행하십시오.

sudo ufw allow proto udp to any port 137 from 192.168.43.0/24
sudo ufw allow proto udp to any port 138 from 192.168.43.0/24
sudo ufw allow proto tcp to any port 139 from 192.168.43.0/24
sudo ufw allow proto tcp to any port 445 from 192.168.43.0/24

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

  1. Samba4 Active Directory 도메인 컨트롤러 설정 - 1~14부
  2. Linux에서 로컬 및 네트워크(Samba 및 NFS) 파일 시스템을 마운트/마운트 해제하는 방법
  3. ACL(액세스 제어 목록) 사용 및 Samba/NFS 공유 마운트
  4. Linux 시스템에서 SambaCry 취약점(CVE-2017-7494)을 수정하는 방법

그게 다야! 이 가이드에서는 Ubuntu와 Windows 시스템 간의 익명의 보안 파일 공유를 위해 Samba4를 설정하는 방법을 보여주었습니다. 아래 피드백 양식을 사용하여 의견을 공유해 주세요.