3.3R
このページは旧サイトからの転載です。元ページは1999年以前に書かれたもので、FreeBSDのバージョンが3.3Rなので、今そのまま使えるかは怪しいところです。
当時は、サーバが部屋の隅に放置されていた・・・。
当時のサーバのスペックは以下のようになっていました。
OS | FreeBSD3.3R |
ベース | Aptiva530(2144-70J) |
CPU | DX4−100 |
メモリ | 16MB |
HDD | 840MB |
拡張 | NE2000互換ボードのみ |
UPS | SmartUPS 900J |
TA | Aterm45DSU |
プリンタ | 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 をつけないと駄目です。非特権ポートを使うようになるらしいです。