サーバー構築

WireGuardでVPNサーバーを構築する【最速・最もシンプルなVPN】

サーバー構築
記事内に広告が含まれています。

WireGuardは現代最速のVPNプロトコルです。設定がシンプルで初心者にも扱いやすく、OpenVPNと比べて圧倒的に少ない設定ファイルで動きます。

WireGuardのインストール

sudo apt update
sudo apt install -y wireguard

外向きNIC名の確認

設定ファイル内でNIC名を使用します。最近のLinux環境では eth0 ではなく ens3enp1s0 など別の名前になっていることが多いため、事前に確認してください。

ip route show default

出力例:default via 192.168.1.1 dev ens3 proto dhcp の場合、NIC名は ens3 です。以降の設定では eth0 をご自分の環境のNIC名に置き換えてください。

鍵ペアの生成

wg genkey | tee /etc/wireguard/server_private.key | wg pubkey > /etc/wireguard/server_public.key
chmod 600 /etc/wireguard/server_private.key
cat /etc/wireguard/server_private.key
cat /etc/wireguard/server_public.key

サーバー設定ファイルの作成

sudo nano /etc/wireguard/wg0.conf
[Interface]
PrivateKey = サーバーの秘密鍵
Address = 10.0.0.1/24
ListenPort = 51820
# eth0 の部分は ip route show default で確認したNIC名に変更してください
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

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

注意: eth0 の部分は必ずご自分の環境のNIC名に置き換えてください。そのままにするとNATが機能せず、VPN接続はできてもインターネットに出られません。

IPフォワーディングの有効化

echo 'net.ipv4.ip_forward=1' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

iptablesルールの永続化

WireGuardの PostUp/PostDown はwg0インターフェース起動・停止時に自動で実行されるため、wg-quickを使う限りは自動で適用されます。ただし再起動後もwg-quickが自動起動する設定にしておくことが重要です。

sudo systemctl enable wg-quick@wg0

より確実にiptablesルールを永続化したい場合は iptables-persistent を使います。

sudo apt install -y iptables-persistent
sudo netfilter-persistent save

WireGuardの起動と確認

sudo systemctl start wg-quick@wg0
sudo systemctl enable wg-quick@wg0
sudo wg show

wg showでインターフェースとPeerの情報が表示されれば起動成功です。

まとめ

  • WireGuardは最速・最もシンプルなVPNプロトコル
  • ip route show default で外向きNIC名を確認し、eth0 を置き換えること
  • wg genkeyで鍵ペアを生成しwg0.confに設定を記述するだけ
  • IPフォワーディングを有効にすることでVPNトラフィックをルーティングできる
  • systemctl enable wg-quick@wg0 で再起動後も自動起動する
  • iptables-persistentでNATルールを永続化できる

コメント

タイトルとURLをコピーしました