Ubuntu 20.04에서 WireGuard VPN 서버 및 클라이언트를 설정하는 방법

Ubuntu 20.04에서 WireGuard VPN 서버 및 클라이언트를 설정하는 방법

Wireguard를 사용하여 자체 호스팅 VPN 설정

VPN (가상 사설망)는 사용자의 컴퓨터가 직접 개인 네트워크에 연결된 것처럼 사용자가 원격으로 개인 네트워크에 연결할 수 있습니다. 이 기술은 처음에 내부 네트워크 위치에 실제로 존재하지 않는 직원이 회사 내부 사설망에 원격으로 액세스할 수 있도록 하기 위해 개발되었습니다.

VPN 서버는 내부 네트워크 위치에 배포됩니다. 이 서버는 공용 네트워크에 있으며 직원이 VPN 클라이언트를 사용하여 액세스할 수 있습니다. VPN 서버에 연결하려면 인증이 필요합니다. VPN 서버와 VPN 클라이언트 간의 통신은 터널링 프로토콜을 사용하여 보호됩니다. 이 통신은 암호화되거나 암호화되지 않을 수 있지만 일반적으로 대부분의 VPN 프로토콜에서는 암호화됩니다.

VPN의 또 다른 용도는 인터넷에 액세스할 때 익명성확보 하거나 일부 웹사이트에 액세스하는 동안 부과되는 지리적 제한을 우회하는 것입니다. 이 경우 사용자가 연결하려는 네트워크는 사설망이 아니라 인터넷입니다.

수년에 걸쳐 많은 VPN 프로토콜이 개발되었습니다. 이러한 프로토콜은 서버와 클라이언트 간의 통신을 위해 서로 다른 터널링 프로토콜과 암호화 알고리즘을 사용합니다.

최근 널리 사용되고 있는 그러한 프로토콜 중 하나는 Wireguard 입니다. Wireguard는 OpenVPN, IPSec과 같이 전통적으로 사용되는 잘 알려진 VPN 프로토콜보다 더 가볍고 간단하며 성능이 뛰어납니다. Windows, Mac OS 및 많은 수의 Linux 배포판에 이미 구현되어 있습니다. Linux에서는 커널 모듈로 구현됩니다. Ubuntu 20.04의 공식 리포지토리에서 사용할 수 있습니다.

이 기사에서는 Ubuntu 20.04에서 Wireguard VPN 서버 및 클라이언트를 설정하는 방법을 살펴봅니다.

설치

이 기사에서는 Ubuntu 20.04 Linode에 Wireguard 서버를 설정하고 Ubuntu 20.04가 설치된 로컬 컴퓨터에 Wireguard 클라이언트를 설정합니다.

패키지 wireguard는 Wireguard 서버와 클라이언트를 모두 설치합니다. 서버 시스템과 클라이언트 시스템 모두 에서 다음 명령실행합니다 .

sudo apt install wireguard

서버 구성

보안 키

Wireguard 연결을 인증하고 보호하기 위해 공개/개인 키 쌍 세트를 생성해야 합니다. 다음 명령을 사용하여 수행할 수 있습니다.

sudo su
cd /etc/wireguard
umask 077
wg genkey | tee private_key | wg pubkey > public_key

우리는 수퍼유저로서 모든 구성 작업을 수행하고 있습니다. 그 이유는 /etc/wireguard일반 사용자는 디렉토리 접근이 금지되어 있고, 일반 사용자는 sudo 권한만으로는 디렉토리 접근이 불가능하기 때문입니다.

다음으로 파일 생성 마스크를077 . 이는 프로세스에 의해 이 폴더에 새 파일이 생성될 때마다 해당 권한이 자동으로 077로 마스킹됨을 의미합니다. 예. 이 폴더에 권한이 777인 파일이 생성되면 해당 파일은 자동으로 마스킹되고 권한은 효과적으로 700이 됩니다. 이는 파일 소유자만 파일에 대한 모든 권한을 갖고 다른 모든 사람은 권한이 없도록 하기 위해 수행됩니다.

다음 줄 에서 서버에 대한 공개/개인 키 쌍생성 합니다. 파일 private_keypublic_key. 키를 보려면 다음을 실행하십시오.

cat private_key
cat public_key

Ubuntu 20.04에서 WireGuard VPN 서버 및 클라이언트를 설정하는 방법

개인 키를 복사합니다. 다음 단계에서 필요합니다.

참고: 개인 키를 공개적으로 공유하지 마십시오!

구성 파일

