管理者用覚書

SSD-Linux / OpenBlockS266 ( 2004.4 )
教育センター(寝屋川)そのほかサーバー > sprite
教育センター(寝屋川) サイトマップ

CFカード,HDD のフォーマット
基本システムのインストールと設定
ネットワークの設定
追加コマンドインストール(perl など)
hdparm(HDDモータ回転制御)
ntpd, xntpd (時刻合わせ)
Namazu(全文検索システム)
apache (SSL関係, openssl, apache, mod_ssl)
apache (WebDAV関係, mod_dav, mod_encoding)
apache (PHP関係, mod_php)
apache (SSI)
PostgreSQL(データベースサーバ)
bind (ネームサーバ)
セキュリティ関係

CF カード,HDD のフォーマット

CF カード(1GB)の場合

SandDisk社のSDCFB-1000-801で動作確認済。
OBS266のケースをあけ,CFカードアダプタにCFカードを挿す。 OBS266とパソコンをRS232Cシリアル接続し,パソコンでターミナルソフト(ハイパーターミナルなど)を 起動しておく。
データ長8bit
パリティ無し
ボーレート9600bps
ストップビット1
フロー制御なし

INITボタンを押したまま電源コネクタを接続。全面パネルのLEDが周期的に点滅するようになれば フラッシュROMから起動完了。ここでボタンを放す。
rootでログインし,以下のコマンドを実行。
# fdisk /dev/hda
Command (m for help): n (add new partition の意)
primary 1
First Cylinder 1, last Cylinder 960M

Command (m for help): n
primary 2 (残り全部を割り当てる)

Command (m for help): a (toggle a bootable partiton の意)
(partition 1 をブート可能にする)

