🌀
Wireguardインストールログ
目的
- 家のオンプレサーバーをインターネットに公開したいが、DS-Lite している為公開できない
- VPN を使う事で、Oracle Cloud 上のサーバーを経由してオンプレ鯖のサービスを公開する。
URL
- https://www.wireguard.com/install/
- https://www.wireguard.com/quickstart/#command-line-interface
- https://ma-tech.centurysys.jp/doku.php?id=mae3xx_ope:use_wireguard_vpn:start
- https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/6/html/load_balancer_administration/s1-lvs-forwarding-vsa
ホスト
- クラウド Ubuntu 18.04LTS
- ローカル Debian 10 Ubuntu 18.04LTS
- 執筆時点 2020/04/14 では Debian 10 で wireguard をセットアップした際に
ip link add dev wg0 type wireguard
がUnknown 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