Wireguard 서버에 대한 구성 파일을 생성해 보겠습니다. 파일 이름을 선택할 수 있습니다. wg0.conf이 예제 에서는 파일 을 생성합니다 .

vim wg0.conf

파일에 다음을 추가합니다.

[Interface]
Address = 10.20.43.1/24
SaveConfig = true
ListenPort = 51190
PrivateKey = 

PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o  -j MASQUERADE; ip6tables -A FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE; ip6tables -D FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -D POSTROUTING -o  -j MASQUERADE

이전에 복사한 Private Key를 위 코드의 5행에 붙여넣습니다.

서버의 IP 주소와 다른(가상) 서브넷에 Wireguard를 구성 해야 합니다. 여기서는 서버에 10.20.43.1을 사용했고 클라이언트에 10.20.43.2를 사용할 것입니다. 여기에서 모든 서브넷을 사용할 수 있습니다. 서버 및 인터페이스의 IP 주소를 얻으려면 다음을 실행하십시오.

ifconfig

Ubuntu 20.04에서 WireGuard VPN 서버 및 클라이언트를 설정하는 방법

강조 표시된 부분은 IP 주소입니다.

서버의 IP 주소를 기록해 두십시오. 이는 클라이언트 구성 중에 필요합니다.

위 이미지와 같이 서버에서 사용하는 인터페이스는 eth0. 인터페이스 이름은 사용자의 네트워크에 따라 달라질 수 있으며, 이는 일 수 wlan0또는 wlp2s0경우에 사용자가 무선 카드를 사용하여 무선 네트워크에 연결된다.

in PostUpPostDown인터페이스를 교체하십시오 . 이 예에서는 입니다 eth0. PostUpPostDown지시문은 서버가 각각 시작되고 중지될 때 실행되어야 하는 명령을 지정하는 데 사용됩니다. 이 예에서는 iptables명령을 사용 하여 서버의 IP 주소가 클라이언트에서 공유되도록 IP 규칙을 설정합니다. 서버가 중지되면 규칙이 삭제됩니다.

파일을 저장하고 종료합니다. 정력을 사용하는 경우를 눌러 Esc 키를 입력 한 다음 :wq키를 누릅니다 입력 저장하고 종료 할 수 있습니다.

ufw서버에서 방화벽을 사용하는 경우 VPN 서버 포트 51190에 대한 UDP 연결을 허용해야 합니다.

ufw allow 51190/udp

서비스 시작

이제 구성이 완료되면 Wireguard VPN 서비스를 시작할 수 있습니다.

부팅 시 서비스를 시작 하려면 다음을 실행합니다.

systemctl enable [email protected]

여기 wg0에 구성 파일의 이름이 있습니다.

서비스 를 시작하려면 다음을 실행하십시오.

service [email protected] start

서비스가 성공적으로 시작 되었는지 확인 합니다.

service [email protected] status

Ubuntu 20.04에서 WireGuard VPN 서버 및 클라이언트를 설정하는 방법

IP 명령을 사용하여 구성 파일에서 생성 한 인터페이스 가 시작 되었는지 확인합니다 .

ip a show wg0

Ubuntu 20.04에서 WireGuard VPN 서버 및 클라이언트를 설정하는 방법

이제 Wireguard VPN 서버가 설정되어 실행 중입니다. 이제 클라이언트를 구성해 보겠습니다.

클라이언트 구성

Wireguard에 대한 클라이언트 구성은 서버 구성과 거의 동일합니다. 클라이언트용 키를 생성한 다음 구성 파일을 생성합니다.

보안 키

클라이언트에 대한 공개/개인 키을 생성하려면 다음을 실행하십시오.

sudo su
cd /etc/wireguard
umask 077
wg genkey | tee client_private_key | wg pubkey > client_public_key

이제 클라이언트의 공개 키와 개인 키가 각각 파일 client_private_keyclient_public_key.

cat명령을 사용하여 생성되었는지 확인합니다 .

cat client_private_key
cat client_public_key

클라이언트의 구성 파일에 추가해야 하므로 표시된 개인 키를 복사합니다.

구성 파일

원하는 이름으로 구성 파일만듭니다 . wg0-client이 예제 의 이름으로 만들 것입니다 .

vim wg0-client.conf

다음 구성을 추가합니다.

[Interface]
# IP Address and Private Key of the Client
Address = 10.20.43.2/24
PrivateKey = 

[Peer]
# Public key, IP Address and Port of the Server
PublicKey = 
Endpoint = :51190
AllowedIPs = 0.0.0.0/0, ::/0

클라이언트의 서브넷 주소를 입력합니다. 이전에 설명한 대로 10.20.43.2 이 예에서는 클라이언트에 사용 합니다.

