GNU/Linux >> Linux の 問題 >  >> Ubuntu

Ubuntu 20.04/18.04で独自のWireGuardVPNサーバーをセットアップする

このチュートリアルでは、Ubuntuで独自のWireGuardVPNサーバーをセットアップする方法を説明します。 WireGuardはLinuxカーネル専用に作られています。 Linuxカーネル内で実行され、高速で最新の安全なVPNトンネルを作成できます。

WireGuardVPNの機能

  • 軽量で超高速、OpenVPNを水から吹き飛ばします。
  • クロスプラットフォーム。 WireGuardは、Linux、BSD、macOS、Windows、Android、iOS、およびOpenWRTで実行できます。
  • ユーザー認証は、SSHキーと同様に公開キーを交換することによって行われます。
  • 静的トンネルIPアドレスをVPNクライアントに割り当てます。気に入らない人もいるかもしれませんが、場合によっては非常に便利です。
  • モバイルデバイスは、接続を切断することなく、Wi-Fiとモバイルネットワークをシームレスに切り替えることができます。
  • ほとんどのユースケースでOpenVPNとIPSecを置き換えることを目的としています。

WireGuardは、プライベートネットワークにTLS暗号化を設定する必要をなくすために選択したVPNプロトコルです。

要件

このチュートリアルに従うには、ブロックされたWebサイトに自由にアクセスできるVPS(仮想プライベートサーバー)が必要です(国外またはインターネットフィルタリングシステム)。次の機能を備えたカマテラVPSをお勧めします:

  • 30日間の無料トライアル。
  • 月額4ド​​ル(1 GB RAM)から
  • 高性能KVMベースのVPS
  • 米国、カナダ、英国、ドイツ、オランダ、香港、イスリアルを含む世界中の9つのデータセンター。

以下にリンクされているチュートリアルに従って、KamateraでLinuxVPSサーバーを作成してください。

  • カマテラでLinuxVPSサーバーを作成する方法

Ubuntuを実行しているVPSを入手したら、以下の手順に従ってください。

このチュートリアルでは、VPNサーバーとVPNクライアントの両方が Ubuntuを実行していることを前提としています。 オペレーティングシステム。

ステップ1:UbuntuサーバーとデスクトップにWireGuardをインストールする

Ubuntuサーバーにログインし、次のコマンドを実行してWireGuardをインストールします。

Ubuntu 20.04

Ubuntu 20.04には、ワイヤーガードモジュールが組み込まれたLinuxカーネル5.4が付属しています。

 sudo apt updatedsudo apt install wireguard wireguard-tools 

Ubuntu 18.04

Ubuntu 18.04にはLinuxカーネル4.15が同梱されているため、ユーザーは最初にハードウェア対応カーネル(HWE)をインストールする必要があります。これにより、システムにカーネル5.4がインストールされます。

 sudo apt updatedsudo apt install linux-generic-hwe-18.04-edge 

Ubuntu 18.04サーバーを再起動し、WireGuardをインストールします。

 sudo shutdown -r nowsudo apt install wireguard wireguard-tools wireguard-dkms 

次に、同じコマンドを使用して、ローカルのUbuntuコンピューター(VPNクライアント)にWireGuardをインストールします。 openresolvもインストールする必要があることに注意してください DNSサーバーを構成するためのクライアント上のパッケージ。

 sudo apt install openresolv 

ステップ2:パブリック/プライベートキーペアを生成する

サーバー

Ubuntuサーバーで次のコマンドを実行して、公開鍵と秘密鍵のペアを作成します。これは、/etc/wireguard/の下に保存されます。 ディレクトリ。

 wg genkey | sudo tee /etc/wireguard/server_private.key | wg pubkey | sudo tee /etc/wireguard/server_public.key 

クライアント

次のコマンドを実行して、ローカルのUbuntuコンピューター(VPNクライアント)に公開鍵と秘密鍵のペアを作成します。

 wg genkey | sudo tee /etc/wireguard/client_private.key | wg pubkey | sudo tee /etc/wireguard/client_public.key 

ステップ3:WireGuard構成ファイルを作成する

サーバー

