サーバー設定 · 3 min read · Oct 09, 2025

2台のサーバーでXenを実行する完璧な負荷分散および高可用性のWebクラスター - ページ3

8. DNSサーバー (web1, web2)

8.1 DNSサーバーのインストール

実行:

apt-get install bind9

セキュリティ上の理由から、BINDをchroot環境で実行したいため、以下の手順を実行します:

/etc/init.d/bind9 stop

ファイル/etc/default/bind9を編集して、デーモンが特権のないユーザーbindとして、/var/lib/namedにchrootされるようにします。行を修正します: OPTIONS=”-u bind”をOPTIONS=”-u bind -t /var/lib/named”に変更します:

vi /etc/default/bind9

OPTIONS="-u bind -t /var/lib/named"
# Set RESOLVCONF=no to not run resolvconf
RESOLVCONF=yes

/var/libの下に必要なディレクトリを作成します:

mkdir -p /var/lib/named/etc
mkdir /var/lib/named/dev
mkdir -p /var/lib/named/var/cache/bind
mkdir -p /var/lib/named/var/run/bind/run

次に、/etcから/var/lib/named/etcに設定ディレクトリを移動します:

mv /etc/bind /var/lib/named/etc

古い場所から新しい設定ディレクトリへのシンボリックリンクを作成します(将来bindが更新されたときの問題を避けるため):

ln -s /var/lib/named/etc/bind /etc/bind

nullデバイスとrandomデバイスを作成し、ディレクトリの権限を修正します:

