• Skip to primary navigation
  • Skip to main content

IoTmaker

사물인터넷에 대한 모든 것 여기서 해결하셔요!

  • 홈
  • 책:마이크로파이썬을 활용한 사물인터넷
  • 책:따라 하면서 배우는 사물인터넷
  • 온라인 교육 코스
  • 새로운 소식
  • 의견보내기
  • 내 수강정보
  • 로그인
  • 회원가입

라즈베리 파이에 VPN 설치하기

책에서 사용하는 부품 구입하기 VPN은 가상사설망(virtual private network)을 의미합니다. 공유기에 연결된 라즈베리 파이에 VPN 서버를 설치하고, 외부 인터넷에서 접속이 되는 노트북이나 모바일 기기에 VPN 클라이언트를 설치하면, 마치 공유기 내부에 연결된 것 처럼 사용할 수 있습니다. 이 때 접속이 되는 클라이언트에는 VPN 서버에 등록된 인증서가 설치되고, VPN 서버와 클라이언트 사이에 송수신되는 모든 데이터는 암호화되므로 보안은 유지됩니다.

공유기에 연결된 라즈베리 파이의 IoT 서버에 외부 인터넷에서 연결할 때 VPN을 사용합니다.

여기서는 라즈베리 파이에서 PiVPN을 사용하여 VPN을 관리합니다. PiVPN에서 지원하는 VPN 소프트웨어는 WireGuard와 OpenVPN이 있는데, WireGuard 중심으로 설명합니다. WireGuard는 최근에 발표된 소프트웨어인데 속도가 빠르고 모바일 기기에서 배터리 소모가 적은 것으로 알려져 있습니다.
미리 해두어야할 일
VPN 설치 작업전에 다음 두 가지 일은 미리 해두는 것이 좋습니다.

duckdns.org에서 도메인 설정하기

포트 51820은 포트 포워딩으로 열어두어야 합니다.

공유기에서 외부에 포트 열기
라즈베리 파이에 VPN 서버 설치하기
라즈베리 파이에 PuTTY로 로그인합니다.

만약 이미 라즈베리 파이에 로그인중이라면 다음 명령어를 실행하여 홈 디렉토리로 이동합니다.

cd ~

다음 스크립트를 실행합니다.

curl -L https://install.pivpn.io | bash

다운로드가 끝나고 PiVPN Automated Installer 화면이 나오면 Enter를 누릅니다.

PiVPN Automated Installer 화면
Static IP Needed 화면이 나오면 Enter를 누릅니다.

Static IP Needed 화면
Choose An interface 화면이 나오면 eth0를 선택하고 Enter를 누릅니다.

Choose An interface 화면
DHCP Reservation 화면이 나오면 <No>를 선택하고 Enter를 누릅니다.

DHCP Reservation 화면
Static IP Address 화면이 나오면 <Yes>를 선택하고 Enter를 누릅니다.

Static IP Address 화면
IP Conflict 화면이 나오면 <Ok>를 선택하고 Enter를 누릅니다.

IP Conflict 화면
Local Users 화면이 나오면 <Ok>를 선택하고 Enter를 누릅니다.

Local Users 화면
Choose A User 화면이 나오면 pi와 <Ok>를 선택하고 Enter를 누릅니다.

Choose A User 화면
Installation mode 화면이 나오면 WireGuard와 <Ok>를 선택하고 Enter를 누릅니다.

Installation mode 화면
Default wireguard Port 화면이 나오면 지정된 값(51820)을 그대로 두고 <Ok>를 선택하고 Enter를 누릅니다. 포트 51820는 라우터(공유기)에서 포트 포워딩(port forwarding)으로 열어두어야만 VPN이 제대로 작동합니다.

Default wireguard Port 화면
Confirm Custom Port Number 화면이 나오면 <Yes>를 선택하고 Enter를 누릅니다.

Confirm Custom Port Number 화면
DNS Provider 화면이 나오면 <Ok>를 선택하고 Enter를 누릅니다.

DNS Provider 화면
Public IP or DNS 화면이 나오면 DNS Entry와 <Ok>를 선택하고 Enter를 누릅니다. 여기서는 duckdns.org의 도메인을 사용하는 것을 전제로 하고 있습니다.

Public IP or DNS 화면
PiVPN Setup(DNS name) 화면이 나오면 gildong777.duckdns.org와 같이 본인의 도메인을 입력하고 <Ok>를 선택하고 Enter를 누릅니다. 여기서 gildong777.duckdns.org은 예를 든 것이며 실제 도메인과는 상관이 없습니다.

PiVPN Setup(DNS name) 화면
Confirm DNS Name 화면이 나오면 <Yes>를 선택하고 Enter를 누릅니다.

Confirm DNS Name 화면
Server Information 화면이 나오면 <Ok>를 선택하고 Enter를 누릅니다.

Server Information 화면
Unattended Upgrade 화면이 나오면 <Ok>를 선택하고 Enter를 누릅니다.

Unattended Upgrade 화면
Unattended Upgrade(Security patches) 화면이 나오면 <Yes>를 선택하고 Enter를 누릅니다.

Unattended Upgrade(Security patches) 화면
Installation Complete 화면이 나오면 <Ok>를 선택하고 Enter를 누릅니다.

Installation Complete 화면
Reboot 화면이 나오면 <Yes>를 선택하고 Enter를 누릅니다.

Reboot 화면

부팅이 완료되면 다시 PuTTY로 접속하여 후속 작업을 합니다.

