ブログ一覧へ

【セキュリティ】Wireguardを使って安全に自宅のネットワークをアクセスする方法

公開日:2023-01-17

また会社員になったから、あんま自宅にいない状況となりました。

セキュリティのため、私のサーバーは:80と:443以外自宅だけからアクセス出来る様に設定しました。

でも、会社にいながらアクセス出来たら良いなぁと思いましたので、今回はWireguardで安全に自宅のネットワークをアクセスする方法を教えると思います。

ここの記事で:

記事の場合、「ゲートウェイ」は自宅のネットワーク内のサーバーで、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です。

useradd -m (ユーザー名)
passwd (ユーザー名)
usermod -G wheel (ユーザー名)
su -l (ユーザー名)
mkdir ~/.ssh
touch ~/.ssh/authorized_keys

すべての側

初めての場合、SSHキーを作成して下さい。

ssh-keygen -t ed25519

そのままEnterキーを押して下さい。

パスワードを入らないで下さい。

cat ~/.ssh/id_ed25519.pub

出力をコピーして、

「/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側

じゃ、始めましょう!

まずはパッケージをインストールしましょう。

doas pkg_add wireguard-tools

rootになって、Wireguardのコンフィグを作成しましょう。

doas su
mkdir /etc/wireguard
chmod 700 /etc/wireguard
cd /etc/wireguard

wg genkey | tee private.key | wg pubkey > public.key

ゲートウェイ側

大体同じステップですね。

sudo apt install wireguard-tools
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
[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
sysctl net.inet.ip.forwarding=1
vi /etc/sysctl.conf
net.inet.ip.forwarding=1
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)
...
pfctl -f /etc/pf.conf
vi /etc/hostname.wg0
inet 192.168.10.1 255.255.255.0 NONE
up
!/usr/local/bin/wg setconf wg0 /etc/wireguard/wg0.conf
sh /etc/netstart wg0

ゲートウェイ側

wg-quick up wg0

確認しましょう

お疲れ様でした!!

じゃ、ノートパソコンは違うネットワーク(例えば、スマホのWiFiホットスポット又はスタバの無料WiFi)に接続して、ノートパソコンからVPSにログインして下さい。

VPSからゲートウェイにログインして下さい。

ゲートウェイからネットワーク以内のゲームパソコンにログインして下さい。

VPS→ゲートウェイにログインするには、IPアドレスは「192.168.10.2」となります。

今から世界中でどこでもから自宅のゲームパソコンをアクセス出来ます!!

以上