前回は実験的に VM に Debian 13 を導入した。今回はさらに踏み込み、新規サーバーを契約して本番用とし、既存の環境を開発用に切り替えた。その上で両者を Debian 13 に統一し、自宅の VM ホスト環境も含めてシステム全体を整理した。加えて VMware Workstation 17 Pro を導入し、 vmrun コマンドによる一括管理体制を構築した。結果的に、OS バージョンの統一にとどまらず、セキュリティ強化やバックアップ再設計も含めた大規模な環境刷新となった。
1. サーバー再編と Debian 13 への移行
本番・開発環境の分離
新規に契約したサーバーを「本番」、従来環境を「開発」と明確に分離した。これにより、環境変更やプログラム修正をまず開発で試し、問題なければ本番へ反映できる体制を整えた。小規模な自前 CI/CD のような運用となり、変更時の心理的負担が減少した。
インストールと初期確認
Debian 13 のインストール USB を作成し、VM で検証した。
1 2 | lsblk free -m |
32GB メモリ環境では自動的に 6GB 程度のスワップが確保された。かつての「メモリと同容量」割り当てよりもバランスが改善されている。
ディスクの安定化と暗号化復元
デバイス名の揺れに対応するため、マウントには UUID 指定を用いる。
1 2 3 | blkid sudo mkdir -p /mnt/data sudo mount UUID=xxxx-xxxx /mnt/data |
暗号化ディスクは以下の手順で復元できる。
1 2 3 | sudo cryptsetup luksOpen /dev/sdb sdb_crypt --key-file /etc/lvm/lvm.seckey sudo vgchange -ay sudo mount /dev/mapper/vg-root / |
2. Apache, PHP, WordPress 環境
Apache と PHP-FPM
1 2 3 | sudo apt install -y apache2 libapache2-mod-fcgid php8.4-fpm sudo a2enconf php8.4-fpm sudo systemctl reload apache2 |
WordPress と wp-cli
1 2 3 4 5 6 | sudo apt install -y mariadb-server php8.4-mysql php8.4-xml php8.4-curl \ php8.4-mbstring php8.4-gd unzip curl curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar chmod +x wp-cli.phar sudo mv wp-cli.phar /usr/local/bin/wp |
wp コマンドの所有権を root にして sudo 実行で統一し、安全側に寄せた。
キャッシュ強化
1 2 | sudo apt install -y memcached php8.4-memcached sudo systemctl enable memcached --now |
3. データベースの移行と監視
MySQL / MariaDB
停止/整合性確保前提でのファイルコピー(実験)。
1 2 3 4 | sudo systemctl stop mariadb sudo rsync -aHAX /var/lib/mysql/ newserver:/var/lib/mysql/ # 実運用ではダンプを推奨 mysqldump -u root -p --all-databases > /backup/alldb.sql |
プロセス監視(Munin プラグイン側の強化)
mysqld/mariadbd 監視を追加し、可視性を高めた。
4. セキュリティ強化
今回の刷新ではセキュリティを厚めにした。レイヤー単位で対策を配置している。
SSH ハードニング
1 2 3 4 5 6 7 8 | # /etc/ssh/sshd_config(主要例) Protocol 2 PermitRootLogin no PasswordAuthentication no PubkeyAuthentication yes AllowUsers admin deploy sudo systemctl reload ssh |
Fail2ban
1 2 3 4 5 6 7 8 | sudo apt install -y fail2ban # /etc/fail2ban/jail.local(例) [sshd] enabled = true maxretry = 5 bantime = 1h sudo systemctl enable fail2ban --now |
Apache: mod_evasive
1 2 3 4 5 6 7 8 9 10 | sudo apt install -y libapache2-mod-evasive sudo a2enmod evasive # /etc/apache2/mods-available/evasive.conf(閾値例) DOSHashTableSize 3097 DOSPageCount 30 DOSSiteCount 200 DOSPageInterval 1 DOSSiteInterval 1 DOSBlockingPeriod 60 sudo systemctl reload apache2 |
ログ分離(Postfix)
1 2 3 4 5 | # /etc/rsyslog.d/30-postfix.conf :programname, isequal, "postfix" -/var/log/postfix.log & stop sudo systemctl restart rsyslog |
不要サービスの無効化
1 2 3 | systemctl list-unit-files --type=service | grep enabled sudo systemctl disable --now avahi-daemon sudo systemctl disable --now cups |
パッケージ自動更新(必要に応じて)
1 2 | sudo apt install -y unattended-upgrades sudo dpkg-reconfigure --priority=low unattended-upgrades |
AppArmor の確認
1 | sudo aa-status |
ベースファイアウォール(nftables 例)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | sudo apt install -y nftables sudo systemctl enable nftables --now sudo tee /etc/nftables.conf > /dev/null >>'EOF' flush ruleset table inet filter { chain input { type filter hook input priority 0; ct state established,related accept iif lo accept tcp dport { 22, 80, 443 } accept ip protocol icmp accept drop } } EOF sudo nft -f /etc/nftables.conf |
5. バックアップと運用改善
rsync バックアップ
1 2 3 | rsync -av --delete /home/ /backup/home/ # SMART 情報(例) sudo smartctl -a /dev/sda >> /var/log/smart_$(date +%F).log |
MySQL バックアップ(定期)
1 | mysqldump -u root -p mydb | gzip > /backup/mydb_$(date +%F).sql.gz |
本番・開発 WordPress の分離運用
1 2 3 | # 開発でのエクスポート/本番でのインポート例 wp export --dir=./export wp import ./export/*.xml --authors=create |
6. VMware Workstation 17 Pro と vmrun 管理
自宅の VM ホストを Debian 13 に更新すると同時に、VMware Workstation 17 Pro を導入した。GUI での初期作成は効率がよいが、日常運用は vmrun で一括管理する方針である。
vmrun 主要コマンド
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | # 起動(GUI なし) vmrun start /path/to/vm.vmx nogui # 停止(通常/強制) vmrun stop /path/to/vm.vmx soft vmrun stop /path/to/vm.vmx hard # スナップショット vmrun snapshot /path/to/vm.vmx snap1 vmrun listSnapshots /path/to/vm.vmx vmrun revertToSnapshot /path/to/vm.vmx snap1 # 稼働中 VM 一覧 vmrun list |
GUI と CUI を横断して制御できる柔軟性は運用上の強みである。ヘッドレス運用により、リモートからの集中管理が容易になった。
7. systemd と GUI 運用
Debian 13 は systemd 前提が一層強まった。利点はサービス管理の統一と起動制御の容易さ、欠点は構成の肥大化である。GUI 環境にはいつも通り GNOME Flashback を選択した。軽量でクラシックな UI を維持でき、サーバー管理用途に適する。ログイン時のカーネルメッセージは quiet オプションで抑制した。
1 2 3 | sudo vim /etc/default/grub # GRUB_CMDLINE_LINUX_DEFAULT="quiet" sudo update-grub |
gdm3 と lightdm を比較し、最終的には lightdm を維持した。理由は GPU が Quadro K600 という古い Kepler 世代のワークステーション向けローエンドであり nvidia-legacy-390xx-driver パッケージがすでにサポートしていない。そのため nouveau を使う必要があり、その親和性のためである。
8. まとめ ― OS 統一とセキュリティ強化の効果
- バージョン統一による管理コストの削減
- 本番 / 開発分離による安全な検証体制
- 多層防御 (SSH ハードニング / Fail2ban / mod_evasive / ログ分離 / 不要サービス停止 / nftables etc.)
- VMware Workstation 17 Pro + vmrun による一括管理
単なるアップグレードではなく、運用設計とセキュリティ強化を兼ね備えた環境刷新である。インフラ全体をリファクタリングした実験結果と位置づけられる。今後はこの安定した基盤の上で新しい試みを積み重ねていきたい。