redhat 9 を AKIA Tornado 8300 に

 ■ はじめに

AKIA Tornado 8300 はノート機です。 redhat 7.3(およそ 11GB)と Windows ME(およそ 8GB)のデュアルブートです。
この 7.3 の部分に、redhat 9 をクリーンインストールします。
(redhat 9 は、パッケージを購入しました。)

redhat 7.3 を AKIA Tornado 8300 に も参考にして下さい。
 ■ Install

BIOS 設定画面で CD ドライブの起動順位を HDD より上位に変更しました。
CD 1 をセットして起動すると、残念ながら GUI でのインストールはできなかったので テキストモードを選択します。

boot:text

【設定の概要】
Language Selection Japanese
キーボードの選択 jp106
マウスの選択 Generic 2 Button Mouse (PS/2) / 3 ボタンマウスをエミュレートしない
アップグレード対象システム システムの再インストール
インストールの種類 サーバー
ディスクパーティションの設定 自動的パーティション設定
自動パーティション設定 システムの全ての Linux パーティションを削除 / [ * ] hda
「/dev/hda の全ての Linux パーティションを消去しますか」:はい
「/boot はこのアーキテクチャではブートに適していません。ブートディスクの作成を強くお勧めします」:OK
パーティションの設定
/dev/had      
/hda1 8197M vfat /mnt/win
/hda2 101M ext3 /boot
/hda3 10268M ext3 /
/hda4 509M 拡張領域  
(/hda5) 509M swap  
既存の Windows 用領域 (/hda1) を、マウントポイント (/mnt/win) と指定したとき、 警告が表示されるが「とにかく追加」を選択。
ブートローダの設定 GRUB / ブートオプション -> クリア / パスワード使用しない

Redhat Linux (/dev/hda3) :デフォルト
Win Me (/dev/hda1)

ブートローダのインストール場所:/dev/hda マスターブートレコード (MBR)
ネットワーク設定 eth0
[ * ] bootp/dhcp を使用
[ _ ] 起動時にアクティブにする
以下空白...
eth1
[ _ ] bootp/dhcp を使用
[ _ ] 起動時にアクティブにする
ip アドレス:192.168.1.1
ネットマスク:255.255.255.0
デフォルトゲートウェイ:eth0
以下空白...
ファイアーウオールの設定 セキュリティレベル:中 -> カスタマイズ
信頼するデバイス:eth1
侵入許可:DHCP / WWW (HTTP)
言語サポート Japanese
タイムゾーンの設定 アジア/東京
root パスワード 適宜
パッケージグループの選択 Administrator Tools / FTP Server / GNOME Desktop Environment / Games and Entertainment / Graphical Internet / Graphics / Server Configuration Tools / Sound and Video Web Server / Windows file Server / X Window System
以上 (1429MB)。
インストール開始 ログは /root/install.log
ビデオカードの設定 ビデオカード:Trident Cyber Blade (Generic)
ビデオメモリ:8192
モニタ の設定 モニタ:Generic Laptop Display 1024x768
水平同期:31.5-48.5
垂直同期:40-70
X 設定のカスタマイズ 色の深さ:High Color (16bit)
解像度:1024x768
標準ログイン:テキスト

*** インストール完了 ***
 ■ kudzu

起動時に検出された機器に対する対応
Sound Card : Configure / Win Modem : Ignore / USB : Configure
 ■ ネットワークカード

・設定情報の確認、修正
GNOME -> システム設定 -> ネットワーク
ホスト名などを適宜設定。
7.3(FTP 版)では、インターネットにつながる eth0 が起動後、約1時間でなぜか停止しましたが、 9(パッケージ版)では大丈夫です。(redhat の陰謀か!?笑)
 ■ Internet Gateway

・sysctl.conf
net.ipv4.ip_forward = 1( 0 -> 1 )
net.ipv4.ip_always_defrag = 1(1行追加)
・DHCP
1) 確認

rpm -q dhcp -> パッケージ dhcp はインストールされていません。

2) Install

GNOME -> システム設定 -> アプリケーションの追加/削除 -> ネットワークサーバ -> 詳細 -> dhcp を選択。

3) 確認-2

rpm -q dhcp -> dhcp-3.0pl1-23

4) /etc/dhcpd.conf を新規に作成します。

ddns-update-style ad-hoc;
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.11 192.168.1.60;
default-lease-time 86400;
max-lease-time 86400;
option routers 192.168.1.1;
option ip-forwarding off;
option broadcast-address 192.168.1.255;
option subnet-mask 255.255.255.0;
option domain-name-servers x.x.x.x, y.y.y.y;
}

7.3 との相違点は、ddns-update-style パラメータが追加されたことです。

