1편에서 집에 남는 구형 PC에 VirtualBox와 우분투(Ubuntu)를 설치하고, 외부에서도 SSH로 접속할 수 있는 나만의 홈 서버를 완성했습니다. 서버를 켜 두고 있는데 어딘가 아쉬운 느낌, 드시지 않나요?
이번 2편에서는 그 서버에 'Samba(삼바)'를 설치하여, 집 안의 모든 기기(Windows PC, Mac, 스마트폰)에서 마치 외장 하드처럼 자유롭게 파일을 주고받을 수 있는 나만의 NAS(Network Attached Storage)를 구축합니다. 월 구독료를 내는 클라우드 서비스 없이, 한 번 설정으로 용량 걱정 없이 파일을 공유해 보세요.
1. Samba란 무엇인가? NAS와의 관계
NAS(Network Attached Storage)란 네트워크에 연결된 저장 장치로, 쉽게 말하면 '네트워크로 연결해 쓰는 공용 외장 하드'입니다. 시중에 판매하는 Synology, QNAP 같은 전용 NAS 장비는 100만 원을 훌쩍 넘기도 하죠. 하지만 집에 남는 PC와 오픈소스 소프트웨어 Samba만 있으면, 그 기능의 80% 이상을 무료로 구현할 수 있습니다.
Samba(삼바)는 리눅스 서버가 Windows의 파일 공유 프로토콜인 SMB/CIFS(Server Message Block)를 사용할 수 있도록 해주는 오픈소스 소프트웨어입니다. 덕분에 우분투 서버가 삼바를 설치하면, Windows 탐색기에서 마치 같은 네트워크에 있는 Windows 공유 폴더처럼 접근할 수 있게 됩니다. Mac과 스마트폰도 물론 지원합니다.
- Windows 탐색기에서
Z:\드라이브처럼 네트워크 드라이브 연결 - Mac Finder에서 직접 파일 열기·저장
- 스마트폰 앱으로 집 서버 영상 스트리밍
- 사진·문서·동영상을 용량 제한 없이 백업
- 가족 모두가 파일을 공유하는 홈 클라우드
2. 시작 전 준비사항 확인
이 가이드는 1편을 완료한 상태를 기준으로 합니다. 아래 사항이 모두 준비되어 있는지 먼저 확인해 주세요.
| 준비사항 | 세부 내용 | 확인 |
|---|---|---|
| Ubuntu Server | Ubuntu 22.04 LTS 또는 24.04 LTS 실행 중 | ☐ |
| SSH 접속 | 터미널에서 서버에 SSH 접속 가능 | ☐ |
| 내부 IP 주소 | 우분투 서버의 내부 IP(예: 192.168.0.x) 파악 | ☐ |
| sudo 권한 | 설치 시 sudo 명령어 실행 가능한 계정 | ☐ |
서버의 내부 IP를 아직 모른다면, SSH 접속 후 아래 명령어로 확인하세요.
ip addr show | grep "inet " | grep -v "127.0.0.1"
inet 192.168.0.XX/24 형태로 출력되는 숫자가 여러분 서버의 내부 IP입니다. 이 숫자를 메모해 두세요. 이후 모든 연결 설정에서 계속 사용합니다.
3. Samba 설치하기
SSH로 우분투 서버에 접속한 상태에서 아래 명령어를 순서대로 실행합니다. 명령어 한 줄씩 복사해서 붙여넣기 하는 것을 권장합니다.
① 패키지 목록 업데이트
sudo apt update && sudo apt upgrade -y
서버의 패키지 목록을 최신 상태로 갱신하고, 기존 패키지를 업그레이드합니다. 몇 분 정도 소요될 수 있습니다.
② Samba 설치
sudo apt install samba -y
③ 설치 확인
설치가 정상적으로 완료되었는지 버전을 확인합니다.
samba --version
Version 4.x.x 형태로 출력되면 설치가 완료된 것입니다.
④ Samba 서비스 상태 확인
sudo systemctl status smbd
Active: active (running)이 초록색으로 표시되면 Samba가 정상 동작 중입니다.active (running)이라고 녹색으로 표시되어야 정상입니다. 만약 inactive라면 sudo systemctl start smbd 명령어로 수동 실행하세요. 확인 후 q를 눌러 빠져나옵니다.
4. 공유 폴더(Share) 생성 및 권한 설정
외부에서 접근할 공유 폴더를 만들고 권한을 설정합니다. 이 폴더가 NAS의 '드라이브' 역할을 합니다.
① 공유 폴더 생성
/srv/samba/ 경로 아래에 nas라는 이름의 공유 폴더를 만듭니다. 폴더 이름은 원하는 대로 변경해도 됩니다.
sudo mkdir -p /srv/samba/nas
② 폴더 권한 설정
모든 사용자가 읽고 쓸 수 있도록 권한을 부여합니다.
sudo chmod 777 /srv/samba/nas
chmod 777은 모든 사용자에게 읽기·쓰기·실행 권한을 부여하는 가장 개방적인 설정입니다. 이는 가정 내 내부망 전용 NAS에 적합합니다. 외부 인터넷에 직접 노출하는 환경이라면, 아래 섹션 6의 방화벽 설정으로 접근을 내부망으로 제한해야 합니다.
③ Samba 전용 사용자 계정 및 비밀번호 설정
Samba는 리눅스 시스템 계정과는 별도의 비밀번호를 사용합니다. 아래 명령어로 현재 로그인한 우분투 계정에 Samba 접속용 비밀번호를 설정합니다. your_username을 본인의 우분투 계정명으로 바꿔주세요.
sudo smbpasswd -a your_username
명령어를 실행하면 비밀번호를 두 번 입력하라는 프롬프트가 나옵니다. 이 비밀번호는 나중에 Windows, Mac, 스마트폰에서 NAS에 접속할 때 사용합니다.
whoami 명령어로 확인하세요.
5. smb.conf 설정 파일 편집
Samba의 핵심 설정 파일인 smb.conf를 편집하여 공유 폴더를 등록합니다. 이 파일 하나가 NAS의 모든 동작을 제어합니다.
① 설정 파일 백업 (강력 권장)
수정 전에 원본 설정 파일을 반드시 백업합니다. 설정 실수 시 복구를 위해 꼭 필요한 단계입니다.
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
② 설정 파일 편집
sudo nano /etc/samba/smb.conf
파일을 열면 기존 내용이 많이 보입니다. 당황하지 말고 파일의 맨 아래로 스크롤한 뒤, 아래 내용을 그대로 추가합니다. (Ctrl + End로 빠르게 맨 아래로 이동할 수 있습니다.)
추가할 설정 내용
[NAS]
comment = My Home NAS
path = /srv/samba/nas
browsable = yes
read only = no
guest ok = no
valid users = your_username
create mask = 0664
directory mask = 0775
force group = your_username
각 설정 항목의 의미는 다음과 같습니다.
| 설정 항목 | 설명 |
|---|---|
| [NAS] | 네트워크에서 보이는 공유 폴더 이름. 원하는 이름으로 변경 가능. |
| path | 실제 공유할 폴더 경로 |
| browsable | yes: 네트워크 탐색 시 목록에 표시 |
| read only | no: 쓰기 허용. yes로 하면 읽기 전용. |
| guest ok | no: 비밀번호 없는 게스트 접근 차단 (보안) |
| valid users | 접속을 허용할 사용자명 (본인 계정으로 변경) |
your_username으로 표시된 부분을 모두 본인의 우분투 계정명으로 교체합니다. 저장은 Ctrl + O, 확인은 Enter, 종료는 Ctrl + X입니다.
③ 설정 파일 문법 검사
저장 후 설정 오류 여부를 자동으로 검사합니다. 이 명령어 하나로 실수를 사전에 막을 수 있습니다.
testparm
Loaded services file OK. 메시지가 뜨면 설정 파일에 문법 오류가 없는 것입니다.
④ Samba 서비스 재시작
변경된 설정을 적용하기 위해 Samba 서비스를 재시작합니다.
sudo systemctl restart smbd nmbd
6. 방화벽(UFW) 설정
우분투는 기본적으로 UFW(Uncomplicated Firewall)라는 방화벽이 있습니다. Samba가 사용하는 포트를 허용해야 정상 접속이 가능합니다.
① 방화벽 상태 확인
sudo ufw status
② Samba 포트 허용
UFW에 Samba 프로필이 이미 등록되어 있어 간단한 명령어 하나로 필요한 포트(137, 138, 139, 445번)를 한 번에 허용할 수 있습니다.
sudo ufw allow Samba
③ 내부 네트워크만 허용 (선택 사항, 보안 강화)
보안을 더 강화하고 싶다면, 내부 네트워크(192.168.0.0/24) 대역에서의 접근만 허용하도록 설정할 수 있습니다. 192.168.0.0/24 부분을 본인의 공유기 대역에 맞게 수정하세요.
sudo ufw allow from 192.168.0.0/24 to any port 445
sudo ufw allow from 192.168.0.0/24 to any port 139
sudo ufw enable로 할 수 있으나, SSH 포트(22번 또는 2222번)를 먼저 허용하지 않으면 SSH 접속이 끊어질 수 있으므로 주의하세요.
7. 외부에서 집안 Samba 서버에 접속하기 (포트 & 보안)
집 안 Wi-Fi에서는 문제없이 연결됩니다. 그런데 밖에서도 내 집 NAS에 접속하고 싶다면 어떻게 해야 할까요? 이 섹션에서는 Samba가 사용하는 포트의 의미부터, 외부 개방의 위험성, 그리고 안전하게 외부에서 접속하는 올바른 방법까지 깊이 있게 다룹니다.
① Samba(SMB)가 사용하는 서비스 포트
Samba 서버가 동작하기 위해 내부적으로 사용하는 포트는 총 4개입니다. 각 포트가 어떤 역할을 하는지 이해하면 방화벽 설정과 보안 판단에 큰 도움이 됩니다.
| 포트 | 프로토콜 | 역할 | 중요도 |
|---|---|---|---|
| 445 | TCP | 최신 SMB 파일 공유를 위한 핵심 포트. NetBIOS 없이 직접 파일 전송. | 필수 |
| 139 | TCP | NetBIOS 세션 서비스. 구형 Windows 시스템 호환용. | 보조 |
| 137 | UDP | NetBIOS 이름 해석. 로컬 네트워크에서 컴퓨터 이름으로 서버를 찾을 때 사용. | 로컬용 |
| 138 | UDP | NetBIOS 데이터그램. 로컬 네트워크 내 브로드캐스트 통신. | 로컬용 |
② 외부에 포트를 직접 여는 것은 왜 위험한가?
"공유기에서 TCP 445 포트를 포트포워딩하면 외부에서도 접속할 수 있지 않나요?" — 기술적으로는 맞습니다. 하지만 이 방법은 절대 권장하지 않으며, 실제로도 다음 두 가지 이유로 불가능하거나 위험합니다.
③ 안전하게 외부에서 접속하는 올바른 방법: VPN 사용
정답은 VPN(가상 사설망)입니다. 포트를 직접 여는 대신, 기기 간에 암호화된 보안 터널을 만들어 마치 집 안의 Wi-Fi에 연결된 것처럼 동작하게 합니다. 외부에서도 서버의 내부 IP(192.168.0.XX)로 그대로 접속할 수 있어, 별도 설정 변경이 전혀 필요 없습니다.
복잡한 서버 설정 없이 무료로 사용할 수 있는 두 가지 최신 VPN 솔루션을 소개합니다.
- 집 안 Wi-Fi에서 접속: 서버 내부 IP (
\\192.168.0.XX\NAS) 사용 → 바로 가능 - 외부(카페, 직장 등)에서 접속: Tailscale 또는 ZeroTier 설치 → 부여된 가상 IP로 동일하게 접속
- 절대 하면 안 되는 것: 공유기에서 TCP 445 포트 직접 개방 (랜섬웨어 표적 + ISP 차단)
8. Windows에서 네트워크 드라이브로 연결하기
드디어 실제 기기에서 연결해 볼 시간입니다! 같은 공유기에 연결된 Windows PC에서 진행합니다.
방법 1: 파일 탐색기에서 직접 연결
- Windows 파일 탐색기(Windows Explorer)를 엽니다.
- 주소창에 아래와 같이 입력하고 Enter를 누릅니다.
\\192.168.0.XX\NAS
(XX는 우분투 서버의 실제 내부 IP로 교체, NAS는 smb.conf에서 설정한 공유 이름) - 사용자명과 비밀번호 입력창이 나타나면,
smbpasswd로 설정한 계정 정보를 입력합니다. - 폴더가 열리면 연결 성공! 🎉
방법 2: 네트워크 드라이브로 고정 연결 (재부팅 후에도 유지)
- 파일 탐색기에서 왼쪽의 '내 PC'를 우클릭합니다.
- '네트워크 드라이브 연결(Map network drive)'을 선택합니다.
- 드라이브 문자(예: Z:)를 선택합니다.
- 폴더 경로에
\\192.168.0.XX\NAS를 입력합니다. - '로그인할 때 다시 연결(Reconnect at sign-in)' 체크박스를 선택합니다.
- '다른 자격 증명 사용(Connect using different credentials)'도 체크하고 마침을 클릭합니다.
- 계정 정보 입력 후, 이제 Z: 드라이브처럼 항상 연결됩니다.
9. Mac에서 연결하기
Mac에서도 Finder를 통해 손쉽게 연결할 수 있습니다.
- Mac 상단 메뉴바에서 '이동(Go)' → '서버에 연결(Connect to Server...)'을 클릭합니다. (⌘ Cmd + K 단축키)
- 서버 주소 입력창에 아래와 같이 입력합니다.
smb://192.168.0.XX/NAS - '연결(Connect)'을 클릭합니다.
- 계정명과 비밀번호를 입력하면, Finder 사이드바에 NAS 폴더가 마운트됩니다.
10. 스마트폰(안드로이드 / iOS)에서 연결하기
스마트폰에서도 앱을 통해 NAS에 접근할 수 있습니다. 같은 와이파이 네트워크에 연결된 상태여야 합니다.
안드로이드: Solid Explorer 또는 CX File Explorer
- Play 스토어에서 'CX File Explorer' 앱을 설치합니다. (무료)
- 앱 실행 후 왼쪽 메뉴에서 '네트워크(Network)'를 선택합니다.
- '새 위치 추가' 또는 '+' 버튼을 누릅니다.
- 프로토콜은 SMB를 선택합니다.
- 호스트(Host)에 서버 IP, 사용자명과 비밀번호를 입력합니다.
- 공유 이름(NAS)을 입력하고 연결합니다.
iOS(아이폰): 파일(Files) 앱에서 기본 연결
- 아이폰 기본 앱인 '파일(Files)' 앱을 엽니다.
- 오른쪽 상단의 '…(더 보기)' 버튼을 탭합니다.
- '서버에 연결(Connect to Server)'을 선택합니다.
- 서버 주소에
smb://192.168.0.XX를 입력하고 '다음(Next)'을 탭합니다. - 사용자명과 비밀번호를 입력하면 연결됩니다.
11. 자주 발생하는 오류 및 해결 방법
처음 설정할 때 자주 마주치는 오류 유형과 해결 방법을 정리했습니다.
🏠 마치며: 이제 진짜 '나만의 클라우드'가 생겼습니다
수고하셨습니다! 이제 여러분의 집에는 월 구독료가 0원인 개인 NAS 서버가 생겼습니다. Google Drive나 iCloud에 수십 GB를 올려두는 대신, 집에 남는 PC 한 대가 여러분의 파일을 묵묵히 지켜줍니다.
오늘 이 글에서 완성한 것
- Ubuntu 서버에 Samba 설치 및 서비스 실행
- 전용 공유 폴더 생성 및 smb.conf 설정
- 방화벽(UFW) 설정으로 보안 확보
- SMB 포트 이해 및 외부 접속 보안 원칙 습득
- Windows, Mac, 스마트폰 3종 기기 모두 연결 완료
다음 편에서는 이 홈 서버 위에 Nginx 웹 서버를 설치하고 나만의 개인 웹사이트나 블로그를 호스팅하는 방법을 알아보겠습니다. 설정 중 막히는 부분이 있으면 댓글로 남겨주세요! 집이나 어디나 우분투 서버 하나가 나만을 위해서 존재 하는것 만으로도 얼마나 든든한지 모릅니다. ㅎㅎ - 늘산 생각 -
← 이전 편
남는 PC로 개인 서버 만들기
(VirtualBox & 우분투)
현재 편
Ubuntu Samba로
나만의 NAS 만들기
