글 작성자: drizzle_
728x90


무모하지 않았던 도전의 시작

여행지를 고르던 중 19년 12월 말에 대만으로 가기로 결정하였다.

착각이었지만, 대만도 중국처럼 검열이 심해 Great Firewall이 있을 줄 알고, VPN을 이용하기로 하였다.

중국에서는 미리 구입해둔 NordVPN이 자주 끊긴다는 소리를 많이 들었기에, 직접 VPN을 구축하기로 하였다.

집에 남는 컴퓨터가 많아 어느 컴퓨터에 VPN 을 설치할까 고민하던 중, Pi-Hole, Samba 등으로 고문받고 있는라즈베리파이에 VPN을 설치하기로 하였다.

모뎀에 포트가 2개 정도 남아서 새로 아이피를 받을지 아니면 지금 쓰고 있는 아이피를 계속 쓸 건지 고민하던 중 그냥 지금 있는 아이피를 쓰기로 하였다.

준비하기

먼저 하드웨어적인 면에서 준비를 시작하였다. 라즈베리파이는 툭하면 뜨거워 졌기에 알리익스프레스에서 라즈베리파이 쿨러+케이스를 구입하였다.

전원은 공유기에 꽂기로 하고 랜선이 없어 다이소에서 CAT.6랜선을 구입했다.

찾아보니 SD카드도 없어 다이소에 또 한 번 가서 SD카드를 구입하였다.

etcher로 SD카드에 라즈비안을 Flashing 한 후 ssh파일을 만들어 ssh접속이 가능하게 만들었다.

공유기는 방화벽 역할을 하지 못하기에, SSH포트를 바꾸었다.

sudo nano /etc/ssh/sshd_config

Port 22로 되어있던걸 다른 걸로 바꾸면 된다.(*안 겹치게)

 

pi사용자의 비밀번호를 매우 매우 복잡하게 변경한다.

passwd

DDNS 서비스 설정하기

자신이 이용하는 서비스가 고정아이피라면 이 작업이 필요 없지만, 글 쓰는 사람은 고정아이피를 사용하지 않고 유동 아이피를 사용하기에 DDNS 서비스를 설정할 거다.

 

글 쓰는 사람은 iPTIME공유기를 사용하기에 아이피타임 DDNS를 사용할 거다.

OpenVPN을 설치하기

정확히 말하면 빠른 설정을 위해 PiVPN을 설치할 것이지만, PiVPN에서 OpenVPN을 이용할 수 있다.

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

Choose a USER가 뜨면 Pi계정을 선택해준다.

WireGuard라는 옵션이 새로 추가되었는데, 속도가 더 빠르고 전력 소비도 더 적다고 한다.

언제든지 Pihole을 재 설정할 수 있지만 귀찮으니 OpenVPN으로 설정한다.(와이어 가드는 설치가 매우 오래 걸린다.)

 

중간에 커널을 업데이트할 거냐고 물어보는데 꼭 할 거라고 한다. 시간은 오래 걸리지만 나중에 라즈베리파이가 apt관련 커맨드를 실행할 때 커널을 업데이트할 건지를 안 물어보고 커널을 업데이트하지 않으면 VPN설치가 진행되지 않는다.

프로토콜을 물어볼 경우 UDP를 설정해준다. TCP는 패킷 로스에 민감하여 한 번에 UDP보다 많은 패킷을 전송한다.(속도 저하가 될 수 있다.)

Port는 공격에 취약한 기본 포트 대신 임의의 포트를 사용할 것을 추천한다.

고정아이피를 사용하지 않고 DDNS 서비스를 사용하기에 DNS Entry를 선택한다. 그 후 자신의 DDNS주소를 입력하면 된다.

이제 서버 키가 자동으로 생성될 것이고, 설치는 완료될 것이다.

만약 보안 패치가 필요하다고 하면 보안 패치를 진행하는 것을 추천한다.(오래 걸리지는 않는다)

테스트

이제 PiVPN이 제대로 설치되었는지 테스트해볼 것이다.

pivpn

이제 VPN 연결을 위한 VPN유저를 추가하고. ovpn파일을 받아낼 것이다.

pivpn add

위 커맨드를 실행하면 아래와 같이 나올건데, 아래와 비슷하게 입력하면 된다.

Enter a Name for the Client: 클라이언트이름입력(구분용)
How many days should the certificate last?  만료일(기본:1080)
Enter the password for the client:
Enter the password again to verify:
spawn ./easyrsa build-client-full taiwan

Note: using Easy-RSA configuration from: /etc/openvpn/easy-rsa/vars
Using SSL: openssl OpenSSL 1.1.1d  10 Sep 2019
Generating an EC private key
writing new private key to '/etc/openvpn/easy-rsa/pki/easy-rsa-9607.ut5aJq/tmp.3tgcE5'
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:

중략

========================================================
Done! taiwan.ovpn successfully created!
school_PC.ovpn was copied to:
  /home/pi/ovpns
for easy transfer. Please use this profile only on one
device and create additional profiles for other devices.
========================================================

이제. ovpn파일을 데리고 오면 된다.

OpenVPN은 하나의 ovpn파일로 하나의 클라이언트만 접속을 할 수 있기에 여러 대의 장비에서 VPN을 이용하려면 여러 개의 ovpn파일을 생성해야 한다.

 

방화벽 허용하기

sudo ufw allow OpenVPN포트

테스트

먼저, ovpn프로필을 추가해준다.

VPN을 켜기 전에 ip를 확인한다.

VPN을 켜고 아이피를 확인해본다.

축하한다, VPN서버가 구축되었다.

728x90
Email: b1@yeonw.me / 여기를 눌러 다른 연락 수단들 알아보기