前回は実験的に VM に Debian 13 を導入した。今回はさらに踏み込み、新規サーバーを契約して本番用とし、既存の環境を開発用に切り替えた。その上で両者を Debian 13 に統一し、自宅の VM ホスト環境も含めてシステム全体を整理した。加えて VMware Workstation 17 Pro を導入し、 vmrun コマンドによる一括管理体制を構築した。結果的に、OS バージョンの統一にとどまらず、セキュリティ強化やバックアップ再設計も含めた大規模な環境刷新となった。
1. サーバー再編と Debian 13 への移行
本番・開発環境の分離
新規に契約したサーバーを「本番」、従来環境を「開発」と明確に分離した。これにより、環境変更やプログラム修正をまず開発で試し、問題なければ本番へ反映できる体制を整えた。小規模な自前 CI/CD のような運用となり、変更時の心理的負担が減少した。
インストールと初期確認
Debian 13 のインストール USB を作成し、VM で検証した。
free -m
32GB メモリ環境では自動的に 6GB 程度のスワップが確保された。かつての「メモリと同容量」割り当てよりもバランスが改善されている。
ディスクの安定化と暗号化復元
デバイス名の揺れに対応するため、マウントには UUID 指定を用いる。
sudo mkdir -p /mnt/data
sudo mount UUID=xxxx-xxxx /mnt/data
暗号化ディスクは以下の手順で復元できる。
sudo vgchange -ay
sudo mount /dev/mapper/vg-root /
2. Apache, PHP, WordPress 環境
Apache と PHP-FPM
sudo a2enconf php8.4-fpm
sudo systemctl reload apache2
WordPress と wp-cli
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 実行で統一し、安全側に寄せた。
キャッシュ強化
sudo systemctl enable memcached --now
3. データベースの移行と監視
MySQL / 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 ハードニング
Protocol 2
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
AllowUsers admin deploy
sudo systemctl reload ssh
Fail2ban
# /etc/fail2ban/jail.local(例)
[sshd]
enabled = true
maxretry = 5
bantime = 1h
sudo systemctl enable fail2ban --now
Apache: 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)
:programname, isequal, "postfix" -/var/log/postfix.log
& stop
sudo systemctl restart rsyslog
不要サービスの無効化
sudo systemctl disable --now avahi-daemon
sudo systemctl disable --now cups
パッケージ自動更新(必要に応じて)
sudo dpkg-reconfigure --priority=low unattended-upgrades
AppArmor の確認
ベースファイアウォール(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 バックアップ
# SMART 情報(例)
sudo smartctl -a /dev/sda >> /var/log/smart_$(date +%F).log
MySQL バックアップ(定期)
本番・開発 WordPress の分離運用
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 主要コマンド
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 オプションで抑制した。
# 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 による一括管理
単なるアップグレードではなく、運用設計とセキュリティ強化を兼ね備えた環境刷新である。インフラ全体をリファクタリングした実験結果と位置づけられる。今後はこの安定した基盤の上で新しい試みを積み重ねていきたい。