(ページの作成:「== tinydnsを使う == 何故未だにtinydnsか? 管理しやすいからだよ!(笑)」) |
|||
行3: | 行3: | ||
管理しやすいからだよ!(笑) | 管理しやすいからだよ!(笑) | ||
+ | |||
+ | == リポジトリからインストール? == | ||
+ | EPELを追加します。 | ||
+ | |||
+ | <pre>yum install epel-release<br>yum update</pre> | ||
+ | |||
+ | == パッケージを追加 == | ||
+ | djbdnsなのですが、どうもndjbdnsって名前になってるっぽい? | ||
+ | |||
+ | <pre>ndjbdns.x86_64 : New djbdns: usable djbdns</pre> | ||
+ | |||
+ | と言う訳で、この子を使うことにする。 | ||
+ | |||
+ | インストール | ||
+ | <pre>yum install ndjbdns</pre> | ||
+ | |||
+ | 何と、ucspi-tcpとバッティングします(笑) | ||
+ | |||
+ | ucspi-tcpを使ってなければコレで良いのですが……使っているので、別の方法を取ります(苦笑 | ||
+ | |||
+ | |||
+ | == ソースからインストール! == | ||
+ | 色々調べていたのですが、諦めました。 | ||
+ | |||
+ | どうせ今回使うのは、tinydnsとaxfrdnsだけですので、ソースから入れちゃいます。 | ||
+ | |||
+ | 適当な場所(~/srcにします)で作業します。 | ||
+ | |||
+ | ソースを拾ってきて、展開します。 | ||
+ | <pre>wget http://cr.yp.to/djbdns/djbdns-1.05.tar.gz<br>tar xvzf djbdns-1.05.tar.gz</pre> | ||
+ | |||
+ | djbdns-1.05というディレクトリが出来るので、その中へ移動して、弄ります。djb系ツールではお約束ですが。 | ||
+ | |||
+ | error.h | ||
+ | <pre>extern int errno;</pre> | ||
+ | これを | ||
+ | <pre>#include >errno.h<</pre> | ||
+ | と書き換えます。 | ||
+ | |||
+ | で、makeと入力します。 | ||
+ | |||
+ | エラーが出ます。 | ||
+ | <pre>./compile: line 3: exec: gcc: not found</pre> | ||
+ | gcc入れるのを忘れてました。 | ||
+ | |||
+ | <pre>yum install gcc</pre> | ||
+ | |||
+ | 色々入りますが、まぁ良いでしょう。 | ||
+ | |||
+ | 気を取り直してmakeします。 | ||
+ | |||
+ | 今回は標準のインストーラーは使わずに、必要なモノだけを、/usr/local/binに直接コピーします。 | ||
+ | |||
+ | <pre>cp axfr-get axfrdns dnsip dnsipq dnsmx dnsname dnsq dnsqr dnstrace dnstracesort dnstxt tinydns tinydns-data /usr/local/bin</pre> | ||
+ | |||
+ | 手動でインストールやっほい。 | ||
+ | |||
+ | == 手動で設定 == | ||
+ | 今回は自動設定ユーティリティを使わないので、自力で環境を作ります。 | ||
+ | |||
+ | 色々とディレクトリを作る必要がありますが、今回は/var/service以下に作りたいと思います。 | ||
+ | <b>daemontoolsを併用する場合はこのディレクトリは避けて下さい</b>。/serviceと被ってヤバいです。 | ||
+ | |||
+ | まず、mkdir /var/serviceします。 | ||
+ | |||
+ | === 使用するユーザーの作成 === | ||
+ | <pre>adduser tinydns<br>adduser axfrdns</pre> | ||
+ | |||
+ | === tinydnsのディレクトリ・ファイル群設定 === | ||
+ | mkdir /var/service/tinydns; cd /var/service/tinydnsとして、その中で作業します。 | ||
+ | |||
+ | 必要なディレクトリを作ります。 | ||
+ | <pre>mkdir env root</pre> | ||
+ | envは環境変数、rootはデータが入ります。 | ||
+ | |||
+ | env/IPというファイルに、tinydnsがBINDしたいIPを書きます。 | ||
+ | |||
+ | 要するに、DNSサーバーのIPアドレスを書きます。 | ||
+ | |||
+ | env/ROOTというファイルに、先ほど作ったrootのパスを書きます(/var/service/tinydns/rootとだけ書く) | ||
+ | |||
+ | === tinydnsの起動ファイルを作成 === | ||
+ | /etc/systemd/systemで、次のファイルを作ります。 | ||
+ | |||
+ | tinydns.service | ||
+ | <pre>[Unit] | ||
+ | Description=tinydns server daemon | ||
+ | After=syslog.target network.target auditd.service | ||
+ | |||
+ | [Service] | ||
+ | ExecStart=/usr/bin/envuidgid tinydns /usr/bin/envdir /var/service/tinydns/env /usr/bin/softlimit -d300000 /usr/local/bin/tinydns | ||
+ | ExecReload=/bin/kill -HUP $MAINPID | ||
+ | KillMode=process | ||
+ | Restart=on-failure | ||
+ | RestartSec=42s | ||
+ | SyslogIdentifier=tinydns | ||
+ | SyslogFacility=daemon | ||
+ | SyslogLevel=info | ||
+ | |||
+ | [Install] | ||
+ | WantedBy=multi-user.target</pre> | ||
+ | |||
+ | 次に、systemctl start tinydnsとして、デーモンを起動します。 | ||
+ | |||
+ | お約束で、systemctl status tinydnsでエラーが出ていないのを確認したら、systemctl enable tinydnsとして、再起動時に起動する陽にしておきましょう。 | ||
+ | |||
+ | これで、tinydnsの設定は終わりです。 | ||
+ | |||
+ | === axfrdnsのディレクトリ・ファイル群設定 === | ||
+ | tinydnsだけだと、udp/53でしか起動しません。 | ||
+ | |||
+ | tcp/53を使うために、axfrdnsも設定します。 | ||
+ | |||
+ | mkdir /var/service/tinydns; cd /var/service/tinydnsとして、その中で作業します。 | ||
+ | |||
+ | 必要なディレクトリを作ります。 | ||
+ | <pre>mkdir env</pre> | ||
+ | envは環境変数を格納します。 | ||
+ | |||
+ | env/IPというファイルに、axfrdnsがBINDしたいIPを書きます。tinydnsのものと同じヤツです。 | ||
+ | |||
+ | 要するに、DNSサーバーのIPアドレスを書きます。 | ||
+ | |||
+ | env/ROOTというファイルに、tinydns/rootのパスを書きます(今回は/var/service/tinydns/rootとだけ書く) | ||
+ | |||
+ | めんどくさいなら、/var/service/tinydns/envをコピーすると良いでしょう。 | ||
+ | |||
+ | 次に、/var/service/axfrdns/tcpに、次のように書きます。 | ||
+ | |||
+ | <pre>:allow,AXFR="" | ||
+ | :deny</pre> | ||
+ | |||
+ | これは、tcpアクセスを許可するけど、ゾーン転送は許可しない設定になります。 | ||
+ | |||
+ | 次に、tcp.cdbを作るルールを作ります。 | ||
+ | |||
+ | こういうMakefileを作ります。 | ||
+ | |||
+ | ここで、tcprulesの前は「タブ文字」です。スペースにしないように気をつけて下さい。 | ||
+ | <pre>tcp.cdb: tcp | ||
+ | tcprules tcp.cdb tcp.tmp < tcp</pre> | ||
+ | ※上の内容は都合上スペースで区切られていますので、コピペする場合注意して下さい。 | ||
+ | |||
+ | この状態で、makeと入力すると、tcp.cdbが作られているはずです。 | ||
+ | |||
+ | === axfrdnsの起動ファイルを作成 === | ||
+ | /etc/systemd/systemで、次のファイルを作ります。 | ||
+ | |||
+ | axfrdns.service | ||
+ | <pre>[Unit] | ||
+ | Description=axfrdns server daemon | ||
+ | After=syslog.target network.target auditd.service | ||
+ | |||
+ | [Service] | ||
+ | ExecStart=/usr/bin/envdir /var/service/axfrdns/env /usr/bin/envuidgid axfrdns /u | ||
+ | sr/bin/softlimit -d300000 /usr/bin/tcpserver -vDRHl0 -x /var/service/axfrdns/tcp.cdb -- <i>サービスを起動するIP</i> 53 /usr/local/bin/axfrdns | ||
+ | ExecReload=/bin/kill -HUP $MAINPID | ||
+ | KillMode=process | ||
+ | Restart=on-failure | ||
+ | RestartSec=42s | ||
+ | SyslogIdentifier=axfrdns | ||
+ | SyslogFacility=daemon | ||
+ | SyslogLevel=info | ||
+ | |||
+ | [Install] | ||
+ | WantedBy=multi-user.target</pre> | ||
+ | |||
+ | 次に、systemctl start axfrdnsとして、デーモンを起動します。 | ||
+ | |||
+ | お約束で、systemctl status axfrdnsでエラーが出ていないのを確認したら、systemctl enable axfrdnsとして、再起動時に起動する陽にしておきましょう。 | ||
+ | |||
+ | これで、tinydnsの設定は終わりです。 |
2016年10月16日 (日) 14:15時点における版
目次
tinydnsを使う
何故未だにtinydnsか?
管理しやすいからだよ!(笑)
リポジトリからインストール?
EPELを追加します。
yum install epel-release<br>yum update
パッケージを追加
djbdnsなのですが、どうもndjbdnsって名前になってるっぽい?
ndjbdns.x86_64 : New djbdns: usable djbdns
と言う訳で、この子を使うことにする。
インストール
yum install ndjbdns
何と、ucspi-tcpとバッティングします(笑)
ucspi-tcpを使ってなければコレで良いのですが……使っているので、別の方法を取ります(苦笑
ソースからインストール!
色々調べていたのですが、諦めました。
どうせ今回使うのは、tinydnsとaxfrdnsだけですので、ソースから入れちゃいます。
適当な場所(~/srcにします)で作業します。
ソースを拾ってきて、展開します。
wget http://cr.yp.to/djbdns/djbdns-1.05.tar.gz<br>tar xvzf djbdns-1.05.tar.gz
djbdns-1.05というディレクトリが出来るので、その中へ移動して、弄ります。djb系ツールではお約束ですが。
error.h
extern int errno;
これを
#include >errno.h<
と書き換えます。
で、makeと入力します。
エラーが出ます。
./compile: line 3: exec: gcc: not found
gcc入れるのを忘れてました。
yum install gcc
色々入りますが、まぁ良いでしょう。
気を取り直してmakeします。
今回は標準のインストーラーは使わずに、必要なモノだけを、/usr/local/binに直接コピーします。
cp axfr-get axfrdns dnsip dnsipq dnsmx dnsname dnsq dnsqr dnstrace dnstracesort dnstxt tinydns tinydns-data /usr/local/bin
手動でインストールやっほい。
手動で設定
今回は自動設定ユーティリティを使わないので、自力で環境を作ります。
色々とディレクトリを作る必要がありますが、今回は/var/service以下に作りたいと思います。 daemontoolsを併用する場合はこのディレクトリは避けて下さい。/serviceと被ってヤバいです。
まず、mkdir /var/serviceします。
使用するユーザーの作成
adduser tinydns<br>adduser axfrdns
tinydnsのディレクトリ・ファイル群設定
mkdir /var/service/tinydns; cd /var/service/tinydnsとして、その中で作業します。
必要なディレクトリを作ります。
mkdir env root
envは環境変数、rootはデータが入ります。
env/IPというファイルに、tinydnsがBINDしたいIPを書きます。
要するに、DNSサーバーのIPアドレスを書きます。
env/ROOTというファイルに、先ほど作ったrootのパスを書きます(/var/service/tinydns/rootとだけ書く)
tinydnsの起動ファイルを作成
/etc/systemd/systemで、次のファイルを作ります。
tinydns.service
[Unit] Description=tinydns server daemon After=syslog.target network.target auditd.service [Service] ExecStart=/usr/bin/envuidgid tinydns /usr/bin/envdir /var/service/tinydns/env /usr/bin/softlimit -d300000 /usr/local/bin/tinydns ExecReload=/bin/kill -HUP $MAINPID KillMode=process Restart=on-failure RestartSec=42s SyslogIdentifier=tinydns SyslogFacility=daemon SyslogLevel=info [Install] WantedBy=multi-user.target
次に、systemctl start tinydnsとして、デーモンを起動します。
お約束で、systemctl status tinydnsでエラーが出ていないのを確認したら、systemctl enable tinydnsとして、再起動時に起動する陽にしておきましょう。
これで、tinydnsの設定は終わりです。
axfrdnsのディレクトリ・ファイル群設定
tinydnsだけだと、udp/53でしか起動しません。
tcp/53を使うために、axfrdnsも設定します。
mkdir /var/service/tinydns; cd /var/service/tinydnsとして、その中で作業します。
必要なディレクトリを作ります。
mkdir env
envは環境変数を格納します。
env/IPというファイルに、axfrdnsがBINDしたいIPを書きます。tinydnsのものと同じヤツです。
要するに、DNSサーバーのIPアドレスを書きます。
env/ROOTというファイルに、tinydns/rootのパスを書きます(今回は/var/service/tinydns/rootとだけ書く)
めんどくさいなら、/var/service/tinydns/envをコピーすると良いでしょう。
次に、/var/service/axfrdns/tcpに、次のように書きます。
:allow,AXFR="" :deny
これは、tcpアクセスを許可するけど、ゾーン転送は許可しない設定になります。
次に、tcp.cdbを作るルールを作ります。
こういうMakefileを作ります。
ここで、tcprulesの前は「タブ文字」です。スペースにしないように気をつけて下さい。
tcp.cdb: tcp tcprules tcp.cdb tcp.tmp < tcp
※上の内容は都合上スペースで区切られていますので、コピペする場合注意して下さい。
この状態で、makeと入力すると、tcp.cdbが作られているはずです。
axfrdnsの起動ファイルを作成
/etc/systemd/systemで、次のファイルを作ります。
axfrdns.service
[Unit] Description=axfrdns server daemon After=syslog.target network.target auditd.service [Service] ExecStart=/usr/bin/envdir /var/service/axfrdns/env /usr/bin/envuidgid axfrdns /u sr/bin/softlimit -d300000 /usr/bin/tcpserver -vDRHl0 -x /var/service/axfrdns/tcp.cdb -- <i>サービスを起動するIP</i> 53 /usr/local/bin/axfrdns ExecReload=/bin/kill -HUP $MAINPID KillMode=process Restart=on-failure RestartSec=42s SyslogIdentifier=axfrdns SyslogFacility=daemon SyslogLevel=info [Install] WantedBy=multi-user.target
次に、systemctl start axfrdnsとして、デーモンを起動します。
お約束で、systemctl status axfrdnsでエラーが出ていないのを確認したら、systemctl enable axfrdnsとして、再起動時に起動する陽にしておきましょう。
これで、tinydnsの設定は終わりです。