WireGuard은 최신형이며 안전한 크로스 플랫폼 및 범용 VPN 구현체로, 최첨단 암호화 기술을 사용합니다. 이는 IPsec보다 빠르고 간단하며 경량화되어 있으며 OpenVPN보다 성능이 우수하도록 설계되었습니다.
이는 다양한 상황에서 사용하기 위해 설계되었으며, 임베디드 인터페이스, 완전한 네트워크 백본 라우터 및 슈퍼컴퓨터에 모두 배포할 수 있으며, Linux, Windows, macOS, BSD, iOS 및 Android 운영 체제에서 실행됩니다.
추천 독서: 평생 구독 기능을 제공하는 최고의 VPN 서비스 13가지
이는 SSH와 같이 구성 및 배포하기 쉽고 간단한 인터페이스를 제공합니다. 주요 기능으로는 간단한 네트워크 인터페이스, 암호화 키 라우팅, 내장된 로밍 및 컨테이너 지원이 포함됩니다.
작성 시점에서 여전히 개발 중이며, 일부 기능은 안정적인 1.0 버전 출시를 위해 작업 중이며, 다른 기능은 이미 안정적으로 작동하고 있습니다.
이 문서에서는 리눅스 환경에서 WireGuard를 설치하고 구성하여 두 개의 리눅스 호스트 간에 VPN 터널을 생성하는 방법에 대해 알아보겠습니다.
테스트 환경
이 가이드에서 사용하는 설정(호스트 이름 및 공용 IP)은 다음과 같습니다:
Node 1 : tecmint-appserver1: 10.20.20.4 Node 2 : tecmint-dbserver1: 10.20.20.3
리눅스 배포판에 WireGuard 설치하는 방법
양쪽 노드에 로그인하여 다음과 같이 각각의 리눅스 배포판에 적합한 명령어를 사용하여 WireGuard를 설치하십시오.
RHEL 8에 WireGuard 설치
$ sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm $ sudo subscription-manager repos --enable codeready-builder-for-rhel-8-$(arch)-rpms $ sudo yum copr enable jdoss/wireguard $ sudo yum install wireguard-dkms wireguard-tools
CentOS 8에 WireGuard 설치
$ sudo yum install epel-release $ sudo yum config-manager --set-enabled PowerTools $ sudo yum copr enable jdoss/wireguard $ sudo yum install wireguard-dkms wireguard-tools
RHEL/CentOS 7에 WireGuard 설치
$ sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm $ sudo curl -o /etc/yum.repos.d/jdoss-wireguard-epel-7.repo https://copr.fedorainfracloud.org/coprs/jdoss/wireguard/repo/epel-7/jdoss-wireguard-epel-7.repo $ sudo yum install wireguard-dkms wireguard-tools
Fedora에 WireGuard 설치
$ sudo dnf install wireguard-tools
Debian에 WireGuard 설치
# echo "deb http://deb.debian.org/debian/ unstable main" > /etc/apt/sources.list.d/unstable.list # printf 'Package: *\nPin: release a=unstable\nPin-Priority: 90\n' > /etc/apt/preferences.d/limit-unstable # apt update # apt install wireguard
Ubuntu에 WireGuard 설치
$ sudo add-apt-repository ppa:wireguard/wireguard $ sudo apt-get update $ sudo apt-get install wireguard
OpenSUSE에 WireGuard 설치
$ sudo zypper addrepo -f obs://network:vpn:wireguard wireguard $ sudo zypper install wireguard-kmp-default wireguard-tools
두 리눅스 호스트 간에 WireGuard VPN 터널을 구성하는 방법
wireguard의 설치가 양쪽 노드에 완료되면, 양쪽 노드에서 다음 명령어를 사용하여 리눅스 커널에서 wireguard 모듈을 추가하거나 노드를 다시 부팅할 수 있습니다.
$ sudo modprobe wireguard OR # modprobe wireguard
다음으로 양쪽 노드에서 wg 유틸리티를 사용하여 base64로 인코딩된 공개 및 개인 키를 생성하십시오.
---------- On Node 1 ---------- $ umask 077 $ wg genkey >private_appserver1 ---------- On Node 2 ---------- $ umask 077 $ wg genkey >private_dbserver1 $ wg pubkey < private_dbserver1

이후, 아래에 표시된 대로 피어에게 wiregaurd를 위한 네트워크 인터페이스(e.g wg0)를 생성해야 합니다. 그런 다음 새로 생성된 네트워크 인터페이스에 IP 주소를 할당하십시오(본 안내서에서는 네트워크 192.168.10.0/24를 사용할 것입니다).
---------- On Node 1 ---------- $ sudo ip link add dev wg0 type wireguard $ sudo ip addr add 192.168.10.1/24 dev wg0 ---------- On Node 2 ---------- $ sudo ip link add dev wg0 type wireguard $ sudo ip addr add 192.168.10.2/24 dev wg0
피어에 연결된 네트워크 인터페이스와 해당 IP 주소를 보려면 다음 IP 명령어를 사용하십시오.
$ ip ad

다음으로 각 피어에 대한 개인 키를 wg0 네트워크 인터페이스에 할당하고 인터페이스를 실행하십시오.
---------- On Node 1 ---------- $ sudo wg set wg0 private-key ./private_appserver1 $ sudo ip link set wg0 up ---------- On Node 2 ---------- $ sudo wg set wg0 private-key ./private_dbserver1 $ sudo ip link set wg0 up
이제 두 링크가 각각 연결되어 있고, 각각에 연관된 개인 키가 있으므로 WireGuard 인터페이스의 구성을 검색하기 위해 인수 없이 wg 유틸리티를 실행하십시오. 그런 다음 다음과 같이 wireguard VPN 터널을 만드십시오.
대칭편에 대한 피어(공개 키), 허용된 IP (네트워크/서브넷 마스크) 및 엔드포인트 (공개 IP:포트)입니다.
---------- On Node1 (Use the IPs and Public Key of Node 2) ---------- $ sudo wg $ sudo wg set wg0 peer MDaeWgZVULXP4gvOj4UmN7bW/uniQeBionqJyzEzSC0= allowed-ips 192.168.10.0/24 endpoint 10.20.20.3:54371 ---------- On Node2 (Use the IPs and Public Key of Node 1) ---------- $ sudo wg $ sudo wg set wg0 peer 6yNLmpkbfsL2ijx7z996ZHl2bNFz9Psp9V6BhoHjvmk= allowed-ips 192.168.10.0/24 endpoint 10.20.20.4:42930

리눅스 시스템간의 WireGuard VPN 터널 테스트
WireGuard VPN 터널이 생성되면 WireGuard 네트워크 인터페이스의 주소를 사용하여 반대 피어를 핑합니다. 그런 다음 피어 간의 핸드셰이크를 확인하기 위해 다시 한 번 wg 유틸리티를 실행하십시오.
---------- On Node 1 ---------- $ ping 192.168.10.2 $ sudo wg ---------- On Node 2 ---------- $ ping 192.168.10.1 $ sudo wg

지금까지입니다! WireGuard는 미래를 위한 현대적이고 안전하며 강력하면서도 간단하고 구성하기 쉬운 VPN 솔루션입니다. 현재 계속 발전 중이며 작업이 진행 중입니다. 특히 WireGuard 홈페이지에서 내부 동작 및 기타 구성 옵션에 대한 자세한 정보를 얻을 수 있습니다.
Source:
https://www.tecmint.com/wireguard-secure-vpn-tunnel-for-linux/