WireGuard–Linux用の高速で現代的でセキュアなVPNトンネル

WireGuardは、最新の暗号技術を使用した現代の安全でクロスプラットフォームで汎用性のあるVPN実装です。それは、IPsecよりも高速で、シンプルで、スリムで、機能的であることを目指しており、OpenVPNよりも高性能であることを意図しています。

さまざまな状況で使用するように設計されており、組み込みインターフェース、完全なバックボーンルーター、スーパーコンピューターなどに展開でき、Linux、Windows、macOS、BSD、iOS、Androidオペレーティングシステムで実行されます。

おすすめの読み物: ライフタイムサブスクリプション付きの13のベストVPNサービス

非常に基本的でありながら強力なインターフェースを提供し、SSHと同じくらい簡単に構成および展開できることを目指しています。その主な機能には、シンプルなネットワークインターフェース、暗号キールーティング、組み込みのローミングおよびコンテナサポートが含まれます。

執筆時点では、開発が進行中であり、一部の部分は安定した1.0リリースに向けて動作しており、他の部分は既にそこにあります(正常に動作しています)。

この記事では、LinuxでWireGuardをインストールして構成し、2つのLinuxホスト間にVPNトンネルを作成する方法を学びます。

テスト環境

このガイドでは、セットアップ(ホスト名とパブリックIP)は次のとおりです:

Node 1 : tecmint-appserver1: 		10.20.20.4
Node 2 : tecmint-dbserver1: 		10.20.20.3

Linuxディストリビューションに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

2つのLinuxホスト間にWireGuard VPNトンネルを設定する

両方のノードでwireguardのインストールが完了したら、両方のノードで次のコマンドを使用してLinuxカーネルから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
Generate Keys on Both Nodes

次に、ピア上でwireguard用のネットワークインターフェイス(例: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
View Network Interfaces with IP Addresses

次に、各ピアのプライベートキーを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

両方のリンクがプライベートキーと関連付けられた状態でアップされているので、wgユーティリティを引数なしで実行して、ピア上のWireGuardインタフェースの構成を取得します。次に、以下のようにWireGuard VPNトンネルを作成します。

ピア(公開鍵)、allowed-ips(ネットワーク/サブネットマスク)、およびendpoint(公開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
Create Wireguard VPN Tunnel Between Linux Machines

Linuxシステム間でのWireGuard VPNトンネルのテスト

WireGuard VPNトンネルが作成されたら、WireGuardネットワークインターフェイスのアドレスを使用して対向のピアにpingを送信します。次に、握手が表示されるように、もう一度wgユーティリティを実行して、ピア間のハンドシェイクを確認します。

---------- On Node 1 ----------
$ ping 192.168.10.2
$ sudo wg

---------- On Node 2 ----------
$ ping 192.168.10.1
$ sudo wg
Test Wireguard VPN Tunnel Between Linux Machines

今は以上です! WireGuardは、将来のためのモダンで安全で、シンプルでありながら強力で簡単に構成できるVPNソリューションです。現在、開発が進行中です。特に内部の動作やその他の構成オプションに関する詳細情報は、WireGuardホームページから入手できます。

Source:
https://www.tecmint.com/wireguard-secure-vpn-tunnel-for-linux/