From c7888605cf2ed263e338455f7ceddec046b154c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=83=86=E3=82=AF=E3=83=8B=E3=82=AB=E3=83=AB=E8=AB=8F?= =?UTF-8?q?=E8=A8=AA=E5=AD=90?= Date: Tue, 17 Jan 2023 16:50:43 +0900 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E3=82=BB=E3=82=AD=E3=83=A5=E3=83=AA?= =?UTF-8?q?=E3=83=86=E3=82=A3=E3=80=91Wireguard=E3=82=92=E4=BD=BF=E3=81=A3?= =?UTF-8?q?=E3=81=A6=E5=AE=89=E5=85=A8=E3=81=AB=E8=87=AA=E5=AE=85=E3=81=AE?= =?UTF-8?q?=E3=83=8D=E3=83=83=E3=83=88=E3=83=AF=E3=83=BC=E3=82=AF=E3=82=92?= =?UTF-8?q?=E3=82=A2=E3=82=AF=E3=82=BB=E3=82=B9=E3=81=99=E3=82=8B=E6=96=B9?= =?UTF-8?q?=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/blog/access-network-wireguard/index.md | 211 +++++++++++++++++++++ 1 file changed, 211 insertions(+) create mode 100644 src/blog/access-network-wireguard/index.md diff --git a/src/blog/access-network-wireguard/index.md b/src/blog/access-network-wireguard/index.md new file mode 100644 index 0000000..a1a2b63 --- /dev/null +++ b/src/blog/access-network-wireguard/index.md @@ -0,0 +1,211 @@ +title: 【セキュリティ】Wireguardを使って安全に自宅のネットワークをアクセスする方法 +author: 凛 +date: 2023-01-17 +tags: blog,jp,linux,bsd,セキュリティ,ネットワーク +---- +また会社員になったから、あんま自宅にいない状況となりました。\ +セキュリティのため、私のサーバーは:80と:443以外自宅だけからアクセス出来る様に設定しました。\ +でも、会社にいながらアクセス出来たら良いなぁと思いましたので、今回はWireguardで安全に自宅のネットワークをアクセスする方法を教えると思います。 + +ここの記事で: +* VPSはOpenBSD +* ゲートウェイはDevuan +* ノートパソコンとゲームパソコンはArtix Linux + +記事の場合、「ゲートウェイ」は自宅のネットワーク内のサーバーで、VPSはネットワーク外のサーバーと意味です。 + +ソフトのインストールコマンド以外全部のコマンドは全部のLinuxディストリビューション及びBSD OSで同じです。\ +うまく出来たら、ノートパソコン→VPS→ゲートウェイ→ゲームパソコンのログインは可能となります。\ +ここの場合、Artix→OpenBSD→Devuan→Artixですね。 + +ノート→VPS→ゲーム(Artix→OpenBSD→Artix)も可能ですが、自宅ネットワークで複数パソコンやサーバー(あたしは10台ぐらい)があれば、1台のゲートウェイがあった方が良いです。\ +そうしてセキュリティの為、SSHとWireguardしか何も実行されていないサーバーの方が安全ですね。 + +# VPS + +OpenBSDを使ってVPSなら、ConoHa又はVultrを勧めます。\ +ConoHaのOpenBSDイメージは古いバージョンですので、まずは最新バージョンまで「pkg_add -ui」及び「sysupgrade」コマンドを実行する事が必要です。\ +どっちでもで、一番安いVPSは十分です。 + +# 買い物 + +まずは専用サーバーを買ってみよっか!\ +あれば、Lenovo ThinkCentre又はNECのジャンク品は一番勧めますが、結局何でも良いです。\ +東京に近く住んだら、秋葉原のジャンク通りで2000~4000円で買えます。\ +あとはSSDを買うのは必要ですが、小さいSSDは大丈夫です。\ +ACケーブル及びイーサネットケーブルも必要です、なければキーボードとモニタも必要ですが、すでに持ってるやつを使いましょう。\ +まとめて5千円でサーバーの購入が可能です。 + +# ゲートウェイでDevuanのインストール + +いつでも通りDevuanをインストールしましょう。\ +でもサーバーですので、XFCEじゃなくて、ベースインストーラーを使って下さい。 + +## SSHのセキュリティ対策 + +インストールする後、セキュリティ対策の為、下記のステップは必要です。 + +### VPSとゲートウェイの側 + +普通ユーザー作って下さい。\ +注意:Devuanの場合、wheelじゃなくて、sudoです。 + +```sh +useradd -m (ユーザー名) +passwd (ユーザー名) +usermod -G wheel (ユーザー名) +su -l (ユーザー名) +mkdir ~/.ssh +touch ~/.ssh/authorized_keys +``` + +### すべての側 + +初めての場合、SSHキーを作成して下さい。 + +```sh +ssh-keygen -t ed25519 +``` + +そのままEnterキーを押して下さい。\ +パスワードを入らないで下さい。 + +```sh +cat ~/.ssh/id_ed25519.pub +``` + +出力をコピーして、 +* Artixのノートパソコンの内容はOpenBSDのVPSの「~/.ssh/authorized_keys」に貼って +* OpenBSDのVPSの内容はDevuanのゲートウェイのものに貼って +* Devuanのゲートウェイの内容はArtixのゲームパソコンのものに貼って + +「/etc/ssh/sshd_config」ファイルを編集して下さい。 + +``` +... +PermitRootLogin no +... +PasswordAuthentication no +... +``` + +SSHサービスの再起動。 + +| Devuan | Artix (runitの場合) | OpenBSD | +|---------------------|---------------------|--------------------| +| service ssh restart | sv restart sshd | rcctl restart sshd | + +まだVPS→ゲートウェイのログインは不可能ですが、そろそろ可能となります。 + +# Wireguardの設置 + +## VPS側 + +じゃ、始めましょう!\ +まずはパッケージをインストールしましょう。 + +```sh +doas pkg_add wireguard-tools +``` + +rootになって、Wireguardのコンフィグを作成しましょう。 + +```sh +doas su +mkdir /etc/wireguard +chmod 700 /etc/wireguard +cd /etc/wireguard + +wg genkey | tee private.key | wg pubkey > public.key +``` + +## ゲートウェイ側 + +大体同じステップですね。 + +```sh +sudo apt install wireguard-tools +``` + +```sh +sudo su +mkdir /etc/wireguard +chmod 700 /etc/wireguard +cd /etc/wireguard + +wg genkey | tee private.key | wg pubkey > public.key +vi /etc/wireguard/wg0.conf +``` + +```sh +[Interface] +PrivateKey = (ゲートウェイの「/etc/wireguard/private.key」の内容) +Address = 192.168.10.2/24 + +[Peer] +PublicKey = (VPSの「/etc/wireguard/public.key」の内容) +Endpoint = (VPSのIPアドレス):443 +AllowedIPs = 0.0.0.0/0 +``` + +## VPS側 + +``` +vi /etc/wireguard/wg0.conf +``` + +``` +[Interface] +PrivateKey = (VPSの「/etc/wireguard/private.key」の内容) +ListenPort = 443 + +[Peer] +PublicKey = (ゲートウェイの「/etc/wireguard/public.key」の内容) +AllowedIPs = 0.0.0.0/0 +PersistentKeepalive = 25 +``` + +```sh +sysctl net.inet.ip.forwarding=1 +vi /etc/sysctl.conf +``` + +``` +net.inet.ip.forwarding=1 +``` + +```sh +vi /etc/pf.conf +``` + +``` +... +pass # establish keep-state + +pass in on wg0 +pass in inet proto udp from any to any port 443 +pass out on egress inet from (wg0:network) nat-to (vio0:0) +... +``` + +```sh +pfctl -f /etc/pf.conf +``` + +## ゲートウェイ側 + +```sh +wg-quick up wg0 +``` + +# 確認しましょう + +お疲れ様でした!!\ +じゃ、ノートパソコンは違うネットワーク(例えば、スマホのWiFiホットスポット又はスタバの無料WiFi)に接続して、ノートパソコンからVPSにログインして下さい。\ +VPSからゲートウェイにログインして下さい。\ +ゲートウェイからネットワーク以内のゲームパソコンにログインして下さい。\ +VPS→ゲートウェイにログインするには、IPアドレスは「192.168.10.2」となります。 + +今から世界中でどこでもから自宅のゲームパソコンをアクセス出来ます!! + +以上