検索

Google
Web www.icefree.org

RSS of recent changes

 

3.3R

2017-06-20 (火) 23:23:54 (2496d)

 このページは旧サイトからの転載です。元ページは1999年以前に書かれたもので、FreeBSDのバージョンが3.3Rなので、今そのまま使えるかは怪しいところです。


server.jpg

当時は、サーバが部屋の隅に放置されていた・・・。

 当時のサーバのスペックは以下のようになっていました。

OSFreeBSD3.3R
ベースAptiva530(2144-70J)
CPUDX4−100
メモリ16MB
HDD840MB
拡張NE2000互換ボードのみ
UPSSmartUPS 900J
TAAterm45DSU
プリンタMJ−800C

 モニタレス・キーボードレスなので、繋がっているケーブルは、10BaseT、RS232C、電源の3本のみです。
 また、24時間365日でUNIXを運用する場合には、UPSは必須です。

DNSサーバ

/etc/rc.conf

named_enable="YES" 

/etc/namedb/named.conf

options { 
        directory "/etc/namedb"; 
        forwarders { 
                ISPのDNSサーバアドレス 
        }; 
}; 

zone "." { 
        type hint; 
        file "named.root"; 
}; 

zone "0.0.127.IN-ADDR.ARPA" { 
        type master; 
        file "localhost.rev"; 
}; 

zone "mydomain" { 
        type master; 
        file "mydomain.zone"; 
}; 

zone "1.168.192.IN-ADDR.ARPA" { 
        type master; 
        file "mydomain.rev"; 
}; 

/etc/namedb/mydomain.zone

@       IN      SOA     ns.mydomain. root.mydomain.  ( 
                                99091801; Serial 
                                3600    ; Refresh 
                                900     ; Retry 
                                3600000 ; Expire 
                               3600 )  ; Minimum 
        IN      NS      ns.mydomain. 

mail    IN      CNAME   hoge 
ns      IN      CNAME   hoge 
www     IN      CNAME   hoge 

hoge    IN      A       192.168.1.1 
        IN      HINFO   Aptiva/486DX4-100MHz/16MB FreeBSD 

/etc/namedb/mydomain.rev

@       IN      SOA     ns.mydomain. root.mydomain.  ( 
                                99091801; Serial 
                                3600    ; Refresh 
                                900     ; Retry 
                                3600000 ; Expire 
                                3600 )  ; Minimum 
        IN      NS      ns.mydomain. 
1       IN      PTR     hoge.mydomain. 

/etc/namedb/localhost.rev は make-localhost を実行して作成します。

SAMBA

 UNIXのファイルシステムを、Windowsのネットワークコンピュータから見られるようにするためのソフトです。

 パッケージから samba-2.0.5 のインストール。

 smb.conf は許容するホストの設定と、パスワードの暗号化を指定する以外はデフォルトのままです。参加するWindowsのワークグループ名は MYGROUP にしてあります。

/usr/local/etc/smb.conf

host allow = 192.168.1.5 
encrypt passwords = yes 

ダイアルアップ

 まず、ソフトですが、ゲームやマルチメディア系のプロトコルに強いIIJ-PPP + NATパッチを使います。FreeBSDの各リリースバージョンに対応したNATパッチが用意されているので、それを使ってコンパイル・インストールします。
 次に、PPPを on demand(バックグラウンド)で動かすために、その開始と終了の処理を行うためのシェルスクリプトを用意しました。止める場合にはtelnetでiij-pppのプロセスと通信する方法もあったような気もしますが、ここではその方法は使っていません。。

/etc/ppp/ppp.conf

################################################################# 
# PPP  Sample Configuration File 
# Originally written by Toshiharu OHNO 
# Simplified 5/14/1999 by wself@cdrom.com 
# 
# $FreeBSD: src/etc/ppp/ppp.conf,v 1.1.2.2 1999/08/29 14:19:56 peter Exp $ 
################################################################# 

