FreeBSDでDJBDNSを構成する方法

このチュートリアルでは、保守が簡単で、構成が簡単で、一般的に従来のBINDサービスよりも安全なDNSサービスを構成する方法を示します。この記事は、FreeBSDがインストールされたVPSを実行していることを前提としています。

まず、ターミナルを開いてこのパッケージをインストールします:

<ceph>[~]# pkg install djbdns                                              
Updating FreeBSD repository catalogue...
FreeBSD repository is up-to-date.
All repositories are up-to-date.
The following 3 packages will be affected (of 0 checked):

New packages to be INSTALLED:
djbdns: 1.05_20,1
ucspi-tcp: 0.88_2
daemontools: 0.76_17

The process will require 1 MB more space.
251 KB to be downloaded.

Proceed with this action? [y/N]: y
Fetching djbdns-1.05_20,1.txz: 100%  139 KB 142.4k/s    00:01    
Fetching ucspi-tcp-0.88_2.txz: 100%   62 KB  63.1k/s    00:01    
Fetching daemontools-0.76_17.txz: 100%   51 KB  51.7k/s    00:01    
Checking integrity... done (0 conflicting)
[1/3] Installing ucspi-tcp-0.88_2...
[1/3] Extracting ucspi-tcp-0.88_2: 100%
[2/3] Installing daemontools-0.76_17...
[2/3] Extracting daemontools-0.76_17: 100%
[3/3] Installing djbdns-1.05_20,1...
[3/3] Extracting djbdns-1.05_20,1: 100%

インストールにより、追加のパッケージが自動的にインストールされます(daemontoolsおよびucspi-tcp)。

二人のユーザーを作成し、gtinydnsそしてgdnslog。最初のユーザーから始めます。

<ceph>[~]# adduser         
Username: gtinydns
Full name: gtinydns
Uid (Leave empty for default): 
Login group [gtinydns]: 
Login group is gtinydns. Invite gtinydns into other groups? []: 
Login class [default]: 
Shell (sh csh tcsh zsh rzsh nologin) [sh]: nologin
Home directory [/home/gtinydns]: 
Home directory permissions (Leave empty for default): 
Use password-based authentication? [yes]: 
Use an empty password? (yes/no) [no]: 
Use a random password? (yes/no) [no]: yes
Lock out the account after creation? [no]: 
Username   : gtinydns
Password   : <random>
Full Name  : gtinydns
Uid        : 1002
Class      : 
Groups     : gtinydns 
Home       : /home/gtinydns
Home Mode  : 
Shell      : /usr/sbin/nologin
Locked     : no
OK? (yes/no): yes
adduser: INFO: Successfully added (gtinydns) to the user database.
adduser: INFO: Password for (gtinydns) is: rTsada2131sa1Mg
Add another user? (yes/no): no
Goodbye!

次に、2番目のユーザーを追加します。

<ceph>[~]# adduser
Username: gdnslog
Full name: gdnslog
Uid (Leave empty for default):  
Login group [gdnslog]: 
Login group is gdnslog. Invite gdnslog into other groups? []: 
Login class [default]: 
Shell (sh csh tcsh zsh rzsh nologin) [sh]: nologin
Home directory [/home/gdnslog]: 
Home directory permissions (Leave empty for default): 
Use password-based authentication? [yes]: 
Use an empty password? (yes/no) [no]: 
Use a random password? (yes/no) [no]: yes
Lock out the account after creation? [no]: 
Username   : gdnslog
Password   : <random>
Full Name  : gdnslog
Uid        : 1003
Class      : 
Groups     : gdnslog 
Home       : /home/gdnslog
Home Mode  : 
Shell      : /usr/sbin/nologin
Locked     : no
OK? (yes/no): yes
adduser: INFO: Successfully added (gdnslog) to the user database.
adduser: INFO: Password for (gdnslog) is: jWsdad33aasdaFa0
Add another user? (yes/no): no
Goodbye!