위의 구성 코드에서 4행에 이전 단계에서 생성 한 클라이언트 개인 키를 추가합니다 .

'피어' 아래 에 연결하려는 Wireguard VPN 서버에 대한 정보를 추가 합니다.

서버의 공개 키를 입력합니다. 이전에 언급 한 서버의 IP 주소를 입력하고 Endpoint 에 대해 지정된 형식으로 포트를 입력합니다 . 이것은 서버 구성 파일에 지정하고 서버의 VPN 서비스가 시작된 포트입니다.

클라이언트가 사용하는 동적 공용 IP에 대한 모든 요청이 항상 VPN 서버로 전달되도록 허용된 IP는 주어진 대로 입력해야 합니다(0.0.0.0/0).

파일을 저장하고 종료합니다. 정력을 사용하는 경우를 눌러 Esc 키를 입력 한 다음 :wq키를 누릅니다 입력 저장하고 종료 할 수 있습니다.

부팅할 때마다 클라이언트 서비스 가 실행되도록 설정 하고 시작합니다.

systemctl enable [email protected]
service [email protected] start

서비스가 시작 되었는지 확인 합니다.

service [email protected] status

Ubuntu 20.04에서 WireGuard VPN 서버 및 클라이언트를 설정하는 방법

서버에 피어 추가

이제 VPN 서버와 클라이언트가 실행되고 있습니다. 그러나 서버와 클라이언트 간에 피어 투 피어 연결을 설정하지 않으면 둘 사이의 보안 터널이 설정되지 않습니다.

서버로 돌아갑니다 . 먼저 VPN 서비스를 중지합니다 .

service [email protected] stop

그런 다음 구성 파일을 열어 피어 (클라이언트)에 대한 구성추가합니다 .

vim /etc/wireguard/wg0.conf

파일에 다음 줄을 추가 합니다.

[Peer]
PublicKey = 
AllowedIPs = 10.20.43.2/32

이제 VPN 서비스를 다시 시작하십시오 .

service [email protected] start

그게 다야! 이것은 Wireguard VPN 클라이언트 및 서버 설정에 필요한 모든 구성입니다. 이제 VPN을 테스트해 보겠습니다.

VPN 테스트

먼저 클라이언트에서 서버로 간단한 ping을 수행하여 VPN 터널 통신이 작동하는지 확인합니다. 클라이언트에서 다음을 실행합니다 .

ping 10.20.43.1

Ubuntu 20.04에서 WireGuard VPN 서버 및 클라이언트를 설정하는 방법

그런 다음 웹 브라우저를 열고 웹 사이트열어 클라이언트 컴퓨터에서 인터넷에 연결할 수 있는지 확인합니다. 를 사용하여 명령줄에서 인터넷 연결을 확인할 수도 있습니다 wget.

wget 

Ubuntu 20.04에서 WireGuard VPN 서버 및 클라이언트를 설정하는 방법

이제 터널 연결과 인터넷 연결을 확인했습니다. 둘 다 작동한다면 이제 클라이언트로 들어오는 모든 인터넷 트래픽이 서버를 통과하는지 확인해야 합니다.

이를 위해 인터넷에서 볼 수 있는 클라이언트의 IP 주소를 확인하기만 하면 됩니다. 한 가지 방법은 whatsmyip.org 로 이동하는 입니다. 또는 명령줄에서 Curl을 사용하여 IP 정보라는 다른 유사한 서비스를 쿼리할 수 있습니다.

클라이언트 시스템에서 다음을 실행합니다.

curl https://ipinfo.io/ip

Ubuntu 20.04에서 WireGuard VPN 서버 및 클라이언트를 설정하는 방법

예. VPN 서버가 호스팅되는 Linode의 공인 IP 주소입니다. 이것이 VPN을 사용하여 익명성을 달성하는 방법입니다. 이제 인터넷 전체에서 컴퓨터가 아닌 VPN 서버의 IP가 표시되기 때문입니다.

결론

설정의 용이성은 설정을 위해 더 높은 수준의 네트워킹 및 라우팅 지식이 필요한 OpenVPN과 같은 기존 VPN 소프트웨어에 비해 Wireguard의 가장 중요한 장점 중 하나입니다. 그러나 Wireguard 설정에 오류가 발생하거나 예상대로 작동하지 않는 경우 문제를 일으킬 수 있는 Wireguard에 대한 자세한 공식 문서가 부족합니다.