default: 
 set device /dev/cuaa1 

 set log Phase Chat LCP IPCP CCP tun command 
 set speed 115200 
 set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\" \\dAT OK-AT-OK \\dATD\\T TIMEOUT 40 CONNECT" 

 set timeout 600 
 set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.0 0.0.0.0 
 set taddr 192.168.1.0/24 
 set xaddr 192.168.1.5 
 add default HISADDR 
 enable dns 

isp: 
 set phone 電話番号 
 set authname アカウント 
 set authkey パスワード 

/root/pppstart.sh

#!/bin/sh 
find /var/run -name "tun*.pid" && /usr/sbin/ppp -auto isp 

/root/pppstop.sh

#!/bin/sh 
for fname in /var/run/tun*.pid; do 
ppppid=`cat $fname` 
kill $ppppid 
done 

 テレホ時間帯は自動で起動するようにします。時刻が多少ずれていることを考慮して、23:10〜7:50までにしてあります。pppstart.shは二重起動しないようにしてあるので、23:10以前に/root/pppstart.sh を手動で動かすことも出来ます。

/etc/crontab

10      23      *       *       *       root    /bin/sh /root/pppstart.sh 
50      7       *       *       *       root    /bin/sh /root/pppstop.sh 

 また、テレホ時間外では手動で ppp を起動します。

メールサーバ(POP)

 うちのメールサーバの基本方針は次のようなものです。
・外部のサーバにあるメールは定期的にLAN内のサーバに回収
・SMTPサーバは外部のサーバを直接使う

 SMTPサーバを内部に用意しないのは、NATを使っているのでLAN内のどのホストからでも自由に外部のSMTPサーバと通信できるからです。送信に関してオンラインかオフラインかを意識しないで使えるようにしたいなら、SMTPサーバを内部に用意しておいたほうが便利でしょう。
 パスワードが必要になるPOPサーバとの通信は、全てメールサーバが受け持つので、他のホストにパスワード情報を置いておく必要が無いという利点もあります。
 
 まず、LAN内にPOPサーバを用意するために、パッケージから qpopper-2.53をインストールしました。

/etc/inetd.conf(追加分)

pop3    stream  tcp     nowait  root    /usr/local/libexec/popper       popper 

 これで基本的な設定は終わり。

 次に外部のメールサーバにあるメールを定期的にLAN内のサーバに転送するようにします。
 ソフトは、パッケージから fetchmail-5.0.5 をインストールしました。

/.fetchmail

set no bouncemail 
set postmaster LOCALNAME 

poll MAILSERVER 
  protocol pop3 
  timeout 300 
  user USERNAME 
  is LOCALNAME 
  password PASSWORD 
  no mimedecode 

/etc/crontab

15,30,45      23      * * * LOCALNAME    /usr/local/bin/fetchmail > /dev/null 
0,15,30,45    0-6     * * * LOCALNAME    /usr/local/bin/fetchmail > /dev/null 
0,15,30,45    7       * * * LOCALNAME    /usr/local/bin/fetchmail > /dev/null 

 複数のアカウントに対応させる場合には、ローカルのユーザを追加し、.fetchmailrc を追加し、crontab の設定を追加します。その時、アカウント毎にcrontab での起動時刻をずらして、トラフィックの分散を図ります。

 あとは、LAN上の好きなホストのメールクライアントソフトを使います。その時、POPサーバにはLAN上のサーバを指定します。SMTPサーバは直接外部のサーバを指定します。

NFSサーバ

 ネットワーク経由でファイルシステムを提供するための、最もポピュラーなプロトコルです。
 WindowsではSMB、MacではAppleTalk?が一般的ですが、それでもNFSを利用できるようにできます。探せばフリーで使えるソフトも見つかるでしょう。

/etc/exports

/usr    192.168.1.1 192.168.1.3 

マウントを許可するホストの設定です。

/etc/rc.conf

nfs_server_enable="YES" 
nfs_client_enable="YES" 

 nfs_client_〜は無くてもクライアントとして使えますが、nfs_server〜が無いとサーバとして使えません。

