SERVERS
サーバ等設定に関するメモ

以下は、某ISPの技術担当をやっていたときに書いたメモである。
07/20/1997 qpopper2.3

popperを ipop3d から変更。安定。

07/28/1997 sendmail-8.8.5

8.6.12 からUpdate。local configuration Errorが出たが、修正後 正常稼働。アセった。

10/10/1997 Apache-1.2.1

NCSA1.4.1 から 変更。軽い。が、一般ユーザとして使う分には特に違いは認識できないと思う。

01/20/1998 .forward,時刻同期
.forwardファイルでのメイル転送設定。法人の複数アドレスをまとめたいユーザ用。
.forward の中身に \アドレス1,アドレス2,...と書く。実験設定。「\アドレス1」は、当該ユーザ名
元メイルをサーバから削除するには、「\アドレス1」の部分は書かない。

インターネットサーバにおける「時間」の管理は重要である。・・・と、いいつつも、今までの時刻精度は十分ではなかった。傾向としては、「時間が進む」のである。IBMのサーバモデルだから、割と安心していたのだが、国産の98シリーズ等と比較すると、システム時計は10倍程度も精度が悪いのではないかという印象である。
そのため、ntpdateをcronでタイマー設定し、1日に 数回、某大学のタイムサーバに接続してシステム時計の較正を行なうことにした。このような時刻同期公開サービスを行っているサーバは、まだ数が少ない。

02/06/1998 inn-1.7.2
最近ますます物騒(^_^;)になってきているので Update。
config.dataってのを作る必要があるが、旧いconfig.dataは残っていないので、sampleを見ながら path等を現在の環境にあわせて書き換えた。

makeすると、案の定(?)*** Error code 1 Stop.。関数関係の宣言がおかしい。実は使っていた gccが旧すぎたのである。ver2.5.8がgcc2という名前になっていたので、config.dataのccをgcc2に書き換えてmakeすると一応正常終了。
しかし起動したものの、エラーメッセージが出まくり、再度makeからやり直し。

02/06/1998 gcc-2.7.2.3

いやぁー、まさかコンパイルするのに 2時間もかかるとはなぁー。
.cshrcのpathをイジってgccといえば2.7.2.3が起動するようにした。

02/09/1998 db-1.85
perlインストール時、make testをやると、DBのバージョンが旧い・・みたいな感じで怒られ、

># Some older versions of Berkeley DB will fail tests 51, 53 and 55.
>FAILED at test 51

えいっ、とインストール。

02/10/1998 perl-5.004_04
make時、Making Socket (static)の局面で *** Error code 1 で Stop. しかたないので ./Configureの以下の局面で

What extensions do you wish to include?
[DB_File Fcntl IO NDBM_File Opcode POSIX SDBM_File Socket] DB_File Fcntl IO
NDBM_File Opcode POSIX SDBM_File

extentions から Socketをはずしたところ、正常終了。(^_^;)

02/11/1998 make-3.76.1

gmakeである。これじゃないとmakeに失敗するモノもあるということでインストール。

02/24/1998 gdbm-1.7.3

APOP用のつもりだった。コンバート・ユーティリテイのmakeでコケるが、INSTALLにも「一部のOSでは、そーいうことがある」と書いてあったので、makeできたものだけインストール。
やはり、OSが旧い・・・(^_^;)

02/25/1998 qpopper2.4
APOPに対応させようと、Makefileに手を入れるなどしてがんばってみた。何度もmake途中でコケたが、ようやく無事コンパイル。

しかし、popperの方はいいのだが、popauthで実際にユーザ登録しようとするとSegmentation faultになってコケてしまう。gcc-2.7.2.3と2.5.8、どちらでコンパイルしても同じ。
しかたないので、APOP機能を使わないオプションで再コンパイル。

03/07/1998 radiusd-dtc2.03
nsにインストール。DTCのページから別名義(^_^;)でダウンロード。make一発。なかなか良くできている。

