DNS サーバの構築

Debian さくらのVPS

このあたりからは AWS で実施したセットアップとほぼ同じ。

まず最初に自分の身元保証のために DNS サーバを構築する。

パッケージのインストール

yasunari@sakura:~$ sudo apt-get install bind9
[sudo] yasunari のパスワード:
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下の追加パッケージがインストールされます:
  bind9utils libirs141
提案パッケージ:
  bind9-doc resolvconf ufw
以下のパッケージが新たにインストールされます:
  bind9 bind9utils libirs141
アップグレード: 0 個、新規インストール: 3 個、削除: 0 個、保留: 0 個。
1,122 kB のアーカイブを取得する必要があります。
この操作後に追加で 3,424 kB のディスク容量が消費されます。
続行しますか? [Y/n] y
	:
	:
1,122 kB を 0秒 で取得しました (1,787 kB/s)
パッケージを事前設定しています ...
以前に未選択のパッケージ libirs141:amd64 を選択しています。
(データベースを読み込んでいます ... 現在 34166 個のファイルとディレクトリがインストールされて います。)
	:
	:
systemd (232-25+deb9u1) のトリガを処理しています ...
man-db (2.7.6.1-2) のトリガを処理しています ...
bind9 (1:9.10.3.dfsg.P4-12.3+deb9u4) を設定しています ...
グループ `bind' (グループ ID 111) を追加しています...
完了。
システムユーザ `bind' (UID 107) を追加しています...
新しいユーザ `bind' (UID 107) をグループ `bind' に追加しています...
ホームディレクトリ `/var/cache/bind' は作成しません。
wrote key file "/etc/bind/rndc.key"
#
Created symlink /etc/systemd/system/multi-user.target.wants/bind9.service → /lib/systemd/system/bind9.service.
systemd (232-25+deb9u1) のトリガを処理しています ...
yasunari@sakura:~$

設定

yasunari@sakura:~$ sudo -i
root@sakura:~# cd /etc/bind/
root@sakura:/etc/bind# mv mv named.conf.local{,.orig}
root@sakura:/etc/bind# mv named.conf.local{,.orig}
root@sakura:/etc/bind# cp named.conf.local{.orig,}
root@sakura:/etc/bind# vi named.conf.local
	:
	:
root@sakura:/etc/bind# diff -u named.conf.local{.orig,}
--- named.conf.local.orig       2018-01-16 06:40:17.000000000 +0900
+++ named.conf.local    2018-02-13 19:39:13.749138553 +0900
@@ -6,3 +6,9 @@
 // organization
 //include "/etc/bind/zones.rfc1918";

+zone "yamasita.jp" {
+       type master;
+       file "/etc/bind/yamasita.jp-out-zone";
+       allow-transfer { セカンダリをお願いしているIPアドレス; };
+};
+
root@sakura:/etc/bind# vi yamasita.jp-out-zone
root@sakura:/etc/bind# cat !$
cat yamasita.jp-out-zone
$TTL 3600
@       IN      SOA     sakuras.yamasita.jp.    root.yamasita.jp. (
                2018020201 ; serial
                3600       ; refresh (1 hour)
                300        ; retry (5 minutes)
                3600000    ; expire (5 weeks 6 days 16 hours)
                3600       ; minimum (1 hour)
                )
;
        IN      NS      ns.yamasita.jp.
        IN      NS      x159072.ppp.asahi-net.or.jp.
;
        IN      A       13.230.13.194
        IN      MX      1       ns.yamasita.jp.
        IN      TXT     "v=spf1 +ip4:122.249.159.72 +ip4:13.230.13.194 -all"
;
ns      IN      A       122.249.159.72
mail    IN      CNAME   ns.yamasita.jp.
av      IN      CNAME   ns.yamasita.jp.
;
www     IN      CNAME   ns.yamasita.jp.

sakura  IN      A       内緒
root@sakura:/etc/bind#

起動

root@sakura:/etc/bind# service bind9 start
root@sakura:/etc/bind#

確認

root@sakura:/etc/bind# dig sakura.yamasita.jp. @localhost

; <<>> DiG 9.10.3-P4-Debian <<>> sakura.yamasita.jp. @localhost
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 33350
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 3

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;sakura.yamasita.jp.            IN      A

;; ANSWER SECTION:
sakura.yamasita.jp.     3600    IN      A       内緒

;; AUTHORITY SECTION:
yamasita.jp.            3600    IN      NS      x159072.ppp.asahi-net.or.jp.
yamasita.jp.            3600    IN      NS      ns.yamasita.jp.

;; ADDITIONAL SECTION:
ns.yamasita.jp.         3600    IN      A       122.249.159.72

;; Query time: 0 msec
;; SERVER: ::1#53(::1)
;; WHEN: Tue Feb 13 19:53:37 JST 2018
;; MSG SIZE  rcvd: 174

root@sakura:/etc/bind#
OK!

ポート開放

ipTables の設定

root@sakura:~# iptables -A INPUT -p tcp -m tcp --dport 53 -j ACCEPT
root@sakura:~# iptables -A INPUT -p udp -m udp --dport 53 -j ACCEPT
root@sakura:~# iptables -L
Chain INPUT (policy DROP)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
DROP       tcp  --  anywhere             anywhere             tcp flags:FIN,SYN,RST,PSH,ACK,URG/NONE
DROP       tcp  --  anywhere             anywhere             tcp flags:!FIN,SYN,RST,ACK/SYN state NEW
DROP       tcp  --  anywhere             anywhere             tcp flags:FIN,SYN,RST,PSH,ACK,URG/FIN,SYN,RST,PSH,ACK,URG
ACCEPT     all  --  anywhere             anywhere
ACCEPT     icmp --  anywhere             anywhere
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:内緒
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:domain
ACCEPT     udp  --  anywhere             anywhere             udp dpt:domain

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
root@sakura:~# service netfilter-persistent save
[....] Saving netfilter rules...run-parts: executing /usr/share/netfilter-persistent/plugins.d/15-ip4tables save
run-parts: executing /usr/share/netfilter-persistent/plugins.d/25-ip6tables save
done.
root@sakura:~# cat /etc/iptables/rules.v4
# Generated by iptables-save v1.6.0 on Tue Feb 13 19:00:54 2018
*filter
:INPUT DROP [3:116]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [143:22792]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j DROP
-A INPUT -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j DROP
-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,SYN,RST,PSH,ACK,URG -j DROP
-A INPUT -i lo -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -p tcp -m tcp --dport 内緒 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 53 -j ACCEPT
-A INPUT -p udp -m udp --dport 53 -j ACCEPT
COMMIT
# Completed on Tue Feb 13 19:00:54 2018
root@sakura:~#

確認

AWS の仮想マシンからアクセスして、見えることを確認する。
yasunari@aws:~$ dig sakura.yamasita.jp @sakura.yamasita.jp

; <<>> DiG 9.10.3-P4-Debian <<>> sakura.yamasita.jp @sakura.yamasita.jp
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 14061
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 2
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;sakura.yamasita.jp.            IN      A

;; ANSWER SECTION:
sakura.yamasita.jp.     3600    IN      A       内緒

;; AUTHORITY SECTION:
yamasita.jp.            3600    IN      NS      x159072.ppp.asahi-net.or.jp.
yamasita.jp.            3600    IN      NS      ns.yamasita.jp.

;; ADDITIONAL SECTION:
ns.yamasita.jp.         3600    IN      A       122.249.159.72

;; Query time: 28 msec
;; SERVER: 内緒#53(153.126.131.146)
;; WHEN: Tue Feb 13 19:07:48 JST 2018
;; MSG SIZE  rcvd: 158

yasunari@aws:~$
DNS に登録しておいて、「内緒」もへったくれもないものだが、、、

対外連携

レジストラにホストを登録する。

セカンダリサーバの設定をお願いする



rsync のインストール
山下康成の
雲の上

メールサーバの構築

Copyright (C) 2003-2018 Yasunari Yamashita. All Rights Reserved.
yasunari @ yamasita.jp 山下康成@京都府向日市/東京都新宿区