R640 WireGuard剥がし計画

// R640 PIVOT PLAN / katuocloud → 二層構造への進化
概要

R640からWireGuard機能を剥がし、オープンなWebサーバーとして再構築する。katuocloud (鰹) のブランドは維持しつつ、内部構造を二層化。物理ホスト名 (katuo / maguro) は変更しない。

判断の根拠:
  • katuocloud (WG必須版) の顧客 = ゼロ
  • R640は業務用フレッツ回線 (¥25,000/月) + 固定IP + UPS導入済の完璧な公開サーバー条件
  • XServer + VPS = 月¥4,500の固定費があり、6月末契約満了
  • R640をオープン化することで「自社インフラ運用」が強力な営業武器に変わる
  • クライアントHPホスティングを月額化することでストック型収益確立
二層構造設計 (katuocloud統一ブランド)
// アーキテクチャ
┌──────────────────────────────────────────┐ │ katuocloud (統一ブランド) │ │ "築地から世界へ" 自社インフラ運用 │ └──────────────────────────────────────────┘ ↓ ┌───────────────────┴───────────────────┐ │ │ ┌───┴────────────────┐ ┌───────────┴────────┐ │ Web Service層 │ │ Secure Storage層 │ │ R640 (katuo) │ │ Supermicro (maguro)│ │ オープンWebサーバー│ │ WG必須プライベート │ └────────────────────┘ └────────────────────┘ ├─ wp.katuocloud.com ├─ secure.katuocloud.com │ WordPressホスティング │ (WG経由のみアクセス) ├─ meet.katuocloud.com │ │ Jitsi Meet 会議 │ 既存 Nextcloud + WG ├─ cloud.katuocloud.com │ 既存5人体制継続 │ Nextcloud Web (オープン) │ ├─ mail.katuocloud.com │ バックアップ保管庫 │ Mautic メール配信 │ magurocloud-storage └─ bakusoku-hp.net │ としてもアピール可 他クライアントHP多数
// ブランド命名整理
レイヤー名称用途顧客アクセス
物理ホストkatuo (R640)WebサービスHTTPS直接
物理ホストmaguro (Supermicro)ストレージ・WGWG経由
ブランド表katuocloud統合ブランド営業表向き
サービスkatuocloud Webオープン部門一般向け新規
サービスkatuocloud Secureプライベート部門既存5人継続
命名の哲学: 物理ホスト名 (katuo/maguro) は絶対に変更しない。既存設定・ドキュメント・スクリプトの書き換えを回避する。ブランドは「katuocloud」で表面統一する。
移行スケジュール (5月末完了目標)
Phase 1 / Week 1 (5/12-5/18): 基盤構築
Day日付作業内容所要
15/12 (今夜)集客ページ復元 + シンプルティザー化 + 寝る1.5h
25/13R640 容量・現状把握、移行計画書類化2h
35/14R640に Cockpit + Portainer + NPM インストール2h
45/15WordPress用 docker-compose 設計・テスト3h
55/16Cloudflare DNS設定、固定IP設定確認2h
65/17wanchance.com 試験移行 (失敗OK、練習)3h
75/18動作確認・問題点洗い出し2h
Phase 2 / Week 2 (5/19-5/25): katuocloud移動 + WG剥がし
Day日付作業内容所要
85/19Supermicro側 Nextcloud用 docker-compose 構築3h
95/20katuocloud データ移動 (R640→Supermicro)4h
105/21Supermicro側 WG設定・動作確認3h
115/22★R640から WG完全停止・削除2h
125/23R640 オープン化セキュリティ強化 (Cloudflare等)3h
135/24bakusoku-hp.net 本番移行4h
145/25移行検証・DNS切替2h
Phase 3 / Week 3 (5/26-5/31): 仕上げ + 解約
Day日付作業内容所要
155/26その他HP3個移行 (can-construction, shinkoujyuusetu, etc)4h
165/27Nextcloud Web版・Jitsi Meet・Mautic 追加4h
175/28自動バックアップ・監視設定3h
185/29XServer/VPS データ完全削除前最終チェック2h
195/30XServer/VPS 解約手続き1h
205/31完了確認・営業資料化「自社インフラ運用中」2h
★ Day 11 (5/22): R640 WG剥がし詳細手順
// 事前条件
  • Supermicro側 katuocloud (Nextcloud+WG) が稼働確認済
  • R640内 katuocloud データの最終バックアップ取得済
  • 既存5人ユーザー (もしいれば) へ事前通知済
  • WG接続情報 (vpn.wan-secure.net) のDNSをSupermicroに切替済
