21-6. ミニ・インタ−ネットでテスト `2c/01〜 (1) せっかくだからミニ・インタ−ネット * テストその1 FireWall-1 の置き換え用に設定した FortiGate-310B を用いてテストする。 OpenBlockS をDNSサ−バに。Cobalt Qube3 をWWWサ−バに、コンテンツは 111.txt と 222.txt だけの至ってシンプルなもので。これを自社のWWWサ−バと見立ててテスト環境に投入 する。先ずは PC から Qube3に ping が届くかから確認を始める。次にIPアドレスでア クセスできるかテストする。PC で nslookup が効くかどうかとか。 ■ ■ 仮想IPで配置 .../namedb/nix.co.jj.zone |.3 |.4 --------------------------- ------*--------------------- 202.241.128.0 |@ IN SOA obs.nix.co.jj. .2| OB□DNS □WWW Cobalt Qube3 | IN NS obs.nix.co.jj. -----------.2 |.1 |.3 |obs IN A 192.168.2.1 |FortiGate|---------------- 192.168.2.0 |www IN A 192.168.2.3 ----------- △PC |.2 |.4 OpenBlockS の専用ソフトウェア"DNS" ------*--------------------- 192.168.1.0 を入れて、その画面で設定すればいい。 |.9 △PC2 ------- .9 |.2 OpenBlockS は略して OBとも書く。パ | L3 |------------- 192.168.3.0 ケットのDNSの様子を例えば見るの ------- は # tcpdump -n -i eth1 port 53。 OpenBlockS のDNSサ−バの設定は信頼できそうである。 自社DNSサ−バの設定にも 参考にできそうだと思っている。やってみるか。どういうように制御ファイルができるの か。`2c/01 半ばのこと1日でやってみた。OpenBlockS のファ−ムウェアなどをアップさ せてDNS設定設定の専用ソフトを入れて named.conf 制御ファイルを吐き出した。でも 調べてみたい肝心の view の設定にはなってなかった。この様子は付録を参照のこと。 * テストその2 OpenBlockS の専用ソフトウェア "DNS" で生成されたDNS制御ファイルを view 対応に するため編集してみた。ログがすっきりしたのが出て難なく起動できた。記述はこんなよ うでいいみたい。empty-zones-enable no; 入れないと何やら警告がやはりでてきた。 # named -4 多分 IPv4 のみ対象にするという意味だと思う。 # cat /etc/namedb/named.conf ログは /etc/namedb/named.log と options { /var/log/messages の後ろに出て directory "/etc/namedb"; くる。適宜チェックしてみること。 pid-file "/etc/namedb/namedb.pid"; listen-on-v6 { none; }; empty-zones-enable no; }; view "NAKA" { match-clients { 127.0.0.1; 192.168.1.0/24; 192.168.2.2; 202.241.128.3; }; allow-query { 127.0.0.1; 192.168.1.0/24; 192.168.2.2; 202.241.128.3; }; recursion yes; allow-recursion { 127.0.0.1; 192.168.1.0/24; 192.168.2.2; 202.241.128.3; }; zone "." { type hint; file "named.root"; }; 行数稼ぐため以下詰めて表示した。 zone "localhost" { type master; file "localhost.zone"; }; zone "0.0.127.in-addr.arpa" { type master; file "localhost.rev"; }; zone "nix.co.jj" { type master; file "nix.co.jj.zone"; }; zone "128.241.202.in-addr.arpa" { type master; file "nix.co.jj.rev"; }; zone "1.168.192.in-addr.arpa" { type master; file "192.168.1.rev"; }; }; view "SOTO" { match-clients { any; }; allow-query { any; }; recursion no; allow-recursion { none; }; #zone "." { こっちではこの制御ファイルは必要ない。 # type hint; # file "named.root"; #}; zone "localhost" { | 上に同じく。ただし zone "1.168.192.in-addr.arpa" は無し。 };}; ( 正常に named が起動した際のログ ) # cat /etc/namedb/named.log A( 06-Feb-2012 16:14:48 ) A.369 general: info: zone 0.0.127.in-addr.arpa/IN/IN: loaded serial 2009092705 A.374 general: info: zone 10.168.192.in-addr.arpa/IN/IN: loaded serial 2012011902 A.379 general: info: zone 128.241.202.in-addr.arpa/IN/IN: loaded serial 2012011902 A.384 general: info: zone nix.co.jj/IN/IN: loaded serial 2012011902 A.388 general: info: zone localhost/IN/IN: loaded serial 2009092705 A.393 general: info: zone 0.0.127.in-addr.arpa/IN/OUT: loaded serial 2009092705 A.398 general: info: zone 128.241.202.in-addr.arpa/IN/OUT: loaded serial 2012011902 A.403 general: info: zone nix.co.jj/IN/OUT: loaded serial 2012011902 A.407 general: info: zone localhost/IN/OUT: loaded serial 2009092705 A.415 general: notice: running # more /var/log/messages B( Feb 6 15:59:26 obs600 ) B named[1460]: loading configuration from '/etc/namedb/named.conf' B named[1460]: using default UDP/IPv4 port range: [1024, 65535] B named[1460]: using default UDP/IPv6 port range: [1024, 65535] B named[1460]: no IPv6 interfaces found B named[1460]: listening on IPv4 interface lo, 127.0.0.1#53 B named[1460]: listening on IPv4 interface eth0, 192.168.1.7#53 B named[1460]: listening on IPv4 interface eth1, 192.168.2.1#53 B named[1460]: none:0: open: /etc/namedb/rndc.key: file not found B named[1460]: none:0: open: /etc/namedb/rndc.key: file not found B named[1460]: couldn't add command channel 127.0.0.1#953: file not found [ 確認その1 ] 以下 nslookup は OpenBlockS に入っての操作。 /etc/namedb/10.168.192.rev ------------------------------------------------------------ |$TTL 86400 |@ IN SOA obs600.nix.co.jj. domainmaster.nix.co.jj. ( | 2012011902 3600 900 604800 86400 ) | IN NS obs600.nix.co.jj. |* IN PTR BAKA.nix.co.jj. アスタリスク * はIPアドレスは何でもマッチング。 # nslookup > 192.168.1.9 Server: 127.0.0.1 << ここの2つの記述 Address: 127.0.0.1#53 << は以下は省略する。 9.1.168.192.in-addr.arpa name = BAKA.nix.co.jj. << 直ぐに応答を返した。 [ 確認その2 ] /etc/namedb/1.168.192.rev ------------------------------------------------------------ |$TTL 86400 |@ IN SOA obs600.nix.co.jj. domainmaster.nix.co.jj. ( | 2012011902 3600 900 604800 86400 ) | IN NS obs600.nix.co.jj. |9 IN PTR BAKA.nix.co.jj. # nslookup > 192.168.1.9 9.1.168.192.in-addr.arpa name = BAKA.nix.co.jj. > 192.168.1.5 ** server can't find 5.1.168.192.in-addr.arpa. : NXDOMAIN << 無いと直ぐに応答。 [ 確認その3 ] /etc/namedb/1.168.192.rev ------------------------------------------------------------ |$TTL 86400 |@ IN SOA obs600.nix.co.jj. domainmaster.nix.co.jj. ( | 2012011902 3600 900 604800 86400 ) | IN NS obs600.nix.co.jj. |;9 IN PTR BAKA.nix.co.jj. コメントにしてみた。 # nslookup > 192.168.1.9 ** server can't find 5.1.168.192.in-addr.arpa. : NXDOMAIN << 無いと直ぐに応答。 [ 確認その4 ] # nslookup > 192.1.1.1 15秒ぐらい応答がかかった。 ;; connection timed out; no servers could be reached [ 確認その5 ] zone "2.168.192.in-addr.arpa" { << view "IN" に 192.168.2.0 の逆引きを入れた。 type master; file "192.168.2.rev"; }; /etc/namedb/2.168.192.rev ------------------------------------------------------------ |$TTL 86400 |@ IN SOA obs600.nix.co.jj. domainmaster.nix.co.jj. ( | 2012011902 3600 900 604800 86400 ) | IN NS obs600.nix.co.jj. |* IN PTR KABA.nix.co.jj. # nslookup > 192.168.2.1 1.2.168.192.in-addr.arpa name = KABA.nix.co.jj. << すぐに応答した。 誰が問い 合せをしているかという事。 (2) OpenBlockS でDNSサ−バを作る * 2つのイ−サネットの口を使ってみよう 先ずは ether-1 に 192.168.2.1 を設定した。[システム]->[ネットワ−ク]->[基本設定] で WAN(ETHER-0) は未使用と。 ホストネ−ム[ obs600 ]、ドメインネ−ム[ nix.co.jj ]、 DNSサ−バ−1[ 127.0.0.1 ]、デフォルトゲ−トウェイ[ 192.168.2.2 ]、IPフォワ−ディ ング●無効。telnet か RS-232C で入って ether-0 は # ifconfig eth0 192.168.1.7 と 手動で設定。ether-0 にパソコン 192.168.1.4 からアクセスできた。 電源入れ直したら この設定は消えるが。http://192.168.1.7:880/ 管理者パスワ−ド [ admin ]入れてメニ ュ−の {ログイン} をクリック。ftp は FFFTP で 192.168.1.7 アクセス、jirou, admin で /usr/pkg/home/jirou に入る。管理者の admin ではいきなり ftp できないので。 _______ ether-0|.7 | PC から http://192.168.1.7:880で .2| □DNS | OpenBlockS 画面へ。別にFortiGate -----------.2 ether-1|.1 | でこのパケットを通すよう設定すれ |FortiGate|-----------------|-- 192.168.2.0 ば、こんなことやらなくてもいいの ----------- △PC | だが。業者が設定した状態のままで |.2 |.4 | はできなかったので、こんなように ------*-------------------------- 192.168.1.0 してみました。 * テストを円滑に進めるための準備をしよう DNSのテストをやるには OpenBlockS で稼働する namedデ−モンを、頻繁に起動と停止 をやることになる。OpenBlockS に TeraTerm や HyperTerminal ソフトで RS-232Cで入っ て、いろいろいじるのだが vi の挙動がおかしいし、カット&ペ−ストもうまくできない。 仕方ないので手入力で named の長い起動コマンドをキ−入力する。 DNSの制御ファイ ルをいじりたいのだけど vi を操作している内にどんどんおかしくなる。何ともならない。 制御ファイルはパソコンに持って来て編集するか、FTP でやりとりするか考えないといけ ない。結局 vi 操作は諦めて FTP でやることにした。 # cd /etc/namedb;ls -F 最初にあったファイル。named.conf を named.conf.ORG に。 127 2nd/ db/ localhost loopback.v6 named.conf root.cache # named とやると /etc/namedb/named.conf を見るのでないか。そうでした。テストし易 いように関連ファイルを全部 /etc/namedb/ に置くことにする。パソコンでDNSの制御 ファイルを書いて ftp で OpenBlockS に送ることにする。 その方が TeraTerm で入って vi で編集しようとしておかしな挙動にイライラさせられずに済む。/etc/namedb/ ディレ クトリはパ−ミッションがきつくて、一般ユ−ザのアカウントではパソコンからファイル 転送できない。# chmod 777 namedb と一時的にテストの間、緩めることにした。FFFTPで アクセスしたら画面で [ファイル] を開くのが、拡張子関係なくメモ帳で開くので有難い。 # cd /etc;ls -al パ−ミッションでパソコンからファイル転送できないので緩くした。 drwxr-xr-x 4 root wheel 1024 Feb 6 15:37 namedb # chmod 777 namedb * OpenBlockS の専用ソフトウェア "DNS" を入れた http://192.168.1.1:880 で OpenBlockS の画面に入って操作。vi とかは使ってない。 1) [オ−プンソ−ス] の bind を入れる。[インスト−ル] net/bind9 bind-9.4.3pl3.tgz http://www.isc.org/sw/bind/。実行をクリックしたら1分もせず完了した。 2) [アプリケ−ションマネ−ジャ] メニュ−の [オ−プンソ−ス + GUI] で "DNS Plus"、 Plat'Home 開発、無償、リリ−ス日 2010-06-07 はインスト−ルはメニュ−が灰色で きなかった。"最初にファ−ムウェア、WEB I/Fの更新を実施してください" との注意。 現状は、OSバ−ジョン 0.5-RELEASE-20090813、WEB I/Fバ−ジョン 20090930-01。 3) ファ−ムウェアをアップし再起動した。0.5-RELEASE-20100924 になった。 4) WEB設定インタ−フェ−スをアップし再起動した。20101007-03 になった。 5) [メンテナンス] で [更新を確認] 確認に失敗しました。更新情報をクリックで。 6) オンラインアップデ−トはもうできそうにない。オフラインアップデ−トでやる。 7) オフラインアップデ−ト(共通) ダウンロ−ドしてファ−ムウェアをアップ。2011/11/ 30 公開、0.5-RELEASE-20111124 ファ−ムウェア uImage.initrd、FlashROM 書込み用、 15.4MB。2011/03/07公開 WEB用インタ−フェ−ス 拡張子 tgz 20秒位でダウンロ−ド。 8) [アプリケ−ションマネ−ジャ]->[専用ソフトウェア] で "DNS" を入れる。 必要なファ−ムウェアのバ−ジョン 0.5-RELEASE-20110530。必要なWEB I/F バ−ジョ ン 20110307-01 以降。□使用許諾に同意 [インスト−ル] dns-pus-1.12nb2.tgz を入 れた。support@plathome.co.jp からライセンスキ−発行のお知らせ、のメ−ルがきた。 9) メニュ−に [アプリケ−ション] が追加され、その下の [ >DNS ] にて設定していく。 [ 基本設定 ] 自動起動 有効 (無効がデフォルト) 再帰問い合わせ 無効 ル−トヒントファイル 有効 (無効がデフォルト) フォワ−ド設定 なし アクセス制御 クエリ−送信元 どこからでも可 再帰クエリ−送信元 所属ネットワ−クのみ キャッシュへのアクセス 所属ネットワ−クのみ [ ゾ−ン設定 ] ゾ−ンのタイプはマスタ−、ドメイン名は example.orgで、ネットワ−クアドレスは 192.168.1.0、登録するレコ−ドは正引き/逆引き、マスタ−設定でスレ−ブ指定なし。 {レコ−ドを編集} での レコ−ド一覧 ---------------------------------------- 名前 種別 値 ---------------------------------------- edit NS obs600.example.org edit obs600 NS 192.168.1.1 << 何じゃこれは、 こんな記述はおかし edit obs600 A 192.168.1.1 いバイ。 これで一杯ワ−ニングが出 edit apollo A 192.168.1.9 た。この1行消すこと。 ログを見たら何やら error とかでていた。大丈夫かこんなんで。 こんなシンプルな設定 でエラ−やワ−ニングがでて。/usr/pkg/var/log/named/named.log にはえらいたくさん。 /var/log/messages には少しでた。自身のマシンで named サ−バを認識してない。 どう いうこと?。ただ OpenBlockS の設定ソフトで、DNSレコ−ドの入力が間違っていただけ。 # named -v 動いている。 これら操作は OpenBlockS に RS-232C で入ってやってみた。 BIND 9.4-ESV-R5-V1 # nslookup > nix.co.jj. Server: 127.0.0.1 Address: 127.0.0.1#53 *** server can't find nix.co.jj: SERVFAIL # cat /usr/pkg/apps/dns-plus/config/named.conf include "/usr/pkg/apps/dns-plus/config/namedb/named.logging.conf"; options { directory "/usr/pkg/apps/dns-plus/config/namedb"; pid-file "/usr/pkg/var/run/named/named.pid"; allow-query { any; }; allow-query-cache { localnets; localhost; }; allow-recursion { localnets; localhost; }; recursion no; }; zone "." { type hint; file "named.root"; << "last update: Jun 17, 2010" のル−トファイルだった。 }; zone "example.org." { type master; file "example.org.zone"; }; zone "1.168.192.in-addr.arpa." { type master; file "example.org.rev"; }; zone "localhost." { type master; file "localhost.zone"; }; zone "0.0.127.in-addr.arpa." { type master; file "localhost.rev"; }; include "/usr/pkg/apps/dns-plus/config/namedb/named.local.conf"; # ps -ef | grep named named 1165 1 0 12:03 ? 00:00:00 /usr/pkg/sbin/named -u named -4 -c /usr/pkg/apps/dns-plus/config/named.conf レコ−ドを追加する度に OpenBlockS を再起動しないといけない?。 /etc/init.d/named とか /etc/rc2.d/named とかいうのがない!。いやいや named に入っている rndcコマン ドを使うのだ、でも rndc( /usr/pkg/sbin/rndc ) を使うには1つやっておかないけない ことがある。めんどうなので直接 named を叩くことにする。 # killall named # /usr/pkg/sbin/named -u named 4 -c /usr/pkg/apps/dns-plus/config/named.conf # cd /etc/namedb;ls -l -rw-rw-r-- 1 appmgr appmgr 293 Jan 13 13:17 example.org.rev -rw-rw-r-- 1 appmgr appmgr 289 Jan 13 13:17 example.org.zone -rw-rw-r-- 1 appmgr appmgr 211 Jan 13 13:17 localhost.rev -rw-rw-r-- 1 appmgr appmgr 215 Jan 13 13:17 localhost.zone -rw-r--r-- 1 appmgr appmgr 0 May 5 2010 named.local.conf << 空ファイル。 -rw-r--r-- 1 appmgr appmgr 227 Sep 27 2009 named.logging.conf -rw-r--r-- 1 appmgr appmgr 2994 Jun 18 2010 named.root # cat example.org.zone $TTL 86400 @ IN SOA obs600.example.org. domainmaster.example.org. ( 2012011305 ; Serial yyyymmddXX 3600 ; refresh 900 ; retry 604800 ; expire 86400) ; MinTTL IN NS obs600.example.org. obs600 IN NS 192.168.1.1 apollo IN A 192.168.1.9 obs600 IN A 192.168.1.1 # cat example.org.rev $TTL 86400 @ IN SOA obs600.example.org.domainmaster.example.org. ( | 上に同じ。 IN NS obs600.example.org. IN NS 192.168.1.1 9 IN PTR apollo.example.org. 1 IN PTR obs600.example.org. # cat named.logging.conf logging { channel default_debug { file "/usr/pkg/var/log/named/named.log" versions 7 size 20M; severity dynamic; print-time yes; print-severity yes; print-category yes; }; category default { "default_debug"; }; }; named.root これが入っていました。 ------------------------------------------------------------------------- |; This file holds the information on root name servers needed to |; initialize cache of Internet domain name servers |; (e.g. reference this file in the "cache . " |; configuration file of BIND domain name servers). |; |; This file is made available by InterNIC |; under anonymous FTP as |; file /domain/named.cache |; on server FTP.INTERNIC.NET |; -OR- RS.INTERNIC.NET |; |; last update: Jun 17, 2010 |; related version of root zone: 2010061700 |; |; formerly NS.INTERNIC.NET |; |. 3600000 IN NS A.ROOT-SERVERS.NET. |A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4 |A.ROOT-SERVERS.NET. 3600000 AAAA 2001:503:BA3E::2:30 |; | | M.ROOT-SERVERS.NET. まで。以下 ROOT 何某は省略。 |; End of File B-192.228.79.201 C-192.33.4.12 D-128.8.10.90 E-192.203.230.10 F-192.5.5.241 G-192.112.36.4 H-128.63.2.53 I-192.36.148.17 J-192.58.128.30 K-193.0.14.129 L-199.7.83.42 M-202.12.27.33 # cd /usr/pkg/apps/dns-plus;ls -F JSON.php dns_auth.php dns_zone_edit.php info.ini config/ dns_base_edit.php export.php locale/ dns-plus.lib.php dns_maintenance.php index.php # cd config; ls -F dns-plus.conf dns-plus.default.conf named.conf namedb/ rc.conf dns-plus.conf.20120113120143 他にも日付の異なるのが幾つかあった。 [ おまけのテスト ] named は動いてなくても関係ない。こんな感じで。 # named-checkzone nix.co.jj nix.co.jj.zone コメントにするつもりで制御ファイ zone nix.co.jj/IN: loaded serial 2012011902 ルのエントリに #やら %やら付けて OK も関係ない、無視するぞ。 # named-checkzone nix.co.jj nix.co.jj.rev 逆引きファイルにはだめなようだ。 zone nix.co.jj/IN: NS 'obs600.nix.co.jj' has no address records (A or AAAA) zone nix.co.jj/IN: not loaded due to errors. (3) いや本格的にミニ・インタ−ネット * テストその3 ( 自社DNSがインタ−ネットのDNSを引けるか ) -------- 192.168.200.0 Qube3では 192.168.200.1 でDNSサ−バを |.1 DNS 稼働させる。192.168.200.1 というセグメン □Qube3 OB■仮想IPで配置 トを線引きしたがQube3 他ない。このDNS |.1 |.3 はル−ト兼 nix.con である。OpenBlockS の ------*---------------- 202.241.128.0 DNSはル−トとして Qube3 を指し示す。 |.2 OB□DNS(MR) -----------.2 |.1 << OpenBlockS のDNSル−トファイル >> |FortiGate|-------------- 192.168.2.0 ----------- □(MS) △PC # cat /etc/named.root |.2 QUBE3|.1 |.4 . 99999 IN NS qub0.nix.con. ------*------------------- 192.168.1.0 qub0.nix.con. 99999 IN A 192.168.200.1 [ Qube3 のネットワ−クとDNSの設定 ] 内側のインタ−フェ−スはΙeth0 で 202.241.128.1、外側は Π eth1 で 192.168.200.1 とする。デフォルトゲ−トウェイは適当に 192.168.200.99 でもどこでも。[システム]の [TCP/IP設定] でホスト名qub0、ドメインネ−ム nix.con、DNSサ−バ 192.168.200.1、プ ライマリインタ−フェ−ス 202.241.128.1、セカンダリインタ−フェ−ス 192.168.200.1。 (スタティックル−トを設定)はしない。[システム]->[インタ−ネット]は何も設定しない。 [ネットワ−クサ−ビス]の[DNS] "DNSサ−ビスを有効にする[〆]" で制御ファイル作成。 -------------------------------------------------------- |プライマリサ−ビスのリスト -- nix.con | これで自動作成された |------------------------------------------------------| 制御ファイルなどは付 |mail.nix.con | A | 192.168.200.1 | 録に掲載。後から手作 |mail.nix.con | MX | mail.nix.con | 業でいじったりはして |qub0.nix.con | A | 192.168.200.1 | ない。 |www.nix.con | A | 192.168.200.1 | |192.168.200.1/255.255.255.0 | PTR | qub0-eth1.nix.con | -------------------------------------------------------- * ミニ・インタ−ネットでメ−ルの確認 1) PC から自分宛にメ−ルを送る。 tomo@nix.co.jj へ。 192.168.1.0 に設置した QUBE3 の Mail-Store にメ−ルを送る。 2) 異なるドメインにメ−ルを送る。nix.co.jj から nix.con へ。 192.168.200.1 に設置した Qube3 を nix.con ドメインとする。 3) 反対で向こうからメ−ルを送る。nix.con から nix.co.jj へ。 Qube3 に入って tomo@nix.co.jj へメ−ルを送ってみる。 * Qube3 でのDNS設定の様子 ( 相手側ドメイン用 nix.con ) # ls /etc/named db.200.168.192.in-addr.arpa db.nix.con.include db.200.168.192.in-addr.arpa.include db.nix.con~ db.200.168.192.in-addr.arpa~ named_dump.db db.cache db.nix.con pri.0.0.127.in-addr.arpa /etc/named.conf 行のブランクは詰めて表示した。 ------------------------------------------------------------------ |// BIND8 configuration file |// automatically generated Fri Nov 14 14:41:31 2008 |// Do not edit this file by hand. Your changes will be lost the |// next time this file is automatically re-generated. |options { | directory "/etc/named"; | // no forwarders defined | // no zone transfer access defined |}; |zone "." { ここら辺りの話は "13-4. DNSの動作を調べる, | type hint; (4)Cobalt Qube3 のDNS で遊ぶ, DNS サ−バで遊 | file "db.cache"; んでみる"。"13-5.バ−チャルドメインなど, (3) |}; Cobalt によるバ−チャルドメイン" も参照の事。 |zone "0.0.127.in-addr.arpa" { | type master; | file "pri.0.0.127.in-addr.arpa"; |}; |zone "200.168.192.in-addr.arpa" { | type master; | file "db.200.168.192.in-addr.arpa"; |}; |zone "nix.con" { | type master; | file "db.nix.con"; |}; |// end of file. /etc/named/db.nix.con ----------------------------------------------------- |$TTL 86400 |nix.con. IN SOA qub0.nix.con. admin.qub0.nix.con. ( | 1328689520 ; serial number | 10800 ; refresh | 3600 ; retry | 604800 ; expire | 86400 ; ttl | ) |nix.con. IN NS qub0.nix.con. | |qub0 in a 192.168.200.1 |mail in a 192.168.200.1 |mail.nix.con. in mx 30 mail.nix.con. |www in a 192.168.200.1 |$INCLUDE db.nix.con.include /etc/named/db.200.168.192.in-addr.arpa ------------------------------------------------------------------------ |$TTL 86400 |db.200.168.192.in-addr.arpa IN SOA qub0.nix.con. admin.qub0.nix.con. ( | 1328689520 10800 3600 604800 86400 ) |200.168.192.in-addr.arpa. IN NS qub0.nix.con. |1 in ptr qub0-eth1.nix.con. |$INCLUDE db.200.168.192.in-addr.arpa.include /etc/named/pri.0.0.127.in-addr.arpa ------------------------------------------------------------ |$TTL 86400 |0.0.127.in-addr.arpa. IN SOA localhost. admin.localhost. ( | 2000081417 10800 3600 604800 86400 ) |0.0.127.in-addr.arpa. IN NS localhost. |1 in ptr localhost. /etc/resolv.conf /etc/nsswitch.conf /etc/host.conf ---------------------- ------------------- ------------------ |nameserver 127.0.0.1 |passwd: files |order hosts,bind |search nix.con. |hosts: files dns |multi on |domain nix.con. /etc/hosts #hostname ------------------------------------------------ qub0.nix.con |127.0.0.1 localhost localhost.localdomain |202.241.128.1 qub0.nix.con qub0 |192.168.200.1 qub0-eth1.nix.con qub0-eth1 * テストその4 ( Mail-Store の QUBE3 にて ) # hostname /etc/resolv.conf /etc/nsswitch.conf hostB.nix.co.jj ------------------------- ------------------ |nameserver 202.241.128.3 |hosts: files dns Default Gateway |search nix.co.jj 192.168.1.2 |domain nix.co.jj QUBE3 で # nslookup やったら 202.241.128.3 が見つからない、 サ−バからのレスポン スがないと出た。FortiGate のファイアウォ−ルのル−ルがおかしいのでないかと予想し てみた。パソコンを 192.168.1.1 にしてDOS窓で nslookup をやったら、 こんなのが 出てきた。起動し直しても同じ。何か中途半端なエラ−だ。普通はできないのならまるで 反応がなしとなると思うが。中途半端にDNSパケットが FortiGate を通っている?。 PC> nslookup DNS request timed out timeout was 2 second. *** Can't find server name for address 202.241.128.3: Timed out *** Default servers are not available Default serve: Unknown Address: 202.241.128.3 FortiGate のポリシ−で、ある所にサ−ビスの "DNS" をル−ルに加えた。 そしたらすぐ に反応してきた。 FireWall-1 のル−ルで Any の解釈と FortiGate にル−ルを置き換え た際にル−ルが抜けたのが原因といえる。 PC> nslookup Default server: obs600.nix.co.jj Address: 202.241.128.3 * テストその5 ( 自社DNSでちょっといじってみた ) 自社DNSである OpenBlockS の named.conf で 192.168.1 の逆引きをコメントにした。 /etc/namedb/named.conf ----------------------------------- DNS(nix.con) | | □Qube3 |#zone "1.168.192.in-addr-arpa." { :192.168.200.1 |# type master; : |# file "192.168.1.rev"; ----------------- |#}; | □OpenBlockS DNS(nix.co.jj) | | | | FIRE□---------- QUBE3# nslookup | □QUBE3 △ > 192.168.1.8 | |.1 |.8 Server: obs600.nix.co.jj --------------------------- 192.168.1.0 Address: 202.241.128.3 *** obs600.nix.co.jj can't find 192.168.1.8: Server failed nix.con DNSの Qube3 の named.root はそのままのを使用。 OpenBlockS の named.root、ミニ・インタ−ネットのつもりで。 ------------------------------------------------------- |. 99999 IN NS qub0.nix.con. |192.168.1.0 qub0.nix.con. 99999 IN A 192.168.200.1 [ OpenBlockS にて ] # tail /etc/namedb/named.log named.log:14-Feb-2012 11:11:43.073 lame-servers: info: lame server resolving '8.1.168.192.in-addr.arpa' (in '.'?): 192.168.200.1#53 named.log:14-Feb-2012 11:11:43.075 lame-servers: info: lame server resolving '.' (in '.'?): 192.168.200.1#53 named.root:qub0.nix.con. 99999 IN A 192.168.200.1 roo.cache:; 日付など root.cache:A.ROOT-SERVERS.NET. 360000 AAAA 2001:503:BASE::2:30 | root.cache:M.ROOT-SERVERS.NET. 360000 AAAA 2001:dc3::35 (4) メ−ルのミニ環境までは難しかった * テストその4 ( これまでに加えて Mail-Store のメ−ルサ−バを設置 ) メ−ルサ−バの設定をやってみる。もう1台の Coblat Qube3,(QUBE3) を Mail-Store に 仕立てて、ユ−ザ tomo 宛にメ−ルを送ってみる。一つずつ確認していく。自社のDNS サ−バに相当する OpenBlockS の named 制御ファイルに、 ちゃんと自社メ−ルサ−バの MX レコ−ドを記述すること。でないと下記のようにエラ−になる。QUBE3 の sendmailは デフォルトでDNSを見るようになっている。 Mail-Store # mail -v tomo@nix.co.jj << QUBE3で操作。rootユ− □QUBE3 △PC Subject: 333 ザからのメ−ルになる。 |.1 | ccc -------------------- . tomo@nix.co.jj... nix.co.jj: Name server timeout tomo@nix.co.jj... Transient parse error -- messages queued for future delivery tomo@nix.co.jj... queued # ls /var/spool/queue/q1 1つメ−ルを送るなり失敗するなりすると、q1に dfq1D5QIg21196 qfq1D5QIg21196 ファイルが2つできた。dfqxx メ−ル本文 "333"。 # ls -F /home/mail/mqueue /var/spool からのリンク q1/ q2/ q3/ q4/ パ−ミッションは drwxr-xr-x, root, mail。 # mail -v tomo@nix.co.jj ちゃんとメ−ルを送れた場合こういうログが出る。 | PC のメ−ルソフトでメ−ルを受けた。 tomo@nx.co.jj... aliased to tomo tomo@nx.co.jj... Connectong to local tomo@nx.co.jj... Sent [ QUBE3 の設定状態 ] 電子メ−ルサ−バの設定の[詳細]で、これらホスト/ドメイン宛の電子メ−ルを受信する [ nix.co.jj ] とだけ設定した。これはだいぶ前にもやったことだから、できて当然だが。 /etc/mail/local-host-names /etc/mail/access /etc/host.conf -------------------------- ----------------- ----------------- |nix.co.jj |nix.co.jj RELAY |order hosts,bind |hostB.nix.co.jj |192.168.1 RELAY |multi on /etc/hosts /etc/resolv.conf --------------------------------------------- ------------------------- |127.0.0.1 localhost localhost.localdomain |nameserver 202.241.128.3 |192.168.1.1 hostB.nix.co.jj hostB |search nix.co.jj |192.168.9.9 hostB-eth1.nix.co.jj hostB-eth1 |domain nix.co.jj /etc/nsswitch.conf # hostname ※192.168.9.9 は Cobalt は2つのインタ− ------------------ hostB.nix.co.jj フェ−スがあるので、適当に設定したもの。 |hosts:files dns * テストその5 ( 上に加えて Mail-Relay のメ−ルサ−バを設置する ) Mail-Relay の設定を OpenBlockS にしてみよう。OpenBlockS に入っている sendmail は 8.13.8 だった。Solaris 9 のをそのまま使えないか。REHL 仮想マシンの sendmail がず ばり同じバ−ジョンだった。REHL 仮想マシンで作った sendmail.cf を持ってきた。REHL の sendmail はデフォルトでDNSをみるようになっていることに注意したい。 /etc/resolv.conf /etc/nsswitch.conf # hostname ---------------------- ------------------ obs600 |domain nix.co.jj |hosts: files dns |nameserver 127.0.0.1 /etc/mail/sendmail.cf /etc/hosts ------------------------------------ ここの記述はまずいような気がする。それで |::1 localhost メ−ルがうまく行かない原因の一つの気がす |127.0.0.1 localhost る。いや寧ろ sendmail.cf の内容が問題か。 |192.168.1.7 obs600.nix.co.jj obs600 /etc/mail/access /etc/mail/mailertable ---------------------------- ------------------------------ |Connect: 192.168.1.1 RELAY |nix.co.jj esmtp:[192.168.1.1] |To: nix.co.jj RELAY |nix.co.jj RELAY # /usr/sbin/makemap hash access < access # /usr/sbin/makemap hash mailertable < mailertable # sendmail -bt > 3,0 tomo@nix.co.jj それらしいのがずらずらと出てきた。どうやらよさそう。 # sendmail -bd -q15m sendmail デ−モンを起動。/etc/rc2.d にはないみたい。 # mail -v tomo@nix.co.jj OpenBlockS からコマンドでメ−ルを送った。PC のメ−ル ソフトに root@obs600.nix.co.jj から届いた。 * テストその6 ( 最後のテストで nix.con へメ−ルが行くかの確認 ) OpenBlockS に入っての操作。ここからコマンドでメ−ル送信。 これができたらパソコン のメ−ルソフトでメ−ルを hana@nix.con 宛に送ってみる。 # telnet 192.168.200.1 25 Connected to qub0-eth1.nix.con. 220 qub0-eth1.nix.con ESMTP Sendmail 8.10.2/8.10.2; Web, 15 Feb 2012 ... # nslookup > mail.nix.con Server: 127.0.0.1 Address: 127.0.0.1#53 Non-authoritative answer: Name: mail.nix.con メ−ルの送り先のDNSの MX レコ−ドは認識できている。 Address: 192.168.200.1 # sendmail -bt > 3,0 hana@nix.con 送り先のIPアドレスが出てこない。メ−ル送ったのが次。 /var/spool/mqueue にできたファイルには "Host unknown # mail -v hana@nix.con (Name server: nix.con.: no data known)" とあった。 PC から hana@nix.con へメ−ル送った、これはだめだった。Mail-Store である QUBE3の /var/spoo/mqueue/q1 にメ−ルが滞った。ミニ・インタ−ネットでのDNSがきちんとで きてないのだと思う。"Mhost map: lookup (nix.con):defferd" と出た。 Mail-Relay の sendmail は関係なかった。どうも sendmail が同じバ−ジョンでも、 マシンの種類が違 うと sendmail.cf の記述は少しずつ違うところがあるのでないか。sendmail.cfの中をみ ると制御ファイルの置場所とか違っているようだ。これ以上、続ける気力がない。 * テスト環境で気になったログ DNSサ−バがある Mail-Relay のところに、OpenBlockSを置いてDNSサ−バを動かし てみた。頻繁に update.fortiguard.net にアクセスしようとしている。 勿論テスト環境 なので外にはつながっていない。それで以下のようなログがずっと出ていたのだが、どう も気になる。今回購入したのはファイアウォ−ルだけ使うということで、他のIPSなど のライセンスは買ってない。ファイアウォ−ル機能はデフォルトで入っているので、そも そも何もライセンスということでは買ってないのだ。update.fortiguard.net は多分、フ ァ−ムウェアのアップデ−トを知るために定期的に、問い合わせているのだと思う。しか しそれなら頻繁過ぎはしないか。ntp1.jst.mfeed.ad.jp は FortiGate の中で指定した時 刻合わせに用いるサイトで、これはこれでいい。 # cat /etc/namedb/named.log OpenBlockS の named デ−モンのログ。 15-Feb-2012 18:56:56.788 security: info: client 202.241.128.3#48285: view OUT: query (cache) 'update.fortiguard.net/A/IN' denied 15-Feb-2012 18:56:26.724 security: info: client 202.241.128.3#48285: view OUT: query (cache) 'update.fortiguard.net/A/IN' denied 15-Feb-2012 18:56:26.725 security: info: client 202.241.128.3#48285: view OUT: query (cache) 'update.fortiguard.net/A/IN' denied 15-Feb-2012 18:56:45.146 security: info: client 202.241.128.3#48285: view OUT: query (cache) 'ntp1.jst.mfeed.ad.jp/A/IN' denied 15-Feb-2012 18:56:56.788 security: info: client 202.241.128.3#48285: view OUT: query (cache) 'update.fortiguard.net/A/IN' denied (5) DNSとプロキシの働きを整理 * ブラウザから ftp アクセスをした場合のプロキシの働き IEのプロキシ指定を 192.168.1.xにして。パソコンのネットワ−ク設定のDNSのIP アドレスはみない設定にした。 これはちゃんとでてきた。 -------------------------------------------------------------------- |IE |ftp://ftp.plathome.co.jp/pub/OpenBlockSS/pdf/userguide02.pdf |------------------------------------------------------------------- | これら全部 FTPフォルダエラ− が出た。 ftp://ftp.plathome.co.jp/pub/OpenBlockSS/pdf/ ftp://ftp.plathome.co.jp/pub/OpenBlockSS/ ftp://ftp.plathome.co.jp/pub/ ftp://ftp.plathome.co.jp/ * パソコンを 192.168.3.2 でDNS指定 202.241.128.3 192.168.3.2 というオブジェクトは FireWall-1 で作ってない、NAT変換の対象ではな い。FireWall-1 では Any -> Mail-Relay にdomain-udp だけ許可してある。192.168.3.2 からはインタ−ネットへはつながらないが、DNSの問い合わせは 202.241.128.3 へは できるということになっている。192.168.3.2 で nslookup やってみた。DNSは自分と この情報は返すが、外のは検索を拒否する。これまでほとんど確認したことは無かったの だが、予想した通りの動作だった。match-clients に 192.168.3.0/24 というのがないの で、そもそもこのパソコンからはDNSを使うことを拒否されるのである。拒否してそれ までなので Mail-Relay の /var/adm/messages にはDNSのログは出て来ない。 /etc/named.conf ------------------------------------------------------------------------------ |view "NAKA" { | match-clients { 127.0.0.1; 192.168.1.0/24; 192.168.2.2; 202.241.128.2; }; | allow-query { 127.0.0.1; 192.168.1.0/24; 192.168.2.2; 202.241.128.2; }; | recursion yes; << 他のDNSサ−バの情報も検索しにいく。 | allow-recursion {127.0.0.1; 192.168.1.0/24; 192.168.2.2; 202.241.128.2; }; > nslookup Default Server: ns0.nix.co.jj << パソコン 192.168.3.2 のDOS窓にて。 Address: 202.241.128.3 > www.iij.ad.jp << Mail-Relay で #snoop -r src 192.168.3.2で Default Server: ns0.nix.co.jj パケットをみる。 Address: 202.241.128.3 *** ns0.nix.co.jj can't find www.iij.ad.jp: Query refused > mail.nix.co.jj << www.nix.co.jj でも同じように返した。 Default Server: ns0.nix.co.jj Address: 202.241.128.3 Name: www.nix.co.jj Address: 202.241.128.3 << DNSとメ−ルサ−バは同じマシンにある。 * Active Directory とプロキシサ−バのDNSのこと インタ−ネットへ : ■仮想IPアドレス PCで IWSS をDNS指定してもだめ、使えな : |.3 い。しかし AD のDNSサ−バで IWSS をフ -------*---------------- 202.241.128.0 ォワ−ド指定したのは有効である。ADのマシ |.2 □DNS(MR) ンは Windows Server で、DNSサ−バが稼 -----.2 |.1 働。AD でのネットワ−クの設定は、Windows MS |UTM|-------------- 192.168.2.0 2000 や XP Professional と同じ画面でやる。 □ ----- IWSS□ □AD △PC IPアドレス、デフォルトゲ−トウェイ、そ .1| .2| (Proxy)|.5 |.7 |.4 れにDNS指定をする。DNSは 127.0.0.1 -------*--------------------------- になっていた。この Windows Server は小生 192.168.1.0 が扱ったものでなく、改めて設定を確認した。 PC のDNS指定を Active Directory である 192.168.1.7 にして。Active Directoryで のDNSの設定はフォ−ワ−ド指定が 192.168.1.5 に向いていた。仮想マシンの IWSSで は /etc/resolv.conf は "nameserver 202.241.128.3" になっている。IWSSは自分が設定 した。それで AD マシンのDNSの問い合わせが IWSS に来ているか確認してみた。IWSS の中にあるDNSサ−バ、はっきりと有るのか無いのか。もしこれだと分かるものがある なら、DNSのキャッシュは有るのか。できれば少しでもDNSの応答を速くしたい。 PC にて > ping www.kddi.con Pinging ... [xx.xx.xx.xx] ... << すぐにIPアドレスを返してきた、よし。 IWSS にて << ADマシンからDNSの問い合わせが来た。 # tcpdump -n src 192.168.1.7 and udp 53 ... 192.168.1.7.nim > 192.168.1.5.domain:9522+ A? www.kddi.con (30) * 頭をちゃんと整理して理解しないと DNS(MR) ホストで、snoop コマンドでDNSのパケット 53/UDP をみた。UTM のDMZイ ンタ−フェ−スである 192.168.2.2 から 192.168.2.1 ヘの流れがみえた。これは通常の 社内のパソコンで、ブラウザのプロキシサ−バからのDNS問い合わせのパケット。プロ キシサ−バは、(Proxy)ProxySVR は UTMにオブジェクト作成、NAT有効で登録してある。 MS も同じく登録してある。MS(Mail-Store) である 192.168.1.1 から 192.168.2.1 ヘの 流れがみえた。メ−ルの送信元のIPアドレスの逆引きの問い合わせだ。社内間のメ−ル でも問い合わせている。これは Mail-Store のメ−ルサ−バからでている。InterScan プ ログラムを sendmail プログラムがサンドイッチしている。どれが問い合わせしているか。 ------------------------------------------------ |int -> wan | | all all ICMP ACCEPT 〆 NAT有効| | MS all SMTP ACCEPT 〆 NAT有効| | Proxy all DNS HTTP ACCEPT 〆 NAT有効| ------------------------------------------------ パソコン 192.168.1.4 で確認。パソコンのDNSは 202.241.128.3 を指定。DOS窓で > nslookup やった。 Mail-Relay マシンのDNSサ−バのログ /var/adm/messages には 何もでなかった。ちゃんとインタ−ネットのDNS情報も検索できた。次に自分宛にメ− ルを送った、どこへでも構わない。/var/adm/messages にログが出てきた。 192.168.1.4 の逆引きを Mail-Relay のDNSサ−バが調べてエントリが無い。多分それからインタ− ネットのDNSのル−トサ−バに問い合わせして、ル−トから RFC 1918 違反だと返して いるようだ。それが本当なら、不用意にDNSのル−トサ−バに負荷を与え続けていた訳 で、まるでよろしくない話だ。その後 MR の named で適当に逆引き応答するようにした。 # cd /var/adm # grep 4.1.168 messages Feb 16 11:09:18 hostA named[148]: [ID 873579 daemon.warning] 続く client 202.241.128.2#13378: view NAKA: 続く RFC 1918 response from Internet for 4.1.168.192.in-addr.arpa * DNSはいろんなところで関係する 名前解決に時間がかかることは、マシンの設定でよく起こることである。UNIX系なら /etc/resolv.conf でどこのDNSサ−バを参照しようとしているか。 そもそもDNSサ −バを見る必要もないのに参照する設定になっているとか。IPアドレスの逆引きをやろ うとしているとか。イントラのサ−バの Apache で逆引きして、どこからアクセスしてき たかドメイン名で記録しようとするとか。 メ−ルサ−バの MTA でも送信元を明らかにす するため逆引きをする、あるいは逆引きしてまた正引きして整合性をチェックするとかい うこともある。どうも Mail-Store の sendmail が逆引きを全メ−ルのホストに対してや っている、みたい。逆引きをやっているとなるとDNSサ−バが止まったらメ−ルを送れ なくなるか、DNSサ−バがないと認識して諦めるまで、かなり時間がかかることになる。 どっちにせよ、それなりの負荷を Mail-Store マシンの sendmail と Mail-Relay マシン のDNSサ−バにかけているはずである。即刻やめるようにしたい。`2c/05 * プロキシサ−バの奥深い挙動 `2c/05 : Router□ [ 設定 ] Proxy のデフォルト経路 B.1。 |A.1 Proxy の静的経路 B.2経由C。 ----------------- PC のデフォルト経路は B.2。 | NAT UTM の静的経路 B.2経由B、B.2経由C。 ----*---- | UTM | セグメント D は新しく追加したとする。経路設 --------- 定をどのようにしたらいいか、 今さらだけど改 Server B.1| めて検討してみる。Proxyサ−バのデフォルト経 □ |B.2 Proxy 路はレイヤ3スイッチ L3にお任せすべきだろう。 D.3| D.2--------- □ Proxy のデフォルト経路 B.1 でなく B.2に変更 ------------| |B.2 |B.3 する。UTM の経路設定は Proxy をかませば全部 | L3 |-------------- のセグメントを記述する必要はなく、Proxyとだ ------------| | |B.9 けやりとりできればいいがどうしたものか。 一 C.2--------- PC○ 応、静的経路 B.2 経由D も追加することにする。 1) PC からウラウザで Proxy 経由で Server の D.3 のホ−ムペ−ジにアクセスOK。PC のデフォルト経路を B.1 にしたらNG。 2) Proxy の静的経路 B.2経由D を追加した。Proxy のマシンから D.2 へ ping OK。PC のデフォルト経路を B.2 にして D.3へはOK、PC のデフォルト経路を B.1 だとNG。 ↓ PC からは D.3 ヘの経路情報はなくても、Proxy で D.3 ヘの経路情報があれば D.3 へは アクセスできると思っていた。実際はそうではなくて Proxy で D.3 ヘの経路情報はなく ても、PC からは D.3 ヘの経路情報があれば、 Proxy サ−バ経由で D.3 のホ−ムペ−ジ にアクセスできる。ということはあくまでもパソコンのブラウザでプロキシ設定していて もネットワ−クの到達性についてはそのパソコンの経路設定に依存するということ。 ------------------------------------------------------------------------------------ [付録] いろいろかいろの北国街道 * OpenBlockS のメ−ルサ−バの設定は諦め アプリで sendmail の何かソフトがないか。こんなんしかない。DNSの設定をするよう なツ−ル・ソフトがないかと思ったがない。 mail/popa3d popa3d-1.0.2nb1.tgz mail/postfix postfix-2.6.5.tgz インタ−ネットで目ぼしい記事を拾ってみる。OpenBlockS266 の記事があったのみ、M4マ クロファイルはないということ以外、収穫なし。調べた、/etc/inetd.conf に popper も なし、time と ftp と telnet だけ。sendmail は入っている、version 8.13.8 だった。 # cd /etc/mail;ls local-host-names relay-domains と aliases local-host-names sendmail.cf ---------------- statistics は空 helpfile relay-domains statistics |ssd-linux submit.cf # sendmail -bd -q15m # telnet localhost 25 Trying ::1... Trying 127.0.0.1... Connected to localhost 220 obs600.nix.co.jj ESMTP Sendmail 8.13.8/8.13.8; Tue, 14 Feb .... # cd /etc/mail/ << sendmail.cf は REHL仮想マシンで作ったのを # cp sendmail.cf sendmail.cf.ORG << 持って来て使う。元々のはコピ−しておいた。 でも OpenBlockS のIPアドレスを変えて再起動したら、sendmail.cf.ORG 消えてしまっ た。リセットボタンを押しても消えた。こりゃ困る。 /etc/namedb/ に入れたのも消えて しまった。フラッシュメモリに記録にしないと消えるぞ。個人のホ−ムディレクトリに入 れたのは消えてないみたい、例えば /usr/pkg/home/tomo/ 内のファイルとか。 * OpenBlockS にそもそもあった named の様子 # cd /etc/namedb;ls -F 127 2nd/ db/ localhost loopback.v6 named.conf root.cache # cat named.conf # $ssdlinux: named.conf,v 1.3 2007/07/26 03:43:24 todoroki Exp $ # boot file for secondary name server # Note that there should be one primary entry for each SOA record. options { directory "/etc/namedb"; pid-file "/var/run/named/named.pid"; listen-on-v6 port 53 { any; }; }; zone "." { type hint; file "root.cache"; }; zone "localhost" { type master; file "localhost"; allow-update { none; }; }; zone "127.IN-ADDR.ARPA" { type master; file "127"; allow-update { none; }; }; zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.int" { type master; file "loopback.v6"; allow-update { none; }; };