検証などでDNSサーバが必要な際に、軽量なCentOS6.8でスピーディに準備する必要があり、備忘録。オープンリゾリゾルバとして使用する。
マシンスペック
OS | CentOS6.8 |
メモリ | 1GB |
HDD | 16GB |
構築手順
ビルドに必要なツールをインストール
yum -y install perl zlib-devel wget
yum -y groupinstall "development tools"
時刻合わせ
yum -y install ntpdate
ntpdate ntp.nict.jp
SELINUX無効化
sed -i -e 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
setenforce 0
IpTablesコンフィグ調整
以下内容にする。
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:FWINPUT - [0:0]
-A INPUT -j FWINPUT
-A FORWARD -j FWINPUT
-A FWINPUT -i lo -j ACCEPT
-A FWINPUT -p icmp --icmp-type any -j ACCEPT
-A FWINPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A FWINPUT -p tcp -m tcp --dport 22 -s 192.168.0.0/16 -j ACCEPT
-A FWINPUT -p udp --dport 53 -j ACCEPT
-A FWINPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT
修正後、IPtablesサービス再起動(以下)。
service iptables restart
OpenSslインストール
cd /root
wget https://www.openssl.org/source/openssl-1.1.0h.tar.gz
tar xvzf openssl-1.1.0h.tar.gz
cd openssl-1.1.0h
mkdir -p /opt/openssl
./config --prefix=/opt/openssl shared zlib
make
make install
echo '/opt/openssl/lib' >> /etc/ld.so.conf
ldconfig -v
/opt/openssl/bin/openssl version
cd ..
rm -rf openssl-1.1.0h openssl-1.1.0h.tar.gz
BIND 9.12.1 インストール
バージョンを固定したいのでソースからビルド。
cd /usr/local/src
wget --trust-server-name https://www.isc.org/downloads/file/bind-9-12-1/?version=tar-gz
mv index.html?version=tar-gz bind-9.12.1.tar.gz
tar xvzf bind-9.12.1.tar.gz
cd bind-9.12.1
./configure -enable-threads -with-openssl=/opt/openssl --enable-openssl-version-check
make
make install
bind-chrootインストール
yum -y install bind-chroot
service named restart
ネットワークインターフェース設定ファイルを修正
名前解決の際、自身へ問い合わせるようにする。設定ファイル名称は環境によって様々なので一例を記載。
DNS1=127.0.0.1
DNSサーバ設定ファイル微調整
/etc/named.confを修正する。
options {
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { any; };
allow-recursion { any; };
allow-query-cache { any; };
dnssec-enable no;
dnssec-validation no;
empty-zones-enable no;
use-v6-udp-ports { };
recursion yes;
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
OS起動時に連動してサービスが起動する設定
chkconfig named on
サービスを手動で起動させる
service named start
以上。