なお、RADIUS変更により、shivaの設定を一部変更。Livingston版RADIUS1.16用の設定をクリアしないと、LOGファイルにゴミが大量に出力される。

03/09/1998 WebFORM v2.1
wwwに ネットサーフレスキューの「フォームメイル(WebFORM) v2.1」を設置。
結局、従来使っていたFORMのHTMLに追加修正するだけでOKだった。

これで、IE からのFORM送信も OKになった。

03/16/1998 RADIUS LOG解析
DTC-Radiusが吐くLOGは以前のバージョンとはまったく異なるformatのため、自前で解析プログラムを作成。
開発環境=Borland dBASE5 for DOS。以下のデータを作成可能。

1. 毎月1日〜月末の時刻順のアクセス記録。
月日時分秒 ユーザXXX アクセスサーバYYに接続 IPアドレス
月日時分秒 ユーザZZZ 切断。接続時間mm秒 入力ddバイト 出力ffバイト

2. ユーザごとの接続記録集計
ユーザXXX は、計YY回アクセスしにきて、総接続時間は ZZ分。
逆に、その月一度もアクセスしていない無接続ユーザの表示も可能。

3. 時刻毎(00時〜23時)のアクセス数、総接続時間、推定使用回線数、平均アクセス数、1アクセスあたりの接続時間、入・出力データ量

03/18/1998 sendmail-8.8.8 + wide-patch2.7beta7
8.8.5+2.7Wbata5からのUpdate。
ソースにパッチを当てて、./makesendmail と ./makesendmail install だけでOK。さすが、腐っても(^_^;) BSD である。
webページをいろいろ見て bindも展開しておいたが、結局 Makefileの直しは不必要。db-1.85は既にインストール済み。
sendmail.cfは変更せず、以前のものをそのまま使用している。

WebFORM から sendmailを呼び出すことを 要望があったユーザに開放。

03/21/1998 カーネル再構築
wwwのメモリを増設したのだが、64MB以上を認識してくれない。ディスクの中身をいろいろ調べてみて option MAXMEM=114688 でカーネル再構築してみたが、余分なoptionを外して 1MB程度使えるメモリが増えただけで、根本的な解決にはなっていない。MAXMEMオプションについては、もしかするとこのOSのバージョンでは有効になっていないのかもしれない。(BIOSをUPDATEすれば?)

カーネル再構築で改善されたこともある。いままで101キーボードとしてしか認識できなかった106キーボードが正常に認識されるようになった。

03/23/1998 FD-1.03g, less-332
私はダメなrootですぅ。
でも、コンソールでは、FDの画面にEUC漢字が出るので、ハングアップしてしまう。だから、WINからのTelnetでしか使えない。しかも、telnet.exeでは「画面が小さすぎる」とかいうエラーでコケるので、Tera-termでやっている。・・(^_^;)

ページャとして lessも入れたが、日本語対応になっていない。jless-177はコンパイルに失敗。jless-290は、パッチの当て方が違うみたいでNG。由緒正しい patch を探してくればなんとかなるか?。

03/26/1998 Apache-1.2.5

httpdをバグ持ち1.2.1から1.2.5へバージョンUP。
今回は Configurationファイルの見直しを行い、不要モジュールを外したので サイズは若干小さくなった。心なしかちょっと軽くなったような・・・気がするだけだよな、たぶん。
Configurationを編集し、./Configure と makeだけですんなりコンパイル。
各設定ファイル(srm.conf httpd.conf access.conf)は、ほとんど元のまま。mime.typesは、最新版のサンプルを参照してtypeを追加。

03/27/1998 disk quota

nsの disk quota ・・すなわちメイルスプール領域を 2MBから 3MBに拡げた。
edquota -u -p nonroot user1 user2 .... userN で、700人分 完了するのに 1時間半かかった。

03/28/1998 access.conf, Indexes