次のコマンドを実行します。IPアドレスをVultrサーバーのアドレスに置き換えます。

<ceph>[~]# tinydns-conf gtinydns gdnslog /usr/local/etc/tinydns 108.61.100.100

このコマンドは、ディレクトリ、ファイル、およびその他のサブディレクトリをに作成し/usr/local/etc/tinydnsます。また、VPSのIPアドレスをに入れます/usr/local/etc/tinydns/env/IP

ディレクトリを作成します/service

<ceph>[~]# mkdir /service

/etc/rc.confファイルを編集します。

<ceph>[~]# ee /etc/rc.conf

...そして、これらの行:

svscan_enable="YES"
svscan_servicedir="/service"

構成を保存してsvscanサービスを開始します。

<ceph>[~]# /usr/local/etc/rc.d/svscan start
Starting svscan.

次に、このディレクトリに移動します:

 <ceph>[~]# cd /usr/local/etc/tinydns/root

dataファイルを編集します。

 <ceph>[root]# ee data

...そしていくつかのDNSデータを追加します:

# domain1.com
Zdomain1.com:dns1.domain1.com.:ns.domain1.com.:2013101203:604800:86400:2419200:604800:3600
&domain1.com::dns1.domain1.com.:3600
&domain1.com::dns2.domain1.com.:3600

# MX
@domain1.com::mail1.domain1.com.:10:3600
@domain1.com::mail2.domain1.com.:30:3600

# IP's (A records)
=dns1.domain1.com:108.61.210.99:3600
=dns2.domain1.com:89.201.163.42:3600
=mail1.domain1.com:89.201.163.42:3600
=mail2.domain1.com:85.114.41.8:3600
=www.domain1.com:108.61.178.194:3600
=test1.domain1.com:193.198.184.100:3600
=test2.domain1.com:108.61.178.215:3600

# Aliases
+domain1.com:108.61.178.194:3600
+smtp.domain1.com:89.201.163.42:3600
+imap.domain1.com:89.201.163.42:3600

ファイルを保存して終了します。

実行ls

<ceph>[root]# ls
Makefile  add-alias  add-childns  add-host  add-mx  add-ns  data

テキストデータをデータベース形式に変換します。

<ceph>[root]# make
/usr/local/bin/tinydns-data

lsもう一度実行:

<ceph>[root]# ls
Makefile  add-alias  add-childns  add-host  add-mx  add-ns  data  data.cdb

data.cdbファイルに注意してください。makeコマンドで作成しました。

そしてもう1つ、シンボリックリンクを作成します。

<ceph>[root]# ln -s /usr/local/etc/tinydns /service

新しいDNSサーバーをテストします。108.61.178.110サーバーのIPアドレスに置き換えます。

<ceph>[root]# host www.domain1.com 108.61.178.110 
Using domain server:
Name: 108.61.178.110
Address: 108.61.178.110#53
Aliases: 

www.domain1.com has address 108.61.178.194

ネームサーバー検索:

<ceph>[root]# host -t ns domain1.com 108.61.178.110 
Using domain server:
Name: 108.61.178.110
Address: 108.61.178.110#53
Aliases: 

domain1.com name server dns1.domain1.com.
domain1.com name server dns2.domain1.com.

メールサーバーMXルックアップ:

<ceph>[root]# host -t mx domain1.com 108.61.178.110 
Using domain server:
Name: 108.61.178.110
Address: 108.61.178.110#53
Aliases: 

domain1.com mail is handled by 10 mail1.domain1.com.
domain1.com mail is handled by 30 mail2.domain1.com.

もう一度確認してください。

<ceph>[root]# host mail1.domain1.com 108.61.178.110 
Using domain server:
Name: 108.61.178.110
Address: 108.61.178.110#53
Aliases: 

mail1.domain1.com has address 89.201.163.42

おめでとう!DNSサーバーが機能しています。domain1.comドメインに置き換えます。すべての変更後、makeコマンドを実行して新しいdata.cdbファイルを作成します。

