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

次に、ピア上で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

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

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

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