apache の access.conf ファイルで、ユーザ・ディレクトリの Indexesを無効にした。
これにより、index.htmlが存在しないディレクトリへのアクセスは禁止。ただし、ファイル名指定すればOK。
ディレクトリへのアクセスのみで、そのディレクトリのファイル一覧が出てしまうのは、ユーザの意に反する場合が多いということとセキュリティ確保のため・・というのが変更理由。

08/04/1998 qpopper2.53, disk quota
2.4以前のバージョンにはセキュリティ・ホールがあった。今回は、展開、./configure、makeのみ。APOPはしばらくおあずけ。

また、nsの disk quota ・・すなわちメイルスプール領域のハード・リミットを 6912Kから 9216Kに拡げた。
ソフト・リミットは 3072Kなので、3倍のマージンがあることになる。

今回はタイプ打ちはせずに、repquota -a の出力をCOPYし、秀丸で整形してメイルIDのみにしてから、さらに「^(行頭)」を「edquota -u -p nonroot 」に置換した。
これで一行が「edquota -u -p nonroot user(改行)」というファイルができる。このファイルを telnetでコマンドラインへ送信した。
この方法だと、全工程を5分程度で済ますことができる。

08/12/1998 disk quota
「メイル溢れ」がいまだに頻繁におこるため、思い切ってソフト・リミットを 10MB、ハード・リミットを 30MBに拡げた。これで、5MBのメイルも通ることになる。(ただしsendmailにサイズ制限をかけているので、1通で 2MBを超えるものは送信できない)

なお、最近のメイル領域(/var/mail)の使用量は dfで見てもまだ余裕がある。

08/14/1998 CHATのセキュリティ

if ($chat =~ /<a/i) { &att; }
if ($chat =~ /<img/i) { &att; }
と、して aタグ と imgタグ の使用を禁止した。

08/15/1998 wu-ftpd
mailは、もともと一般ユーザは BAD Shell でハネるようになっているが、今回は ftpaccessで外部からのアクセスも禁止。

問題は wwwの方で、ftpaccessを使っていろいろ試してみたが、guestgroupの機能を使うとホームディレクトリ以外へのアクセスができなくなる。これはいいのだが、lsも効かなくなるため各ユーザのディレクトリに lsを置かなくてはならなくなるという問題がおこる。
また、guestgroup機能をはずすと、今度は 全ディレクトリが見えてしまう。

結局、元のftpdに戻した。これはwu-ftpdにパッチを当てたもので、起動オプション・スイッチ(-r)で ftp時のルート・ディレクトリを /usr2/home に設定し、それ以上のディレクトリへのアクセスを制限できる。

08/17/1998 bind-4.9.7-REL
以前のバージョンにはセキュリティ・ホールがあるということで、バージョンUP。
wwwの方にエラーが出たが、よくよく考えてみると、secondary DNS サーバを ODNに設定してあるので、wwwで DNSを動かす必要は無いのである。(もちろんそういう局面もあり得る)

それで、wwwの方の namedは止めてしまった。(/etc/rc に起動設定があり、/etc/named.bootというファイルが存在すれば namedが起動するようになっている。今回はこのファイルをrename)

08/23/1998 sendmail-8.9.1, m4-1.4

8.8.8からバージョンUPし、sendmail.cfもCF-3.7Wを使用して再構築した。
例の不正中継を抑止する設定も行った(つもり)。
sendmailのコンパイル時 m4が旧いと怒られたので、某GNUのftpサーバから m4もgetし、インストール。その他、bitypes.h が無いというメッセージも出たため、bind-4.9.7付属のものをcpした。

08/26/1998 Apache-1.3.1
1.2.5からのVersionUPだが、当初は1.3.1も1.3.0もコンパイルに失敗し、とりあえず1.2.6でお茶を濁していた。
1.3.0では なんたら.hというヘッダ・ファイルが無いと怒られた。1.3.1では、sendmailと同じく bitypes.h が無い と怒られたのでこれは bind-4.9.7付属のものをcpしたが、今度は libstandard.a のformatがおかしいというメッセージでコンパイルがStop。

