summaryrefslogtreecommitdiffhomepage
path: root/vhosts/blog/content/posts/2024-02-03/install-wireguard-on-personal-server.ndoc
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2025-04-09 22:24:50 +0900
committernsfisis <nsfisis@gmail.com>2025-04-09 22:24:50 +0900
commitd1b4bc44170196a4dcef5254d092fc387e73792e (patch)
treea6bbe0e61b73c99a815d730ae7956a5124200066 /vhosts/blog/content/posts/2024-02-03/install-wireguard-on-personal-server.ndoc
parentbba1212ab46ed85c2ed3b646f2362bdbb1f45b63 (diff)
parent4f46d262e6967c9c638b40f3b0246d21b7a9b9dc (diff)
downloadnsfisis.dev-d1b4bc44170196a4dcef5254d092fc387e73792e.tar.gz
nsfisis.dev-d1b4bc44170196a4dcef5254d092fc387e73792e.tar.zst
nsfisis.dev-d1b4bc44170196a4dcef5254d092fc387e73792e.zip
Merge branch 'nuldoc-djot'
Diffstat (limited to 'vhosts/blog/content/posts/2024-02-03/install-wireguard-on-personal-server.ndoc')
-rw-r--r--vhosts/blog/content/posts/2024-02-03/install-wireguard-on-personal-server.ndoc180
1 files changed, 0 insertions, 180 deletions
diff --git a/vhosts/blog/content/posts/2024-02-03/install-wireguard-on-personal-server.ndoc b/vhosts/blog/content/posts/2024-02-03/install-wireguard-on-personal-server.ndoc
deleted file mode 100644
index 9dee8fce..00000000
--- a/vhosts/blog/content/posts/2024-02-03/install-wireguard-on-personal-server.ndoc
+++ /dev/null
@@ -1,180 +0,0 @@
----
-[article]
-uuid = "210673d0-c19e-4195-a280-968a0729dd41"
-title = "【備忘録】 個人用サーバに WireGuard を導入する"
-description = "個人用サービスのセルフホストに使っているサーバに WireGuard を導入する作業をしたメモ"
-tags = [
- "note-to-self",
- "wireguard",
-]
-
-[[article.revisions]]
-date = "2024-02-03"
-remark = "公開"
-
-[[article.revisions]]
-date = "2024-02-17"
-remark = "80 番ポートについて追記"
----
-<article>
- <section id="intro">
- <h>はじめに</h>
- <p>
- 個人用サービスのセルフホストに使っているサーバに <a href="https://www.wireguard.com/">WireGuard</a> を導入する作業をしたのでメモ。
- </p>
- <p>
- 登場するホストは以下のとおり:
- </p>
- <ul>
- <li>サーバ (Ubuntu): <code>10.10.1.1</code></li>
- <li>クライアント 1 (Windows): <code>10.10.1.2</code></li>
- <li>クライアント 2 (Android): <code>10.10.1.3</code></li>
- </ul>
- <p>
- 後ろの IP アドレスは VPN 内で使用するプライベート IP アドレス。
- </p>
- </section>
- <section id="install-wireguard-server">
- <h>WireGuard のインストール: サーバ</h>
- <p>
- まずは個人用サービスをホストしている Ubuntu のサーバに WireGuard をインストールする。
- </p>
- <codeblock>
- <![CDATA[
- $ sudo apt install wireguard
- ]]>
- </codeblock>
- <p>
- 次に、WireGuard で使用する鍵を生成する。
- </p>
- <codeblock>
- <![CDATA[
- $ wg genkey | sudo tee /etc/wireguard/server.key | wg pubkey | sudo tee /etc/wireguard/server.pub
- $ sudo chmod 600 /etc/wireguard/server.{key,pub}
- ]]>
- </codeblock>
- </section>
- <section id="install-wireguard-client">
- <h>WireGuard のインストール: クライアント</h>
- <p>
- 公式サイトから各 OS 向けのクライアントソフトウェアを入手し、インストールする。次に、設定をおこなう。
- </p>
- <codeblock language="ini">
- <![CDATA[
- # クライアント 1 の場合
- [Interface]
- Address = 10.10.1.2/32
- PrivateKey = <クライアント 1 の秘密鍵>
-
- [Peer]
- PublicKey = <サーバの公開鍵>
- AllowedIPs = <サーバの外部 IP アドレス>/32
- Endpoint = <サーバの外部 IP アドレス>:51820
- ]]>
- </codeblock>
- <codeblock language="ini">
- <![CDATA[
- # クライアント 2 の場合
- [Interface]
- Address = 10.10.1.3/32
- PrivateKey = <クライアント 2 の秘密鍵>
-
- [Peer]
- PublicKey = <サーバの公開鍵>
- AllowedIPs = <サーバの外部 IP アドレス>/32
- Endpoint = <サーバの外部 IP アドレス>:51820
- ]]>
- </codeblock>
- <p>
- <code>PrivateKey</code> や <code>PublicKey</code> は鍵ファイルのパスではなく中身を書くことに注意。
- </p>
- </section>
- <section id="configure-wireguard">
- <h>
- WireGuard の設定
- </h>
- <p>
- 一度サーバへ戻り、WireGuard の設定ファイルを書く。
- </p>
- <codeblock>
- <![CDATA[
- $ sudo vim /etc/wireguard/wg0.conf
- ]]>
- </codeblock>
- <codeblock language="ini">
- <![CDATA[
- [Interface]
- Address = 10.10.1.1/32
- SaveConfig = true
- PrivateKey = <サーバの秘密鍵>
- ListenPort = 51820
-
- [Peer]
- PublicKey = <クライアント 1 の公開鍵>
- AllowedIPs = 10.10.1.2/32
-
- [Peer]
- PublicKey = <クライアント 2 の公開鍵>
- AllowedIPs = 10.10.1.3/32
- ]]>
- </codeblock>
- <p>
- 次に、WireGuard のサービスを起動する。
- </p>
- <codeblock>
- <![CDATA[
- $ sudo systemctl enable wg-quick@wg0
- $ sudo systemctl start wg-quick@wg0
- ]]>
- </codeblock>
- </section>
- <section id="configure-firewall">
- <h>
- ファイアウォールの設定
- </h>
- <p>
- 続けてファイアウォールを設定する。まずは WireGuard が使用する UDP のポートを開き、<code>wg0</code> を通る通信を許可する。
- </p>
- <codeblock>
- <![CDATA[
- $ sudo ufw allow 51820/udp
- $ sudo ufw allow in on wg0
- $ sudo ufw allow out on wg0
- ]]>
- </codeblock>
- <p>
- 次に、80 や 443 などの必要なポートについて、<code>wg0</code> を経由してのアクセスのみ許可する。
- </p>
- <codeblock>
- <![CDATA[
- $ sudo ufw allow in on wg0 to any port 80 proto tcp
- $ sudo ufw allow in on wg0 to any port 443 proto tcp
- ]]>
- </codeblock>
- <p>
- 最後に、<code>ufw</code> を有効にする。
- </p>
- <codeblock>
- <![CDATA[
- $ sudo ufw status
- $ sudo ufw enable
- ]]>
- </codeblock>
- </section>
- <section id="connect-each-other">
- <h>
- 接続する
- </h>
- <p>
- これで、各クライアントで VPN を有効にすると、当該サーバの 80 ポートや 443 ポートにアクセスできるようになったはずだ。念のため VPN を切った状態でアクセスできないことも確認しておくとよいだろう。
- </p>
- </section>
- <section id="edit-80-port">
- <h>
- 追記: 80 番ポートについて
- </h>
- <p>
- Let's Encrypt でサーバの証明書を取得している場合、80 番ポートを空けておく必要がある。気づかないうちに証明書が切れないよう注意。
- </p>
- </section>
-</article>