5) /etc/rc.d/init.d/dhcpd を修正します。

#Start daemons の直前に1行追加します。
/sbin/route add -host 255.255.255.255 dev eth1

#Stop daemons の直前に1行追加します。
/sbin/route del -host 255.255.255.255 dev eth1

6) /etc/sysconfig/dhcpd を修正します。

DHCPDARGS=   ->   DHCPDARGS=eth1

7) コマンドで DHCP Server を起動してみます。

/etc/rc.d/init.d/dhcpd start
-> dhcpd [OK] と表示されることを確認します。
・IP Masquerade
7.3 との相違点は、iptables しか見当たらない(ipchains が見当たらない)ことです。泥縄、一夜漬け・・・。
謝辞:Linux で自宅サーバを構築する一例iptables 一発メモ を参考に(というかほとんど丸写し)させていただきました。

1) /etc/rc.d/rc.local の最後に以下の行を追加します。

# Loading the iptables ruleset

# Verifying all kernel modules
/sbin/depmod -a

# Loading module : ip_tables
/sbin/modprobe ip_tables

# Loading module : ip_conntrack
/sbin/modprobe ip_conntrack

# Loading module : ip_conntrack_ftp
/sbin/modprobe ip_conntrack_ftp

# Loading module : ip_conntrack_irc
/sbin/modprobe ip_conntrack_irc

# Loading module : iptable_nat
/sbin/modprobe iptable_nat

# Loading module : ip_nat_ftp
/sbin/modprobe ip_nat_ftp

#echo " Enabling forwarding"
#echo "1" > /proc/sys/net/ipv4/ip_forward

#echo " Enabling DynamicAddr"
#echo "1" > /proc/sys/net/ipv4/ip_dynaddr

# Clearing any existing rules and setting default policy
/sbin/iptables -P INPUT ACCEPT
/sbin/iptables -F INPUT
/sbin/iptables -P OUTPUT ACCEPT
/sbin/iptables -F OUTPUT
/sbin/iptables -P FORWARD DROP
/sbin/iptables -F FORWARD
/sbin/iptables -t nat -F

# Allow all connections OUT and only existing and related ones IN
/sbin/iptables -A FORWARD -i eth0 -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
#/sbin/iptables -A FORWARD -j LOG

# Enabling SNAT (MASQUERADE) functionality on eth0
/sbin/iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE

2) コマンド /etc/rc.d/rc.local で起動してみます。

ロードされているモジュールは lsmod で、iptables のルールは iptables -L で確認できます。
・安全確保
/etc/hosts.deny に以下の行を追加します。
ALL : ALL

/etc/hosts.allow に以下の行を追加します。
ALL : 127.0.0.1
ALL : 192.168.1.
 ■ ユーザーの追加

GNOME -> システム設定 -> ユーザーとグループ -> ユーザーを追加

ユーザ名
氏名
パスワード
ログインシェル : /bin/bash
[ x ] ホームディレクトリの作成
[ x ] ユーザ用にプライベートグループを作成
 ■ Samba

・確認
rpm -q samba -> samba-2.2.7a-7.9.0
・設定
1) Samba ユーザーの追加

GNOME -> システム設定 -> サーバー設定 -> Samba サーバー ->
ユーザー設定 -> Samba ユーザー -> ユーザーの追加

Unixユーザー名
Windowsユーザー名
Sambaのパスワード


2) 共有ファイルの追加

ファイル -> 共有を追加

基本
  ディレクトリ
  記述
  基本的権限 :読み込み/書き込み
アクセス
  ◎ 特定のユーザーのみアクセスを許可します
  [ x ] 利用者名
 ■ Apache

1) 確認
・rpm -q httpd -> httpd-2.0.40-21
・/etc/init.d/httpd start -> [OK]
・http://127.0.0.1/

参考:最初に表示されるページは、DocumentRoot /error/noindex.html。
403 Error(index.html などのデフォルトページが表示できないとき)のページ。
2) /etc/httpd/conf/httpd.conf を確認・修正します。
ServerRoot "/etc/httpd" conf や log の格納場所
ServerAdmin root@localhost -> 自分のメールアドレスに修正
#ServerName localhost:80 -> コメント (#) を外して、127.0.0.1:80 に修正(あんまり意味ない)
DocumentRoot "/var/www/html" HTML ファイルの格納場所
UserDir disable -> public_html ユーザーページの格納場所
3) ユーザーページの格納場所を作成します。
/home/tempuser/public_html フォルダを作成します。
システムに tempuser をユーザー登録したときに、/home/tempuser フォルダはできているので、 public_html フォルダを新規に作成します。
tempuser フォルダのアクセス権は 711,public_html フォルダのアクセス権は 755にしました。
root で作業すると、所有者が root になるので、それぞれのユーザーに変更。
4) 認証
設定ファイル