VPN 사용자 관리하기
01 사용자 표시하기

pivpn -l
사용자 표시 화면
02 사용자 추가하기

pivpn -a -n config-name
config-name은 VPN을 사용할 기기별로 별도로 붙인 이름입니다. 예를들면 myPhone, myPC, myPAD등으로 지정할 수 있습니다.

사용자 추가 화면
mpPhone이 추가되었으므로 pivpn -l 명령어로 내용을 표시할 수 있습니다.

/home/pi/configs 폴더에는 myPhone.conf라는 파일이 생깁니다. 이 파일은 클라이언트 기기에 전달하여 설치하여야 합니다.

FileZilla에 표시된 .conf 파일 화면
03 사용자 정보를 QR코드로 표시하기

pivpn -qr  config-name

앞에서 등록한 myPhone을 QR코드로 표시해 봅시다.

QR 코드 표시 화면

모바일 폰에 설치된 WireGuard 클라이언트 소프트웨어에서 이 QR코드를 읽어서 설치할 수 있습니다.

04 사용자 삭제하기

pivpn -r  config-name
여기에서는 myPhone 외에 myPC와 myPAD를 추가로 설치하여 모바일 폰과 PC, 패드에서 WireGuard VPN을 사용하기로 합시다.
VPN 사용자 설정 파일을 PC로 복사하기
01 라즈베리 파이에서 사용자 설정 파일 보기

pivpn -l 명령어로 사용자를 표시할 수 있습니다. cd configs 명령어로 configs 디렉토리로 이동한 후, ls 명령어로 디렉토리에 있는 .conf 파일을 확인할 수 있습니다.

사용자와 설정 파일 보기
02 FileZilla에서 설정 파일을 PC로 옮겨오기

FileZilla에서 라즈베리 파이에 접속하여 /home/pi/configs 디렉토리 아래에 있는 .conf 파일을 PC로 드래그하여 복사해 올 수 있습니다. 이 때 PC의 저장 위치는 모바일에서 접근할 수 있는 클라우드 폴더(Dropbox, Google Drive, OneDrive 등)를 사용하는 것이 좋습니다.

PC로 파일 복사하기 화면
VPN 클라이언트 사용하기 (PC)
01 클라이언트 소프트웨어 설치하기

WireGuard 다운로드 를 누르고 Download for 64-bit 버튼을 선택합니다. 저장 폴더를 지정하고 다운로드를 시작합니다.

WireGuard 다운로드 화면
02 WireGuard 설치하기

앞에서 다운로드 받은 파일을 열어서 설치를 시작합니다. 설치를 위한 특별한 조작없이 설치가 완료되고 자동으로 실행됩니다.

03 Tunnel(설정 정보 파일) 가져오기

WireGuard 초기 화면에서 Add tunnel 또는 Import tunnel(s) from file 버튼을 누릅니다. 여기서 tunnel은 VPN 서버에서 지정한 사용자 설정 파일을 말합니다.

WireGuard 초기 화면

탐색기에서 myPC.conf 파일을 선택하여 가져옵니다.

myPC.conf 파일 가져오기 화면
04 Tunnel 활성화/비활성화 하기

설치된 tunnel인 myPC가 선택되어 있는 상태에서 Activate 버튼을 누르면 활성화됩니다. 활성화된 상태에서 Deactivate 버튼을 누르면 비활성화 상태로 바뀝니다.

Tuennel 비활성화된 화면
Tuennel 활성화된 화면

Tunnel이 활성화된 상태에서는 공유기 안의 IoT서버에 접속할 수 있습니다. 이 때 브라우저를 통하여 외부 인터넷에 접속하면 실제로는 라즈베리 파이에 있는 VPN서버를 통하여 접속하게 됩니다.

이렇게 VPN을 통하여 인터넷을 사용하면 안전하지 않은 개방 와이파이 상태에서도 보안을 지킬 수 있습니다.

VPN 클라이언트 사용하기 (안드로이드,IOS)
여기서는 안드로이드를 기준으로 클라이언트 설정 방법을 설명합니다. IOS의 경우에도 안드로이드와 유사한 방식으로 설정을 진행하면 됩니다.
01 앱 설치하기

Play 스토어에서 wireguard를 검색하여 설치합니다.

WireGuard 앱 화면
02 Tunnel(설정 정보 파일) 가져오기

앱을 실행하고 플러스 버튼을 누릅니다.

터널 추가 화면

설치 선택 옵션이 3가지가 있는데, IMPORT FROM FILE OR ARCHIVE를 선택합니다.

만약 SCAN FROM QR CODE를 선택하면 카메라를 이용하여 QR 코드를 읽으면 됩니다. 라즈베리 파이에서 pivpn -qr myPhone 명령어로 QR코드를 화면에 표시할 수 있습니다.
터널 추가 방법 선택 화면
myPhone.conf 파일을 선택하여 가져옵니다.

myPC.conf 파일 가져오기 화면
03 Tunnel 활성화/비활성화 하기

설치된 tunnel인 myPhone이 선택되어 있는 상태에서 버튼 버튼을 누르면 활성화됩니다. 활성화된 상태에서 버튼 버튼을 누르면 비활성화 상태로 바뀝니다.

Tuennel 비활성화된 화면
Tuennel 활성화된 화면

Tunnel이 활성화된 상태에서는 공유기 안의 IoT서버에 접속할 수 있습니다.

Copyright © 2025 ·로그인