🌀

Wireguardインストールログ

2021/08/11に公開

目的

  • 家のオンプレサーバーをインターネットに公開したいが、DS-Lite している為公開できない
  • VPN を使う事で、Oracle Cloud 上のサーバーを経由してオンプレ鯖のサービスを公開する。

URL

ホスト

  • クラウド Ubuntu 18.04LTS
  • ローカル Debian 10 Ubuntu 18.04LTS
  • 執筆時点 2020/04/14 では Debian 10 で wireguard をセットアップした際に ip link add dev wg0 type wireguardUnknown type となってしまった為 Ubuntu に変更

これはDebian 10だとカーネルが古い(4.9系)のでまだwireguardが標準で入っておらず、カーネルモジュールが必要なため。
echo 'deb http://ftp.debian.org/debian buster-backports main' | sudo tee /etc/apt/sources.list.d/buster-backports.list
をすればあとは apt-get でインストールできる。

セットアップ手順

クラウド側(サーバー側)

  • sudo add-apt-repository ppa:wireguard/wireguard
  • sudo apt-get update
  • sudo apt-get install wireguard
  • ip link add dev wg0 type wireguard
  • ip address add dev wg0 10.240.0.1/24
  • sudo su -
  • cd /etc/wireguard
  • wg genkey > private

Warning: writing to world accessible file.
Consider setting the umask to 077 and trying again.

  • chmod 077 private
  • wg pubkey < private

CzAAAAAAAAAAAAAAAAAAAAAAAuVg=

  • config を作成 (/etc/wireguard/wg0.conf)

/etc/wireguard/wg0.conf

[Interface]
PrivateKey = サーバー側秘密鍵 (private) の中身をコピペ
# Address = 10.240.0.1 参考にしたサイトではこれが記述されていたが、エラーとなるのでコメント化
ListenPort = 51820

[Peer]
PublicKey = クライアント側公開鍵(後で生成する)
AllowedIPs = 10.240.0.0/24

ローカル側(クライアント側)

  • sudo add-apt-repository ppa:wireguard/wireguard
  • sudo apt-get update
  • sudo apt-get install wireguard
  • ip link add dev wg0 type wireguard
  • ip address add dev wg0 10.240.0.20/24
  • sudo su -
  • cd /etc/wireguard
  • wg genkey > private

Warning: writing to world accessible file.
Consider setting the umask to 077 and trying again.

  • chmod 077 private
  • wg pubkey < private

CzBBBBBBBBBBBBBBBBBBBBBBuVg=

  • クライアント側 config を作成 (/etc/wireguard/wg0.conf)
[Interface]
# クライアント側秘密鍵
PrivateKey = このホストのprivate の中身

[Peer]
PublicKey = # サーバー側公開鍵
EndPoint = サーバー側公開IPアドレス:port
AllowedIPs = 10.240.0.0/24
PersistentKeepAlive = 30
  • ここでサーバー側 config ファイルのクライアント側 publickey が生成されるので config を直す。

接続開始

  • サーバー側、クライアント側 両方で wg setconf wg0 /etc/wireguard/wg0.conf

備考

  • サーバー側はポート開放が必要。
  • wg pubkey < private は、private の中身が同一であれば、何度やっても同じ結果が出る。

Discussion