// 剥がし作業
# 1. 現状WG確認 (R640側)
sudo wg show
sudo systemctl status wg-quick@wg0

# 2. WG停止
sudo systemctl stop wg-quick@wg0
sudo systemctl disable wg-quick@wg0

# 3. WG関連ファイル退避 (削除ではなく退避)
sudo mkdir -p /root/wg-backup-$(date +%Y%m%d)
sudo mv /etc/wireguard/* /root/wg-backup-$(date +%Y%m%d)/

# 4. WG関連パッケージ削除 (任意・後でも可)
# sudo apt remove --purge wireguard wireguard-tools

# 5. UFW (firewall) からWG用ポート54024開放削除
sudo ufw status numbered
sudo ufw delete allow 54024/udp

# 6. WG用 iptables ルール削除 (もしあれば)
sudo iptables -L -n -v | grep 54024
# 該当ルールがあれば個別に削除

# 7. mikyun_vpn_engine.py 等のWG管理スクリプト無効化
sudo systemctl disable katuocloud-vpn-engine 2>/dev/null
# (実際のサービス名に合わせる)

# 8. cron からWG関連削除
sudo crontab -l | grep -i wireguard
# 該当行を削除

# 9. 最終確認
sudo wg show              # → 何も表示されない = OK
sudo netstat -ulnp | grep 54024  # → ポート閉鎖確認
sudo systemctl status wg-quick@wg0 # → inactive/dead確認
注意: WG剥がしは取り返しがつくように、削除ではなく退避を基本とする。/root/wg-backup-YYYYMMDD/ に全設定を保管し、何かあれば即座に戻せる状態にする。
R640 オープン化セキュリティ多層防御
// Layer 0: 物理・回線
  • 業務用フレッツ光 + 固定IP (信頼性・SLA確保)
  • UPS導入済 (停電対策)
  • RAID10 (HW RAID、ディスク冗長性)
// Layer 1: Cloudflare (無料プラン)
# 設定項目
- DNS: Proxied (橙雲) = 自宅IP隠蔽
- SSL/TLS: Full (strict)
- Always Use HTTPS: ON
- Bot Fight Mode: ON
- Security Level: Medium
- Country Block: CN, RU, KP (営業対象外国除外)
- WAF Managed Rules: ON
- Rate Limiting: 100req/min/IP
// Layer 2: Nginx Proxy Manager (R640内)
# NPM設定
- Let's Encrypt SSL自動取得・更新
- Force SSL: ON
- HTTP/2: ON
- Block Common Exploits: ON
- Cache Assets: ON
- Custom locations:
  /wp-admin → IP制限 (作業時のみ開放)
  /xmlrpc.php → 403返却
  /.env → 403返却
// Layer 3: Fail2ban
# /etc/fail2ban/jail.local
[sshd]
enabled = true
maxretry = 3
bantime = 3600

[wordpress]
enabled = true
filter = wordpress
logpath = /var/log/nginx/access.log
maxretry = 5
bantime = 86400

[nginx-noscript]
enabled = true
maxretry = 6
bantime = 86400
// Layer 4: 各WordPress
  • wp-login.php Basic Auth (現状継続)
  • 2FA (Wordfence Lite / WP 2FA)
  • XML-RPC 無効化
  • REST API 認証必須
  • Limit Login Attempts
  • SiteGuard相当の対策
// Layer 5: バックアップ
# 3-2-1 ルール
- 日次バックアップ: R640内 (24時間保持)
- 週次バックアップ: Supermicro NFS (4週間保持)
- 月次オフサイト: 検討 (Backblaze B2 / wasabi 等)

# 実装
sudo crontab -e
0 3 * * * /usr/local/bin/backup-all-sites.sh daily
0 4 * * 0 /usr/local/bin/backup-all-sites.sh weekly
想定外シナリオへの対応
// もし WG剥がし後にトラブル発生したら
# 即座にWG復活コマンド (緊急時用)
sudo cp /root/wg-backup-YYYYMMDD/* /etc/wireguard/
sudo ufw allow 54024/udp
sudo systemctl enable --now wg-quick@wg0
sudo wg show
// もし XServer解約後にサイト不調発覚
  • XServerは契約終了後も15日間データ保持される
  • 解約手続き後すぐ削除されるわけではない
  • 緊急時は契約期間中のバックアップから復元可能
// もし固定IPが変わったら
  • 業務用フレッツなので原則変わらない
  • 万一の時はCloudflare DNSのAレコード即時更新でカバー
  • DDNS (mydns.jp等) 二重化も検討
5月末完了後の状態
// インフラ構成
機器役割主要サービス
R640 (katuo)WebサーバーWP複数・Nextcloud Web・Jitsi・Mautic
Supermicro (maguro)セキュアストレージkatuocloud (Nextcloud+WG)・バックアップ
hirame開発・補助Collabora Online・検証環境
// 月額コスト変化
項目移行前移行後変化
業務用フレッツ¥25,000¥25,000±0 (元から払ってる)
XServer¥1,500¥0-¥1,500
VPS¥3,000¥0-¥3,000
電気代増分-+¥α軽微
合計¥29,500¥25,000-¥4,500/月
// 営業力UP
  • 「自社サーバーで全運用」と明言可能
  • 「お客様データは第三者に渡しません」
  • 「Web会議も自社運用でセキュア」
  • HPホスティング月額収益の基盤完成
  • クライアント単価アップの根拠
引き継ぎ用 — コード君へ
// 引き継ぎ時の判断ポイント
  • R640のホスト名は katuo のまま (絶対変更しない)
  • Supermicroのホスト名は maguro のまま (絶対変更しない)
  • ブランド名は「katuocloud」で統一 (鮪は社内用語、顧客に出さない)
  • WG完全停止は5/22 を目安、無理せず後ろ倒し可
  • XServer/VPS解約期限は5月末厳守 (6月の請求発生回避)
// 既存資産
  • 173.0.0.x 全メッシュ (R640↔SM↔hirame) → そのまま継続利用
  • Supermicro NFS (/srv/storage/SM-storage/) → バックアップ先として継続
  • Telegram監視 → 各サーバーで継続
  • GitHub repo: wanperochance-code/mikyun-cloud → katuocloud再構築の参考
// 関連ファイル参照先
ファイル場所
katuocloud 本体 (旧)R640: /root/mikyun-cloud/
WG エンジンR640: mikyun_vpn_engine.py
functions.php (子テーマ)R640: /var/www/katuocloud/wp-content/themes/astra-child/functions.php
nginx設定R640: /etc/nginx/sites-enabled/katuocloud.com
WireGuard設定R640: /etc/wireguard/wg0.conf
完了チェックリスト
  • R640から WG完全停止・退避完了
  • Supermicroで katuocloud (WG版) 単独稼働確認
  • R640 オープン化・Cloudflare適用
  • bakusoku-hp.net 移行・動作確認
  • 他クライアントHP3個 移行・動作確認
  • Nextcloud Web版・Jitsi・Mautic 稼働
  • 自動バックアップ稼働確認
  • Fail2ban・Cloudflare WAF 動作確認
  • XServer 解約手続き完了
  • VPS 解約手続き完了
  • 営業資料「自社インフラ運用」追加
備考: この計画は5月末XServer/VPS契約満了を前提に作成。前倒し完了が望ましいが、無理に進めて事故るより安全第一。最悪Phase 2の途中までで6月初旬まで延長も可 (XServerの15日データ保持期間内なら復元可能)。