Nanoなどのコマンドラインテキストエディターを使用して、Ubuntuサーバー上にWireGuard構成ファイルを作成します。 wg0 ネットワークインターフェース名になります。

 sudo nano /etc/wireguard/wg0.conf 

次のテキストをコピーして、構成ファイルに貼り付けます。独自のサーバー秘密鍵とクライアント公開鍵を使用する必要があります。

 [Interface] Address =10.10.10.1/24ListenPort =51820PrivateKey =cD + ZjXiVIX + 0iSX1PNijl4a + 88lCbDgw7kO78oXXLEc =[Peer] PublicKey =AYQJf6HbkQ0X0Xyt + cTMTuJe3RFwbuCMF 

場所:

  • 住所 :VPNサーバーのプライベートIPアドレスを指定します。ここでは10.10.10.0/24のネットワーク範囲を使用しているため、ホームネットワークの範囲と競合することはありません。 (ほとんどのホームルーターは192.168.0.0/24または192.168.1.0/24を使用します)。 10.10.10.1は、VPNサーバーのプライベートIPアドレスです。
  • PrivateKey :VPNサーバーの秘密鍵。/etc/wireguard/server_private.keyにあります。 サーバー上のファイル。
  • ListenPort :WireGuard VPNサーバーは、デフォルトのUDPポート51820でリッスンします。
  • PublicKey :VPNクライアントの公開鍵。/etc/wireguard/client_public.keyにあります。 クライアントコンピュータ上のファイル。
  • 許可されたIP :VPNクライアントが使用を許可されているIPアドレス。この例では、クライアントはVPNトンネル内でのみ10.10.10.2IPアドレスを使用できます。

ファイルを保存して閉じます。 (Nanoテキストエディタでファイルを保存するには、Ctrl+Oを押します。 、Enterキーを押して確認します。 Ctrl+Xを押します 終了します。)

rootユーザーのみがファイルを読み取ることができるように、ファイルのアクセス許可モードを変更します。

 sudo chmod 600 / etc / wireguard / -R 

クライアント

Nanoなどのコマンドラインテキストエディターを使用して、ローカルのUbuntuコンピューターにWireGuard構成ファイルを作成します。 wg-client0 ネットワークインターフェース名になります。

 sudo nano /etc/wireguard/wg-client0.conf 

次のテキストをコピーして、構成ファイルに貼り付けます。独自のクライアント秘密鍵とサーバー公開鍵を使用する必要があります。

 [Interface] Address =10.10.10.2/24DNS =10.10.10.1PrivateKey =cOFA + x5UvHF + a3xJ6enLatG + DoE3I5PhMgKrMKkUyXI =[Peer] PublicKey =RaoAdsIEIwg​​V9DHNSubxWVG + nZ1GP / c3OU6A / ef 56.78:51820PersistentKeepalive =25 

場所:

  • 住所 :VPNクライアントのプライベートIPアドレスを指定します。
  • DNS :DNSサーバーとして10.10.10.1(VPNサーバー)を指定します。 resolvconfを介して構成されます 指図。次のように、冗長性のために複数のDNSサーバーを指定することもできます:DNS = 10.10.10.1 8.8.8.8
  • PrivateKey :クライアントの秘密鍵。/etc/wireguard/client_private.keyにあります。 クライアントコンピュータ上のファイル。
  • PublicKey :サーバーの公開鍵。/etc/wireguard/server_public.keyにあります。 サーバー上のファイル。
  • 許可されたIP :0.0.0.0/0はインターネット全体を表します。つまり、インターネットへのすべてのトラフィックはVPN経由でルーティングされる必要があります。
  • エンドポイント :VPNサーバーのパブリックIPアドレスとポート番号。 12.34.56.78をサーバーの実際のパブリックIPアドレスに置き換えます。
  • PersistentKeepalive :認証された空のパケットを25秒ごとにピアに送信して、接続を維持します。 PersistentKeepaliveが有効になっていない場合、VPNサーバーがVPNクライアントにpingを実行できない可能性があります。

ファイルを保存して閉じます。

rootユーザーのみがファイルを読み取れるようにファイルモードを変更します。

 sudo chmod 600 / etc / wireguard / -R 

ステップ4:サーバーでIP転送を有効にする