mknod /var/lib/named/dev/null c 1 3
mknod /var/lib/named/dev/random c 1 8
chmod 666 /var/lib/named/dev/null /var/lib/named/dev/random
chown -R bind:bind /var/lib/named/var/*
chown -R bind:bind /var/lib/named/etc/bind

重要なメッセージをシステムログに記録できるようにするために、/etc/default/syslogdを修正する必要があります。行を修正します: SYSLOGD=””をSYSLOGD=”-a /var/lib/named/dev/log”に変更します:

vi /etc/default/syslogd

#
# Top configuration file for syslogd
#
#
# Full documentation of possible arguments are found in the manpage
# syslogd(8).
#
#
# For remote UDP logging use SYSLOGD="-r"
#
SYSLOGD="-a /var/lib/named/dev/log"

ロギングデーモンを再起動します:

/etc/init.d/sysklogd restart

BINDを起動し、/var/log/syslogでエラーを確認します:

/etc/init.d/bind9 start

8.2 bindの設定

2つのドメイン、example.com(ネームサーバー)とyoursite.comのためにbindを設定します。

BINDのメイン設定ファイルはnamed.confですが、named.conf.localはすでにnamed.confに含まれており、カスタマイズされた設定のためにあります。したがって、named.conf.localを編集し、ゾーンを追加します。ここでは、camed tm.localゾーンと192.168.1.0の逆ゾーンを追加しました:

vi /etc/bind/named.conf.local

#EXAMPLE.COM
zone "example.com" {
        type master;
        file "/etc/bind/zones/example.com.db";
        };
#YOURSITE.COM
zone "yoursite.com" {
        type master;
        file "/etc/bind/zones/yoursite.com.db";
        };
# これは逆DNSのゾーン定義です。逆の表記でネットワークアドレスを置き換えます - 例えば、私のネットワークアドレスは192.168.1.Xです
zone "1.168.192.in-addr.arpa." {
     type master;
     file "/etc/bind/zones/rev.1.168.192.in-addr.arpa";
};

注: ISPがサブネットマップを委任している場合(例えば、ip 192.168.1.100から192.168.1.112まで)、逆ゾーンについてはこれを読んでください(顧客/ユーザーゾーンファイルを参照):

http://www.zytrax.com/books/dns/ch9/reverse.html

8.3 ゾーンの設定

mkdir /etc/bind/zones
vi /etc/bind/zones/example.com.db

そして、次のようにします:

$TTL        86400
@       IN      SOA     ns1.example.com. admin.example.com. (
                        2008060902       ; serial, todays date + todays serial #
                        28800              ; refresh, seconds
                        7200              ; retry, seconds
                        604800              ; expire, seconds
                        86400 )            ; minimum, seconds
;
                NS      ns1.example.com.              ; ネームサーバー1のInetアドレス
                NS      ns2.example.com.              ; ネームサーバー2のInetアドレス
;
  MX      10 example.com.
example.com.      A        192.168.1.106
www                   A        192.168.1.106
ns1                      A        192.168.1.106
ns2                      A        192.168.1.106
dom01                 A        192.168.1.100
dom02                 A        192.168.1.101
lb1                       A        192.168.1.102
lb2                       A        192.168.1.103
web1                   A        192.168.1.104
web2                   A        192.168.1.105

example.com.       TXT  "v=spf1 ip4:192.168.1.104 ip4:192.168.1.105 a ptr a:web1.example.com a:web2.example.com ~all"

次に、yoursite.comのゾーンを作成します:

vi /etc/bind/zones/yoursite.com.db

次のようにします:

$TTL        86400
@       IN      SOA     ns1.example.com. admin.yoursite.com. (
                        2008060902       ; serial, todays date + todays serial #
                        28800              ; refresh, seconds
                        7200              ; retry, seconds
                        604800              ; expire, seconds
                        86400 )            ; minimum, seconds
;
                NS      ns1.example.com.              ; ネームサーバー1のInetアドレス
                NS      ns2.example.com.              ; ネームサーバー2のInetアドレス
;
  MX      10 yoursite.com.
yoursite.com.      A        192.168.1.107
www                   A        192.168.1.107

yoursite.com.       TXT  "v=spf1 ip4:192.168.1.104 ip4:192.168.1.105 a ptr a:web1.example.com a:web2.example.com ~all"

次に、逆ゾーンに進みます。

vi /etc/bind/zones/rev.1.168.192.in-addr.arpa

$TTL        86400
@               IN      SOA     ns1.example.com. hostmaster.example.com. (
                                2008060901       ; serial, todays date + todays serial #
                                28800   ; Refresh
                                7200    ; Retry
                                604800  ; Expire
                                86400)  ; Minimum TTL
                        NS      ns1.example.com.
                        NS      ns2.example.com.
100       PTR     dom01.example.com.
101       PTR     dom02.example.com.
102       PTR     lb1.example.com.
103       PTR     lb2.example.com.
104       PTR     web1.example.com.
105       PTR     web2.example.com.
106       PTR     example.com.
107       PTR     yoursite.com.

サーバーを設定して、外部IPを解決できるようにISPサーバーにリクエストを転送します。

vi /etc/bind/named.conf.options

フォワーダーセクションのコメントを外して次のようにします:

[...]
forwarders {
      # Replace the address below with the address of your ISP DNS server
      123.123.123.123;
};
[...]  

8.4 サーバーをDNSとして使用するように設定

vi /etc/resolv.conf

search example.com
nameserver localhost

bindを再起動する必要があります:

/etc/init.d/bind9 restart

8.5 DNSサーバーのテスト

まず、dnsutilsパッケージに含まれているdigをインストールします:

apt-get install dnsutils

次に、DNSサーバーが正しい回答を返すかどうかを確認します:

web1で

dig yoursite.com @192.168.1.105

web2で

dig yoursite.com @192.168.1.104

両方で次のような出力が表示されるはずです:

;  DiG 9.4.2-P1  yoursite.com
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4547
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2
;; QUESTION SECTION:
;yoursite.com.                 IN      A
;; ANSWER SECTION:
yoursite.com.          86400   IN      A       192.168.1.107
;; AUTHORITY SECTION:
yoursite.com.          15090   IN      NS      ns2.example.com.
yoursite.com.          15090   IN      NS      ns1.example.com.
;; ADDITIONAL SECTION:
ns2.example.com.       162439  IN      A       192.168.1.106
ns1.example.com.       162439  IN      A       192.168.1.106
;; Query time: 27 msec
;; WHEN: Sun Sep 21 19:07:17 2008
;; MSG SIZE  rcvd: 124

次に、逆引きをテストします:

web1で

dig -x 192.168.1.107 @192.168.1.105

web2で

dig -x 192.168.1.107 @192.168.1.104

出力は次のようになります:

;  DiG 9.4.2-P1  -x 192.168.1.107
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 22614
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 2
;; QUESTION SECTION:
;107.1.168.192.in-addr.arpa.     IN      PTR
;; ANSWER SECTION:
;107.1.168.192.in-addr.arpa. 86400 IN PTR  yoursite.com.
;; AUTHORITY SECTION:
;1.168.192.in-addr.arpa. 86400 IN  NS      ns2.example.com.
;1.168.192.in-addr.arpa. 86400 IN  NS      ns1.example.com.
;; ADDITIONAL SECTION:
ns1.example.com.       162147  IN      A       192.168.1.106
ns2.example.com.       162147  IN      A       192.168.1.106
;; Query time: 88 msec
;; WHEN: Sun Sep 21 19:12:09 2008
;; MSG SIZE  rcvd: 172

digの使用方法についての詳細:

http://www.madboa.com/geek/dig/

9. Proftpd (web1, web2)

9.1 Proftpdのインストール

Proftpdをインストールするには、次のコマンドを実行します:

apt-get install proftpd ucf

質問が表示されます:

Run proftpd: <– standalone

9.2 Proftpdの設定

vi /etc/proftpd/proftpd.conf

セキュリティ上の理由から、/etc/proftpd/proftpd.confに次の行を追加します:

DefaultRoot ~
IdentLookups off
ServerIdent on "FTP Server ready."

次に、Proftpdを再起動します:

/etc/init.d/proftpd restart

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。