データファイルの説明:

「A」レコードは=記号で始まります。エイリアスの付いたエイリアスまたはCNAMEレコード+。メールサーバーは@記号で始まります。&記号の付いたネームサーバー。

例1:

=test1.domain1.com:193.198.184.100:3600

=「A」レコードを表します。test1.domain1.comはDNS名、IP 193.198.184.100test1.domain1.com解決されるアドレス、3600はTTL(存続時間)です。

例2:

# MX
@domain1.com::mail1.domain1.com.:10:3600
@domain1.com::mail2.domain1.com.:30:3600

この例では、mail1mail2のメールサーバですdomain1.commail1には優先度10とmail2優先度30があります。これは、メールサーバーが最初にメールをに配信しようとすることを意味しますmail1。場合はmail1失敗し、その後、彼らがしようとしますmail2

次の行は、ゾーン情報の始まりを示しています。必須です。

Zdomain1.com:dns1.domain1.com.:ns.domain1.com.:2013101203:604800:86400:2419200:604800:3600

2013101203番号は、他のプロバイダーにセカンダリDNSがある場合に使用されます。番号を2013101204に変更すると、セカンダリDNSはDNSにいくつかの変更があることを認識し、変更を取得します。これは情報提供のみを目的としています(AXFR DNS転送サービスが必要です)。または、rsyncプログラムを使用して、2つのDJBDNSサーバー間でDNSの変更をコピーして貼り付けることもできます。

FreeBSDサーバーにPFファイアウォールがある場合は、次の行を追加してDNSクエリを許可します。

pass quick proto {tcp, udp} from any to $me port 53 flags S/SA keep state 


Leave a Comment

CentOS 7にApacheをインストールする方法

CentOS 7にApacheをインストールする方法

CentOS 7サーバーにApache 2.4をインストールする方法を説明します。安定したウェブサーバーを構築するための前提条件と手順を解説します。

FreeBSD 11.1にBlacklistdをインストールする方法

FreeBSD 11.1にBlacklistdをインストールする方法

FreeBSD 11.1におけるBlacklistdのインストール方法について詳しく解説します。この方法を通じて、強力なセキュリティ対策を実装できます。

Windows Serverのサーバーマネージャーを使用した複数サーバーの管理

Windows Serverのサーバーマネージャーを使用した複数サーバーの管理

サーバーマネージャーを使用して、Windows Serverの管理が向上します。セキュリティリスクを軽減し、効率的な管理を実現します。

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法。Seafile(コミュニティバージョン)は、ownCloudに似た無料のオープンソースファイル同期および共有ソリューションです。

DebianでSnortを設定する方法

DebianでSnortを設定する方法

Snortは無料のネットワーク侵入検知システムです。最新の方法で、SnortをDebianにインストールし、設定する手順を紹介します。ネットワークのセキュリティを強化しましょう。

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールし、ログ管理を行う方法を学びます。

WindowsでhMailServerを使用してメールサーバーを構築する

WindowsでhMailServerを使用してメールサーバーを構築する

WindowsサーバーでWebサイトを実行している場合、電子メールも受信できるようにするためにhMailServerを使用する方法を解説します。

Ubuntu 19.04にFiveMサーバーをインストールする方法

Ubuntu 19.04にFiveMサーバーをインストールする方法

FiveMサーバーをUbuntu 19.04にインストールするための詳細なガイド。必要条件からインストール、起動、トラブルシューティングまで、すべてのステップを含みます。

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

Debian 10にWebDAVをデプロイする方法を学び、WsgiDAVとSSL証明書で安全な接続を実現しましょう。

ヘルスケア2021における人工知能の影響

ヘルスケア2021における人工知能の影響

ヘルスケアにおけるAIは、過去数十年から大きな飛躍を遂げました。したがって、ヘルスケアにおけるAIの未来は、日々成長を続けています。