태그 글 보관함: wireguard

우분투18.04 LTS VPN 와이어가드 Wireguard 설치

우분투 18.04 서버에서 VPN 서버로 와이어가드(Wireguard)를 설치해서 윈도우10 클라이언트로 와이어가드 VPN을 거쳐 인터넷에 접속하는 방법을 설명한다.

VPN 하면 OpenVPN을 많이 쓰는데 OpenVPN 보다 와이어가드가 좋은 이유는
1. OpenVPN 보다 빠름.
2. 코드량이 적어서 공격 당할 곳이 적다. (소스 코드가 4000 라인이라던데)
3. (OpenVPN 보다는) 설치 설정이 간단.

OpenVPN 은 인증 방식이나 암호화 방법을 유저가 설정해서 사용하는데 옵션이 많다보니 잘못 건드릴 경우에는 오히려 보안상 허점이 될 수 있는데, 와이어가드는 안전한 방법 하나를 정해서 사용하다, 문제가 생기면 그걸 바꾸는 방식으로 한단다.

IP 포워딩 설정

아래 파일을 열어서 net.ipv4.ip_forward=1 부분을 주석 해제하고 리부팅한다.

리부팅 후 net.ipv4.ip_forward=1 이 되어있는지 확인

와이어가드 설치 순서

와이어가드 인스톨 가이드대로 진행

저장소 추가. 아래 커맨드 입력 후 도중에 ENTER 키를 누르자.

add-apt-repository 가 없으면 설치

와이어가드 설치

암호키 만들기. 마지막에 출력되는 공개키는 와이어가드 클라이언트 설정에 적어 넣으므로 어딘가에 잠시 보관해 두자.

conf 파일을 만든다.

wg0.conf 파일 내용

Address 는 와이어가드가 네트워크 인터페이스를 wg0 이라는 이름으로 추가하는데 거기서 사용할 IP 주소이다.
오라클 클라우드의 서버에서 10.0.0.x 대는 사용하니까 10.0.1.x 대를 사용해야 한다.
10.0.0.1로 지정했다가 VPN 접속을 통해서 인터넷이 연결 안되서 한참 헤맸다. 꼭 안쓰는 비어있는 IP 주소 대역을 지정해야 된다.

SaveConfig 는 와이어가드 실행, 종료시 이 conf 파일에 사용한 설정을 저장한다. false 로 해도 된다.
PostUp, PostDown 은 와이어가드 실행, 종료시 실행할 커맨드이다. ens3 은 네트워크 인터페이스 이름이므로 ifconfig 커맨드로 확인해서 바꾸자.
ListenPort 는 서버의 접속할 UDP 포트번호인데 OpenVPN 포트와 같은걸로 지정했다. (오라클 클라우드 서큐리티 리스트에 1194 포트를 이미 열어둬서…)

PublicKey 에는 클라이언트에서 만든 공개키를 넣는다.
AllowdIPs 는 클라이언트의 IP 대역을 지정한다.

iptable 에 udp 포트도 열어주고…

와이어가드를 conf 파일을 지정해서 기동하자.

한번 conf 파일 지정해서 기동했으면 다음부터는 conf 파일 지정 없이 기동할 수 있다.

와이어가드를 끌때는

와이어가드 윈도우10 클라이언트 설정

윈도우즈용으로 받으면 된다. 4메가 밖에 안한다.
다운로드 – https://www.wireguard.com/install/

1. 설치 후에 실행.
2. 실행 후 화면에서 왼쪽 아래 터널추가 버튼을 눌러서, 빈 터널을 추가를 선택.
3. 이름은 적당히 넣으면 되고, 공개키 부분을 복사해서 wg0.conf 의 [Peer] 부분에 있던 PublicKey 에 넣는다.
4. 아래 설정을 쓰는 곳에 아래 내용을 입력하고 저장한다.

PrivateKey 는 클라이언트의 개인키. 그대로 둔다.
Address 는 클라이언트가 사용할 IP (대역이 아니니 /32 로 지정)
DNS 는 DNS 서버. 1.1.1.1은 클라우드플레어의 DNS 주소이고 구글은 8.8.8.8. 취향따라 쓰자. (내 경우에는 이걸 지정안하면 인터넷 접속이 안된다)
PublicKey 에는 서버의 공개키를 적어 넣는다.
AllowdIPs 는 클라이언트에서 VPN 서버를 경유할 IP 대역이다. 0.0.0.0/0 은 모든 IP를 VPN 서버를 경유해서 접속하겠다는 설정이다.
Endpoint 는 와이어가드 서버의 IP 주소와 포트번호를 적는다.

설정은 이게 끝이다. VPN 서버에 접속하고, IP가 서버의 IP로 바뀌었는지 확인한다.
IP 확인 사이트 – https://www.whatsmyip.org/