WireGuardは、最先端の暗号化を使用するオープンソースの高速VPNです。 VpnはVirtualPrivateNetworkの略です。 Wireguard VPNを他のVPNソリューションと比較すると、WireGuard VPNは簡単に構成でき、フットプリントが小さく、高速です。他のVPNソリューションはIPsecとOpenVPNです。 WireGuardは、Windows、Linux、macOS、Androidなどの主要なオペレーティングシステムにインストールできます。
WireGuard VPNの詳細を見ると、クライアントサーバーモデルではなく、ピアツーピアVPNに準拠していることがわかります。構成中にピアをクライアントまたはサーバーに設定できます。各ピアデバイスにネットワークインターフェイスを作成します。これはトンネルとして機能します。ピア認証は、公開鍵を共有または検証することによって行われます。 SShモデルを模倣しています。
この記事のメイントピックであるDebian11でwireguardVPNをセットアップすることにジャンプしましょう。これは、VPNサーバーとして機能します。
ステップ1:Debian11へのWireGuardのインストール
まず、wireguardVPNをインストールすることから始めましょう。バックポートリポジトリを介してインストールできます。次のコマンドでシステムに追加できます:
$ echo 'deb http://ftp.debian.org/debian buster-backports main' | sudo tee /etc/apt/sources.list.d/buster-backports.list

リポジトリが有効になったので、apt-cacheを更新しましょう。この目的のために、次のコマンドを入力します:
$ sudo apt update

更新後、wireguardモジュールとツールをインストールする必要があります。この目的のために、次のコマンドを入力またはコピーします。
$ sudo apt install wireguard

ワイヤーガードはカーネルモジュールとして実行されることに注意してください。
ステップ2:WireGuardの構成
Debian 11にwireguardをインストールしたので、wireguardを構成しましょう。 wg およびwg-quick コマンドは、wireguardの管理と構成に役立ちます。
この記事の冒頭で述べたように、WireguardVPNネットワーク内のすべてのデバイスには公開鍵と秘密鍵があります。この目的のために、次のコマンドを実行してキーペアを生成する必要があります。
$ wg genkey | sudo tee /etc/wireguard/privatekey | wg pubkey | sudo tee /etc/wireguard/publickey

スクリーンショットに示されているように、上記のコマンドを実行すると、キーが表示されます。キーペアファイルは/etc/wireguardディレクトリに生成されました。 猫を使用してファイルの内容を表示できます または少ない Debian11のコマンド。
秘密鍵は秘密であり、誰とも共有してはならないことに注意してください。
Wireguardがサポートするもう1つのキーは、事前共有キーです。このキーの機能は、対称キー暗号化のレイヤーを追加することです。このキーは完全にオプションであることに注意してください。また、このキーはすべてのピアペアで一意である必要があります。
WireGuardを構成する次のステップは、トンネルデバイスを構成することです。トンネルデバイスは、VPNトラフィックをルーティングできるようになります。この目的のために、コマンドラインインターフェースからデバイスをセットアップしましょう。
エディターを開き、wg0.confという名前の新しいファイルを作成します。 構成を作成するには、テキストエディタを使用する必要があります。次のコマンドに従ってエディターを開き、新しいファイルを作成します。
$ sudo nano /etc/wireguard/wg0.conf

開いているエディタに次を追加します:
アドレス=10.0.0.1/ 24
SaveConfig =true
ListenPort =51820
PrivateKey =SERVER_PRIVATE_KEY
PostUp =iptables -A FORWARD -i%i -j ACCEPT; iptables -t nat -A POSTROUTING -o enp0s3 -j MASQUERADE
PostDown =iptables -D FORWARD -i%i -j ACCEPT; iptables -t nat -D POSTROUTING -o enp0s3 -j MASQUERADE

Ctrlキーを押しながらSキーを押してファイルを保存し、次にCtrlキーを押しながらXキーを押してファイルを閉じます。
先に進む前に、上記のコードのSERVER_PRIVATE_KEYを秘密鍵に置き換える必要があるという点を強調しておきます。次のコマンドを使用して秘密鍵を生成できます。
$ umask 077 /etc/wireguard
$ wg genkey | tee privatekey | wg pubkey > publickey
秘密鍵を表示するには、次のコマンドに従います。
$ sudo cat /etc/wireguard/privatekey
上記のコマンドでは、 enp0s3を置き換える必要があることに注意してください。 ポストルーティングの後にあります パブリックネットワークインターフェイスを使用します。次のコマンドを使用して、パブリックインターフェイスを見つけることができます。
$ ip -o -4 route show to default | awk '{print $5}'

