シンプルなVPNの設定 WireGuard そしてサーバーとしてRaspberry Piを使用する

から WireGuard の一部となる フューチャーコア Linux 5.6、このVPNを私の Raspberry Pi 上の LTE ルーター/アクセス ポイント.

機器

  • LTEモジュールとパブリックIPアドレスを搭載したRaspberry Pi 3。ここにVPNサーバー(以下、 エッジウォーカー)
  • 電話オン Androidすべての通信にVPNを使用する必要がある
  • ラップトップ Linuxこれはネットワーク内でのみVPNを使用する必要がある

VPNに接続する各デバイスは、他のすべてのデバイスに接続できる必要があります。例えば、両方のデバイスがVPNに接続している場合、スマートフォンはノートパソコンのウェブサーバーに接続できる必要があります。設定が簡単な場合は、デスクトップパソコンも(イーサネット経由で)VPNに接続することを検討してください。

有線接続と無線接続は時間の経過とともに安全性が低下していることを考えると(標的型攻撃, WPA2を解読するKRACK攻撃 и WPA3に対するDragonblood攻撃)、私は真剣に使用を検討しています WireGuard 私のすべてのデバイスで、動作環境に関係なく使用できます。

ソフトウェアのインストール

WireGuard 提供しています プリコンパイル済みパッケージ ほとんどのディストリビューションの場合 Linux, Windows и macOS申請 Android iOS版とiOS版はアプリストアを通じて配信されます。

私は最新のFedoraを持っています Linux 31、インストールする前にマニュアルを読むのが面倒だったので、パッケージを探しました。 wireguard-toolsインストールしてみたものの、なぜ何も動作しないのか分からなかった。さらに調べてみると、パッケージがインストールされていなかったことが判明した。 wireguard-dkms (ネットワーク ドライバー付き) ですが、ディストリビューションのリポジトリにはありませんでした。

指示を読んでいたら、正しい手順を踏んでいたでしょう。

$ sudo dnf copr enable jdoss/wireguard
$ sudo dnf install wireguard-dkms wireguard-tools

私のRaspberry PiにはRaspbian Busterディストリビューションがインストールされており、すでにパッケージが入っています。 wireguard、インストールします:

$ sudo apt install wireguard

電話で Android アプリケーションをインストールしました WireGuard VPN 公式 Google App Store カタログから。

キーのインストール

ノードを認証するには Wireguard VPNノードの認証には、シンプルな公開鍵/秘密鍵方式を使用します。以下のコマンドで簡単にVPNキーを生成できます。

$ wg genkey | tee wg-laptop-private.key |  wg pubkey > wg-laptop-public.key
$ wg genkey | tee wg-server-private.key |  wg pubkey > wg-server-public.key
$ wg genkey | tee wg-mobile-private.key |  wg pubkey > wg-mobile-public.key

これにより、64組のキー(XNUMXつのファイル)が作成されます。設定ファイル内のファイルは参照しませんが、内容をここにコピーします。各キーはbaseXNUMXでXNUMX行ずつ記述されています。

VPNサーバーの設定ファイルの作成(Raspberry Pi)

設定は非常に簡単で、次のファイルを作成しました /etc/wireguard/wg0.conf:

[Interface]
Address = 10.200.200.1/24
ListenPort = 51820
PrivateKey = <copy private key from wg-server-private.key>
PostUp   = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o wwan0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o wwan0 -j MASQUERADE

[Peer]
# laptop
PublicKey = <copy public key from wg-laptop-public.key>
AllowedIPs = 10.200.200.2/32

[Peer]
# mobile phone
PublicKey = <copy public key from wg-mobile-public.key>
AllowedIPs = 10.200.200.3/32

コメントをいくつか:

  • キーを含むファイルから適切な場所に行を挿入する必要があります
  • 私のVPNは内部範囲を使用しています 10.200.200.0/24
  • チーム向け PostUp/PostDown 外部ネットワークインターフェース wwan0 を指定しましたが、別のインターフェース (eth0 など) を指定することもできます。

VPN ネットワークは、次のコマンドで簡単に設定できます。

$ sudo wg-quick up wg0

ちょっとした詳細:DNSサーバーとして私が使用した dnsmasq ネットワークインターフェースバインディング付き br0、デバイスも追加しました wg0 許可されたデバイスのリストに追加します。dnsmasqでは、設定ファイルにネットワークインターフェースを含む新しい行を追加することでこれを行います。 /etc/dnsmasq.confたとえば、次のようになります。

interface=br0
interface=wg0

また、リスニング UDP ポート (51280) へのトラフィックを許可する iptable ルールも追加しました。

$ sudo iptables -I INPUT -p udp --dport 51820 -j ACCEPT

すべてが動作するようになったので、VPN トンネルの自動起動を設定できます。

$ sudo systemctl enable wg-quick@wg0.service

ラップトップでのクライアント構成

ノートパソコンで設定ファイルを作成する /etc/wireguard/wg0.conf 同じ設定で:

[Interface]
Address = 10.200.200.2/24
PrivateKey = <copy private key from wg-laptop-private.key>

[Peer]
PublicKey = <copy public key from wg-server-public.key>
AllowedIPs = 10.200.200.0/24
Endpoint = edgewalker:51820

備考:

  • edgewalkerの代わりにVPNサーバーのパブリックIPまたはホストを指定する必要があります
  • 設定することにより AllowedIPs на 10.200.200.0/24社内ネットワークへのアクセスにはVPNのみを使用します。その他のIPアドレス/サーバーへのトラフィックは、引き続き「通常の」オープンチャネルを経由します。ノートパソコンに事前設定されたDNSサーバーも使用されます。

テストと自動起動には同じコマンドを使用します wg-quick и systemd:

$ sudo wg-quick up wg0
$ sudo systemctl enable wg-quick@wg0.service

クライアントの設定 Android-電話

電話用 Android 非常によく似た設定ファイルを作成します(これを mobile.conf):

[Interface]
Address = 10.200.200.3/24
PrivateKey = <copy private key from wg-mobile-private.key>
DNS = 10.200.200.1
        
[Peer]
PublicKey = <copy public key from wg-server-public.key>
AllowedIPs = 0.0.0.0/0
Endpoint = edgewalker:51820

ノートパソコンの設定とは異なり、電話機はVPNサーバーをDNSサーバーとして使用する必要があります(行 DNS)、またすべてのトラフィックをVPNトンネル(AllowedIPs = 0.0.0.0/0).

ファイルをモバイル デバイスにコピーする代わりに、QR コードに変換することもできます。

$ sudo apt install qrencode
$ qrencode -t ansiutf8 < mobile.conf

QRコードはASCII形式でコンソールに出力されます。アプリからスキャンできます。 Android VPNを起動し、VPNトンネルを自動的に構成します。

出力

調整 WireGuard まさに魔法のようだ OpenVPN.

出所: habr.com

DDoS 保護機能を備えた信頼性の高いサイト用ホスティング、VPS VDS サーバーを購入する 🔥 DDoS攻撃対策付きの信頼性の高いウェブサイトホスティング、VPS/VDSサーバーを購入しましょう | ProHoster