Command (m for help): t (change a partition's system id の意)
Hexcode 82 (partition 2 をスワップファイルにする)
Command (m for help): p (設定状況を確認)

DeviceBootStartEndBlocksIdSystem
/dev/hda1*1960967648+83Linux
/dev/hda29619933326482Linux Swap

(注)CFカードには寿命がある。スワップが気になる場合は,Swap領域をとらなくて良い。ただし,コンパイルなどのメモリを必要とする作業はできなくなる。 swap領域無しの場合は,基本システムインストール後に /etc/defaults/rc.conf にて,「no_swap=YES」とすること。
Command (m for help): w (write table の意)
ファイルシステムを初期化する。
# /sbin/mke2fs /dev/hda1(partition 1 をEXT2 ファイルシステムとする)
# mkswap /dev/hda2 (partition 2 をswapファイルとする)
# swapon -a (スワップを有効にする)

HDD(20GBの場合)

I-Oデータ社のHDNV-N20Gにて動作確認済
CFカードアダプタをはずし,絶縁シートを置いてからHDDを装着する。 以下はCFカードの場合と同じ 。下記のようにパーティションを切った。主メモリの3倍程度のSwap。2倍程度でも十分のはず。
DeviceBootStartEndBlocksIdSystem
/dev/hda1*1240819342228+83Linux
/dev/hda22409243219278082Linux Swap

▲このページのトップにもどる


基本システムのインストールと設定

先にAirStationの設定を済ませておく。またWindowsパソコンにOBS Setup ユーティリティをインストールし,起動。 このときハイパーターミナルを切断しておかないと Setup ユーティリティ は接続できない。 Setup ユーティリティを使って2つのネットワークインターフェースの内,eth1 をWAN側にして
IPアドレス192.168.0.254
netmask255.255.255.0
default router192.168.0.1
nameserver***.***.***.***

設定を保存し,フラッシュROMから再起動する。eth1 と AirStation をストレートLANケーブルで接続する。 Setup ユーティリティを終了し,ハイパーターミナルで接続。root でログインし、HDDをマウントする。

# mount /dev/hda1 /mnt
# cd /mnt
ぷらっとホームの ftp サーバから SSD-Linux の最新版をダウンロードする。
URLは ftp://ftp.plathome.co.jp/pub/ssdlinux/0.2-LATEST/powerpc-obs266/binary/
ここから,base.tgz, etc.tgz, contrib.tgz, comp.tgz, src.tgz をダウンロード。
# ftp ftp.plathome.co.jp
(以下略。)

# tar xvzf base.tgz (以下同じ)各ファイルを上記の順番で /mnt ディレクトリにて展開。
# cd /mnt/dev
# ./MAKEDEV generic (デバイスファイルの作成)

/mnt/etc/fstab を編集する。これを忘れるとHDDからブートできない。

/dev/hda1/ext2defaults11
/dev/hda2swapswapdefaults00
none/procprocdefaults00

/etc/rc.conf にて,
「do_contrib_rc=YES」, 「sshd=YES」, 「iptables=YES」, 「newsyslog=YES」, 「ntpd=YES」
を確認する。各デーモンが起動しないときは /etc/services, /etc/inetd.conf, /etc/rc.conf, /etc/defaults/rc.conf を確認すること。
/etc/inetd.conf にて,「tcp6」を「tcp」とする。

# flashcfg -c harddisk (ハードディスクから起動するように設定する。フラッシュROMから起動の場合は -c initrd )
# reboot

▲このページのトップにもどる


ネットワークの設定

HDD から起動した後、/usr/contrib/etc/openblocks.conf にて、
x_openblocks_access_limit="eth1"
x_hostname="sprite"
x_domainname="eng-scl.setsunan.ac.jp"
x_defaultroute_adr="172.30.1.243"
x_defaultroute_interface="eth1"
x_eth_typ__="eth0 eth1"
x_eth_typ__eth0="2"
x_eth_adr__eth0="192.168.253.254"
x_eth_subnet_mask__eth0="255.255.255.0"
x_eth_broadcast__eth0="192.168.253.255"
x_eth_typ__eth1="2"
x_eth_adr__eth1="172.30.1.2"
x_eth_subnet_mask__eth1="255.255.255.0"
x_eth_broadcast__eth1="172.30.1.255"
x_nameserver="172.16.1.2"
x_domain="eng-scl.setsunan.ac.jp"

▲このページのトップにもどる


追加コマンドインストール(perl など)

apache などのアプリケーションのコンパイルやCGIプログラムの作成に perl が必要。
/etc/profie に下記のように環境変数を設定

export HOSTTYPE=powerpc
export MACHTYPE=ssd-linux-gnu
export OPENBLOCKS=obs266

/etc/ld.so.conf にて,「/usr/powerpc-ssd-linux-gnu/lib」を追加。
# /sbin/ldconfig (上記ライブラリをシステムに認識させる。)

ネットワークに接続した状態で以下のコマンドを実行
# cd /usr/src/mkdist/perl
# bmake
# cd /usr/src/usr.bin/perl
# bmake
# bmake install

/usr/src/ディレクトリにあるコマンドはこれと同様にしてコンパイルおよび追加インストールできる。

▲このページのトップにもどる


hdparm(HDDモータ回転制御)

HDDの静穏化、省電力化、寿命延命のため、5分以上HDDアクセスが無い場合はモータの回転を止めるようにする。

HDDは流体軸受けタイプを選ぶ。
hdparm-5.4.tar.gz をダウンロードする。
# tar xvzf hdparm-5.4.tar.gz
# cd hdparm-5.4
# make
# make install

/etc/rc.local にて、
/sbin/hdparm -S 60 /dev/hda を追加。また、
mount -o remount, rw, noatime / (HDDアクセスの記録を書き込まない。)
/etc/nsswich.conf にて、「host: dns files」の検索順に書き換える。

▲このページのトップにもどる


ntpd, xntpd (時刻合わせ)

各書式のタイムスタンプを正確にするため,自動的に時刻合わせを行うようにする必要がある。
/etc/rc.conf にて,「ntpd=YES」,「ntpdate=YES」
「ntpdate_hosts="210.173.160.27 210.173.160.57 210.173.160.87」を追加。

/etc/ntp.conf にて,

server 210.173.160.27
server 210.173.160.57
server 210.173.160.87

時刻があった時点で以下のコマンドを実行
# /usr/sbin/ntpd
# hwclock --systohc

ぷらっとホームの ftp サーバから rpm2cpio コマンドをダウンロード。 続いてxntp3-5.93-150obs.ppc.rpm をダウンロードし,
# rpm2cpio ./xntp3-5.93-150obs.ppc.rpm | cpio -idv

/etc/rc.local に以下を追加。
if [ -f /usr/sbin/xntpd ]; then
echo "Starting xntpd .. "
xntpd -A
touch /var/run/xntpd
fi

以上の設定により,サーバ起動時,および定期的にタイムサーバに時刻を問い合わせるようになる。 また,事務所ネットワーク上のパソコンに対してタイムサービスを行う。

▲このページのトップにもどる


Namazu(全文検索システム)

あらかじめインデックスを作成しておくタイプの検索システムで非常に高速。
サイト内の全ページを対象にして,キーワードで検索できるようにする。
Namazuのインストール
% gzip -dc namazu-2.0.13.tar.gz | tar xvf -
% cd namazu-2.0.13
% ./configure
% make
% su
# make install
インデックスを置くディレクトリを作成
% mkdir /usr/local/apache/var/index/all
% mkdir /usr/local/apache/var/index/one-point
% mkdir /usr/local/apache/var/index/kobayashi
% mkdir /usr/local/apache/var/index/hirata
CGIプログラムの設置
% cp /usr/local/libexec/namazu.cgi  /usr/local/apache/cgi-bin/
% cp /usr/local/etc/namazu/namazurc  /usr/local/apache/cgi-bin/.namazurc
.namazurc にて以下を設定
Index   /usr/local/apache/var/index/
Replace /usr/local/apache/htdocs/ http://sprite.eng-scl.setsunan.ac.jp/
Lang          ja
ContentType     "text/html; charset=x-euc-jp"
ひな形のファイル /usr/local/share/namazu/template/NMZ.head.ja を編集し,以下を追加し, 複数のインデックスを選択できるようにする。

検索対象:

/usr/local/etc/namazu/mknmzrc にて以下を確認
$NKF = "module_nkf"; 
$KAKASI = "/usr/local/bin/kakasi -ieuc -oeuc -w";
$WAKATI  = $KAKASI;
インデックスの作成を自動化する。毎週土曜日の午前6時45分に作成。
スクリプト /etc/namazu.sh を作成。実行権を与える。
#!/bin/sh
/usr/local/bin/mknmz --indexing-lang=ja_JPeucJP -O /usr/local/apache/var/index/all /usr/local/apache/htdocs
cp -p /usr/local/apache/var/index/all/NMZ.*.ja /usr/local/apache/var/index/
/usr/local/bin/mknmz --indexing-lang=ja_JPeucJP -O /usr/local/apache/var/index/one-point /usr/local/apache/htdocs/one-point
/usr/local/bin/mknmz --indexing-lang=ja_JPeucJP -O /usr/local/apache/var/index/sugaku /usr/local/apache/htdocs/kobayashi
/usr/local/bin/mknmz --indexing-lang=ja_JPeucJP -O /usr/local/apache/var/index/butsuri /usr/local/apache/htdocs/hirata
cronで自動実行
% crontab -e

#minute hour    mday    month   wday    command
45      6       *       *       6       /etc/namazu.sh
PDFファイルを検索対象に含めるには,xpdf 本体と日本語用 Language Support Package をインストールする。
xpdf-3.00.tar.gz および xpdf-japanese.tar.gz
# tar xvzf xpdf-3.00.tar.gz
# cd xpdf-3.00
# ./configure
# make; make install
# tar xvzf xpdf-japanese
# mkdir /usr/local/share/xpdf   /usr/local/share/xpdf/japanese
# cp -R xpdf-japanese/* /usr/local/share/xpdf/japanese
# cat /usr/local/share/xpdf/japanese/add-to-xpdfrc >> /usr/local/etc/xpdfrc
/usr/local/share/namazu/filter/pdf.pl にて

my $pdfconvarg = '-enc EUC-JP';

▲このページのトップにもどる


apache (SSL関係, openssl, apache, mod_ssl)

暗号化通信に対応した Web サーバを構築する。

OpenSSL

OpenSSL のWeb サイトから openssl-0.9.7.tar.gz をダウンロード
# tar xvzf openssl-0.9.7.tar.gz
# cd openssl-0.9.7
# ./config
# make
# make test
# make install

apache, mod_ssl (モジュールの静的リンク)

apache の Web サイトから apache-1.3.27.tar.gz をダウンロード
mod_ssl の Web サイトから mod_ssl-2.8.14-1.3.27.tar.gz (apache のバージョンに対応したもの)をダウンロード
# tar xvzf apache-1.3.27.tar.gz
# tar xvxf openssl-0.9.7.tar.gz
# cd openssl-0.97
# ./configure --with-apache=/apache-1.3.27 --with-ssl=/usr/local/ssl
--enable-rule=SHARED_CORE --enable-module=so

# cd /apache-1.3.27
# make
# make certificate TYPE=custom
(ここで秘密鍵、公開鍵の作成)
# make isntall

パスワード無しで apache を起動できるようにする。
# cd /usr/local/apache/conf/ssl.key
# openssl rsa -in server.key -out server.key

/etc/rc.local にて以下を追加。
if [ -f /usr/local/apache/bin/apachectl ]; then
/usr/local/apache/bin/apachectl startssl
fi

ログのローテーション

/etc/newsyslog.conf にて下記を追加。
/usr/local/apache/logs/access_log6447*W0D4B/usr/local/apache/logs/httpd.pid
/usr/local/apache/logs/error_log6447*W0D4B/usr/local/apache/logs/httpd.pid

バージョン情報を出力しないようにする

/usr/local/apache/conf/httpd.conf にて、
「Server Signature Off 」,「Server Tokens ProductOnly」とする。

ロボットを拒否

/usr/local/apache/htdocs/ にて robot.txt を作成 。内容は
User-agent : *
Disallow : /

▲このページのトップにもどる


apache (WebDAV関係, mod_dav, mod_encoding)

Web 経由でファイル共有を行う。
mod_dav の Web サイトより mod_dav-1.0.3-1.3.6.tar.gz をダウンロードする。
# tar xvzf mod_dav-1.0.3-1.3.6.tar.gz
# cd mod_dav-1.0.3-1.3.6
# ./configure --with-apxs=/usr/local/apache/bin/apxs (モジュールの動的リンク)
# make
# make install

日本語ファイル名に対応させる。mod_endoding-20021209.tar.gz をダウンロード。
# tar xvzf mod_encoding-20021209.tar.gz
# cd mod_encoding-20021209
# ./configure --with-apxs=/usr/local/apache/bin/apxs (モジュールの動的リンク)
# make
# make install

WebDAV設定

/usr/local/apache/conf/httpd.conf にて以下を追加
LoadModule dav_module libexec/mod_dav.so
LoadModule encoding_module libexec/mod_encoding.so
AddModule mod_dav.c
AddModule mod_encoding.c

<IfModule mod_headers.c>
Header add MS-Author-via "DAV"
</IfModule>
<IfModule mod_encoding.c>
EncodingEngine on
NormalizeUsername on
SetServerEncoding UTF-8
DefaultClient Encoding JA-AUTO-SJIS-MS SJIS
AddClientEncoding "cadaver/" EUC-JP
AddClientEncoding "Goliath/" UTF-8
AddClientEncoding "Microsoft-WebDAV-MiniRedir/5\.1\.*" UTF-8
AddClientEncoding "Microsoft .* Provider" CP932
AddClientEncoding "Microsoft .* DAV 1\.1$" CP932
AddClientEncoding "Microsoft .* DAV" CP932
AddClientEncoding SJIS "xdwin9x/"
</IfModule>

共有ディレクトリ /XXXX を作成し,
<Location /SHARED>
DAV on
Header add MS-Author-Via "DAV"
AllowOverride None
Options None
AuthUserFile ****************
AuthGroupFile ***************
AuthName "SCL Network Holder"
AuthType Basic
<Limit Except GET HEAD OPTIONS>
require user *****
</Lmit Except>
</Location>

DAVLockDB /usr/local/apache/var/DVLock

パスワードの作成
/usr/local/apache/bin/htpasswd -c .htpasswd 「ユーザ名」

▲このページのトップにもどる


apache (PHP関係, mod_php)

apache モジュールの作成

PHP の WEB サイトより php-4.3.2.tar.gz をダウンロード
# tar xvzf php-4.3.2.tar.gz
# cd php-4.3.2
# ./configure --without-mysql --with-apxs=/usr/local/apache/bin/apxs
--enable-mbstr-enc-trans --enable-mbstring
--enable-mbregex --enable-versioning --with-pgsql=/usr/local/pgsql

# make
# make install
# cp php.ini-dist /usr/local/lib/php.ini

/usr/local/apache/conf/httpd.conf にて,
「LoadModule php4_module libexec/libphp4.so」

/usr/local/apache/conf/mime.types にて
「application /x-httpd-php php」
「application /x-httpd-php-source php」
「application /x-httpd-cgi cgi」を追加。

コマンドライン版の追加

# mkdir php-bin
# cd php-bin
# tar xvzf /php-4.3.2.tar.gz
# cd php-4.3.2
# ./configure --without-mysql --eneble-mbstr-enc-trans
--enable-force-cgi-redirect
# make
# make install

▲このページのトップにもどる


apache (SSI)によるファイルの共通利用

SEO(Search Engine Optimization)の観点からフレームを使用すべきではないが,各ページに それぞれグローバルメニューを記述するとメンテナンスが大変となる。そこでapache の SSI(ServerSide Include)機能を利用する。

SSI機能の有効化

httpd.conf にて対象となるディレクトリの設定オプションに

 Options Includes

を追加する。また,

 AddType text/html .shtml .html .htm
 AddHandler server-parsed .shtml .html .htm

とすることで,shtml 以外の拡張子のファイルにもSSIできるようになる。

# apachectl restart

共通利用ファイルの準備とInclude

HTMLファイルの共通利用したい部分だけを抜き出し,独立したファイルとする。 名前や拡張子は何でも良いが,ここでは menu.html とする。
利用するファイルにて

<!--#INCLUDE VIRTUAL="/menu.html"-->

と記述すると,この部分に menu.html が埋め込まれて出力されるようになる。

▲このページのトップにもどる


PostgreSQL(データベースサーバ)

apache, php と組み合わせてWeb 経由でe-Learning用データの管理を行う。
PostgreSQL の Web サイトから postgresql-7.3.1.tar.gz をダウンロードする。
# mkdir /usr/local/pgsql/src
# cd /usr/local/pgsql/src
# tar xvzf postgresql-7.3.1-tar.gz (ファイルを展開するとアカウント「pgsql」が自動的に作成される。)
# cd postgresql-7.3.1
# ./configure --neable-multibyte=EUC_JP --enable-syslog
# make
# make install

環境変数の設定

/usr/local/pgsql/.cshrc にて
set POSTGRES_HOME=/usr/loca./pgsql
set path=($path /usr/local/pgsql/bin)
setenv PGLIB $POSTGRES_HOME/lib
setnev PGDATA $POSTGRES_HOME/data

if ($?MANPATH) then
setenv MANPATH "$MANPATH ": $POSTGRES_HOME/man
else
setenv MANPATH /usr/share/man: $POSTGRES_HOME/man
endif

設定

/usr/local/pgsql/data/postgresql.conf にて
syslog=2
pg_hba.conf はそのまま。
# initdb (データベース初期化)

自動起動スクリプト /etc/rc.local に以下を追加。

if  [  -f  /usr/local/pgsql/bin/postmaster  ]; then
	rm  -f  /var/run/postgres
	echo  "Starting postgres ..."
	su  -  pgsql  -c  "/usr/local/pgsql/bin/postmaster  -i  -S  -D  /usr/local/pgsql/data &"
	touch  /var/run/postgres
fi

▲このページのトップにもどる


bind (ネームサーバ)

# cp /etc/namedb/localhost /etc/namedb/eng-scl.db

eng-scl.db にて,以下を追加

INNSlocalhost.
INNS172.16.1.*
INNS172.30.1.*
spriteINA172.30.1.*
streamINA172.30.1.*

# cp /etc/namedb/127 /etc/namedb/eng-scl.rev

eng-scl.rev にて以下を追加。

INNSlocalhost.
***INPTRsprite.eng-scl.setsunan.ac.jp
***INPTRstream.eng-scl.setsunan.ac.jp

/etc/namedb/named.conf に以下を追加。

zone "eng-scl.setsunan.ac.jp"{
	type master;
	file "eng-scl.db";
};
zone "1.30.172.IN-ADDR.ARPA"{
	type master;
	file "eng-scl.rev";
};

/etc/defaults/rc.conf にて、
「named=YES」

▲このページのトップにもどる


セキュリティ関係

/etc/inetd.conf にて、 telnet などの不要なサービスのエントリをコメントアウト。
/etc/ssh/sshd_config にて、 「AllowUsers ***」を追加。(ユーザ *** のみがログイン可能)
/etc/services にて、不要なサービスポートのエントリをコメントアウト。
/etc/hosts.allow にて、サービスを許可するホストを登録。
/usr/local/apache/conf/httpd.conf にて、Web アクセス制限をかける。(Basic認証,IPアドレス制限)

▲このページのトップにもどる


摂南大学 学習支援センター/教育センター(寝屋川) トップページへ戻る
学習支援センター ホーム Copyright (C) 2004-2017 Academic Support Center, Setsunan University, All Rights Reserved.

サイト内

powerd by apache
ASC
トップ
お知らせ
学習相談
講座&ラーニングコモンズ
入学前講習
教育開発
スタッフ
Download
Video
Video
リンク
そのほか
学習支援センターにようこそ!
学内BBS
月報
学会発表
関連記事
摂南大学

Last Updated 2017.04.18
RSS フィード