DHCPサーバ

 通常、家庭内LANのIPは固定で設定するものですが、ノートなどのモバイル端末を繋げる場合にはDHCPの方が便利です。DHCPを導入することによって、自宅や学校や会社などで移動する度に設定を手動で変える必要が無くなります。

 パッケージで wide-dhcp をインストールします。バージョンは、1.4.0.6です。ファイルは、wide-dhcp-1.4.0.6.tgzです。

 pseude-device bpfilter 4 が必要らしいです。既にあったので特になにもしませんでした。
 /dev/bpf[1-3] もあったので何もしてません。

 次はコンフィグの設定ですが、うちでは192.168.1.16 - 192.168.1.18 をDHCPに使うことにしました。
DNSサーバは192.168.1.6で、ドメイン名は、lan0.localdomainです。

/etc/dhcpd.relay

192.168.1.16    255.255.255.0 
192.168.1.17    255.255.255.0 
192.168.1.18    255.255.255.0 

/etc/dhcpd.pool

# define a global entry which specifies the stuff every host uses. 
global:!snmk=255.255.255.0:tmof=32400: 

# define different master entries for each subnet. . . 
# `dnsv' is IP address of DNS server. 
# `dnsd' is domain name of your domain. 
subnet0:tblc=global:rout=192.168.1.6:dht1=500:dht2=850:\ 
        :dnsv=192.168.1.6:dnsd=lan0.localdomain: 
#       :brda=192.168.1.255 

# entries for manual allocation (DHCP, BOOTP) 
#3001:  :ipad=133.4.30.1:hstn="yourclient1.host.name":tblc=subnet30:clid="1:0x00 
80c75fdc03": 
#3002:  :ipad=133.4.30.2:hstn="yourclient2.host.name":tblc=subnet30:clid="1:0x08 
004600e5d5": 

# entries for dynamic allocation (DHCP) 
#3003:  :ipad=133.4.30.3:dfll=3600:maxl=7200:tblc=subnet30: 
#3004:  :ipad=133.4.30.4:dfll=3600:maxl=7200:tblc=subnet30: 
0016:   :ipad=192.168.1.16:dfll=3600:maxl=7200:tblc=subnet0: 
0017:   :ipad=192.168.1.17:dfll=3600:maxl=7200:tblc=subnet0: 
0018:   :ipad=192.168.1.18:dfll=3600:maxl=7200:tblc=subnet0: 

# entries for dynamic / automatic allocation (DHCP) 
#3005:  :maxl=0xffffffff:ipad=133.4.30.5:tblc=subnet30: 
#3006:  :maxl=0xffffffff:ipad=133.4.30.6:tblc=subnet30: 

# entries for automatic allocation (BOOTP) 
#3007:  :ipad=133.4.30.7:albp=true:tblc=subnet30: 
#3008:  :ipad=133.4.30.8:albp=true:tblc=subnet30: 
 

NTPサーバ(with ntpdate)

 NTPは、時間をあわせるためのプロトコルです。うちは常時接続ではない環境なので、外部サーバへの問合せはntpdate を使って行います。

/etc/ntp.conf

#

server 127.127.1.0 prefer
driftfile /etc/ntp.drift

restrict default nomodify
/etc/ntp.drift 

touch で空ファイルを生成しておく。

 このサーバは、LAN外からアクセスできないので、このような状態です。外からアクセスできる場合は、restrict の設定を少し変えておいたほうがいいかもしれません。
 設定が終わったら、ntpd を起動します。

 クライアントからは、ntpdate 192.168.1.1 のようにすればOKです。当然、WindowsやMACのクライアントからも使えます。

 たぶん、最初は、クライアントで「no server suitable for synchronization found」とか言われるでしょう、サーバは、stratum 16 ということになっているでしょう。
 そういうときは、しばらく放っておきましょう。冗談ではなくて、サーバが使えるようになるまで、時間がかかるのです。上記の設定の場合は、普通は10分もすれば使えるようになります。

ntpdate での更新

 サーバで ntpdate を使うときは、ntpdate -u サーバ名 とします。ntpd が動いているときは、-u をつけないと駄目です。非特権ポートを使うようになるらしいです。