各機器やソフトウェアの設定

MUCHO-STの設定
ルータには、MUCHO-ST(古河電工)を使用しています。
ダイアルアップ接続の時に、少しはまりました。またフィルタリングに ついても、あまり詳しいドキュメントがなくて、困ったので、 それらについて書いています。
※MUCHO-STはGUIの設定ツールもありますが、ここではtelnetによる コマンド設定を前提にしてます。 (設定ツールを使ったことがないんです。すいません。)
BIND
内部LAN用、インターネット用の二つのDNSを一台のマシンで動かすための 設定のポイントについて書いています。
sendmail
IMAP4を使用したときの設定などなど
WWWサーバ
一つのIPで複数のWEBサーバを立ち上げる設定

MUCHO-STの設定

接続設定のポイント

最初、MUCHO-STのダイアルアップ接続時にうまく接続できませんでした。
MUCHO-STは、ダイアルアップ接続先の設定を、複数のコマンドの組み合わせで 指定します。
(わかりにくくて、あんまり好きじゃないんですが... :-)
うちでの設定内容(displayコマンドの実行結果)のうち、接続に関係するものは、以下のようになってます。

hostname
1:default
  name: [プロバイダのアカウント]@vc-net.ne.jp
  chapkey: [パスワード]
  papkey: [パスワード]
  nameserver: [内部LAN用DNSサーバ]
  netbiosserver: [内部LAN用WINSサーバ]
  domainname: d-line.net
〜(略)〜
target
inet                :
       [電話番号]                               nn [パスワード]    64(K)
       off
       [プロバイダのアカウント名]@vc-net.ne.jp
       cbmode:off

このうち、targetで指定している「nn」のところを、「cn」にしているとつながりませんでした。
MUCHOのマニュアルには、 ここは「発呼時認証方法と着呼時認証方法を指定する」と なっており、てっきり発呼時認証方法=CHAP,着呼時認証方法=なし とするのが 正しいと思ったのですが、サポートセンターに聞いたところ、ここの設定は どちらも着信時のものだということです。

静的NAT設定

MUCHOでの静的NATの設定は、natplusstatictableコマンドでおこないます。
うちでの設定は、以下のようになってます。

natplusstatictable
 210.255.146.40 ,22      [内部サーバのアドレス] ,22
 210.255.146.40 ,25      [内部サーバのアドレス] ,25
 210.255.146.40 ,53      [内部サーバのアドレス] ,53
 210.255.146.40 ,80      [内部サーバのアドレス] ,80
 210.255.146.40 ,113     [内部サーバのアドレス] ,113
 210.255.146.40 ,119     [内部サーバのアドレス] ,119

それぞれ、SSH(22),SMTP(25),DNS(53),HTTP(80),IDENT(113)※,NNTP(119)を 内部のサーバにアドレス変換して中継します。
MUCHOの静的NATには、TCP/UDPの指定がないのですが、DNSのクエリーとゾーン転送の 両方に使えることから、TCP/UDPの両方をアドレス変換するようです。

※IDENTサービスは、実際には内部サーバでは動いていません。MUCHOのフィルタは パケットを破棄するだけなので、sendmailのident問い合わせに対して タイムアウトまで待たせることになってしまいます。 内部サーバから明示的に接続できない返事をすることで、 sendmailの遅延を少しでも減らそうとしてます。

IPフィルタリング

MUCHOのフィルタリングは、ipfilterコマンドで設定します。
うちでの設定は以下のとおり。

ipfiltering(forward)
1:tcp  full
 src:0.0.0.0  0.0.0.0      0  65535   recv:lan,hsd,isdn1,isdn2
 dst:210.255.146.40  255.255.255.255     80     80   send:lan,hsd,isdn1,isdn2
2:all  full
 src:[内部ネットワーク]  255.255.255.0      0  65535   recv:lan
 dst:0.0.0.0  0.0.0.0      0  65535   send:lan,hsd,isdn1,isdn2
3:tcp  full
 src:0.0.0.0  0.0.0.0      0  65535   recv:lan,hsd,isdn1,isdn2
 dst:210.255.146.40  255.255.255.255     25     25   send:lan,hsd,isdn1,isdn2
4:tcp  full
 src:0.0.0.0  0.0.0.0      0  65535   recv:lan,hsd,isdn1,isdn2
 dst:210.255.146.40  255.255.255.255     22     22   send:lan,hsd,isdn1,isdn2
5:tcp/udp  full
 src:0.0.0.0  0.0.0.0      0  65535   recv:lan,hsd,isdn1,isdn2
 dst:210.255.146.40  255.255.255.255     53     53   send:lan,hsd,isdn1,isdn2

ipfiltering(discard)
*** empty table

MUCHOのフィルタリングは、ルールにないパケットは破棄されるので、 許可するものだけを書きます。
NATされるアドレスのルールをどう書けばいいのかわからなかったんですが、 どうやら、NAT前のアドレスを記述しておけばいいようです。


BINDの設定

BINDの設定ファイル

内部LANのためのDNSと、インターネットへ公開するDNSを 一台のサーバで動かしています。

内部LAN
192.168.1.0/24
内部サーバのIPアドレス
192.168.1.1(内部向けサービス用)
192.168.1.254(外部向けサービス用)
内部向けDNS設定ファイル(/etc/named.conf)
options {
  directory "/etc/ns" ;
  allow-query { 192.168.1/24 ; };
  allow-transfer { !any ; };
  listen-on { 192.168.1.1 ; };
} ;

外部向けDNS設定ファイル(/etc/named-out.conf)
options {
  directory "/etc/ns.out" ;
  allow-query { any ; };
  allow-transfer { [セカンダリDNSのIPアドレス] ; };
  listen-on { 192.168.1.254 ; };
} ;

named起動時に -c オプションで、それぞれの設定ファイルを指定し、 二つのnamedを動かしています。

named -c/etc/named.conf
named -c/etc/named-out.conf

listen-onで、それぞれのDNSが接続を受け付けるIPアドレスを 指定しています。
allow-queryには、DNSへの問い合わせを許可するIPアドレスを書きます。 内部向けは、内部ネットワークからのみを許可、外部向けは全ての アドレスからを許可しています。
allow-transferは、ゾーン全体の転送を許可するIPアドレスを書きます。 内部にはセカンダリ(slave)DNSがないので、ゾーン転送は許可していません。 外部向けは、セカンダリDNSのみに、ゾーン転送を許可しています。

複数のnamedをndcで制御する方法

通常namedはndc(name daemon control program)で起動/停止や 新しい設定ファイルの読み込みなどの操作をおこないます。 1台のマシンで複数のnamedが動いている場合には、明示的にどちらの namedを操作するかを指定する必要があります。これにはndcの -c オプション を使います。

ここで指定するのは、チャネルと呼ばれるUNIXのdomain socketで、 デフォルトではndc という名前で作られます。
(つくられる場所は、OSによりますが、例えばFreeBSD 3.4Rでは/var/run 以下に なります。)

チャネル名をデフォルトから変更するには、設定ファイル内でcontrolsを 指定してやります。例えば外部向けDNSの設定ファイル(/etc/named-out.conf)では 以下のように指定しています。

controls {
        unix "/var/run/ndc-out" perm 0600 owner 0 group 0;
};
これで、内部向けのnamedを操作する場合には、
ndc [command]
外部向けのnamedを操作するには、
ndc -c /var/run/ndc-out [command]
と、使い分けることができるようになります。

後は、まだ工事中


dai@d-line.net