ホームページ >運用・保守 >Linuxの運用と保守 >LinuxでDNSサーバー(バインド)をセットアップするにはどうすればよいですか?

LinuxでDNSサーバー(バインド)をセットアップするにはどうすればよいですか?

Robert Michael Kim
Robert Michael Kimオリジナル
2025-03-12 19:02:43617ブラウズ

LinuxでバインドDNSサーバーをセットアップします

LinuxでBind(Berkeley Internet Name Domain)DNSサーバーのセットアップには、いくつかのステップが含まれます。まず、Bindパッケージをインストールする必要があります。正確なコマンドは分布に依存しますが、通常sudo apt-get install bind9 (debian/ubuntu)またはsudo yum install bind (centos/rhel)のようなものです。インストール後、コア構成ファイルは通常/etc/bind/にあります。主にnamed.conf.optionsnamed.conf.localを使用します。

named.conf.options 、リスニングアドレス、フォワーダー(ローカルに回答がない場合はクエリする他のDNSサーバー)、再帰設定などのグローバル設定を制御します(サーバーがクライアントのクエリを再帰的に解決するかどうか)。 named.conf.local 、サーバーが管理するゾーンを定義します。ゾーンは、DNSネームスペースの一部です(例:example.com)。 named.conf.local内で、実際のDNSレコード(a、aaaa、mx、cnameなど)を含むゾーンファイルの場所を指定します。これらのレコードは、ドメイン名をIPアドレスやその他の情報にマッピングします。

たとえば、 example.comゾーンを定義するには、DNSレコードを含むファイル( /etc/bind/db.example.comなど)を作成します。このファイルは、 named.conf.localで参照されます。これらのファイルを構成した後、BINDサービスを再起動する必要があります(例、 sudo systemctl restart bind9 )。セットアップをテストすることが重要です。 nslookupdigなどのツールを使用して、サーバーを照会し、名前が正しく解決されていることを確認します。適切なファイアウォールルールを構成して、DNSトラフィック(通常はUDPポート53およびTCPポート53)がサーバーに到達できるようにすることを忘れないでください。

バインドDNSサーバーの必須構成ファイル

BIND DNSサーバーの必須構成ファイルは、主に/etc/bind/ディレクトリにあります。キーファイルとその役割の内訳は次のとおりです。

  • named.conf.optionsこのファイルには、Bindサーバーのグローバルオプションが含まれています。キー設定には次のものがあります。

    • listen-on port 53 { any; }; :IPアドレスを指定して、サーバーが耳を傾けるポートを指定します。 any手段すべてのインターフェイス。
    • allow-query { any; }; :どのIPアドレスがサーバーを照会できるかを指定します。 any 、すべてのアドレスからクエリを許可します。これは、通常、生産サーバーにとっては安全ではありません。これを特定のIPアドレスまたはネットワークに制限して、セキュリティを向上させます。
    • forwarders { 8.8.8.8; 8.8.4.4; }; :上流のDNSサーバーを指定して、サーバーがローカルに回答がないかどうかにクエリを転送します。 GoogleのパブリックDNSサーバーを使用することは一般的な慣行です。
    • recursion yes;またはrecursion no; :サーバーがクエリを再帰的に解決するかどうかを判断します。サーバーがクライアントにとって再帰的なリゾルバーであることを意図していない限り、通常、再帰は無効にする必要があります。
    • directory "/var/cache/bind"; :Bindがキャッシュを保存するディレクトリを指定します。
  • named.conf.localこのファイルにはゾーン定義が含まれています。各ゾーンは、ドメイン名、ゾーンのタイプ(マスター、スレーブ、またはフォワード)、およびゾーンファイルの位置を指定して、 zoneディレクティブを使用して定義されます。例えば:
 <code>zone "example.com" { type master; file "/etc/bind/db.example.com"; };</code>
  • ゾーンファイル( /etc/bind/db.example.comなど):これらのファイルには、各ゾーンの実際のDNSレコードが含まれています。この形式は、Bindで定義された特定の構文です。 A、AAAA、MX、NS、CNAMEなどのレコードが含まれています。

一般的なバインドDNSサーバーエラーのトラブルシューティング

バインドエラーのトラブルシューティングには、多くの場合、ログと構成ファイルのチェックが含まれます。メインログファイルは通常、 /var/log/syslog (または分布に応じて同様の場所)にあり、バインドエラーメッセージが含まれます。構成ファイル、許可の問題、またはネットワーク接続の問題の構文エラーに関連するエラーメッセージを探します。

一般的なエラーは次のとおりです。

  • 構成ファイルの構文エラー: named.conf.optionsおよびnamed.conf.local慎重に確認します。 1つの誤ったセミコロンでさえ、サーバーの起動に失敗する可能性があります。
  • ゾーンファイルエラー:ゾーンファイルに正しい構文があり、すべてのレコードが適切にフォーマットされていることを確認してください。サーバーを再起動する前に、 named-checkzoneコマンドを使用してゾーンファイルを検証します。
  • ネットワーク接続の問題:サーバーにネットワーク接続があり、ファイアウォールがDNSトラフィックを許可することを確認します(ポート53 UDPおよびTCP)。
  • 名前サーバーが見つかりません:これは、DNSサーバーが他のシステムから到達できないことを示しています。サーバーのIPアドレスとネットワーク構成を確認してください。ファイアウォールがDNSトラフィックを許可していることを確認してください。

LinuxのBind DNSサーバーのセキュリティ対策

攻撃を防ぎ、データの整合性を維持するには、Bind DNSサーバーを保護することが重要です。ここにいくつかの重要なセキュリティ対策があります:

  • allow-queryを制限: allow-query { any; }生産環境で。サーバーを照会するIPアドレスまたはネットワークを厳密に制限します。
  • 強力なパスワードを使用する:サーバーおよび構成ファイルにアクセスして、すべてのユーザーアカウントに強力で一意のパスワードを使用します。
  • 定期的な更新:バインドソフトウェアを最新バージョンに更新して、セキュリティの脆弱性をパッチします。
  • 再帰を無効にします(必要でない場合):サーバーが再帰リゾルバーになることを意図していない限り、再帰を無効にして、DNS増幅攻撃に使用されないようにします。
  • ファイアウォールルール:ファイアウォールルールを実装して、必要なトラフィックのみ(ポート53 UDPおよびTCPのDNSトラフィック)を許可してサーバーに到達します。他のすべてのトラフィックをブロックします。
  • 通常のバックアップ:データの損失から保護するために、構成ファイルとゾーンデータを定期的にバックアップします。
  • ログを監視する:疑わしいアクティビティについては、サーバーログを定期的に監視します。
  • DNSSECを使用: DNSSEC(DNSセキュリティ拡張機能)の実装を検討して、DNS応答の認証と整合性を提供します。これは、DNSのスプーフィングやキャッシュ中毒攻撃を防ぐのに役立ちます。
  • 制限ゾーン転送:許可されたスレーブサーバーへのゾーン転送のみを許可します。

これらのセキュリティ対策を実装し、ベストプラクティスに従うことにより、Bind DNSサーバーのセキュリティを大幅に強化できます。最新の情報とセキュリティの推奨事項については、公式のBINDドキュメントを参照してください。

以上がLinuxでDNSサーバー(バインド)をセットアップするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。