・/etc/httpd/conf/httpd.conf に以下の内容を追加します。

<Directory /home/*/public_html>
AllowOverride AuthConfig
</Directory>

・/home/tempuser/public_html 内に以下のような .htaccess を置きます。

AuthType Basic
AuthName "Apache on Linux"
AuthUserfile /etc/httpd/conf/userpass
require user user01

この例では、http://127.0.0.1/~tempuser/ に対してアクセスが制限できます。

パスワードファイルの作成

/usr/bin/htpasswd -c /etc/httpd/conf/userpass user01 を実行します。
user01 のパスワードを2回聞いてくるので、入力します。 これにより、userpass という名前のパスワードファイルが作成され、 user01というユーザーとそのパスワードが登録されます。
なお、-c オプションは、パスワードファイルがなければ新規作成、 既存であれば内容をクリアして新たに追加します。従って、二人目からは不要です。

このとき、パスワードファイルの所有者・アクセス権に注意します。 例えば、所有者 root,アクセス権 600 では apache は参照できません。

chown apache /etc/httpd/conf/userpass
chgrp apache /etc/httpd/conf/userpass
5) 日本語が文字化け!?
ブラウザで見るとページ内の日本語が文字化けします。
知人によると、httpd.conf 内の AddDefaultCharset ISO-8859-1 をコメントアウトしたら改善するとのこと。
が、私の場合、完全には改善されなかったので、HTML 内の META タグで対応しました。

<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
6) ポート番号の変更
得体の知れない http get 要求が多数あり、気持ちが悪い。
そこで、知人にしか公開してないサーバーなので、ポート番号を変更することにしました。

・/etc/httpd/conf/httpd.conf を修正します。

Listen 80 -> #Listen 80
Listen 8008 (追加)

ServerName 127.0.0.1:80 -> #ServerName 127.0.0.1:80
ServerName 127.0.0.1:8008 (追加)

併せて、ワーム(Slapper)に感染したことがあり、 また、ssl は使用していないので、ポート 443 を塞ぐことにしました。

/etc/httpd/conf/httpd.conf に、

# Load config files from the config directory "/etc/httpd/conf.d".
#
Include conf.d/*.conf

という記述があり、ssl の設定ファイルは /etc/httpd/conf.d/ssl.conf のようです。

Listen 443 -> #Listen 443
 ■ FTP Server

7.3 との相違点は、wu-ftpd から vsftpd (Very Secure FTPD) に変更されたことです。
xinetd 配下ではなく、単独で動作します。(/etc/init.d/vsftpd start)

・rpm -q vsftpd -> vsftpd-1.1.3-8
・設定ファイル:/etc/vsftpd/vsftpd.conf

tcp_wrappers が有効ですので、/etc/hosts.allow /etc/hosts.deny によりアクセス制限ができます。
 ■ NTP

1) 確認
・rpm -q ntp -> ntp-4.1.2-0.rc1.2
2) /etc/ntp.conf を修正します。
有効な指定は次のとおり。

driftfile /etc/ntp/drift
broadcastdelay 0.008
server eagle.center.osakafu-u.ac.jp
server ntp1.jst.mfeed.ad.jp
server ntp2.jst.mfeed.ad.jp
server ntp3.jst.mfeed.ad.jp
server ntp.nasa.gov

gps.kek.jp は、2003.10 にサービスを停止したようです。
ntp.nasa.gov (NASA) を追加しました。
3) 些細なこと…
起動時に(毎回ではありませんが)、以下のようなメッセージが表示されることがあります。

ntpd: Opening firewall for input from eagle.center.osakafu-u.ac.jp port 123
iptables v1.2.7a:host/network 'eagle.center.osakafu-u.ac.jp' not found
Try 'iptables -h' or 'iptables --help' for more information. [FAILED]

ntpd の起動タイミングの問題で、iptables のルール設定ができなかったのでしょうか?
/etc/rc.d/rc3.d/S58ntpd の S58 を 90番台にでもすれば(小 -> 大 の順に起動されるらしい)、 消えるのかもしれませんが、ntpd は正常に起動するのでそのままにしています。
 ■ WWWCount

WWWCount をご覧下さい。

make のときに、
checking for gcc .... No
checking for cc .... No
configure:error:no acceptable cc found in $PATH
という(cコンパイラがない)エラーが出ますので
GNOME -> システム設定 -> アプリケーションの追加/削除 -> 開発ツール
標準のみを選択(エクストラパッケージはすべてクリア)して追加します。
 ■ 安全確保・セキュリティ

安全確保・セキュリティ も参考にして下さい。

1) #setup / GNOME -> システム設定 -> サーバー設定 -> サービス

設定一覧
 FreeWnn
 aep1000
* anacron
* apmd
 atd
* autofs
 bcm5820
* canna
 chargen
 chargen-udp
* crond
 cups
 cups-lpd
 daytime
 daytime-udp
 dbskkd-cdb
* dhcpd
 dhcrelay
 echo
 echo-udp
 firstboot
* gpm
 httpd
* iptables
 irda
 isdn
* keytable
* kudzu
 named
 netfs
* network
 nfs
 nfslock
 nscd
* ntpd
* pcmcia
 portmap
* random
* rawdevices
* rhnsd
 rsync
 saslauthd
 sendmail
 servers
 services
* sgi_fam
 smb
 squid
 sshd
* syslog
 time
 time-udp
 tux
 vsftpd
 winbind
* xfs
* xinetd
  
  
  
2) /etc/rc.d/rc3.d/

設定一覧
K05atd
K05saslauthd
K10cups
K12FreeWnn
K15httpd
K20nfs
K24irda
K25squid
K25sshd
K30sendmail
K34dhcrelay
K35smb
K35winbind
K45named
K50tux
K50vsftpd
K70aep1000
K70bcm5820
K74nscd
K75netfs
K86nfslock
K87portmap
K91isdn
K95firstboot
S05kudzu
S08iptables
S10network
S12syslog
S17keytable
S20random
S24pcmcia
S26apmd
S28autofs
S56rawdevices
S56xinetd
S58ntpd
S65dhcpd
S85gpm
S90canna
S90crond
S90xfs
S95anacron
S97rhnsd
S99local
 
 
 
 
 
 
3) /etc/xinetd.d/

設定一覧
chargen disable=yes  
chargen-udp disable=yes  
cups-lpd disable=yes  
daytime disable=yes  
daytime-udp disable=yes  
dbskkd-cdb disable=yes  
echo disable=yes  
echo-udp disable=yes  
rsync disable=yes  
servers disable=yes  
services disable=yes  
sgi_fam disable=no file monitoring daemon
time disable=yes  
time-udp disable=yes  
 ■ アップデート

パッケージ版ですので、さっそく redhat netwowk を使ってシステムのアップデートを試みました。
ところが、何度やっても失敗します。

未処理の例外が発生しました。
バグの可能性があります。この例外の全テキストをコピーして、
e-メールでapplet@rhn.redhat.comまで送って下さい。ご協力感謝いたします。

Exception type SSL.Error

Exception Handler Information
Traceback (most recent call last):
  File "/usr/bin/../share/rhn/rhn_applet/rhn_applet.py", line 448, in refresh
    self.model.refresh(force)
  File "/usr/bin/../share/rhn/rhn_applet/rhn_applet_model.py", line 264, in refresh
    self.__rpc_server__.refresh(force)
  File "/usr/bin/../share/rhn/rhn_applet/rhn_applet_rpc.py", line 84, in refresh
    status = server.applet.poll_status()
  File "/usr/lib/python2.2/xmlrpclib.py", line 821, in __call__
    return self.__send(self.__name, args)
  File "/usr/lib/python2.2/site-packages/rhn/rpclib.py", line 126, in _request
    verbose=self._verbose
  File "/usr/lib/python2.2/site-packages/rhn/transports.py", line 130, in request
    headers, fd = req.send_http(host, handler)
  File "/usr/lib/python2.2/site-packages/rhn/transports.py", line 614, in send_http
    headers=self.headers)
  File "/usr/lib/python2.2/httplib.py", line 701, in request
    self._send_request(method, url, body, headers)
  File "/usr/lib/python2.2/httplib.py", line 723, in _send_request
    self.endheaders()
  File "/usr/lib/python2.2/httplib.py", line 695, in endheaders
    self._send_output()
  File "/usr/lib/python2.2/httplib.py", line 581, in _send_output
    self.send(msg)
  File "/usr/lib/python2.2/httplib.py", line 560, in send
    self.sock.sendall(str)
  File "/usr/lib/python2.2/site-packages/rhn/SSL.py", line 191, in write
    sent = self._connection.send(data)
Error: [('SSL routines', 'SSL3_GET_SERVER_CERTIFICATE', 'certificate verify failed')]
	

redhat support に問い合わせると SSL 証明書が 2003.8.10 に失効したことが原因だそうです。
Red Hat Network クライアントアプリケーションが使用するSSL証明書の失効について
クライアントアプリケーションを更新したら、
   up2date-3.1.23.2-1.i386.rpm , up2date-gnome-3.1.23.2-1.i386.rpm をダウンロード
   rpm -Fvh *.rpm
無事動作(アップデート)できました。

Home