コパイロット 姐さんと相談して、セキュアなネット環境を目指して「WireGuard」を導入することに。
ソフトウェアのWireGuard をインストールする予定だったけど、ルーターで使っているTP-Link にWireGuard VPN サーバー機能が付いていたので、これを使用することにしました。
ISP ルーター(ホームゲートウェイ)がポート転送に対応していないと、WireGuard だけ設定しても使えないので、事前に機能と設定方法とかも確認しておきましょう。
あと、自宅が固定IP じゃないとちょっと運用が不便かも。

接続は一度設定して有効にしておけば、毎回自動でつながるので煩わしい感じもなく、無効化するのも簡単なので、使いやすくて良い感じです。
TP-Link ER605 Omada Gigabit VPN Gateway でWireGuard VPN を設定する。
TP-Link ルーターに WireGuard 機能が正式実装されている。
→「ルーターで WireGuard サーバーを立てる」タイプ。
この画面でVPN の存在に気付く。

ルーターの良い点。

- PCが落ちててもVPNは生きてる。
- ファイアウォールと相性がいい。後述の、
- Attack Defense
- 異常パケット遮断
- Ping from WAN ブロック
これらが WireGuardの前で全部効く。
PC直 WireGuard vs ルーター WireGuard
PC にインストールしたWireGuard と、ルーター WireGuardとの比較。
細かい設定ができないとのことですが、特に不便は感じてないかな。
| 項目 | PC直 | ルーター |
|---|---|---|
| 秘匿 | ◎ | ◎ |
| 常時稼働 | △ | ◎ |
| 構成の綺麗さ | △ | ◎ |
| 設定自由度 | ◎ | △ |
| 安心感 | ◯ | ◎ |
WireGuard 設定
STEP 0:事前に決める値(先に決めると楽)
以下は例。変更してOK。
| 項目 | 値(例) |
|---|---|
| WireGuardポート | 51888/UDP |
| VPN用IP帯 | 10.3.3.0/24 |
| ルーター(VPN内IP) | 10.3.3.1 |
| クライアント1 | 10.3.3.10 ~ |
STEP 1:TP‑Linkで WireGuard「サーバー」を作る
Add ボタンを押して、必要事項を記入する。
Local IP Address はVPN の内部IP になるので、10.3.3.1 みたいなIP を設定しておく。
サーバー側のキーペアが生成されるので、Public Key(公開鍵)の方だけクライアントに何かしらの方法で伝達する。
Listen Port はISP ルーターから転送するポートの番号です。
(ちなみに UDF で転送しないとTCP だとVPN 接続できなかったです。)

多分、これでいいはず。
STEP 2:Peer(外出先端末)を追加
クライアント側の設定。クライアントの公開鍵が必要なので、
事前にクライアントにWireGuard をインストールしてキーペアを作成しておく。
Add ボタンを押してPeer を追加。
Allowed Address はIP アドレスのことで、サーバーで設定した内部IP の内から1つ、クライアント用の IP を割り当てる(→プレフィクスが「32」になる。Allowed Addressは、Peer(クライアント)に割り当てる、静的 IP を設定している。)
Public Key(公開鍵)は接続を許可する端末で生成したものを入力。
Optional は空白のまま。

STEP 3:クライアント設定を作る
端末にWireGuard をインストールして設定。クライアントもサーバーも同じソフトできた?
iPhone ならAppStore でアプリが入手可能でした。

iPhone もPC も設定自体はUI の違いだけでどちらも一緒。
まあ、結構、ここでハマった。
[Interface]
PrivateKey = (クライアント側の秘密鍵)
Address = 10.3.3.10/32
DNS = 192.168.3.1 # 管理LANのDNS(任意)
[Peer]
PublicKey = (TP‑Link側のPublicKey)
Endpoint = <自宅グローバルIP>:<待ち受けポート>
AllowedIPs = 192.168.25.0/24, 10.3.3.0/24
PersistentKeepalive = 25こんな感じの設定画面で、Peer にVPN サーバーの情報を書きます。

こんな感じでつながります。
「無効化」ボタンで一発切断できるところもいい。

[Interface] は、クライアントを指す。
- Public Key(公開鍵)はキーペアを生成したときに勝手に入る。
- Address がサーバーで割り当てしたIP を指定。DNS は空白でもいいと思う。
[Peer] はVPN サーバーを指している。
- Public Key(公開鍵)はサーバーで生成した、サーバーのPublic Key(公開鍵)を入力。
- Endpoint がサーバーのIP とポートを指す。
- Allowed IPs で、VPN で設定した内部IP と接続したいセグメントを指定する。(カンマ区切りで複数のセグメントを記入します。)
- Keepalive は入れておく。
ちなみに防御機能。
これはこれは TP-Link系ルーターの「Firewall → Attack Defense(攻撃防御)」画面ですね。
「入口で変な通信をふるい落とす」ための基本的な防御機能が一通りある。

Flood Defense(大量通信対策)
DoS / DDoS の初歩的な防御です。

設定項目の意味
- Multi-connections TCP/UDP/ICMP Flood
- 多数の接続を張ってくる攻撃(ボット系)
- Stationary source … Flood
- 同一IPからの連続攻撃
- 家庭用途ではONにしておいてOK
- 誤検知はほぼ出ない
- パフォーマンス影響も小さい
Packet Anomaly Defense(異常パケット)

有効になっている項目(✅のやつ)
- ✅ Block TCP Scan (Stealth FIN/Xmas/Null)
- ポートスキャン検出
- ✅ Block Ping of Death
- 古典的OSクラッシュ攻撃
- ✅ Block Ping from WAN
- WANからのPing無視(姿を消す)
- ✅ Block WinNuke attack
- 更に古いDoS
- ✅ Block TCP packets with SYN and FIN bits set
- 明らかな異常パケット
- ✅ Block TCP packets with FIN bit set but no ACK
- ステルススキャン対策
- ✅ Block packets with specified IP options
- IPオプションを使った変態通信拒否
- Security / Record Route / Timestamp etc.
以上です。
