banner
Alexeisie

AlexEisie

啊? Email: alexeisie@brs.red
github

Wireguard リモートネットワーキング

1. サーバー環境の設定#

サーバー側のカーネル転送を有効にする

sysctl net.ipv4.ip_forward=1
sysctl net.ipv6.conf.all.forwarding=1
sysctl -p

Wireguard プログラムをインストールする

apt install wireguard

2. サーバー側の Wireguard インターフェースの設定#

サーバーの鍵ペアを生成する

wg genkey | tee /dev/stderr | wg pubkey

/etc/wireguard フォルダーに ifs0.conf というファイルを作成する
wireguard サービスは 10203/udp でリッスンする
ネットワークは 192.168.3.0/24 のプライベートネットワークを使用する
サーバーは 192.168.3.1/32 を割り当てる
クライアントは 192.168.3.2/32 を割り当てる
ここで eth0 は実際の出口インターフェース名に置き換える必要があります
Peer の AllowedIPs は入力トラフィックの IP アドレスと一致するように使用され、一致する場合は wireguard が接続を処理します

[Interface]
PrivateKey = サーバーのプライベートキー
Address = 192.168.3.1/32
PostUp   = iptables -A FORWARD -i ifs0 -j ACCEPT; iptables -A FORWARD -o ifs0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i ifs0 -j ACCEPT; iptables -D FORWARD -o ifs0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
ListenPort = 10203

[Peer]
PublicKey = クライアントの公開鍵
AllowedIPs = 192.168.3.2/32

wireguard の ifs0 設定を開始し、PostUp の設定も実行する

wg-quick up ifs0

wireguard の ifs0 設定を終了し、PostDown の設定も実行する

wg-quick down ifs0

3. クライアントの設定#

Wireguard プログラムをインストールする

apt install wireguard

クライアントの鍵ペアを生成する

wg genkey | tee /dev/stderr | wg pubkey

/etc/wireguard フォルダーに ifc0.conf というファイルを作成する
このクライアントは以前のサーバーで処理される IP アドレス 192.168.3.2/32 を割り当てる
Peer エンドポイントにはサーバーの wireguard プロセスを記入する(クライアントが 114.51.41.91 を介してサーバーにアクセスできると仮定する)
この時点で Peer の AllowedIPs は出力トラフィックの IP アドレスと一致するように使用され、一致する場合は wireguard を介してトンネルアクセスされます。例の設定ではすべての IPv4 トラフィックを処理しますが、192.168.3.0/24 を使用してネットワークトラフィックのみを処理することもできます

[Interface]
PrivateKey = クライアントのプライベートキー
Address = 192.168.3.2/32

[Peer]
PublicKey = サーバーの公開鍵
AllowedIPs = 0.0.0.0/0
Endpoint = 114.51.41.91:10203

wireguard の ifs0 設定を開始し、PostUp の設定も実行する

wg-quick up ifs0

wireguard の ifs0 設定を終了し、PostDown の設定も実行する

wg-quick down ifs0

4.1 複数クライアント(サーバーをゲートウェイとして抽象化)#

サーバーに複数の Peer マッチを追加するだけです

[Interface]
###省略###

[Peer]
PublicKey = クライアント192.168.3.2の公開鍵
AllowedIPs = 192.168.3.2/32

[Peer]
PublicKey = クライアント192.168.3.3の公開鍵
AllowedIPs = 192.168.3.3/32

4.2 IPv6 サポート / IPv6 アドレス割り当て#

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。