VPNサーバーがVPNクライアントとインターネット間でパケットをルーティングするには、IP転送を有効にする必要があります。 sysctl.confを編集します ファイル。

 sudo nano /etc/sysctl.conf 

このファイルの最後に次の行を追加します。

 net.ipv4.ip_forward =1 

ファイルを保存して閉じます。次に、以下のコマンドで変更を適用します。 -p オプションは、 /etc/sysctl.confからsysctl設定をロードします ファイル。このコマンドは、システムを再起動しても変更を保持します。

 sudo sysctl -p 

ステップ5:サーバーでIPマスカレードを構成する

サーバーがVPNクライアントの仮想ルーターになるように、サーバーファイアウォールでIPマスカレードを設定する必要があります。 iptablesファイアウォールのフロントエンドであるUFWを使用します。以下を使用してUbuntuにUFWをインストールします:

 sudo apt install ufw 

まず、SSHトラフィックを許可する必要があります。

 sudo ufw allow 22 / tcp 

次に、サーバーのメインネットワークインターフェースの名前を見つけます。

 ip -c a 

ご覧のとおり、enp3s0という名前です。 私のUbuntuサーバーで。

IPマスカレードを設定するには、UFW設定ファイルにiptablesコマンドを追加する必要があります。

 sudo nano /etc/ufw/before.rules 

デフォルトでは、filterにはいくつかのルールがあります テーブル。このファイルの最後に次の行を追加します。 enp3s0を置き換えます 独自のネットワークインターフェイス名を使用します。

#NATテーブルルール* nat:POSTROUTINGACCEPT [0:0]-A POSTROUTING -s 10.10.10.0/24 -o enp3s0 -j MASQUERADE#各テーブルを「COMMIT」行で終了します。処理されたCOMMIT

Nanoテキストエディタでは、Ctrl+Wを押すと、ファイルの最後に移動できます。 、次にCtrl+Vを押します 。