그럼에도 불구하고 Wireguard는 인터넷을 통한 보안 통신을 위해 자체 호스팅 VPN을 원하는 경우 탁월한 선택입니다. Wireguard와 Wireguard가 사용하는 프로토콜 및 기술에 대해 자세히 알아보려면 공식 사이트를 확인하세요 .


Ubuntu에서 Wi-Fi가 작동하지 않습니까? 해결 방법은 다음과 같습니다.

Ubuntu에서 Wi-Fi가 작동하지 않습니까? 해결 방법은 다음과 같습니다.

Ubuntu는 견고성과 비교적 적은 오류로 유명합니다. 그러나 확실히 문제가 많은 것은 아닙니다. 그러한 문제 중 하나는 Wi-Fi 드라이버에 있습니다. Wi-Fi가 작동하지 않는 경우에만 시스템 전원을 켤 수 있습니다.

Mv 명령으로 Linux 파일을 이동하는 방법

Mv 명령으로 Linux 파일을 이동하는 방법

Linux에서 GUI 파일 브라우저를 사용하여 파일을 이동하는 방법을 이미 알고 있을 수 있지만 터미널에 파일을 다른 디렉토리로 빠르게 이동할 수 있는 이동 명령이 있는지 궁금할 수 있습니다. mv 명령은 원하는 명령이며 간단한 구문과 몇 가지 선택적 안전 플래그로 사용하기 쉽습니다.

10 최고의 데비안 기반 Linux 배포판

10 최고의 데비안 기반 Linux 배포판

표준 데비안과 인기 있는 우분투는 Linux 시스템을 위한 훌륭한 만능 선택이지만, 더 전문화된 요구 사항이 있는 경우 데비안 대안을 원할 수 있습니다.

개발자를 위한 10가지 최고의 Linux 배포판

개발자를 위한 10가지 최고의 Linux 배포판

Linux는 일반 사용자에게 선호되는 운영 체제가 아닐 수 있지만 대부분의 개발자와 프로그래머는 선택합니다. Linux는 프로그래밍과 개발자를 염두에 두고 명시적으로 설계된 보다 실용적인 OS입니다.

Ubuntu에 Npm 및 Node.js를 설치하는 방법 알아보기

Ubuntu에 Npm 및 Node.js를 설치하는 방법 알아보기

Node.js는 사실상 오픈 소스 크로스 플랫폼 JavaScript 런타임 환경입니다. Node.js가 활성화되면 브라우저를 여는 것에 대해 걱정할 필요 없이 Ubuntu 시스템에서 JavaScript를 실행할 수 있습니다. Chrome의 V8 JavaScript 엔진을 기반으로 하며 Linux에서 여러 가지 방법으로 설치할 수 있습니다.

Ubuntu 20.04 LTS에 Git을 설치하는 방법

Ubuntu 20.04 LTS에 Git을 설치하는 방법

Linux 시스템에 가장 먼저 설치해야 하는 것 중 하나

Ubuntu 20.04 LTS에서 Sudo 사용자를 만드는 방법

Ubuntu 20.04 LTS에서 Sudo 사용자를 만드는 방법

Ubuntu 20.04 LTS에서 sudo를 사용하여 모든 사용자에게 루트 권한 부여

5단계로 Ubuntu에 FTP 서버를 설치하는 방법

5단계로 Ubuntu에 FTP 서버를 설치하는 방법

Linux 서버를 설정하는 경우 FTP 액세스가 필요합니다. 이것은 먼저 Linux에 FTP 서버를 설치하는 것을 의미합니다. 서버 운영 체제를 설치한 후 가장 먼저 해야 할 일 중 하나입니다.

가치 있는 Notepad++ 대안인 Ubuntu 20.04에 Notepadqq를 설치하는 방법

가치 있는 Notepad++ 대안인 Ubuntu 20.04에 Notepadqq를 설치하는 방법

Ubuntu에서 Notepad++에 대한 가치 있는 대안을 찾고 계십니까? 무료 Notepadqq 앱만 있으면 됩니다.

Ubuntu 20.04에 Chrome을 설치하는 방법

Ubuntu 20.04에 Chrome을 설치하는 방법

Ubuntu 20.04의 명령줄에서 Google Chrome을 설치하는 빠른 가이드

Ubuntu Linux PC의 터미널에서 Firefox를 업데이트하는 방법

Ubuntu Linux PC의 터미널에서 Firefox를 업데이트하는 방법

Ubuntu Linux PC의 터미널에서 Firefox를 업데이트하는 방법 알아보기

Ubuntu 20.04에서 Ubuntu Dock을 비활성화하는 방법

Ubuntu 20.04에서 Ubuntu Dock을 비활성화하는 방법

