インターネットサービスを運営するうえで欠かせないDNSサーバー。今回は、自宅に設置したサーバーで、Rocky Linux 8.8を使ってDNSサーバーを構築する手順を詳しく解説します。グローバルIPアドレスを活用し、契約した独自ドメインを用いることで、自宅サーバーから外部へ安定した名前解決サービスを提供できます。初心者でも実践しやすいよう、各ステップを丁寧に説明しています。
1. DNSサーバーとは?基本の仕組みを理解しよう
DNS(Domain Name System)は、ドメイン名とIPアドレスを紐づける役割を果たします。例えば「example.com」を「192.168.1.100」に変換することで、ブラウザでのアクセスを可能にします。自宅でDNSサーバーを構築することで、独自のネットワーク内サービスや、パブリックなWebサービスの提供が可能になります。
2. 事前準備:必要なものを確認
DNSサーバー構築を始める前に、以下を準備しましょう。
- Rocky Linux 8.8をインストールしたサーバー(自宅設置)
- グローバルIPアドレス(ISPから取得)
- 契約済みのドメイン名(お名前.com、ムームードメインなど)
- ルーターの設定アクセス権限(ポートフォワーディング設定用)
- ターミナル接続環境(SSHクライアント)
3. Rocky Linux 8.8の初期設定
まず、サーバーの基本設定を行います。
- システムの更新
sudo dnf update -y
- 必要なパッケージのインストール
sudo dnf install bind bind-utils -y
- 固定IPアドレスの設定(例:
192.168.1.100
)
nmcli con mod eth0 ipv4.addresses 192.168.1.100/24
nmcli con mod eth0 ipv4.gateway 192.168.1.1
nmcli con mod eth0 ipv4.dns 8.8.8.8
nmcli con mod eth0 ipv4.method manual
nmcli con up eth0
4. BIND(DNSサーバー)の設定
BIND(Berkeley Internet Name Domain)を設定します。
- 設定ファイルを編集
sudo vi /etc/named.conf
以下の内容を修正します:
listen-on port 53 { 127.0.0.1; 192.168.1.100; }; # ローカルIPを指定
allow-query { any; }; # 外部からの問い合わせを許可
- ゾーンファイルの作成
以下のディレクトリにゾーンファイルを作成します:
sudo vi /var/named/example.com.zone
記入例:
$TTL 86400
@ IN SOA ns1.example.com. admin.example.com. (
2024021601 ; シリアル番号
3600 ; リフレッシュ
1800 ; リトライ
604800 ; 有効期限
86400 ) ; 最小TTL
;
@ IN NS ns1.example.com.
@ IN A 123.45.67.89 ; グローバルIP
ns1 IN A 123.45.67.89
www IN A 123.45.67.89
- 権限設定
sudo chown named:named /var/named/example.com.zone
- BINDサービスの起動
sudo systemctl enable named
sudo systemctl start named
5. ルーターの設定:ポートフォワーディング
DNSサーバーを外部に公開するために、ルーターの管理画面にアクセスし、以下を設定します:
- **ポート53(TCP/UDP)**を自宅サーバーのローカルIP(例:192.168.1.100)に転送
- ファイアウォールで外部からのDNSアクセスを許可
6. 動作確認
以下のコマンドでDNS動作を確認します:
bashコピーする編集するdig @192.168.1.100 example.com
dig @192.168.1.100 www.example.com
正しくIPアドレスが返ってくれば成功です。
7. セキュリティ対策
- ファイアウォール設定
sudo firewall-cmd --add-service=dns --permanent
sudo firewall-cmd --reload
- BIND設定の見直し(外部ゾーン転送の制限など)
8. DNSレコードの種類と活用例
DNSには複数のレコードタイプがあります:
- Aレコード:ドメインとIPv4アドレスの紐付け
- AAAAレコード:ドメインとIPv6アドレスの紐付け
- MXレコード:メールサーバーの指定
- CNAMEレコード:別名(エイリアス)の設定
まとめ
本記事では、Rocky Linux 8.8を使って自宅にDNSサーバーを構築する手順を解説しました。グローバルIPアドレスと契約したドメインを活用することで、外部向けのサービス提供が可能になります。セキュリティを意識した設定を忘れずに行い、安定した運用を目指しましょう。