いろいろ情報を漁っていると、マクニカのページに BSDI の ar で15文字以上のファイル名のものをアーカイヴすると ranlibが怒る・・と書いてあった。そんなときは -Tオプションをつけろ・・と。

それで ./Configureのあとで modules/standard/Makefile中の arに -Tオプションを追加し、 ar crTとしたら、warningが出たもののめでたくmakeが通った。

なお、今回は Configurationファイル中で autoindexのモジュールをコメントアウトしているため、Indexes関係は完全に無効になっていて、Fancyindexing、Addicon等の confファイル中の設定もコメントアウトしないとエラーでコケる。
また、make installでは logディレクトリやconfディレクトリを作成してくれない。特にlogディレクトリが存在しないと なんたらlockファイルが無い と怒って起動してくれない。

なお実行ファイルのサイズはモジュールを外したせいか、バージョンが上がったものの約290KBと小さい。心なしかちょっと軽くなったような・・・気がするだけだよな、たぶん。(^_^;)

09/05/1998 Delegate5.6.6, カーネル再構築
Delegateは、Version 3.なんぼから 最新のものに Update。
設定ファイルではなくすべて起動スクリプト中で動作設定を行うため、makeしてできた新バイナリと入れ替えただけ。

また、カーネル再再構築を行い、余計なdeviceをかなり削った。
結果、カーネルサイズは600KBを切った。

09/14/1998 sendmail-8.9.1 for www
WWWサーバに入っているsendmail-8.8.8がメイル不正中継に使われてしまった。発信元は <increasesales987654@ic.vrn.ru>といういかにも怪しいアドレス。当然nslookupにも引っかからない。
宛先はすべて aol.com。数は・・・疲れるので数えてない。おそらく数千通??

心を入れ替えて 残りのsendmailも8.9.1に変更し、中継制限。

10/24/1998 router
ルータ Cisco2501 に PC-9821Xe10用の4MB RAMを入れた。
ついでに、以下の設定をした。

no ip domain-lookup 間違ったコマンドでDNSを引きに行くのをやめさせる
service password-encryption パスワード暗号化して表示する
no ip source-route 見せかけのソースルートを持つパケットを禁止

また、access-list でルータへのTelnet接続に制限をかけた。

11/21/1998 Delegate5.7.5, Apache_1.3.3
delegateは、Makefie修正後、次の指定でmakeしないとコケる。
% make PATH=".:$PATH" CC=gcc

apacheは、src/Configurationファイルを修正して、./Configure し、1.3.1と同じ ar の不具合があるので、同様にMakefileを修正。
make完了後、src/.apaci.build.ok というファイルを touchしてから、cd .. して、make install した。

どちらも特に設定変更点はない。

12/23/1998 NS メモリ増設

ns のメモリを48MBから64MBに増設。

01/03/1999 Delegate5.8.5

Proxyサーバについては セキュリティの問題もあり、できるだけ最新版を入れるようにしている。

DeleGateは、/tmpに ./delegateというディレクトリを作るのだが、このOwnerが rootになっていたので、proxyに変更。これで cannot create /tmp/delegate/......というエラーをFIXした。

01/23/1999 Delegate5.8.8
02/19/1999 sendmail-8.9.3
04/15/1999 Delegate5.9.1
05/04/1999 Apache_1.3.6

久々に Apache を Version UP した。今回は、make install ではなく、makeでできた httpd をそのまま /usr/local/apache/sbin にcpした。
Configurationファイルは、前の Versionと同じ。

06/12/1999 Delegate5.9.2, カーネル再構築

Delegateは例によって念のため。
さらにdeviceを削り、カーネルサイズは500KBを切った。