エディターでのファイルの編集が完了したので、構成ファイルの属性を使用して、 wg0を取得する必要があります。 インターフェースアップ。この目的のために、次のコマンドを入力します:
$ sudo wg-quick up wg0
出力は次のようになります:

次のコマンドを使用して、構成とインターフェースの状態を表示できます。
$ sudo wg show wg0

wireGuardを構成する最後のステップは、起動時にそれを持ってくることです。この背後にある理由は、WireGuardがsystemdで管理できるためです。次のコマンドを入力します:
$ sudo systemctl enable [email protected]

ステップ3:サーバーネットワークとファイアウォールの構成
この手順には、ファイアウォールとサーバーネットワークの構成が含まれます。 NATを機能させるには、最初にIP転送を有効にする必要があります。この目的のために、次のコマンドを入力します:
$ sudo nano /etc/sysctl.conf
これにより、sysctl.confファイルが開きます。そのファイルに次の行を追加する必要があります:
net.ipv4.ip_forward=1
上記の行の追加が完了したら、CTRL + Sを押してファイルを保存し、ファイルを閉じるにはCTRL+Xを押します。
この後、ターミナルで次のコマンドを入力します。
$ sudo sysctl -p

最後のステップは、ファイアウォールを管理することです。 のポート51820を開く必要があります UDPトラフィック。これは、UFWを使用している場合のみです。この目的のために、次のコマンドを入力します:
$ sudo ufw allow 51820/udp

おめでとう! Debianピアのセットアップに成功しました。これでサーバーとして機能します。
ステップ4:Windowsクライアントのセットアップ
サーバーがセットアップされたら、クライアントをセットアップする必要があります。この目的のために、ウィンドウを選択します。ブラウザに移動し、次のリンクからウィンドウのMSIパッケージをインストールします。
https://www.wireguard.com/install/

ダウンロードしたファイルをインストールし、「トンネルの追加」をクリックします。 左下隅にあります。

ドロップダウンウィンドウが開きます。 「空のトンネルを追加」のオプションを選択します 。完了すると、次の画面が表示されます。

ここで、次の行を追加してファイルを編集します。
[インターフェース]
PrivateKey =CLIENT_PRIVATE_KEY
アドレス=10.0.0.2/ 24
[ピア]
PublicKey =SERVER_PUBLIC_KEY
Endpoint =SERVER_IP_ADDRESS:51820
AllowedIPs =0.0.0.0/0

秘密鍵と作成したサーバーを追加する必要があることに注意してください。これは、それぞれのフィールドの公開鍵です。また、「Server_IP_ADDRESS」を置き換える必要があります キーワードを入力し、サーバーのIPアドレスを配置します 。この後、名前を設定して[保存]をクリックします。

ステップ5:クライアントピアとサーバー接続
ステップ5は、クライアントとサーバーを追加することです。これは、クライアントのIPアドレスと公開鍵をサーバーに設定する最後から2番目のステップです。 Debian 11サーバーに戻り、次のコマンドを入力します。
$ sudo wg set wg0 peer CLIENT_PUBLIC_KEY allowed-ips 10.0.0.2
公開鍵をクライアントの公開鍵に置き換えます。クライアントの公開鍵は、ウィンドウのWireGuardアプリケーションにあります。

これまでの手順をすべて完了したら、クライアントマシン、つまりWindowsWireGuardアプリに移動します。
ステップ6:Windowsクライアント
これは、WireGuardアプリトンネルで「アクティブ化」というボタンをクリックするだけの最後のステップです。

アクティブ化ボタンをクリックすると、トンネルのステータスが自動的にアクティブに変わります。これで完了です。おめでとうございます!

結論
Debian 11にWireGuardをインストールして構成しました。Debianマシンをサーバーとして作成し、Windowsマシンをクライアントとして機能させました。
これで、すべてのインターネットトラフィックを処理する暗号化だけでなく、セキュリティで保護されたトンネルを簡単に作成できます。簡単に言えば、匿名でインターネットを閲覧したりネットサーフィンしたりできるようになります。これは、データトラフィックがプライベートであるため、ハッカーを含むすべての人からあなたを保護するのに役立ちます。