공유기에 연결된 라즈베리 파이의 IoT 서버에 외부 인터넷에서 연결할 때 VPN을 사용합니다.
미리 해두어야할 일
포트 51820은 포트 포워딩으로 열어두어야 합니다.
공유기에서 외부에 포트 열기라즈베리 파이에 VPN 서버 설치하기
만약 이미 라즈베리 파이에 로그인중이라면 다음 명령어를 실행하여 홈 디렉토리로 이동합니다.
cd ~
다음 스크립트를 실행합니다.
curl -L https://install.pivpn.io | bash
다운로드가 끝나고 PiVPN Automated Installer 화면이 나오면 Enter를 누릅니다.
Static IP Needed 화면이 나오면 Enter를 누릅니다. Choose An interface 화면이 나오면 eth0를 선택하고 Enter를 누릅니다. DHCP Reservation 화면이 나오면 <No>를 선택하고 Enter를 누릅니다. Static IP Address 화면이 나오면 <Yes>를 선택하고 Enter를 누릅니다. IP Conflict 화면이 나오면 <Ok>를 선택하고 Enter를 누릅니다. Local Users 화면이 나오면 <Ok>를 선택하고 Enter를 누릅니다. Choose A User 화면이 나오면 pi와 <Ok>를 선택하고 Enter를 누릅니다. Installation mode 화면이 나오면 WireGuard와 <Ok>를 선택하고 Enter를 누릅니다. Default wireguard Port 화면이 나오면 지정된 값(51820)을 그대로 두고 <Ok>를 선택하고 Enter를 누릅니다. 포트 51820는 라우터(공유기)에서 포트 포워딩(port forwarding)으로 열어두어야만 VPN이 제대로 작동합니다. Confirm Custom Port Number 화면이 나오면 <Yes>를 선택하고 Enter를 누릅니다. DNS Provider 화면이 나오면 <Ok>를 선택하고 Enter를 누릅니다. Public IP or DNS 화면이 나오면 DNS Entry와 <Ok>를 선택하고 Enter를 누릅니다. 여기서는 duckdns.org의 도메인을 사용하는 것을 전제로 하고 있습니다. PiVPN Setup(DNS name) 화면이 나오면 gildong777.duckdns.org와 같이 본인의 도메인을 입력하고 <Ok>를 선택하고 Enter를 누릅니다. 여기서 gildong777.duckdns.org은 예를 든 것이며 실제 도메인과는 상관이 없습니다. Confirm DNS Name 화면이 나오면 <Yes>를 선택하고 Enter를 누릅니다. Server Information 화면이 나오면 <Ok>를 선택하고 Enter를 누릅니다. Unattended Upgrade 화면이 나오면 <Ok>를 선택하고 Enter를 누릅니다. Unattended Upgrade(Security patches) 화면이 나오면 <Yes>를 선택하고 Enter를 누릅니다. Installation Complete 화면이 나오면 <Ok>를 선택하고 Enter를 누릅니다. Reboot 화면이 나오면 <Yes>를 선택하고 Enter를 누릅니다.부팅이 완료되면 다시 PuTTY로 접속하여 후속 작업을 합니다.
VPN 사용자 관리하기
pivpn -l02 사용자 추가하기
pivpn -a -n config-nameconfig-name은 VPN을 사용할 기기별로 별도로 붙인 이름입니다. 예를들면 myPhone, myPC, myPAD등으로 지정할 수 있습니다. mpPhone이 추가되었으므로 pivpn -l 명령어로 내용을 표시할 수 있습니다. /home/pi/configs 폴더에는 myPhone.conf라는 파일이 생깁니다. 이 파일은 클라이언트 기기에 전달하여 설치하여야 합니다. 03 사용자 정보를 QR코드로 표시하기
pivpn -qr config-name
앞에서 등록한 myPhone을 QR코드로 표시해 봅시다.
모바일 폰에 설치된 WireGuard 클라이언트 소프트웨어에서 이 QR코드를 읽어서 설치할 수 있습니다.
04 사용자 삭제하기pivpn -r config-name
VPN 사용자 설정 파일을 PC로 복사하기
VPN 클라이언트 사용하기 (PC)
앞에서 다운로드 받은 파일을 열어서 설치를 시작합니다. 설치를 위한 특별한 조작없이 설치가 완료되고 자동으로 실행됩니다.
03 Tunnel(설정 정보 파일) 가져오기WireGuard 초기 화면에서 Add tunnel 또는 Import tunnel(s) from file 버튼을 누릅니다. 여기서 tunnel은 VPN 서버에서 지정한 사용자 설정 파일을 말합니다.
탐색기에서 myPC.conf 파일을 선택하여 가져옵니다.
04 Tunnel 활성화/비활성화 하기설치된 tunnel인 myPC가 선택되어 있는 상태에서 Activate 버튼을 누르면 활성화됩니다. 활성화된 상태에서 Deactivate 버튼을 누르면 비활성화 상태로 바뀝니다.
Tunnel이 활성화된 상태에서는 공유기 안의 IoT서버에 접속할 수 있습니다. 이 때 브라우저를 통하여 외부 인터넷에 접속하면 실제로는 라즈베리 파이에 있는 VPN서버를 통하여 접속하게 됩니다.
이렇게 VPN을 통하여 인터넷을 사용하면 안전하지 않은 개방 와이파이 상태에서도 보안을 지킬 수 있습니다.
VPN 클라이언트 사용하기 (안드로이드,IOS)
Play 스토어에서 wireguard를 검색하여 설치합니다.
02 Tunnel(설정 정보 파일) 가져오기앱을 실행하고 플러스 버튼을 누릅니다.
설치 선택 옵션이 3가지가 있는데, IMPORT FROM FILE OR ARCHIVE를 선택합니다.
설치된 tunnel인 myPhone이 선택되어 있는 상태에서 버튼 버튼을 누르면 활성화됩니다. 활성화된 상태에서 버튼 버튼을 누르면 비활성화 상태로 바뀝니다.
Tunnel이 활성화된 상태에서는 공유기 안의 IoT서버에 접속할 수 있습니다.