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) | ストレージ・WG | WG経由 |
| ブランド表 | katuocloud | 統合ブランド | 営業表向き |
| サービス | katuocloud Web | オープン部門 | 一般向け新規 |
| サービス | katuocloud Secure | プライベート部門 | 既存5人継続 |
命名の哲学: 物理ホスト名 (katuo/maguro) は絶対に変更しない。既存設定・ドキュメント・スクリプトの書き換えを回避する。ブランドは「katuocloud」で表面統一する。
移行スケジュール (5月末完了目標)
Phase 1 / Week 1 (5/12-5/18): 基盤構築
| Day | 日付 | 作業内容 | 所要 |
|---|---|---|---|
| 1 | 5/12 (今夜) | 集客ページ復元 + シンプルティザー化 + 寝る | 1.5h |
| 2 | 5/13 | R640 容量・現状把握、移行計画書類化 | 2h |
| 3 | 5/14 | R640に Cockpit + Portainer + NPM インストール | 2h |
| 4 | 5/15 | WordPress用 docker-compose 設計・テスト | 3h |
| 5 | 5/16 | Cloudflare DNS設定、固定IP設定確認 | 2h |
| 6 | 5/17 | wanchance.com 試験移行 (失敗OK、練習) | 3h |
| 7 | 5/18 | 動作確認・問題点洗い出し | 2h |
Phase 2 / Week 2 (5/19-5/25): katuocloud移動 + WG剥がし
| Day | 日付 | 作業内容 | 所要 |
|---|---|---|---|
| 8 | 5/19 | Supermicro側 Nextcloud用 docker-compose 構築 | 3h |
| 9 | 5/20 | katuocloud データ移動 (R640→Supermicro) | 4h |
| 10 | 5/21 | Supermicro側 WG設定・動作確認 | 3h |
| 11 | 5/22 | ★R640から WG完全停止・削除 | 2h |
| 12 | 5/23 | R640 オープン化セキュリティ強化 (Cloudflare等) | 3h |
| 13 | 5/24 | bakusoku-hp.net 本番移行 | 4h |
| 14 | 5/25 | 移行検証・DNS切替 | 2h |
Phase 3 / Week 3 (5/26-5/31): 仕上げ + 解約
| Day | 日付 | 作業内容 | 所要 |
|---|---|---|---|
| 15 | 5/26 | その他HP3個移行 (can-construction, shinkoujyuusetu, etc) | 4h |
| 16 | 5/27 | Nextcloud Web版・Jitsi Meet・Mautic 追加 | 4h |
| 17 | 5/28 | 自動バックアップ・監視設定 | 3h |
| 18 | 5/29 | XServer/VPS データ完全削除前最終チェック | 2h |
| 19 | 5/30 | XServer/VPS 解約手続き | 1h |
| 20 | 5/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日データ保持期間内なら復元可能)。
