🐥

Proxmox上のDNSサーバー(BIND9)を安全にアップデートする手順

に公開

概要

DNSサーバーはネットワークの基盤であり、脆弱性が見つかった際は迅速な対応が求められますよね。

本記事では、 Proxmox上で稼働している内部権威DNS(BIND9) を、安全にアップデート・検証するための手順を紹介しています!(筆者はubuntu環境)

対象読者

  • Proxmox環境で複数VMを管理している方
  • BIND9を内部DNSとして運用している方

1. メンテナンスの目的と背景

  • BIND9の脆弱性対応がしたい(例:DoS脆弱性、キャッシュポイズニング対策など)
  • 内部DNSとしてLAN内ドメインを管理したい(外部フォワーダーなし)
  • ns1 → ns2 の順で個別アップデートし、サービス停止を避けたい

ns1およびns2は、サービスの可用性を確保するために冗長構成されたBIND9サーバーで、ns1をプライマリ(マスター)、ns2をセカンダリ(スレーブ)として運用しています。

2. 作業前準備(バックアップと確認)

Proxmoxでスナップショットを取得しておこう!
1. Proxmox管理画面で対象VMを選択します
2. 「Snapshots」→「Create」をクリック
3. 名前を (例)pre-bind-update-ns1-YYYYMMDD などに設定します

3. 現在の状態確認

# 現在のホスト名(サーバー名)を確認
hostname
# BIND9 のバージョンを表示
named -v
# BIND9 サービスの起動状態を確認
systemctl status bind9

ログを残す場合は

# 以降のターミナル操作内容をログとして記録開始
# (実行結果・入力コマンドをすべて ~/bind_update_日付.log に保存)
script ~/bind_update_$(date +%Y%m%d).log
# 記録を終了
exit

4. BINDのアップデート

# パッケージ情報を更新
sudo apt update

BIND9 関連パッケージを最新バージョンにアップグレード

# BIND9 関連パッケージを最新バージョンにアップグレード
sudo apt install --only-upgrade bind9 bind9-utils bind9-host

「is already the newest version」 と表示された場合は、
現時点でリポジトリにある最新版がすでに適用済みです!
念のため、以下のコマンドでバージョンを確認してみましょう。

apt list --installed bind9

5. サービス再起動と動作確認

# BIND9 サービスを再起動
sudo systemctl restart bind9

# サービスが正常に稼働しているか確認
sudo systemctl status bind9

6. 設定整合性チェック

# BIND9 の設定ファイルの構文チェック
sudo named-checkconf
# 管理しているゾーンファイルの整合性チェック(ゾーン名は自分の環境に合わせて変更)
sudo named-checkzone example.local /etc/bind/db.example.local

再起動前に設定の整合性を確認し、起動時エラーを防ぐためのチェックです。

“OK” が表示されればゾーン設定は問題ないです。

7. ns2のアップデート

上記と同様にアップデートしましょう。

8. 両サーバーの更新完了後に既存の連携システムを確認

BIND9 のアップデート後は、他のサービスやスクリプトとの連携が正常に動作しているかを確認します。
DNS サーバーは他システムと密接に関係するため、更新後の確認を怠ると意図しない影響が出ることがあリます。

# 自動的にゾーンを更新するcronジョブやスクリプトが存在しないかを確認します
sudo grep -R "zone" /etc/cron* /usr/local /opt 2>/dev/null

# BIND設定内で自動更新が有効になっていないか確認します
sudo grep -R "allow-update" /etc/bind
sudo grep -R "dnssec" /etc/bind

※環境によって方法は千差万別なので、あくまでも具体例です。

チェック内容

  • 自動ゾーン更新スクリプトやcronジョブの有無
  • allow-update や dnssec による動的更新設定の有無
  • 他の内部サービス(DHCP, Web, Mailなど)がDNS更新依存していないか

これらに問題がなければ、BIND9は静的構成で運用されており、外部連携への影響はないです。

Discussion