06/19/1999 radiusd-dtc2.03p8
今まで2.03p6を使用していたが、バッファ・オーバーフローになるヤバいBUGが確認されたということで、VersionUp。
以前のバージョンと同様に単にmake一発と思いきや、Makefileを修正しなければmake不可能で、しかも gmakeを使用しなければmakeできなかった。修正部分は、アカウントディレクトリ等のPATHと103行目のincludeの「""(ダブルコーテーション)」の削除である。

ようやくmake完了したものの、一発で起動できず、バックグラウンドではなくshell上で起動してみたところ、dictionaryファイルにinvalidな値があるとのエラー・メッセージを確認。調べたところ「VENDER なんたら・・SHIVA」という行で引っかかっていた。この行はSHIVAのアクセスサーバ追加時に書き足したものだ。
とりあえず、この行をコメントアウトしてみたら、正常起動したものの、2台のSHIVAサーバからradiusが使えるのか非常に不安であった。

10/02/1999 Delegate5.9.5, Apache_1.3.9

例によって念のためのUPDATE。

11/13/1999 Delegate5.9.6
12/04/1999 Delegate5.9.9
12/18/1999 Delegate5.9.11
12/30/1999 サーバを新機種に更新。全システムを一から再構築。
すべての設定を一人で行なったが、まるまる1週間かかってしまった。
ユーザの移行は、旧サーバから、master.passwdをコピーして、pwd_mkdbを使い、パスワードを再構築した。
一般ユーザのグループIDが旧サーバと違ってたり、tar のpオプションを知らなくて、パニクったりもしたのだが・・・(^_^;)

現在は、以前と同じ設定で稼働中のものは皆無。Y2Kになんとか間に合ったな。


※サーバは、IBMのものからDELLに変更。OSもバージョンUPした。
実は、旧サーバにはY2K問題があった。なにも対策せずに西暦2000年を迎えると、確実に不具合が出ることがあらかじめわかっていたのである。
OSの旧さ(BSD/386 : BSD/OS の前身)やその他の問題もあり、たとえY2K問題が無くてもサーバの更新は行うつもりでおり、予算も確保していたのだが、本業(?)があまりにも多忙であり、結局Y2Kギリギリになってサーバ更新が完了した。

ちなみに、以下は2000年正月に書いた某MLへの投稿である。

あけまして、おつかれさまでした>正月出勤のみなさまへ

Y2Kも暮が近づくにつれてシステム担当の仕事から次第に逸脱し、防災担当の仕事に近づいてしまいましたが、そう簡単に担当が移るわけもなく、なれない仕事をするはめになってしまってたりします。

サーバは、なんとかマトモに動いているようですが、これは昨年暮に更新したものです。
旧サーバの方を新年になってからスタンドアロンで起動してみたところ、みごとに日時の取得に失敗していました。
2台あるうちの1台は、2037年2月。もう1台は1931年12月という、わけのわからない日付になっておりました。もちろん、時刻もメチャクチャです。

NTPサーバに接続して時刻同期をさせようとしましたが、なぜか同期に失敗。結局、手動で日時設定を行なったら、それ以後は再起動後もとりあえず正常な日時を示しています。
電源ONのまま年越しさせれば、それなりに正常に作動していたのかもしれません。

自宅にあるパソコンの中にも、いわゆる「年をとらない」マシンが存在します。これも電源が入っていれば年越ししてくれますが、今年はY2Kで出勤だったので電源を入れるのを忘れ、今日になって起動したら1999年1月2日でした。(^_^;)

※現在は、某ISPとの関係は完全に切れている。
人事異動により、本業(?)の方のサーバ管理からも 公式には はずれたが、非公式には現在も継続している(部長レベルでは承認?)。・・結局、二足の草鞋をいまだ履いている 裏Network管理者 という現状。

元の情報部門ではネットワーク管理の一部をアウトソーシングしてるような感じになってるわけだけど、それでいいのか*!!・・・な??


Inter-Networking TOP | Long Path for FreeBSD
*よくねーよ (^^;)