主要な環境を Debian 13 で統一した

前回は実験的に VM に Debian 13 を導入した。今回はさらに踏み込み、新規サーバーを契約して本番用とし、既存の環境を開発用に切り替えた。その上で両者を Debian 13 に統一し、自宅の VM ホスト環境も含めてシステム全体を整理した。加えて VMware Workstation 17 Pro を導入し、 vmrun コマンドによる一括管理体制を構築した。結果的に、OS バージョンの統一にとどまらず、セキュリティ強化やバックアップ再設計も含めた大規模な環境刷新となった。


1. サーバー再編と Debian 13 への移行

本番・開発環境の分離

新規に契約したサーバーを「本番」、従来環境を「開発」と明確に分離した。これにより、環境変更やプログラム修正をまず開発で試し、問題なければ本番へ反映できる体制を整えた。小規模な自前 CI/CD のような運用となり、変更時の心理的負担が減少した。

インストールと初期確認

Debian 13 のインストール USB を作成し、VM で検証した。

lsblk
free -m

32GB メモリ環境では自動的に 6GB 程度のスワップが確保された。かつての「メモリと同容量」割り当てよりもバランスが改善されている。

ディスクの安定化と暗号化復元

デバイス名の揺れに対応するため、マウントには UUID 指定を用いる。

blkid
sudo mkdir -p /mnt/data
sudo mount UUID=xxxx-xxxx /mnt/data

暗号化ディスクは以下の手順で復元できる。

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

sudo apt install -y apache2 libapache2-mod-fcgid php8.4-fpm
sudo a2enconf php8.4-fpm
sudo systemctl reload apache2

WordPress と wp-cli

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 実行で統一し、安全側に寄せた。

キャッシュ強化

sudo apt install -y memcached php8.4-memcached
sudo systemctl enable memcached --now

3. データベースの移行と監視

MySQL / MariaDB

停止/整合性確保前提でのファイルコピー(実験)。

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 ハードニング

# /etc/ssh/sshd_config(主要例)
Protocol 2
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
AllowUsers admin deploy

sudo systemctl reload ssh

Fail2ban

sudo apt install -y fail2ban
# /etc/fail2ban/jail.local(例)
[sshd]
enabled = true
maxretry = 5
bantime = 1h

sudo systemctl enable fail2ban --now

Apache: mod_evasive

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)

# /etc/rsyslog.d/30-postfix.conf
:programname, isequal, "postfix" -/var/log/postfix.log
& stop

sudo systemctl restart rsyslog

不要サービスの無効化

systemctl list-unit-files --type=service | grep enabled
sudo systemctl disable --now avahi-daemon
sudo systemctl disable --now cups

パッケージ自動更新(必要に応じて)

sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades

AppArmor の確認

sudo aa-status

ベースファイアウォール(nftables 例)

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 バックアップ

rsync -av --delete /home/ /backup/home/
# SMART 情報(例)
sudo smartctl -a /dev/sda >> /var/log/smart_$(date +%F).log

MySQL バックアップ(定期)

mysqldump -u root -p mydb | gzip > /backup/mydb_$(date +%F).sql.gz

本番・開発 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 主要コマンド

# 起動(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 オプションで抑制した。

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 による一括管理

単なるアップグレードではなく、運用設計とセキュリティ強化を兼ね備えた環境刷新である。インフラ全体をリファクタリングした実験結果と位置づけられる。今後はこの安定した基盤の上で新しい試みを積み重ねていきたい。