上記の行が追加されます( -A POSTROOUTINGの最後までのルール natのチェーン テーブル。仮想プライベートネットワークをインターネットにリンクします。また、ネットワークを外界から隠します。そのため、インターネットはVPNサーバーのIPしか見ることができませんが、ホームルーターがプライベートホームネットワークを隠すように、VPNクライアントのIPを見ることができません。

各行の先頭にスペースがないことを確認してください。

デフォルトでは、UFWはパケット転送を禁止しています。プライベートネットワークの転送を許可できます。 ufw-before-forwardを見つけます このファイルにチェーンを追加し、次の3行を追加します。これは、送信元IPまたは宛先IPが10.10.10.0/24にある場合にパケット転送を受け入れます。 範囲。

#信頼できるネットワークの転送を許可する-A ufw-before-forward -s 10.10.10.0/24 -j ACCEPT-A ufw-before-forward -d 10.10.10.0/24 -j ACCEPT 

ファイルを保存して閉じます。次に、UFWを有効にします。

 sudo ufw enable 

以前にUFWを有効にしたことがある場合は、systemctlを使用してUFWを再起動できます。

 sudo systemctl restart ufw 

ここで、次のコマンドを使用して、NATテーブルのPOSTROUTINGチェーンにルールをリストするとします。

 sudo iptables -t nat -L POSTROUTING 

仮面舞踏会のルールを見ることができます。

UFWがファイアウォールルールを処理するのに時間がかかる場合があります。マスカレードルールが表示されない場合は、UFWを再起動します(sudo systemctl restart ufw

ステップ6:サーバーにDNSリゾルバーをインストールする

クライアントのDNSサーバーとしてVPNサーバーを指定しているため、VPNサーバーでDNSリゾルバーを実行する必要があります。 bind9DNSサーバーをインストールできます。

 sudo apt install bind9 

インストールすると、BINDが自動的に起動します。次のコマンドでステータスを確認できます:

 systemctl status bind9 

サンプル出力:

●named.service-BINDドメインネームサーバーロード済み:ロード済み(/lib/systemd/system/named.service;有効;ベンダープリセット:有効)アクティブ:Sun 2020-05-17 08:11以降アクティブ(実行中) :26 UTC; 37秒前ドキュメント:man:named(8)メインPID:13820(名前付き)タスク:5(制限:1074)メモリ:14.3M CGroup:/system.slice/named.service└─13820/ usr / sbin / named -f -u bind 

実行されていない場合は、次のコマンドで開始します:

 sudo systemctl start bind9 

BINDDNSサーバーの構成ファイルを編集します。

 sudo nano /etc/bind/named.conf.options 

次の行を追加して、VPNクライアントが再帰的なDNSクエリを送信できるようにします。

 allow-recursion {127.0.0.1; 10.10.10.0/24; }; 

ファイルを保存して閉じます。変更を有効にするには、BIND9を再起動します。

 sudo systemctl restart bind9 

次に、次のコマンドを実行して、VPNクライアントがポート53に接続できるようにする必要があります。

 sudo ufw insert 1 allow in from 10.10.10.0/24 

ステップ7:ファイアウォールでWireGuardポートを開く

次のコマンドを実行して、サーバーのUDPポート51820を開きます。

 sudo ufw allow 51820 / udp 

ステップ8:WireGuardを起動します

サーバー

サーバーで次のコマンドを実行して、WireGuardを起動します。

 sudo systemctlstart[メール保護]

システムの起動時に自動起動を有効にします。

 sudo systemctl enable [email protected] 

次のコマンドでステータスを確認してください。そのステータスはactive (exited)である必要があります 。

 systemctl status [email protected] 

これで、WireGuardサーバーはクライアント接続を受け入れる準備ができました。

クライアント

WireGuardを起動します。

 sudo systemctlstart[メール保護]

システムの起動時に自動起動を有効にします。

 sudo systemctl enable [email protected] 

ステータスを確認してください:

 systemctl status [email protected] 

次に、このWebサイト(https://icanhazip.com/)にアクセスして、パブリックIPアドレスを確認します。すべてがうまくいけば、クライアントコンピュータのパブリックIPアドレスではなく、VPNサーバーのパブリックIPアドレスが表示されるはずです。

次のコマンドを実行して、現在のパブリックIPアドレスを取得することもできます。

 curl https://icanhazip.com 

トラブルシューティングのヒント

pingできません

VPNサーバーからVPNクライアントにpingを実行できます(ping 10.10.10.2 )トンネルが機能するかどうかを確認します。 pingに次のエラーメッセージが表示された場合は、

 ping:sendmsg:必要なキーが利用できません

AllowedIPsの可能性があります タイプミスのように、パラメータが間違っています。タイプミスを修正したら、VPNサーバーとVPNクライアントの両方を再起動します。

もう1つの理由は、ListenPort = 51820を追加するのを忘れたためかもしれません。 サーバー構成ファイル内。

パブリックIPは変更されません

VPNトンネルが正常に確立されても、クライアントのパブリックIPアドレスが変更されない場合は、UFW設定ファイルのマスカレードまたは転送ルールが機能していないことが原因です。 /etc/ufw/before.rulesにタイプミスがあったことがあります ファイルが原因で、コンピュータがインターネットを閲覧できなくなりました。

SaveConfig=trueの使用はお勧めしません。 [Interface]で WireGuard構成ファイルのセクション。 SaveConfig シャットダウン時にランタイム構成を保存するようにWireGuardに指示します。したがって、[Peer]を追加すると 構成ファイルでWireGuardを再起動すると、新しく追加された構成が上書きされます。

Linuxカーネルでデバッグログを有効にする

Linuxカーネル5.6以降を使用している場合は、次のコマンドを使用してWireGuardのデバッグログを有効にできます。

 sudo su -echo module wireguard + p>
 / sys / kernel / debug / dynamic_debug / control 

次に、

を使用してデバッグログを表示できます。
 sudo dmesg -wH 

または

 sudo journalctl -kf 

再起動

それでもVPNが機能しない場合は、VPNサーバーを再起動してみてください。

 sudo systemctlrestart[メール保護]

次に、VPNクライアントを停止します。

 sudo systemctl stop [email protected] 

そして、VPNクライアントのソフトウェアパッケージをアップグレードします。

 sudo apt update; sudoaptアップグレード

次に、VPNクライアントを再起動します。

 sudo shutdown -r nowsudo systemctl start [email protected] 

WireGuard VPNが再起動後にのみ機能する場合は、cronジョブを追加してサービスを自動的に再起動することを検討してください。

 sudo crontab -e 

このファイルに次の行を追加します。

 @daily systemctl restart [email protected] 

WireGuardとOpenConnectの速度比較

VPSサーバーの1つに、WireGuardとOpenConnectVPNサーバーの両方をインストールしました。速度テストは次のとおりです。私のコンピュータとVPNサーバー間の接続が非常に悪いため、高速に見えない場合があります。取得できる速度は、VPNクライアントとVPNサーバー間の遅延とパケット損失率によって異なります。

  • WireGuardが勝者です。 OpenConnectよりも約3倍高速です。
  • OpenConnect over TCPは、OpenConnectoverUDPよりも高速です。驚き?

WireGuardは52296Kbps(約51 Mbit / s)に到達できます YouTube動画を再生するとき。

OpenConnect(TCP BBRアルゴリズムを使用したTLS)は、 16504 Kbps(約16 Mbit / s)に到達できます。 YouTube動画を再生するとき。

OpenConnect(UDP上のTLS)は、 12997 Kbps(約12.7 Mbit / s)に到達できます。 YouTube動画を再生するとき。

VPNクライアントの追加

WireGuardは、1つのIPアドレスを1つのVPNクライアントに関連付けるように設計されています。 VPNクライアントをさらに追加するには、クライアントごとに一意の秘密鍵と公開鍵のペアを作成してから、サーバーの構成ファイル(/etc/wireguard/wg0.conf)に各VPNクライアントの公開鍵を追加する必要があります。 )このように:

 [Interface] Address =10.10.10.1/24PrivateKey =UIFH + XXjJ0g0uAZJ6vPqsbb / o68SYVQdmYJpy / FlGFA =ListenPort =51820 [Peer] PublicKey =75VNV7HqFh + 3QIT5OHZkcjWfbjx8tc6Ck 1Z / 3rtl0i7cJorcinB7T4UOIzScifPNEIESFD8 =AllowedIPs =10.10.10.3 / 32 [Peer] PublicKey =EVstHZc6QamzPgefDGPLFEjGyedJk6SZbCJttpzcvC8 =AllowedIPs =10.10.10.4 / 32 

各VPNクライアントには静的プライベートIPアドレス(10.10.10.2、10.10.10.3、10.10.10.4など)があります。変更を有効にするには、WireGuardサーバーを再起動します。

 sudo systemctlrestart[メール保護]

次に、通常どおり各VPNクライアントにWireGuard構成を追加します。

自動-VPN接続が切断されたときに再起動

さまざまな理由でVPN接続が切断されることがありました。次のコマンドを実行して、VPNクライアントがVPNサーバーのプライベートIPアドレス(10.10.10.1)にpingを実行できるかどうかを確認できます。 pingが失敗した場合は、右側のコマンドが実行され、VPNクライアントが再起動されます。 || BashのOR演算子です。左側のコマンドがエラーを返した場合にのみ、右側のコマンドを実行します。

 ping -c9 10.10.10.1> / dev / null || systemctlrestart[メール保護]

pingは9回、つまり9秒間実行されます。 forループを使用できます Bashシェルで、コマンド全体を6回、つまり54秒実行します。

  for  ((i =1; i <=6; i ++))実行 (ping -c9 10.10.10.1> / dev / null || systemctl restart [メール保護])完了 

これで、このタスクを自動化するためのCronジョブを作成できます。 VPNクライアントでrootユーザーのcrontabファイルを編集します。

 sudo crontab -e 

バッシュ Cronのデフォルトのシェルではありません。 Crontabファイルの先頭に次の行を追加して、デフォルトにすることができます。

 SHELL =/ bin / bash 

次に、このファイルの最後に次の行を追加します。

 * * * * *  for  ((i =1; i <=6; i ++))実行 (ping -c9 10.10.10.1> / dev / null || systemctl restart [メール保護])完了 

このcronジョブは毎分実行され、毎分6回のチェックが行われます。ファイルを保存して閉じます。

高度な使用法

次に、ポリシールーティングの使用方法を説明します。 、スプリットトンネリング 、およびVPNキルスイッチ WireGuardVPNを使用します。 それらを組み合わせて使用​​することはお勧めしません。ポリシールーティングを使用する場合は、スプリットトンネリングまたはVPNキルスイッチを有効にしないでください。その逆も同様です。このセクションは上級ユーザー向けです。 WireGuardの初心者で、その用途がわからない場合は、このセクションの手順を適用しないでください。

ポリシールーティング

デフォルトでは、VPNクライアント上のすべてのトラフィックはVPNサーバーを介してルーティングされます。トランスポート層プロトコルと宛先ポートに基づいて、特定のタイプのトラフィックのみをルーティングしたい場合があります。これは、ポリシールーティングと呼ばれます。

ポリシールーティングはクライアントコンピューターで構成されており、最初にVPN接続を停止する必要があります。

 sudo systemctl stop [email protected] 

次に、クライアント構成ファイルを編集します。

 sudo nano /etc/wireguard/wg-client0.conf 

たとえば、[interface]に次の3行を追加すると セクションの次に、WireGuardは「1234」という名前のルーティングテーブルを作成し、IPルールをルーティングテーブルに追加します。この例では、トラフィックは、TCPがトランスポート層プロトコルとして使用され、宛先ポートが25の場合、つまりクライアントコンピューターが電子メールを送信する場合にのみVPNサーバーを介してルーティングされます。

 Table =1234PostUp =ip rule add ipproto tcp dport 25 table 1234PreDown =ip rule delete ipproto tcp dport 25 table 1234 

:ポリシールーティングを構成するには、クライアントがUbuntu20.04以降を実行している必要があります。 ip Ubuntu18.04のユーティリティはipprotoをサポートしていません およびdport 引数。

ファイルを保存して閉じます。次に、WireGuardクライアントを起動します。

 sudo systemctlstart[メール保護]

TCPポート80および443のトラフィックをルーティングする場合は、次の構文を使用します。

 Table =1234PostUp =ip rule add ipproto tcp dport 80 table 1234; ip rule add ipproto tcp dport 443 table 1234PreDown =ip rule delete ipproto tcp dport 80 table 1234; ip rule delete ipproto tcp dport 443 table 1234 

ポリシールーティングルールを変更する前に、WireGuardVPN接続を停止する必要があることに注意してください。

以下のようにポート範囲を指定することもできます(TCPポート26からTCPポート10240)。

 Table =1234PostUp =ip rule add ipproto tcp dport 26-10240 table 1234PreDown =ip rule delete ipproto tcp dport 26-10240 table 1234 

TCPポートとUDPポートの両方を指定する場合は、ipproto tcpを削除します。 。

 Table =1234PostUp =ip rule add dport 26-10240 table 1234PreDown =ip rule delete dport 26-10240 table 1234 

トラフィックが特定のIPアドレス宛てである場合にのみVPNトンネルを使用するようにVPNクライアントを構成することをお勧めします。 toでこれを行うことができます オプション。

 Table =1234PostUp =ip rule add to 10.0.0.0/24 table 1234PreDown =ip rule delete to 10.0.0.0/24 table 1234 

スプリットトンネリング

デフォルトでは、VPNクライアント上のすべてのトラフィックはVPNサーバーを介してルーティングされます。スプリットトンネリングを有効にして、10.10.10.0/24へのトラフィックのみを有効にする方法は次のとおりです。 IP範囲はWireGuardVPNを介してトンネリングされます。これは、複数のクラウドサーバー用のプライベートネットワークを構築する場合に役立ちます。VPNクライアントはクラウドサーバー上で実行され、完全なVPNトンネルを使用すると、クラウドサーバーへの接続が失われる可能性があるためです。

クライアント構成ファイルを編集します。

 sudo nano /etc/wireguard/wg-client0.conf 

変更

 AllowedIPs =0.0.0.0/0 

宛先

 AllowedIPs =10.10.10.0/24 

したがって、トラフィックは、宛先アドレスが10.10.10.0/24IP範囲内にある場合にのみVPN経由でルーティングされます。ファイルを保存して閉じます。次に、WireGuardクライアントを再起動します。

 sudo systemctlrestart[メール保護]

複数のIP範囲を許可することもできます。 VPNサーバーが10.10.20.0/24も管理しているとします。 ネットワークの場合、AllowedIPsを構成できます 次のようなVPNクライアントで:

 AllowedIPs =10.10.10.0/24、10.10.20.0/24 

したがって、VPNクライアントは10.10.20.0/24に到達できます VPNサーバーを介したネットワーク、およびその逆。

単一のIPアドレスを追加するには、次の構文を使用します。

 AllowedIPs =10.10.10.0/24、10.10.20.0/24、8.8.8.8/32 

これは、8.8.8.8と通信するときにVPNサーバーを使用するようにクライアントに指示します。

VPNキルスイッチ

デフォルトでは、VPN接続が中断された場合、コンピューターは通常のゲートウェイを介してインターネットにアクセスできます。キルスイッチ機能を有効にすることをお勧めします。これにより、暗号化されていないパケットがWireGuard以外のインターフェイスを通過するのを防ぎます。

WireGuardクライアントプロセスを停止します。

 sudo systemctl stop [email protected] 

クライアント構成ファイルを編集します。

 sudo nano /etc/wireguard/wg-client0.conf 

[interface]に次の2行を追加します セクション。

 PostUp =iptables -I OUTPUT! -o%i -mマーク! --mark $(wg show%i fwmark)-m addrtype! --dst-type LOCAL -j REJECTPreDown =iptables -D OUTPUT! -o%i -mマーク! --mark $(wg show%i fwmark)-m addrtype! --dst-type LOCAL -j REJECT 

このように:

 [Interface] Address =10.10.10.2 / 24DNS =10.10.10.1PrivateKey =cOFA + x5UvHF + a3xJ6enLatG + DoE3I5PhMgKrMKkUyXI =PostUp =iptables -I OUTPUT! -o%i -mマーク! --mark $(wg show%i fwmark)-m addrtype! --dst-type LOCAL -j REJECTPreDown =iptables -D OUTPUT! -o%i -mマーク! --mark $(wg show%i fwmark)-m addrtype! --dst-type LOCAL -j REJECT [Peer] PublicKey =RaoAdsIEIwg​​V9DHNSubxWVG + nZ1GP / c3OU6A / efBJ0I =AllowedIPs =0.0.0.0/0Endpoint =12.34.56.78:51820PersistentKeepalive =25 

ファイルを保存して閉じます。次に、WireGuardクライアントを起動します。

 sudo systemctlstart[メール保護]

WireGuardインターフェースの複数のアドレス

WireGuardインターフェースは複数のIPアドレスを持つことができます。たとえば、VPNクライアントに2つのIPアドレスを設定できます。

[インターフェース]アドレス=10.10.10.2/24アドレス=10.10.10.3/ 24 .... 

この場合、この特定のクライアントのVPNサーバーで複数のIPアドレスを許可する必要があります。そうしないと、VPNクライアントがVPNサーバーに接続できない可能性があります。

 [Peer] ... AllowedIPs =10.10.10.2 / 32、10.10.10.3 / 32 

次のコマンドを使用して、IPアドレスがネットワークインターフェイスに属していることを確認できます。

 ip -c a 

  • ifconfig コマンドは、ネットワークインターフェースのIPアドレスのみを表示できます。
  • 新しい.confに別のWireGuardインターフェースを設定した場合 ファイルの場合は、51820以外のポートにバインドする必要があります。そうしないと、「アドレスはすでに使用されています」というエラーが表示されます。

Ubuntu
  1. Ubuntu20.04でWireGuardVPNを設定する方法

  2. UbuntuでWireGuardVPNを設定する方法(ステップバイステップガイド)

  3. Ubuntu22.04でWireGuardを設定する方法

  1. LinuxPCにVPNサーバーをセットアップする

  2. Ubuntu18.04でOpenVPNサーバーをセットアップする方法

  3. Ubuntu18.04でWireGuardVPNを設定する方法

  1. Ubuntu20.04でWireGuardVPNを設定する方法

  2. 独自のメディアサーバーをセットアップするためにUbuntuServer16.04をインストールします

  3. Debian11およびDebian10で独自のWireGuardVPNサーバーをセットアップする