Sorry, Japanese only.
♪IE4.0以上でご覧ください

Yahoo!
このページも古くなってきました.
こちらも参考にしてくださるときっとお互い幸せ・・・・


ようこそ! あなたはこのページへの番目のお客様です。 (since 10/24/98)
良い時代になったものです、今やFreeのPC-UNIXと、OCNエコノミーなどの廉価な 専用線サービス を用いて、月々専用線代金38000円の他は、標準的なPCとDSU/TAがあれば、 自前のインターネットサーバーを立ち上げることができます。
このページは、そうやって、サーバーを構成した記録を書いてみたものです。

姉妹ページ( 上越自閉症親の会CでCGI )もよろしく!!

注意!!(必ずお読み下さい) このページはあくまで私的な経験を、 公開するものです。ですから、誤りが含まれているかもしれません。 また、他の環境では当てはまらないところがあるかもしれません。 このページを参考にしたために読者がいかなる 損害を被ったとしても、当方では責任を負いません。At Your Own Risk でご参照下さい。このページへのご指摘は、 私(motoi@mxk.mesh.ne.jp)までメールでお願いいたします。 質問はしていただいても結構ですが、当方の時間と能力の限界のため、返信の保証は 一切ございません、悪しからず(^^
また読者には、UNIXやインターネットの一般的な知識を仮定しておりますので、 そちらで疑問のあるかたはそれなりの書籍などをご参照下さい。

もくじ

FreeBSD+OCNエコノミーでインターネット常時接続!
OCNエコノミーの申し込み
FreeBSDのインストール・カーネルの再構築
OCNエコノミーへの接続
ipfw
ネームサーバーの立ち上げ
メールサーバーの立ち上げ
WWWサーバーの立ち上げ
TIPS

FreeBSD+OCNエコノミーでインターネット常時接続!

やっぱり自前のサーバーを立ち上げた〜い!!
今までは、接続とメールは大手ISPのアカウント、ホームページはレンタルサーバーの代行業者と 契約して運用していました。 しかし、好奇心が旺盛で、その昔コンピュータ少年であった私としては、 自分でサーバーを立ち上げたいという夢を捨てきれなかったわけです(^^;;
それが、PC−UNIXとOCNエコノミーの出現で、月3,8000円の出費で可能となったわけです。
ネット関係の月々の出費を計算すると、合計約2,5000円になります。 あと1万円ちょっとで夢に手が届く(オーバーかな)。よーし、禁煙して、1万円をひねり出すぞ!  と決心したのです。(ちなみにまだ禁煙には成功していない) このページでは、手持ちのちょっと古くなったマシン(Pentium133MHz)を ルーター兼ネームサーバー兼メールサーバー兼WWWサーバーに仕立て上げるまでの 日記を書いてみました。
方針・・・安上がりにあげよう
とにかくお金がありません。月々3,8000円の他には、 できるだけお金が出て行かないようにというのが基本方針です。 手持ちのPC/AT機を、 ルーター兼外部サーバーにすることにしました。 ちょうど1998年4月号の UNIX MAGAZINE(ASCII) に「FreeBSDを使ったOCNエコノミー接続環境」 (松村ヨシオ、上原哲太郎著)というぴったりの記事かありましたので、 これを多いに参考にして、サーバーを構成することにしました。専用線との接続には、 2万円弱で安売りしていた、 NECのAtermIT50DSU を用いました。 セキュリティに関しては、ipfwでパケットフィルタリングを行い、 また内部ネットワークには、プライベートアドレスを用いて、 NATを通して外部と通信することにしました。
構成
結局、上述のような理由で、右図のような構成にしました。 Ethernet HUBは安売り店で5.000円弱で売っていたものです。 ルータ、ファイアウォール、種々の外部サービスを一台でやってしまいますが、 あれもこれも、少ない小遣いであげるためです。 お金とスペースのあるかたは、もっと、厳密に外部セグメントと内部セグメントを 分けた方が良いと思います。
ネットワークの概念図を示します。 ns.tatoeba.com(注:架空のドメイン名です)は、ゲートウェイ兼ネームサーバーとしますので、内部ネットワーク用のプライベートアドレス1つとグローバルアドレス2つをつけます。(後述) 当ドメインのネットワークアドレスをxxx.yyy.zzz.uuuとし、 ゲートウェイとしてのアドレスをxxx.yyy.zzz.vvv = xxx.yyy.zzz.uuu+1、 ネームサーバーとしてのアドレスをxxx.yyy.zzz.www = xxx.yyy.zzz.uuu+2 とします。 ネットワークアドレスや ネームサーバーのアドレス等は、NTTが指定してきますので、 その通りにする必要があります。

OCNエコノミーの申し込み

申込
申し込みは、 OCNのホームページ でするか、NTTに電話をかけてすることができます。 電話をかける時は「エコノミー」ときちんと伝えましょう。
おなじOCNでもダイヤルアクセスの申し込みが圧倒的に多いためか、 筆者の場合、勘違いされました。申し込むと、申込書が送られてきますので、 必要事項を書き込んで、送り返します。この時点から開通までに1ヶ月弱かかりました。
OCNエコノミーの利用形態としては、自前でネームサーバーを立ち上げる方法と、 OCNのネームサーバーを用いる方法があります。 しかし、せっかくサーバーを自前で立ち上げるのですから、 ちょっとした手間ですからネームサーバーも自前で立ち上げることとしました。 この場合も、セカンダリをOCNに依頼することができます。 当サイトでもセカンダリはOCNに依頼しました。
NTTの工事は2日に分けて行われました。1日目は専用線を家の中のモジュラージャック まで配線してくれます。2日目(この日が案内される工事日)は局側で回線をつないで、 現地で工事の人がテスト用のDSU/TAとノートパソコンで回線テストをやってくれます。 この日までに、pppの設定などを準備しておけば、テスト終了後すぐに接続できます。
internicドメインの引越し
ドメイン名には以前レンタルサーバーで用いていた、 internicドメインをそのまま用いることにしました。 まず、レンタルサーバーを解約しました。
OCNの工事予定日が決定すると、NTTからIPアドレスや ネームサーバーのアドレスが送られてきます。 そうしたら、internicドメインの引越しを行いましょう。
Internicのページhttp://www.internic.netで登録・変更ができますが、 筆者の場合は、レンタルサーバーの代行業者に依頼してしまいました。 (NTTではJPNICドメインの代行しかやってくれないようです) NICの上位ネームサーバーのデータ更新には数日かかりますので、早めの手続きが良いでしょう。 筆者の場合は上位ネームサーバーのデータ更新はOCN開通の2日後になってしまいました。

FreeBSDのインストール・カーネルの再構築

インストール
パシフィックハイテックで販売しているFreeBSD2.2.5J Walnut Creek CD-ROMから インストールしました。あさだたくや他著FreeBSD徹底入門(翔泳社)はとても参考になりました。
あと、なんといっても頼りになるのは、国内のFreeBSDの総本山 http://www.jp.freebsd.org/ですね。
IPアドレスの設定
構成図で示したように複数のIPアドレスを割り当てるために、 /etc/rc.confのBasic network optionsの項を次のように編集します。
network_interfaces="de0 lo0"
ifconfig_de0="inet 10.0.0.5 netmask 255.255.255.0"
ifconfig_de0_alias0="inet xxx.yyy.zzz.vvv netmask 255.255.255.240"
ifconfig_de0_alias1="inet xxx.yyy.zzz.www netmask 255.255.255.255"
ifconfig_lo0="inet 127.0.0.1"
これでリブートすれば、マシンにループバックアドレス127.0.0.1 の他に3つのアドレスが付きます。
10.0.0.5 → 内部ネットワーク用
xxx.yyy.zzz.vvv → ゲートウェイとしてのアドレス
xxx.yyy.zzz.www → ネームサーバーとしてのアドレス
カーネルの再構築
カーネルを再構築して、以下の変更をします。
(1) 不要なデバイスのコメントアウト
(2) maxusersの変更
(3) ipfwを有効にする
カーネルの再構築は以下の手順で行います。(これらは全てrootで行います)
# cd /usr/src/sys/i386/conf
# cp GENERIC MYKERN   GENERICカーネルを
    …   …   …      コピーして、新しい名前を
    …   …   …      付けます
    …   …   …
    …   …   …      viなどでident行を変更し
    …   …   …      MYKERNなどファイル名
    …   …   …      と同じにします
    …   …   …
    …   …   …      その他必要な変更をします
    …   …   …
# config MYKERN
# cd ../../compile/MYKERN
# make depend; make     新カーネルのコンパイル
# make install           インストール
# reboot
WWWサーバー等に使う場合、maxusers行をmaxusers 50位に変更します。
Ipfwとそのログ機能を有効にするために以下の行を適当なところに挿入します。ついでにマシンをゲートウェイにするための行も追加します。
maxusers 50
… … …
options GATEWAY
options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=10

OCNエコノミーへの接続

NATパッチ
FreeBSDのiij-pppにNAT機能を組み込むためにjunichi氏のパッチをあてます。ここでpppを修正するために、/usr/sbinと/sbinのソースが必要です。ない場合は、CD-ROMのソースのディレクトリで以下のようにソースを展開します。
# sh ./install.sh usbin sbin
http://www2a.meshnet.or.jp/~junichi/ から2.2.5Jに対するパッチをとってきます。
もし、FreeBSDがまだネットにつながっていなくて、Windowsでテキストファイルをとってくると、 改行コードがUNIXの 0a ではなくて、Windowsの 0d0a になっています。このときは、以下で 0d を削除します。
MS-DOSフロッピーの用い方は、 TIPSをご参照下さい。
# sed 's/.$//' nat.patch > nat1.patch
準備ができたら、いよいよpppにパッチをあて、インストールします。
# cd /usr/src/usr.sbin/ppp
# patch < nat1.patch
# make; make install
pppの設定
pppコマンドのための設定ファイル /etc/ppp/ppp.conf と、接続したあとのルーティングをきめる /etc/ppp/ppp.linkup を記述します。

# cat /etc/ppp.conf

default:
 set taddr 10.0.0.0/8                                 NATで変換するアドレスを指定
 set device /dev/cuaa0
 set speed 115200
 disable lqr
 deny lqr
 disable pred1
 deny pred1
 accept vjcomp
 enable vjcomp
 set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 15 \"\" ATE1Q0V1X3$N1=1 OK-AT-OK \\dATDT\\T TIMEOUT 120 CONNECT"
 set log Phase Connect Carrier tun
 set timeout 180
 set openmode active
#
ocn-eco:
 accept pap
 set mru 1500
 disable lqr
 deny lqr
 set ifaddr xxx.yyy.zzz.vvv aaa.bbb.ccc.ddd/0          aaa.bbb.ccc.dddはOCN側のゲートウェイのアドレス
 set phone 0
 set authname 
 set authkey
 set dial "ABORT NO\\sCARRIER ABORT BUSY \"\" ATZ OK ATE1Q0V1X3&C1&D2 OK ATD\\T CONNECT"
 set login "TIMEOUT 15" 
 set timeout 0

# cat /etc/ppp/ppp.linkup

MYADDR:
 add 0 0 HISADDR
ppp接続を定期的に確認し、異常があれば再接続するスクリプトを、 前述のUNIX MAGAZINEの記事を参考にして作成しました。

# cat /etc/ppp/ppp.keep

#! /bin/sh
OCN_GW="210.145.243.28"
STR_LOST="100% packet loss"
while [ 1 ]
do
  if [ -e /var/run/tun0.pid ]; then
    PING_RESULT=`/sbin/ping -c 3 $OCN_GW|grep "packet loss"|sed "s/^.*, //"`
  else
    PING_RESULT=$STR_LOST
  fi
  if [ "$PING_RESULT" = "$STR_LOST" ]; then
    echo "*** OCN connect lost ***"
    if [ -e /var/run/tun0.pid ]; then
      kill -KILL `cat /var/run/tun0.pid`
      rm -f /var/run/tun0.pid
      sleep 2
    fi
    /usr/sbin/ppp -ddial ocn-eco
    date >>/var/log/ppp.ocn
    date|mail -s OCN-reconnect root
  fi
  sleep 30
done
exit 0
# 
これで、/etc/ppp/ppp.keep で接続し、 pingが通らなくなると、自動的にpppが再接続されます。

ipfw

/etc/rc.confの中で、次のように記述して、ipfwを有効にします。
firewall_enable="YES"
firewall_type="UNKNOWN"
そして、/etc/rc.networkの中の/etc/rc.firewallを探し、これを/etc/rc.ipfwに変更します。 これで、スクリプトファイル/etc/rc.ipfwを作成して、自由にパケットフィルタリングの ルールを設定できます。
ipfwの設定の方針は次のように決めました。
ルールは上から比較されることに注意しましょう。
(1)IPスプーフィングパケットの禁止
(2)LANから出て行くパケットは無条件に許可
(3)ftp,smtp,DNS,http,authentication,shttpのtcpセッション要求を許可
(4)DNSのudpパケットを許可
(5)セッションが確立していたらパケットを通す
(6)icmpパケットは許可
(7)パケットを拒否したらログを残す
以上のルールで作成した設定ファイルを示します。

# cat /etc/rc.ipfw

#!/bin/sh

# flush entries
ipfw -f flush

# testing rule

# deny ip spoofing packets
ipfw add deny ip from xxx.yyy.zzz.uuu/28 to xxx.yyy.zzz.uuu/28 via tun0
ipfw add deny ip from 10.0.0.0/16 to xxx.yyy.zzz.uuu/28 via tun0

# allow localhost 
ipfw add allow ip from 127.0.0.1 to any

# allow from LAN
ipfw add allow ip from 10.0.0.0/16 to any
ipfw add allow ip from xxx.yyy.zzz.uuu/28 to any

# allow following require from inet
for port in 20 21 25 53 80 113 443
do
        ipfw add allow tcp from any to any $port setup
done
ipfw add allow tcp from any 20 to any setup

# allow following udp
for port in 53
do
        ipfw add allow udp from any to any $port
        ipfw add allow udp from any $port to any
done

# allow established tcp
ipfw add allow tcp from any to any established

# allow icmp
ipfw add allow icmp from any to any

# log
ipfw add deny log ip from any to any

スクリプトができたら、以下でipfwにルールをロードします。
# /etc/rc.ipfw
リブートしたときには、/etc/rc.networkのなかで、 先程の変更で/etc/rc.ipfwが呼ばれるので自動的にルールがロードされます。

ipfwで設定したルールの確認
# ipfw list
ipfwで用いられたルールの統計
# ipfw -a l

ネームサーバーの立ち上げ

名前の解決の基本方針
内部ネットワークのホスト名の解決は /etc/hosts で分担し、 外部ホストの名前の解決はDNSを用いる方針とします。

/etc/hosts       ホスト名の検索順序を設定します(ここでは、hostsファイル→DNSにします)
/etc/host.conf     内部ホストのアドレスの設定をします
/etc/resolv.conf    ネームサーバーのアドレスを設定します


# cat /etc/host.conf    このファイルでホスト名の解決の方法を定義

#
hosts                     まず、hostsファイルを探す
bind                      なければ、DNSで探す

# cat /etc/hosts        IPアドレス  ホスト名 [別名]...って感じに記述します

127.0.0.1            localhost.tatoeba.com localhost
10.0.0.5             seven.tatoeba.com     seven
10.0.0.2             client1.tatoeba.com   client1
10.0.0.3             client2.tatoeba.com   client2
10.0.0.4             client3.tatoeba.com   client3

# cat /etc/resolv.conf  ネームサーバーの指定です

domain          tatoeba.com         ドメイン名
nameserver      xxx.yyy.zzz.www     プライマリネームサーバーです
nameserver      203.139.160.103     セカンダリだよ
#
bindの設定ファイル
OCNエコノミーでインターネットの末端に設置されるようなネットワークのネームサーバー の場合でも、最低限、図のような設定ファイルが必要です。 (図は、青山純一他:FreeBSDでインターネットサーバーを立ち上げる, 株式会社ディー・アートから改変しました)

# cat /etc/named.boot

directory  /etc/namedb                                   データファイルを置くディレクトリ
cache      .                             named.root      ルートキャッシュファイル名
primary    0.0.127.in-addr.arpa          localhost.rev   ループバックアドレス逆引きファイル
primary    tatoeba.com                   tatoeba.zone    ゾーン正引きファイル
primary    uuu.zzz.yyy.xxx.in-addr.arpa  tatoeba.rev     ゾーン逆引きファイル


# cat /etc/namedb/localhost.rev         このファイルはだいたいこういう感じに書けば良い

@ IN SOA ns.tatorba.com.      postmaster.tatorba.com.    管理者のアドレスは@を.にかえてね
(
        1998091601                                       Serial ファイルを更新したら増やして、namedを再起動してね
        10800                                            Refreshセカンダリが読みに来る間隔だよ(分)
        3600                                             Retry  Refreshが失敗したときのRetryの待ち時間
        3600000                                          Expire セカンダリのデータの有効期限
        86400   )                                        TTL    その他のネームサーバーにキャッシュされたデータの有効期限
 IN NS ns.tatoeba.com.                                   プライマリネームサーバーを指定
 IN NS ns-tk021.ocn.ad.jp.                               ここにはセカンダリ
1 IN PTR localhost.                                      ループバックの逆引きレコード


# cat /etc/namedb/tatoeba.zone                 ゾーン正引きファイル

@ IN SOA ns.tatoeba.com.        postmaster.tatoeba.com.
(
        1998091601
        10800
        3600
        3600000
        86400   )
 IN MX 10 ns.tatoeba.com.                                   メールエクスチェンジャを指定
 IN NS ns.tatoeba.com.                                      ネームサーバー指定
 IN NS ns-tk021.ocn.ad.jp.

localhost.              IN A 127.0.0.1                    正引きレコードを並べます
tatoeba.com.            IN A xxx.yyy.zzz.uuu
gw.tatoeba.com.         IN A xxx.yyy.zzz.vvv
ns.tatoeba.com.         IN A xxx.yyy.zzz.www

seven.tatoeba.com.        IN CNAME ns.tatoeba.com.          ホストの別名を定義できます
www.tatoeba.com.          IN CNAME ns.tatoeba.com.
ftp.tatoeba.com.          IN CNAME ns.tatoeba.com.
mail.tatoeba.com.         IN CNAME ns.tatoeba.com.


# cat /etc/namedb/tatoeba.rev                      逆引きファイル

@ IN SOA ns.tatoeba.com.          postmaster.tatoeba.com.
(
        1998091601
        10800
        3600
        3600000
        86400   )
 IN NS ns.tatoeba.com.
 IN NS ns-tk021.ocn.ad.jp.
 IN PTR tatoeba.com.                                        ドメインの逆引きレコード
vvv     IN PTR gw.tatoeba.com.                              ホストの逆引きレコードを並べる
www     IN PTR ns.tatoeba.com.
# 
bindの立ち上げ
以上のファイルが出来たら、namedを起動します。
# /usr/sbin/named

bindのデータファイルを更新する時は、必ず、serialを増加させます。 でないと、セカンダリはデータの更新を認知できません。
また、次のようにbindを再起動して、データファイルを読み直させます。
# kill -HUP `cat /var/run/named.pid`

引越し完了は一日待たないとダメ?
やれやれ、次は、メールやWWWでホスト名が使えることを試してみよう。 と、思って、色々とテストしました。ところが、niftyからは、メールが当ドメインに送れるのに OCNからはだめだとか、良く解らない状況が出現しました。????
しかし、考えてみれば当たり前のことで、ちょうどこの時点で、上位ネームサーバーの データ更新が行われたばかりだったのです。したがって、まだ、古いデータを保持している ネームサーバーは、古いドメインデータのTTL(time to live)が切れるまで、 新しいゾーンデータを読みに来てくれないからです。結局1日後にはDNS全体で当ゾーンの データが更新されました。果報は寝て待て???

メールサーバーの立ち上げ

sendmail
UNIXのSMTPサーバーsendmailをカスタマイズするためには、設定ファイル sendmail.cfを書き換える必要があります。しかし、これはとてにわか勉強で いじれる代物ではないようです。そこで、CFを入手して、インストールします。 これで、比較的記述が楽な、sendmail.defを編集して、これからsendmail.cfを 作成できます。
# mkdir /usr/src/CF
# cd /usr/src/CF

# ftp ftp.iij.ad.jp
Connected to ftp.iij.ad.jp.
220 ftp2.iij.ad.jp FTP server (Version wu-2.4.2-academ[BETA-18](1) Mon Sep 7 21:11:32 JST 1998) ready.
Name (ftp.iij.ad.jp:motoi): anonymous
331 Guest login ok, send your complete e-mail address as password.
Password:xxxxxxxx

230-* Welcome, IIJ archive user!  This is an FTP server of IIJ.  If have any
        ........        ........        ........
230 Guest login ok, access restrictions apply.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> cd /pub/network/sendmail
250 CWD command successful.
ftp> ls CF*
200 PORT command successful.
        ........        ........        ........
-rw-r--r--  1 root  daemon  194285 Nov 13  1993 CF-3.1W12.tar.Z
        ........        ........        ........
-r--r--r--  1 root  wheel   286781 Sep 13  1997 CF-3.6Wbeta7.tar.gz
        ........        ........        ........
ftp> get CF-3.6Wbeta7.tar.gz
        ........        ........        ........
200 PORT command successful.
        ........        ........        ........
ftp> quit   
221 Goodbye.
# 
# zcat CF-3.6Wbeta7.tar.gz | tar xvf -
# cd /usr/src/CF-3.6Wbeta7
# make clean tools; make tools
# cat /usr/src/CF-3.6Wbeta7/sendmail.def    sendmail.defの設定例
CF_TYPE=R8V7                                           sendmail8.8以降を用いる
OS_TYPE=bsd4.4                                         OSの種類
FROM_ADDRESS='$m'                                      
RECIPIENT_GENERIC=yes                                  
REWRITE_GENERIC_FROM=lower                             
ACCEPT_ADDRS='$m'                                     
ACCEPT_LOWER=yes                                       
MAIL_RELAY_RESTRICTION=yes                             自ドメイン以外からのメールをリレーしない
REJECT_SOURCE_ROUTE_RELAY=yes                         
LOCAL_HOST_IPADDR=/etc/sendmail.localip                自ドメインの定義ファイル指定
LOCAL_HOST_DOMAIN='$m'                                 
ALLOW_RECIPIENT_DOMAIN='$m'                            
# 
# cat /etc/sendmail.localip                  自ドメインの定義ファイル
10.0.0                                                  10.0.0.0/24からのメールは自ドメインからとみます
# make sendmail.cf
# cp sendmail.cf /etc/
# kill -HUP `cat /var/run/sendmail.pid`
qpopper
POP3サーバーがないと、クライアントのメーラーでメールを読むことができません。 代表的なPOP3サーバーqpopperをインストールしました。 qpopperのためのディレクトリ/usr/src/qpopperをつくり、 ftp.qualcomm.com/eudra/servers/unix/popper/からqpopper2.53.tar.Zを ftpでgetします。
# gzip -cd qpopper2.53.tar.Z | tar xvfp -
# cd qpopper2.53; ./configure
# make
# mv popper /usr/local/libexec/
/etc/inetd.confのpop3の行を修正
pop3 stream tcp nowait root /usr/local/libexec/popper popper
inetdをリスタートします。
# kill -HUP `cat /var/run/inetd.pid`

WWWサーバーの立ち上げ

apacheのインストールとコンフィグレーション
今回、WWWサーバーapacheは、CD-ROMのパッケージからインストールしました。  
# cd /cdrom/packages/www
# pkg_add apache-1.2.4.tgz
apacheを動作させるためには、以下の設定ファイルが必要です。 それぞれプロトタイプが/usr/local/etc/apache/xxx.xxx-distという名前で 置いてあるはずですので、 編集して、/usr/local/etc/httpd/xxx.xxxとして置きます。

httpd.conf      サーバー起動のための基本設定    
access.conf     CGIの実行許可やリソースへのアクセス制限
srm.conf        データを置くディレクトリ等の設定
mime.types      apacheが扱うファイルの拡張子の登録

# cat httpd.conf
ServerType      standalone             WWWサーバーを常駐させます
Port            80                     WWWサーバーのポートです
StartServers    2                      起動時のサーバー数
MaxServers      10                     最大のサーバー数
User            nobody                 サーバーの実行ユーザー
Group           nogroup                サーバーの実行グループ
ServerAdmin     webmaster@tatoeba.com  管理者のアドレス
ServerRoot      /usr/local/etc/httpd   サーバーのホームディレクトリ
ErrorLog        logs/error_log         エラーログファイル
TransferLog     logs/access_log        アクセスログファイル
Timeout         300                    送受信のタイムアウト
PidFile         /var/run/httpd.pid     pidファイル名
ServerName      www.tatoeba.com        サーバー名

# cat access.conf

Options All


# cat srm.conf
DocumentRoot    /usr/local/etc/httpd/htdocs     ドキュメントのルート
UserDir         public_html                     ユーザーごとのドキュメントルート
DirectoryIndex  index.html                      デフォルトファイル名
ReadmeName      README                          ディレクトリのリスト表示に使うファイル名
HeaderName      HEADER
IndexIgnore     *.c                             インデックスで表示しないファイル
AccessFileName  .htaccess                       アクセス制御ファイル
DefaultType     text/plain                      デフォルトのファイル形式
AddEncoding     x-compress Z                    データの解凍方式
AddEncoding     x-gzip gz
AddType         text/x-server-parsed-html .html サーバーで扱う新しいMIMEタイプ
AddType         application/x-httpd-cgi .cgi
AddType         text/x-imagemap .map

apacheの起動
起動の前にテスト用のhttpファイルを/usr/local/etc/httpd/htdocsに置いときます。 ついで、以下のようにapacheを起動します。
# /usr/local/sbin/httpd -d /usr/locl/etc/httpd

TIPS

手製のプログラムやスクリプトを ファイル名だけで実行する
ファイルに実行権をつけ、パスの通っているディレクトリに置きます。 cshではこのままでは、次回のログインまでコマンド名のテーブルが更新されませんので、 rehashしておきます。次に例をあげます。
# chmod a+x newcommand
# mv newcommand /usr/local/bin/
# rehash
/etc/aliasesの修正
メールアドレスの別名を、/etc/aliases に
別名: 転送先名
と設定すれば、メールが、別名→転送先名と転送されます.
このファイルを変更した後は、
# newaliases
を実行して新しい別名をシステムに読み込ませる必要があります。
UFSフロッピーのフォーマット
 # fdformat fd0
 # disklabel -rw fd0 fd1440
 # newfs -tz -u18 -l1 fd0
(# mkdir /fd)
 # mount /dev/fd0 /fd
MSDOSフロッピーの使い方
mtoolsと呼ばれている、msdosフロッピーを使うための ユーティリティを用いると簡単です。 パッケージの入っているCD-ROMのディレクトリに行って 次のようにインストールします。
# pkg_add mtools-3.8.tgz
これで、mcopyなどのMS-DOSライクなコマンドを用いることができます。 詳しくは、manやpkg_infoで調べて下さい。

MS-DOSフロッピーのフォーマットは、次のようにします。 (ジオメトリの違いのせいかWin95でフォーマットしたフロッピー はFreeBSDでエラーが出ましたが、逆は大丈夫でした)
# fdformat /dev/rfd0.1440
# mkdosfs -f 1440 /dev/rfd0
ディレクトリの丸ごとコピー
cpコマンドで-Rオプションを用いる方法もありますが、 UNIXのシステムによって、シンボリックリンクに対する挙動が異なるので、 以下のようにtarを用いる方が確実とのことです(山口至:FreeBSD快適操縦ガイド, メディア・テック出版,1998)。
 # tar cf - .|(cd ターゲットのディレクトリ; tar xvBf -)
インストールされているパッケージの一覧を得る
**方法1**
 # ls /var/db/pkg
**方法2**
 # pkg_info -a
ファイルを素早くみつける方法
UNUX MAGAZINEに載っていたBinstoch A, Baker RによるDAEMONS & DRAGONS 97 (UNIX REVIEW)に良い方法が載っていました。定期的にファイルの一覧表を 作っておいて、検索時にそれをgrepで検索するというものです。 以下の作業はrootで行います。
# cd /
# find / -print >/usr/local/etc/files.all
検索用のシェルスクリプトgropeを作成しておくと便利です。
# cat /usr/local/bin/grope

if [ 'x'$1 =  x'' ]; then
        echo "usage: grope <file|dir to be found>"
        exit 1
fi
grep $1"$" /usr/local/etc/files.all

# chmod ugo+x /usr/local/bin/grope
これであとは、grope [検索するファイル]で短時間に検索できます。 cronを使って、files.allを毎日更新すれば、常に1日以内の新しい情報が 得られます。crontab -eで以下の行を追加し、files.allを更新するスクリプト files.updateを作成しておきます。
MAILTO=root
15 5 * * * /usr/local/bin/files.update

#cat /usr/local/bin/files.update
mv /usr/local/etc/files.all /usr/local/etc/files.prev
find / -print >/usr/local/etc/files.all
crontab -lでcronにプロセスが追加されたことを確認します。 時刻の指定の1-5カラムは、分(0-59)、時(0-23)、日(1-31)、月(1-12)、 曜日(0-7)です。
雷のこと
雷による被害が身近にも頻発しています。 家でもやられました。 雷のサージ電流の進入路は、ACラインと電話、ISDN、専用線 などの通信線の2つがあります。 聞いた範囲では、通信線を通してやられることが多いようです。 市販の雷ガードとかなんとかいうやつを入れると良いようですが、 100%ではありません。これらの対処をしてやられたら、 そのときはそのとき?...でしょうか。私の場合は、以前、 ダイヤルアップルータがやられました。 この商品には、保護回路が入っていて、アースを きちんとグランドに落としておけばたいていは大丈夫と、 説明書には書いてありました。でも...しっかりやられてしまいました。 そこで、現在は、家に引き込んでいるISDNのラインとOCNのラインに それぞれ、市販の雷ガードをかませました。 なお、雷のサージでダイヤルアップルーターがやられた際に、 同時に、つないでいたマシンのNICが動作不能になりました。 しかし、NICの方は、マシンをリブートしたら、生き返りました。 こういうこともあるようです。

御意見はmotoi@mxk.mesh.ne.jpまでお願いします
このページはリンクフリーですが、できれば御連絡をいただけるとうれしいです