때로는 부두를 떠나 항해하는 것이 더 좋습니다!

Ubuntu 20.04에서 루트 암호를 변경하는 방법

Ubuntu 20.04에서 루트 암호를 변경하는 방법

Ubuntu 20.04에서 루트 비밀번호 설정, 재설정 및 변경

Ubuntu 20.04에서 SSH를 활성화하는 방법

Ubuntu 20.04에서 SSH를 활성화하는 방법

어디서나 안전하게 Ubuntu 시스템에 액세스

Chromebook에서 복사하여 붙여넣는 방법

Chromebook에서 복사하여 붙여넣는 방법

Chromebook으로 전환할 때 가장 먼저 궁금해할 수 있는 것은 이전 OS에서 손에 꼽히던 것과 같은 기본적인 작업을 수행하는 방법입니다. 복사 및 붙여넣기는 한 지점 또는 다른 지점에서 사용해야 하는 기본적인 기능 중 하나입니다.

tt를 사용하여 Linux에서 타이핑 테스트를 수행하는 방법

tt를 사용하여 Linux에서 타이핑 테스트를 수행하는 방법

기술의 현대 시대에 타이핑은 많은 직업에서 가장 일반적인 활동 중 하나가 되었습니다. 정확하게 입력하는 법을 배우면 같은 시간에 더 많은 일을 할 수 있습니다.

Ubuntu에서 Wi-Fi가 작동하지 않습니까? 해결 방법은 다음과 같습니다.

Ubuntu에서 Wi-Fi가 작동하지 않습니까? 해결 방법은 다음과 같습니다.

Ubuntu는 견고성과 비교적 적은 오류로 유명합니다. 그러나 확실히 문제가 많은 것은 아닙니다. 그러한 문제 중 하나는 Wi-Fi 드라이버에 있습니다. Wi-Fi가 작동하지 않는 경우에만 시스템 전원을 켤 수 있습니다.

Ubuntu의 루트 수퍼유저의 차이점

Ubuntu의 루트 수퍼유저의 차이점

Ubuntu의 루트 수퍼유저의 차이점이 무엇인지 궁금하십니까? 글쎄, 우리는 당신을 여기에서 다루었습니다.

Chromebook에서 QR 코드를 만들고 스캔하는 방법

Chromebook에서 QR 코드를 만들고 스캔하는 방법

빠른 응답 코드 또는 QR 코드는 기존 바코드보다 더 많은 정보를 포함하는 고급 바코드입니다. 이 코드는 2차원이므로 세로 또는 가로로 스캔할 수 있습니다.

Arch Linux에서 패키지를 설치하고 제거하는 방법

Arch Linux에서 패키지를 설치하고 제거하는 방법

Arch Linux에 패키지를 설치하고 싶지만 방법을 모르십니까? 많은 사람들이 Debian 기반 배포판에서 Arch로 처음 마이그레이션할 때 이 문제에 직면합니다. 그러나 패키지 관리자를 사용하여 Arch 기반 시스템에서 패키지를 쉽게 관리할 수 있습니다.

Ubuntu의 Alt-Tab에서 Windows 그룹을 해제하는 방법

Ubuntu의 Alt-Tab에서 Windows 그룹을 해제하는 방법

Ubuntu에서는 기본적으로 창 대신 응용 프로그램을 전환할 수 있습니다. Ubuntu의 Alt-Tab에서 이를 반대로 하고 탭을 그룹 해제하는 방법은 다음과 같습니다.

Linux에 Spotify를 설치하는 방법

Linux에 Spotify를 설치하는 방법

Spotify는 가장 큰 음악 스트리밍 서비스 중 하나입니다. 모바일(Android 및 iOS) 및 데스크톱(Mac 및 Windows) 장치 모두에 대한 기본 클라이언트가 있습니다.

Linux를 시작하는 9가지 기본 명령

Linux를 시작하는 9가지 기본 명령

Linux 사용법 가이드는 터미널에서 특정 작업을 수행할 것으로 예상하는 경우가 많으며, 이는 처음에는 겁이 날 수 있습니다. 그러나 걱정하지 마십시오. 이 Linux 명령 치트 시트는 터미널을 열고 몇 가지 유용한 명령을 실행하는 과정을 다룹니다.

2020년 Ubuntu 20.04를 위한 15가지 최고의 테마

2020년 Ubuntu 20.04를 위한 15가지 최고의 테마

Ubuntu 20.04s의 새로운 GNOME 데스크탑에 새로 업데이트된 많은 테마를 설치할 준비가 되었습니다. 2020년 최고의 우분투 테마 목록은 다음과 같습니다.