当サイトをご利用頂き有難うございます。
当サイトは今月末日にモールタイプの総合検索サイトへリニューアルの予定です。
サイト名も変更となりますが、今後とも宜しくお願いいたします。

2008年12月アーカイブ

本格的なサーバーの仲間入りが出来るよう搭載忘れの防止を兼ね、
この辺りで動作環境の整理をしておきます。

これまでの作業 +α で公開しているサイトはコチラです。

----- ハード -----

 pc      sony PCV-J15 をベース
 BIOS    1003(最新)
 cpu     800MHz AMD Duron プロセッサー
 メモリー   512MB(max)
 HDD     80GB
 クロック   200MHz(メモリーバスクロック:133MHz)
 消費電力  約57W(最大約220W、スタンバイ時約2.5W)

  * 動的(CGIなどを動かす)なサーバーとしては大変物足りないが、
    静的(CGIなどが殆ど無い)なサーバーとしては立派に通用するかも。
  * デスクトップとして使用するには、GUIの動作が重く、不向きである。

----- ソフト -----

主なソフト(# rpm -qa ソフト名 or # rpm -qa --last で確認)

 fedora----------------------10------------------------os
 kernel-firmware-----------2.6.27.9-159-----------カーネル
 httpd------------------------Apache-2.2.10-2------Webサーバー
 Firefox----------------------3.0.5---------------------Webブラウザ
 Movable Type-------------4.23-ja-------------------blog
 WordPress-----------------2.7------------------------blog
 MySQL----------------------5.0.67-2----------------データベース
 perl-DBD-MySQL---------4.005-8------------------データベース接続
 perl-libs---------------------5.10.0-51---------------エンジン
 mod_perl-------------------2.0.4-7------------Apacheの追加機能(Perlを高速に実行)
 gnome-panel--------------2.24.2-1----------------テキストエディタ
 php-cli----------------------5.2.6-5-------------------PHP
 php-Smarty----------------2.6.20-2----------------テンプレートエンジン
 phpMyAdmin--------------3.1.1---------------------MySQLを楽に操作
 php-mcrypt----------------5.2.6-5-------------------暗号化ライブラリ
 php-pear------------------1.7.2-2--------------------PHP拡張ライブラリ
 php-mbstring-------------5.2.6-5-------------------日本語処理
 php-mysql-----------------5.2.6-5-------------------PHPとMySQLの接続
 samba-client--------------3.2.5-0.23---------------ファイルサーバー
 cups------------------------1.3.9-2-------------------プリンタサーバー
 openssh-------------------5.1p1-3------------------SSHサーバー
 vsftpd----------------------2.0.7-1-------------------FTPサーバー
 postfix----------------------2.5.5-1-------------------SMTPサーバー(メールサーバー)
 dovecot--------------------1.1.7-1------------POP/IMAPサーバー(メールサーバー)
 noip-------------------------2.1.9-1-------------------Dynamic DNS
 diced-----------------------01914--------------------自動IPアドレス送信
 mod_ssl-------------------2.2.10-2------------------通信の暗号化
 Tripwire--------------------2.4.1.2-6-----------------ファイルの改竄を検知
 Awstats--------------------6.9-------------------------アクセスログ解析
 chkrootkit------------------0.48-9--------------------rootkit検知
 Clam AntiVirus------------0.94.2------------------ウィルス対策
 Snort----------------------2.8.3.1------------------不正アクセス検知
 SnortSnarf----------------050314.1---------不正アクセスログをブラウザで確認
 Oinkmaster------------------2.0----------------ルールファイルの自動更新


Web公開するツールとして、当サイトでは Movable Type の個人ライセンス(無償)を使用します。
また、下記の動作環境が必要ですが、今回は Apache + Perl + MySQL の環境で構築します。

 ウェブサーバー(Apache)+Perl +MySQL、PostgreSQL、SQLite、Berkeley DBなど


①Movable Typeの導入

  1. ダウンロードから設置まで(設置先は環境により読み替えてください。)
    
   ダウンロードはSix Apart - Movable Type のライセンスと購入について の個人ライセンス(無償)より。
       (今日時点でのバージョンは Movable Type 4.23 でした。)

   書庫マネージャにより、ダウンロードの保存先として、/var/www/html を指定し解凍します。

   解凍すると MT-4.23-ja としてディレクトリが作成されます。

   次に、GNOME端末で

    # su + 管理者権限パスワード

    # cd /var/www/html

    # mv MT-4.23-ja mt  としてディレクトリ名を変更します。
                    ディレクトリ名は先々使える汎用的な名前をオススメします。
                    (Movable Typeのバージョンアップがスムースに実施出来ます。)
    # chown -R apache:apache /var/www/html/  → 権限を変更

       他の権限名でクライアントより操作する場合は予め、MySQLにユーザー登録が必要になります。

    # chmod 777 /var/www/html

           →  初期のインストール環境を整えるためにパーミッションを変更します。

    # chmod 777 /var/www/html/mt/mt-static/support/uploads

           →  ユーザー画像を書き込み出来るようにパーミッションを変更します。

      * パーミッションは環境に合わせ、変更します。(不正防止対策)

    # service httpd restart  →  apacheを再起動します。

    # mysql -u ユーザ名 -p データベース名(例: mysql -u root -p mysql )

        →  MySQLへログイン

     mysql> create database mt;  →  mt データベース作成(環境により名前は変更)

     mysql> use mt;   → mt デーダースへ接続

     mysql> grant all privileges on mt.* to abc@localhost identified by 'パスワード';

             →  ユーザー名:abc/パスワード:password を設定します。
                 (ユーザー名とパスワードはMovable Typeのアカウント作成の時に使用するのでメモ)

    mysql> exit

  2. 環境設定(mt-config.cgi)

   GNOME端末により

   # su -   +  管理者権限パスワード

   # vi /var/www/html/mt/mt-config.cgi

     # The CGIPath is the URL to your Movable Type directory

      CGIPath http://********.com/mt/
               → Movable TypeのCGI実行パスを設定(********はホスト名とドメイン名)  

      # The StaticWebPath is the URL to your mt-static directory
      # Note: Check the installation documentation to find out
      # whether this is required for your environment. If it is not,
      # simply remove it or comment out the line by prepending a "#".

      StaticWebPath http://********.com/mt/mt-static
                     → StaticWebPathパスを設定(********はホスト名とドメイン名)

        * ここが上手く設定されていないと、Movable Typeの初期化を始めた時、
           「データベースを初期化中」と表示されたままフリーズしてしまいます。

      #================ DATABASE SETTINGS ==================
      # REMOVE all sections below that refer to databases
      # other than the one you will be using.

      ##### MYSQL #####

      ObjectDriver DBI::mysql  → 使用データベース「MySQL」を表示しています。

      Database mt  → データベース名

      DBUser abc  → データベースのユーザー名(mysqlで設定したもの)

      DBPassword password  → データベースのパスワード(mysqlで設定したもの)

      DBHost localhost  → サーバのホストDBを使用(変更しません)

      ##### POSTGRESQL #####

      全てコメントアウトする

      #ObjectDriver DBI::postgres
      #Database DATABASE_NAME
      #DBUser DATABASE_USERNAME
      #DBPassword DATABASE_PASSWORD
      #DBHost localhost

      ##### SQLITE #####

      全てコメントアウトする

      #ObjectDriver DBI::sqlite
      #Database /path/to/sqlite/database/file


  3. 動作確認

      Webブラウザより http://サーバアドレス/mt/mt-check.cgi  とすると、
       Movable Typeのシステムチェックが始まります。

      次に http://サーバアドレス/mt/mt.cgi  としログインします。

       ログインするとアカウントの設定画面が起動しますので、各項目に入力します。

         ユーザー名(ログイン名)
               → abc     データベースの初期設定で作成したユーザ名

         表示する名前
               → abc     データベースの初期設定で作成したユーザ名でも良い

         電子メール(メールアドレス)
               → ログイン名のメールアドレス/環境に合わせて設定

         使用言語
               → 日本語を選択

         パスワード
               → password   データベースの初期設定で作成したユーザ名のパスワード

         パスワードを再入力
               → password   上記と同じパスワードを入力(確認用)

         パスワード再設定用のフレーズ
               → 何でも良い パスワードを忘れた時に入力する値(名前など)

      入力が終わり、次へボタンを押すとインストールの初期化中の表示が出て、
      Movable Typeが自動的に各種設定を行っていきます。

      インストールが完了するとMovable Typeにサインインのボタンが表示されます。
      このボタンを押すことにより、Movable Typeのサインイン画面か表示されます。

       * ログイン後の各種設定や使用方法は割愛させて頂きます。
       * 一言だけですが、Movable Typeの公開設定では、
          アーカイブをサイトパスとは別のパスで公開するをチェックし、
            公開パスを指定するとディレクトリが整然としてデータの管理が楽になります。
       * インストール途中で上手く動かない場合は、もう一度パーミッションの設定や
         ディレクトリの権限、データベースの作成、データベースのユーザー設定などを
         見直してみましょう。(mt-config.cgiの設定確認もお忘れなく)

Fedoraにデフォルトで搭載されている、
Exec-Shieldを有効にして、バッファ・オーパーフロー攻撃をブロックします。

①Exec-Shieldの設定変更

 GNOME端末より

   # su + 管理者権限パスワード

   # cat /proc/sys/kernel/exec-shield   →  現在の設定を確認

    1

   # echo 2 > /proc/sys/kernel/exec-shield   →  一時的に 2 に変更
   # cat /proc/sys/kernel/exec-shield       →  現在の設定を確認

    2

    * このままでは、サーバを再起動すると「Exec-Shield」が無効になってしまうので
      下記により起動時も有効な設定にします。

  続けて(GNOME端末)

   # vi /etc/rc.d/rc.local

    echo 2 > /proc/sys/kernel/exec-shield   →  追加します

     :w
     :q

       * DiCEを利用した場合 3 にするとDiCEが動作しなくなります。

    ------- 設定値の意味 ------

        0 : 常に無効
        1 : 基本的に無効(実行ファイルごとに有効にする)
        2 : 基本的に有効(実行ファイルごとに無効にする)
        3 : 常に有効


またまた少し、不正侵入に対して安全なサーバーになってきました。

ファイルの改竄を検知するソフトの Tripwire を搭載します。
Tripwireは、導入時のファイル状態をデータベース化し、
そのデータベースとファイルの現状を比較することにより、
ファイルの追加/変更/削除を検知。

これは、サーバー立ち上げ初期から搭載するのが良いので早速実行。

①Tripwireのインストール

 GNOME端末より

   # su + 管理者権限パスワード

   # yum install tripwire  を入力

   # y

   #exit

    完了です。

②Tripwireの設定

   1. サイトキーを作成します

     続けて(GNOME端末)

      # tripwire-setup-keyfiles を入力

        * パスフレーズは入力しても画面には何も表示されません。

      Enter the site keyfile passphrase:  →  サイトパスフレーズ①を入力
      Verify the site keyfile passphrase:  →  サイトパスフレーズ①を再度入力

        * 設定ファイル、ポリシーファイルの署名及び、検証に使用されます。

      Enter the local keyfile passphrase:  →  ローカルパスフレーズ②を入力
      Verify the local keyfile passphrase:  →  ローカルパスフレーズ②を再度入力

        * ベースラインのデータベースファイルとレポートファイルの署名及び、検証に使用されます。

      Signing configuration file...
      Please enter your site passphrase:  →  サイトパスフレーズ①を入力
      Signing policy file...
      Please enter your site passphrase:  →  サイトパスフレーズ①を入力

        * パスフレーズを忘れるとTripwireが使用できなくなります。
          忘れた場合は初めから設定をもう一度実行しなければならず、
          Tripwireデータベースも再び初期化されてしまいます。

   2. 設定ファイル twcfg.txt の作成

     続けて(GNOME端末)

      # vi /etc/tripwire/twcfg.txt を入力

      ROOT =/usr/sbin
      POLFILE =/etc/tripwire/tw.pol
      DBFILE =/var/lib/tripwire/$(HOSTNAME).twd
      REPORTFILE =/var/lib/tripwire/report/$(HOSTNAME)-$(DATE).twr
      SITEKEYFILE =/etc/tripwire/site.key
      LOCALKEYFILE =/etc/tripwire/$(HOSTNAME)-local.key
      EDITOR =/bin/vi
      LATEPROMPTING =false
      LOOSEDIRECTORYCHECKING =false → true  (変更)
      MAILNOVIOLATIONS =true
      EMAILREPORTLEVEL =3
      REPORTLEVEL =3 → 4  (変更)
      MAILMETHOD =SENDMAIL
      SYSLOGREPORTING =false → true  (変更)
      MAILPROGRAM =/usr/sbin/sendmail -oi -t

      : w
      :q

      ----------- 設定ファイル 内容一覧-----------

       ROOT : tripwireへのパス
       POLFILE : デフォルトのポリシーファイルのパス
       DBFILE : デフォルトのデータベースファイルのパス
       REPORTFILE : デフォルトのレポートファイルのパス
       SITEKEYFILE : デフォルトのサイトキーファイルへのパス
       LOCALKEYFILE : デフォルトのローカルキーファイルへのパス
       EDITOR : デフォルトで使用するエディタのパス
       LATEPROMPTING : 
         メモリ上にパスワードが保存されている期間を短くする場合は「true」、
         違う場合は「false」
       LOOSEDIRECTORYCHECKING : 
         監査対象に何らかの変化があった際、
         そのファイルを格納しているディレクトリも報告の対象とする場合は「true」、
         違う場合は「false」
       MAILNOVIOLATIONS : 
         違反がない場合でもメールの送信をする場合は「true」
         違う場合は「false」
       EMAILREPORTLEVEL : 
         メールで送信されるレポートの詳細レベルを 0~4 の範囲で指定

          レベル0(本文なし、件名のみ)

           * 対象サーバのホスト名
           * 改ざんを検出した時刻
           * 改ざんを検出したファイル数
           * 改ざんのタイプ(追加,削除,変更)
           * 改ざんされたファイルのレベル(事前定義が必要です。)

          レベル2(レベル0 + 下記)

           * Tripwireが整合性チェックを行った際の設定ファイル情報
           * あらかじめ定義したチェック対象ファイルのグループごとの改ざん比率
           * Tripwireがチェックをおこなったファイルの総数、
             改ざんを検出したファイル数
           * 改ざんを検出したファイル,ディレクトリ

          レベル4(レベル2 + 下記)

           * 改ざんを検出したファイルの、
             基準となる属性値(TripwireのDBファイルに含まれる情報)
           * 改ざんを検出したファイルの、チェックを行った際の属性値

       REPORTLEVEL : 
         レポートの詳細レベルを 0~4 の範囲で指定
       MAILMETHOD : 
         メールを送信するプロトコル「SMTP」、もしくは「SENDMAIL」
       SYSLOGREPORTING : 
         TripwireのメッセージをSyslogにuser.noticeレベルで出力する場合は「true」
         違う場合は「false」
       MAILPROGRAM : 
         MAILMETHODで「SENDMAIL」と指定した場合、sendmailのパスを指定

   3. 署名ファイル(テキスト ⇒ 暗号化)の作成

       安全面を考えてrootにより署名、暗号化されたファイルのみを使用する為

     続けて(GNOME端末)

      # twadmin -m F -c /etc/tripwire/tw.cfg -S /etc/tripwire/site.key /etc/tripwire/twcfg.txt を入力    

      ----------- twadmin コマンド オプション一覧-----------

        -m F
          設定ファイル作成時に指定

        -v、--verbose
          詳細表示モード

        -s、--silent、--quiet
          簡易出力モード

        -c 暗号署名された設定ファイル、--cfgfile 暗号署名された設定ファイル
          暗号署名された設定ファイル名を指定

        -S サイトキー、--sitekey-file サイトキー
          設定ファイルを暗号署名するときに使用するサイトキーを指定

        -Q、--site-passphrase
          設定ファイルの暗号署名に、サイトキーとともに使用するパスフレーズを指定

        -e、--no-encryption
          暗号署名せずに設定ファイルを作成する

        --help
          twadmin コマンドのヘルプを表示

      --------------------------------------------

      Please enter your site passphrase:  →  サイトパスフレーズ①を入力

      Wrote configuration file: /etc/tripwire/tw.cfg の表示で完了。

   4. 設定ファイル(twcfg.txt)を削除(セキュリティ確保)

     続けて(GNOME端末)

      # rm -f /etc/tripwire/twcfg.txt を入力

       * 暗号化されている設定ファイルからテキスト版に戻す場合

          # twadmin --print-cfgfile > /etc/tripwire/twcfg.txt

③ポリシーファイルの設定

   1. ポリシーファイルを作成

     続けて(GNOME端末)

      # vi /etc/tripwire/twpol.txt を入力 → 何も入力しません

       (省略)

      : w
      :q

   2. ポリシーファイル最適化スクリプトの作成(コピペ)

     続けて(GNOME端末)

      # vi /etc/tripwire/twpolmake.pl

----------- 下記を追加 -----------

#!/usr/bin/perl
# Tripwire Policy File customize tool
# ----------------------------------------------------------------------
# Copyright (C) 2003 Hiroaki Izumi
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
# ----------------------------------------------------------------------
# Usage:
# perl twpolmake.pl {Pol file}
# ----------------------------------------------------------------------
#
$POLFILE=$ARGV[0];

open(POL,"$POLFILE") or die "open error: $POLFILE" ;
my($myhost,$thost) ;
my($sharp,$tpath,$cond) ;
my($INRULE) = 0 ;

while () {
chomp;
if (($thost) = /^HOSTNAME\s*=\s*(.*)\s*;/) {
$myhost = `hostname` ; chomp($myhost) ;
if ($thost ne $myhost) {
$_="HOSTNAME=\"$myhost\";" ;
}
}
elsif ( /^{/ ) {
$INRULE=1 ;
}
elsif ( /^}/ ) {
$INRULE=0 ;
}
elsif ($INRULE == 1 and ($sharp,$tpath,$cond) = /^(\s*\#?\s*)(\/\S+)\b(\s+->\s+.+)$/) {
$ret = ($sharp =~ s/\#//g) ;
if ($tpath eq '/sbin/e2fsadm' ) {
$cond =~ s/;\s+(tune2fs.*)$/; \#$1/ ;
}
if (! -s $tpath) {
$_ = "$sharp#$tpath$cond" if ($ret == 0) ;
}
else {
$_ = "$sharp$tpath$cond" ;
}
}
print "$_\n" ;
}
close(POL) ;

----------- 以上 -----------

   3. ポリシーファイルのファイル名変更

     続けて(GNOME端末)

      # perl /etc/tripwire/twpolmake.pl /etc/tripwire/twpol.txt > /etc/tripwire/twpol.txt.new を入力

   4. ポリシーファイル(テキスト ⇒ 暗号化)の作成

     続けて(GNOME端末)

      # twadmin -m P -c /etc/tripwire/tw.cfg -p /etc/tripwire/tw.pol -S /etc/tripwire/site.key /etc/tripwire/twpol.txt.new

      Please enter your site passphrase:  →  サイトパスフレーズ①を入力

      Wrote policy file: /etc/tripwire/tw.pol の表示で完了。

   5. 設定ファイル(twpol.txt)を削除(セキュリティ確保)

     続けて(GNOME端末)

      # rm -f /etc/tripwire/twpol.txt* を入力

       * 暗号化されている設定ファイルからテキスト版に戻す場合

          # twadmin -m p -c /etc/tripwire/tw.cfg -p /etc/tripwire/tw.pol -S /etc/tripwire/site.key > /etc/tripwire/twpol.txt

④Tripwireのデータベース作成

     続けて(GNOME端末)

      # tripwire -m i -s -c /etc/tripwire/tw.cfg  を入力

      Please enter your local passphrase:  →  ローカルパスフレーズ②を入力

        (ここでは暫く待つ)

      ----------- tripwire コマンド オプション一覧-----------

        -m c、--check
          整合性チェック時に指定

        -I、--interactive
          整合性チェック終了後、結果のレポートがデータベースのアップデートのためにエディタで開かれる

        -r レポートファイル、--twrfile レポートファイル
          指定されたファイルにレポートを出力する

        -n、--no-tty-output
          コンソールに表示されるレポートを抑制

        -V エディタ、--visual エディタ
          指定されたエディタでバロットボックスの編集を行う

        -E、--signed-report
          レポートに署名するように指定

        -i リスト、--ignore リスト
          リストに指定されたプロパティを処理・比較しない

        -l { レベル | 名前 }、severity { レベル | 名前 }
          指定されたレベル、名前以上のポリシールールのみをチェック

        -R ルール、--rule-name ルール
          指定されたポリシールールのみチェック

        -x セクション、--section セクション
          ポリシーファイルの指定されたセクションのルールのみチェック

        -M、--email-report
          ポリシーファイルで指定されたアドレスにレポートを送信する

        -t レベル、--email-report-level レベル
          メールレポートのレベルを指定(0~4)

⑤Tripwireの確認

    出来具合をチョット確認してみましょう。

     続けて(GNOME端末)

      # tripwire -m c -s -c /etc/tripwire/tw.cfg  を入力

         (ここでも暫く待つ)

    内容を確認して完了です。

⑥Tripwireの定期自動実行

   1. 定期実行設定

     続けて(GNOME端末)

      # crontab -e

     0 3 * * * root /usr/sbin/tripwire -m c -M  →  整合性を毎日午前3時からチェックします。

     :w
     :q

      ----------- tripwire コマンド オプション一覧-----------

        -m i、--init
          データベースの初期化時に指定

        -v、--verbose
          詳細表示モード

        -s、--silent、--quiet
          簡易出力モード

        -c 設定ファイル、--cfgfile 設定ファイル
          使用する設定ファイルを指定

        -p ポリシーファイル、--polfile ポリシーファイル
          使用するポリシーファイル名を指定

        -d データベースファイル、--dbfile データベースファイル
          データベースファイル名を指定

        -S サイトキー、--sitekey-file サイトキー
          設定ファイルとポリシーファイルを読み込むときに使用するサイトキーを指定

        -L ローカルキー、--local-keyfile ローカルキー
          新しいデータベースファイルを書き込むときに使用するローカルキーを指定

        -P パスフレーズ、--local-passphrase パスフレーズ
          新しいデータベースファイルの署名に指定したパスフレーズをローカルキーと一緒に指定

        -e、--no-encryption
          データベースファイルを暗号署名しない

        -m c --help、--check --help
          tripwire コマンドの整合性チェックモードのヘルプを表示

        -m c、--check
          システムの整合性チェックを行う

      --------------------------------------------


いやー終わりましたねー。cake

コンテンツを載せるにあたり、アクセスログの解析を行うソフト Awstats を搭載します。

アクセスログ解析を行うソフトは色々有りますが、
グラフィカルな表示とversionアップの履歴などを見て
今でも進化している点が気に入りAwstatsに決めました。
それに、英語のサイトなのに日本語対応なのです。なんでだろう?

バージョン6.8にはクロスサイトスクリプティングの脆弱性があるということだったので、
思い切って、今日現在ベータ版で公開されているバージョン6.9を搭載することにしました。


①Awstatsのインストール

 GNOME端末より

   # su + 管理者権限パスワード

   # wget http://awstats.sourceforge.net/files/awstats-6.9.tar.gz  を入力しサイトよりダウンロード

   # mkdir -p /var/lib/awstats  →  ディレクトリ作成

   # tar xvzf awstats-6.9.tar.gz -C /usr/local  →  解凍

   # mv /usr/local/awstats-6.9 /usr/local/awstats  →  /usr/local/awstatsにディレクトリ名変更

   # chmod 755 /usr/local/awstats  →  パーミッションを変更

   # chown -R apache:apache /usr/local/awstats  →  所有者とグループをそれぞれapacheに変更

②インストールとApacheのコンフィグ設定

  続けて(GNOME端末)

   # cd /usr/local/awstats/tools  を入力

   # perl ./awstats_configure.pl インストールスクリプトを実行

    Config file path ('none' to skip web server setup):
    > /etc/httpd/conf/httpd.conf  →  apache の設定ファイルを指定

     --- Awstatsのプロファイルを作成します

    file (required if first install) [y/N]?y  →  y を入力

    Your web site, virtual server or profile name:
    > ********.com  →  サイト名を入力/設定ファイル識別名になります。

    Directory path to store config file(s) (Enter for default):
    >      →  Enter を押下(デフォルトのまま使用)

     これでインストール完了時に awstats.********.com.conf というファイルが作成されます。

     --- configure.plはまだ自動的に cron に追加できないので、
        手動で cron に追加してくださいというメッセージが表示されます。 ---

    Press ENTER to continue...  →  Enter を押下

     --- インストールが完了しました....

    Press ENTER to finish...   →  Enter を押下


③Apache用アクセス制限設定

 続けて

   # vi /etc/awstats/awstats.********.com.conf  →  を入力し下記を入力し修正します。
        (vi コマンドを覚えましょう。コチラが正規な作成方法です。
             gedit のみを入力し、目的のファイルに移動しても修正出来ます。)

    LogFile="/var/log/httpd/access_log"  →  に変更
    LogType=W  →  デフォルト(Web)
    LogFormat=1  →  デフォルト
    SiteDomain="********.com"  →  ********にドメイン名が入っている
    HostAliases=" **************** "  →  既にあるので状況により変更
    DNSLookup=1  →  DNSの逆引きにするに変更
    DirData="/var/lib/awstats"  →  既にあるので状況により変更
    DirCgi="/awstats"  →  既にあるので状況により変更
    DirIcons="/awstatsicons"  →  デフォルト
    EnableLockForUpdate=1  →  に変更
    SkipDNSLookupFor="REGEX[^192\.168\.0\.]"  →  DNSの逆引きを行わないIPアドレス
    AllowAccessFromWebToFollowingIPAddresses="127.0.0.1 192.168.0.1-192.168.0.254"
     →  ログ解析を閲覧できるIPアドレスの範囲(外部よりアクセスログ解析を閲覧したい場合は削除)
    PurgeLogFile=1  →  に変更(AWStatsがログ解析を行った後、 Apacheのログファイルを圧縮します。)
    SkipHosts="127.0.0.1 REGEX[^192\.168\.0\.]"  →  LAN内のクライアントのアクセスは除外
    FirstDayOfWeek=0  →  に変更(日曜日を週の先頭に)
    Lang="jp"  →  に変更
    LoadPlugin="tooltips"  →  に変更

    :w
    :q

       * 他にも色々な設定が出来る仕様となっていますので、必要に応じ変更します。

④初回の解析ファイル作成

 続けて

   # perl /usr/local/awstats/tools/awstats_updateall.pl now  →  を入力

     Found xxxxx new qualified records. という表示で終了です。

⑤表示バグ修正(awstats.pl)...年月表示

 GNOME端末より

   # su -   + 管理者権限パスワード

   # vi /usr/local/awstats/wwwroot/cgi-bin/awstats.pl  へ移動

   a. 文字検索で $message[5] と入力し検索します。色付きでハイライトされます。

    #else { print "$Message[5] $MonthNumLib{$MonthRequired} $YearRequired"; }

      →  else { print "$YearRequired $Message[6]".$MonthNumLib{$MonthRequired}; }

   b. 続けて $Message[6] と入力し検索します。色付きでハイライトされます。

    #print ($MonthRequired eq 'all'?"$Message[6] $YearRequired":"$Message[5] ".$MonthNumLib{$MonthRequired}." $YearRequired");

      →  print ($MonthRequired eq 'all'?"$YearRequired $Message[6]":"$YearRequired $Message[6]".$MonthNumLib{$MonthRequired});

         * 修正前のスクリプトは # を付けコメントアウトします。

⑥ディレクトリのオーナーを変更

  GNOME端末より

   # chown apache:apache -R /var/lib/awstats/   を入力

⑦httpd(Apache)の再起動

  GNOME端末より

   # service httpd restart を入力

     * httpd.confに設定を追記する為に、Apacheを再起動します。

⑧Awstatsの自動実行

     * 毎時15分にログ解析を自動的に実行、データが少ないと予想されるので一時間毎にしました。
       Awstatsの解析処理はログのデータ量により処理時間が変わってきます、
           CPUに相当な負荷が掛かってきますので、多い場合は処理間隔を変えます。

  GNOME端末より

   # su -   + 管理者権限パスワード

   # crontab -e として(vi と同じです)下記を追記

     15 * * * * /usr/local/awstats/tools/awstats_updateall.pl now

     :w
     :q

⑨確認

    下記アドレスを入力します。

      http://[サーバーアドレス]/awstats/awstats.pl


ここまで来ると、古いマシンも、一端のサーバーとして、活躍しそうです。
お疲れお疲れ。wine

データベースのMySQLを楽に操作するため、phpMyAdminを搭載します。
これは、GUIで視覚的に操作できます。作業効率化のためにオススメです。

詳しくは、phpMyAdminドキュメント をご覧ください。(搭載するものとバージョンは違いますが内容的には同じです。)


①phpMyAdminのインストール

 GNOME端末より

   # su + 管理者権限パスワード

   # yum install phpmyadmin  を入力

   # y

    完了です。

②php-mcrypt(暗号化ライブラリ)のインストール

   # yum install php-mcrypt  を入力

   # y

   # exit

    完了です。

③設定ファイルのパーミッションを変更

   # chmod 660 /etc/phpMyAdmin/config.inc.php  を入力

④設定ファイルの編集

 GNOME端末より

   # su -   + 管理者権限パスワード

   # gedit /etc/phpMyAdmin/config.inc.php  を入力

      $i++;
      $cfg['blowfish_secret'] = 'パスフレーズ';  →  一行追加(パスフレーズは使用の際には入力要求されません)

      $cfg['Servers'][$i]['auth_type'] = 'config';
        →  $cfg['Servers'][$i]['auth_type'] = 'cookie';

               * 認証モードを「クッキー」に変更

   # exit   

⑤phpMyAdminの所有者を変更

   # su + 管理者権限パスワード

   # chown -R root.apache /etc/phpMyAdmin/

⑥設定ファイルの編集(アクセス制限)

 GNOME端末より

   # su -   + 管理者権限パスワード

   # gedit /etc/httpd/conf.d/phpMyAdmin.conf

   <Directory /usr/share/phpMyAdmin/>
    order deny,allow
    deny from all
    allow from 127.0.0.1
    allow from 192.168.0  →  追加(LAN内のクライアントのみ接続を許可します)
   </Directory>

         * LANの外から操作をする場合は設定を
                     allow fromの部分を一つにして Allow from all に変えます。

⑦httpd(Apache)を再起動

  GNOME端末より

   # service httpd restart を入力

⑧phpMyAdmin確認

   LAN内のクライアントPCより

   http://サーバのIPアドレス/phpmyadmin/へアクセスし

     phpMyAdminのログイン画面が表示されることを確認します。

      * クライアントPCはクッキーを使えるようにしておきます。
      * 画面表示で文字化けに遭遇したら、もう一度、php+php_Smarty の中の
        php.iniの編集での文字設定の箇所をおさらいしましょう。
 


これで設置完了です。
やりましたねー、、、ふにふに。データをバシバシ登録出来そうです。

アプリケーションの稼動に必要なソフトの中から、今回は php5 をインストールします。
現在、バージョンは5.2.6です。5.2.7にはセキュリティに脆弱性が発見され見送りです。
また、テンプレートエンジンにphp-Smartyを使用します。

①phpのインストール

 GNOME端末より

   # su + 管理者権限パスワード

   # yum install php  を入力

   # y

    完了です。

②php-pear(PHPの拡張ライブラリ)のインストール

   # yum install php-pear  を入力

   # y

    完了です。

③php-mbstring(日本語の処理)のインストール

   # yum install php-mbstring  を入力

   # y

    完了です。

④php-mysql(PHPからはMySQLに接続するのに必要)のインストール

   # yum install php-mysql  を入力

   # y

   # exit

    完了です。

⑤php-Smarty(テンプレートエンジン)のインストール

   # yum install php-Smarty  を入力

   # y

   # exit

    完了です。

⑥php.iniの編集(日本語が使えるようにします)

 GNOME端末より

   # su -   + 管理者権限パスワード

   # gedit /etc/php.ini  を入力

;;;;;;;;;;;;;;;;;;;;
; Language Options ;
;;;;;;;;;;;;;;;;;;;;

;allow_call_time_pass_reference = Off
allow_call_time_pass_reference = On   →  関数の引数としてリファレンスを使用

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Error handling and logging ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

; Log errors to specified file.
;error_log = filename
error_log = "/var/log/php_error"   →  追加

;;;;;;;;;;;;;;;;;
; Data Handling ;
;;;;;;;;;;;;;;;;;

;register_argc_argv = Off
register_argc_argv = On   →  修正

;;;;;;;;;;;;;;;;;;;;;;;;;
; Paths and Directories ;
;;;;;;;;;;;;;;;;;;;;;;;;;

; UNIX: "/path1:/path2"
;include_path = ".:/php/includes"
include_path = ".:/usr/share/pear:/usr/share/php/Smarty"   →  追加

;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;

; Maximum allowed size for uploaded files.
; upload_max_filesize = 2M         →  コメントアウト
multibyte/upload_max_filesize = 30M   →  リストアで利用できるバックアップデータの最大サイズ

( 中略 )

output_buffering = On   →  HTTP BODYを出力した後でもHTTPヘッダが出力できます。
output_handler = mb_output_handler   →  PHPからの標準出力を指定の関数にリダイレクト 
default_charset = Shift_JIS

;;;;;;;;;;;;;;;;
; Module Settings ;
;;;;;;;;;;;;;;;;

( 中略 )

[mbstring]------- コメント(;)の削除 & 設定変更(環境に合わせ変更します) -------
                  
 mbstring.language = Japanese
 mbstring.internal_encoding = UTF-8
 mbstring.http_input = auto
 mbstring.http_output = UTF-8
 mbstring.encoding_translation = On
 mbstring.detect_order = auto

     * この設定は上手く環境に合わせ構築しておかないと、後々に使用する、
       phpMyAdmin等での文字化けに悩む事になります。
        php関連の文字化けが発生したら、真っ先にココの設定を調整してみましょう。

⑦Smarty 用のディレクトリを作成

 GNOME端末より

   # su   + 管理者権限パスワード

   # mkdir -p /var/www/html/smarty   →  環境に合わせ変更(プログラム毎に配置します)
   # cd /var/www/html/smarty
   # mkdir templates templates_c configs cache   →  Smarty 用に4つのディレクトリを作成

⑧Smarty.class.phpを配置

   Smarty : Template Engine の

   Smarty : Downloads より 
    ダウンロードし解凍したファイルから Smarty.class.php を取り出して

    /var/www/html/smarty/Smarty.class.php として配置

⑨フォルダのパーミッションを変更(書き込みが出来るようにします)

 GNOME端末より

   # chmod 777 /var/www/html/smarty/templates_c  を入力

   # chmod 777 /var/www/html/smarty/cache  を入力

⑩Smarty_App クラスファイルを作成

    /var/www/html/smarty/Smarty_App.php として保存

    ----------- Smarty_App.php -----------
    <?php
    require_once 'Smarty.class.php';

    class Smarty_App extends Smarty {
     private $smartyAppBase = '/var/www/html/smarty';
     public function __construct() {
     parent :: __construct();

     $this->template_dir = $this->smartyAppBase.'/templates/';
     $this->compile_dir = $this->smartyAppBase.'/templates_c/';
     $this->config_dir = $this->smartyAppBase.'/configs/';
     $this->cache_dir = $this->smartyAppBase.'/cache/';

     $this->caching = true;
     }
    }
    ?>
    --------------------------------- 以上 ----

⑪Smarty テスト用の php ファイルを作成

    /var/www/html/test_smarty.php として保存

    ----------- test_smarty.php -----------
    <?php
    require_once '/var/www/html/smarty/Smarty_App.php';

    $smarty = new Smarty_App;
    $smarty->assign('var1', 'test_smarty.php');
    $inc_path = ini_get('include_path');
    $smarty->assign('var2', $inc_path);
    $smarty->display('test_smarty.tpl')
    ?>
    --------------------------------- 以上 ----

⑫Smarty テンプレートファイルを作成

    /var/www/html/smarty/templates/test_smarty.tpl として保存

    ----------- test_smarty.tpl -----------
    <HTML>
     <HEAD>
     <META http-equiv=Content-Type content="text/html; charset=utf-8">
     <TITLE>test_smarty.tpl</TITLE>
     </HEAD>
     <BODY>
     file name = {$var1}<BR/>
     php include_path = {$var2}<BR/>
     SMARTY_DIR = {$smarty.const.SMARTY_DIR}<BR/>
     </BODY>
    </HTML>
    --------------------------------- 以上 ----


⑬smarty ディレクトリの所有権の変更

 GNOME端末より

   # su   + 管理者権限パスワード

   # chown -R apache:apache /var/www/html/smarty

    * 既定(httpd.conf)で apache:apache が設定されているので、必要に応じて変更

⑭httpd(Apache)を再起動

  GNOME端末より

   # service httpd restart を入力

⑮確認

  ブラウザで Smarty テスト用の php ファイル(test_smarty.php)にアクセス


インストール終了です。
php関連のエンジンの開発者さまに感謝感謝です。appli01

本格的な運用を目指し、この辺で、
Webヘージとサーバー間での HTTP 通信の暗号化を行うSSLを搭載しておきます。
Webヘージで入力するユーザー名やパスワードなどが盗聴される被害に会わないために搭載します。

ここでは、mod_ssl を搭載します。

①GNOME端末より

   # su + 管理者権限パスワード

   # yum install mod_ssl

   # y

暫く、待ちます。

   Complete! で完了です。

②httpd(Apache)を再起動

  GNOME端末より

   # su -   + 管理者権限パスワード

   # service httpd restart

③ファイアウォールを有効にする。

  システム → 管理 → ファイアウォールの設定

            → 安全なwww(HTTPS) → 適用 →  終了

④サーバー証明書と鍵の作成

   1. 秘密鍵を作成

     GNOME端末より

      ②の終わりより続けて

        # openssl genrsa -des3 1024 > /etc/pki/tls/private/server.key を入力

          Enter pass phrase:パスフレーズ(英数)を入力
          Verifying - Enter pass phrase:パスフレーズ(英数)を入力

        * 1024bit の RSA 秘密鍵を生成し、server.key というファイルに出力

   2. 秘密鍵からパスワードを削除

     GNOME端末より

        # openssl rsa -in /etc/pki/tls/private/server.key -out /etc/pki/tls/private/server.key を入力

          Enter pass phrase for /etc/pki/tls/private/server.key:パスフレーズ(英数)を入力

   3. アクセス権を変更

     GNOME端末より

        # chmod 400 /etc/pki/tls/private/server.key を入力

        * 秘密鍵を同じサーバ内のユーザにも見られないように、作成後はすぐに変更

⑤Web サーバー用の公開鍵を作成

  GNOME端末より

   # openssl req -new -key /etc/pki/tls/private/server.key -out /etc/pki/tls/certs/server.csr を入力


        Country Name (2 letter code) [GB]:JP
            → 国を指定
        State or Province Name (full name) [Berkshire]:Kanagawa
            → 都道府県を指定
        Locality Name (eg, city) [Newbury]:Yokohama
            → 市区町村を指定
        Organization Name (eg, company) [My Company Ltd]:applejam.com
            → 組織名を指定 ※組織名がない場合はドメイン名などを指定
        Organizational Unit Name (eg, section) []:Customer Service
            → 部門名を指定 ※部門名がない場合は空で可
        Common Name (eg, your name or your server's hostname) []:www.applejam.com
            → サイト名またはサーバー名を指定
        Email Address []:webmaster@applejam.com
            → 管理者のメールアドレスを指定

⑥サーバー証明書を作成

  GNOME端末より

   # openssl x509 -in /etc/pki/tls/certs/server.csr -out /etc/pki/tls/certs/server.crt -req -signkey /etc/pki/tls/private/server.key -days 365 を入力

        * 入力ファイル (CSR) に server.csr を指定します。
        * 出力ファイル (証明書) に server.crt を指定します。
        * openssl x509 のデフォルトでは、入力ファイル形式は X.509 証明書となっています。
           -req オプションを付けて入力ファイルが CSR であることを指定します。
        * -signkey は自己署名用のオプションで、その直後にRSA 秘密鍵のファイル
          (openssl genrsa で生成したファイルserver.key) を指定します。
        * 自己署名の場合は証明書の有効期間がデフォルトでは 1ヵ月です。
          ここでは -days 365 として 1年間にしています。

⑦httpd(Apache)のSSLファイル設定

  GNOME端末より

   # gedit /etc/httpd/conf.d/ssl.conf を入力

      (省略)

     コメント欄の # Server Certificate: にある(検索ツールでハイライトさせる)

      SSLCertificateFile /etc/pki/tls/certs/server.crt
            → 作成した Web サーバー証明書を指定(修正)

     コメント欄の # Server Private Key: にある(検索ツールでハイライトさせる)

      SSLCertificateKeyFile /etc/pki/tls/private/server.key
            → 作成した Web サーバーの秘密鍵を指定(修正)

      (省略)

⑧httpd(Apache)を再起動

  GNOME端末より

   # service httpd restart を入力


商用利用出来そうなサーバーに成りそうです?あっ本体が、、!!。noodle

ブログやホームページを動かすデータベースとしてMySQLを搭載します。

①GNOME端末より

   # su + 管理者権限パスワード

   # yum install mysql-server  (yum -y install mysql-server とすると 途中で y/n の問いがなくなる)

   # y

      暫く、待ちます。

   Complete! で完了です。

②MySQLデータベースの設定

   1. データベースを初期化

      ①に続けて

        # /etc/init.d/mysqld start

   2. MySQLの自動起動の設定

      続けて

        # /sbin/chkconfig --level 2345 mysqld on

   3. MySQLデータベースの作成から削除

      続けて

        # mysql -u root → MySQLサーバーへログイン(初回)

        mysql> select user,host,password from mysql.user;
              → パスワードとユーザーの確認

        mysql> set password for root@localhost=password('パスワード');
              → rootユーザーのlocalhostにパスワードを設定

        mysql> select user,host,password from mysql.user;
              → rootユーザーのlocalhostのパスワードが設定されたかの確認

        mysql> delete from mysql.user where user='';
              → ユーザーがブランクを削除
        mysql> delete from mysql.user where password='';
              → パスワードがブランクを削除

        mysql> grant all privileges on abc.* to xxxxx@localhost identified by 'パスワード';
              → 新規ユーザ xxxxx を登録

            (ユーザ xxxxx に データベース abc への権限を付与
                        ;データベース abc はまだ無くて良い)

        mysql> select user,host,password from mysql.user;
              → パスワードとユーザーを再度確認します。

     データベースとコマンドにちょっと慣れるため、仮にデータベースを作成します。
      (近い将来はphpMyAdminを搭載しGUIベースで操作します。データベース操作が大変楽になります。
        また、phpを搭載しプログラムをPHPで記述しデータベースを操作するとき、
                                  下記のコマンドは大変に役に立ちます。)

        mysql> create database xxxxx;
              → デーダースxxxxx を作成

        mysql> use xxxxx
              → デーダースへ接続

        mysql> create table yyyyy(num int, sitename varchar(30));
              → yyyyyテーブルを作成
              (項目名 num : 数値 / 項目名 sitename : varchar型で文字長30桁)

        mysql> show tables;
              → テーブルの確認

        mysql> insert into yyyyy values(1,'applejam');
              → yyyyyテーブルへデータ登録

        mysql> select * from yyyyy;
              → データ登録確認

        mysql> update yyyyy set name='applejam;
              → yyyyyテーブル内データ更新

        mysql> delete from yyyyy where num=1;
              → yyyyyテーブル内データ削除

        mysql> select * from yyyyy;
              → データ削除確認

        mysql> drop table yyyyy;
              → yyyyyテーブル削除

        mysql> show tables;
              → テーブル削除確認

        mysql> drop database xxxxx;
              → データベースxxxxx削除

        mysql> show databases;
              → データベース削除確認

        mysql> drop database test;
              → データベースtest削除

        mysql> show databases;
              → データベース削除確認(データベースmysqlは絶対に削除しない様に!!。cryingよ。)

        mysql> revoke all privileges on *.* from xxxxx@localhost;
              → ユーザーxxxxxからアクセス権限を削除します。
             (データベースなどを削除しても残ってしまいますので必ず削除します)

        mysql> delete from mysql.user where user='xxxxx' and host='localhost';
              → ユーザーxxxxxを削除します。

        mysql> select user from mysql.user where user='xxxxx';
              → ユーザーxxxxxが削除されているか確認。

        mysql> flush privileges;
              → ユーザーxxxxxの削除をMySQLサーバーへ反映

        mysql> exit
              → ログアウト

    ----------- MySQL 主なコマンド -----------

    * ログイン(MySQL)

      mysql -u root -p

    * ログイン(データベース)

      mysql -u ユーザ名 -p データベース名(例: mysql -u root -p mysql )

    * データベース作成

      mysqladmin -u root -p create データベース名

    * mysql起動後のデータベース作成

      create database データベース名;

    * パスワード変更

      mysql -u mysql でログイン →  set password for mysql@localhost=password('パスワード');

    * 権限の作成(rootでログイン後)

      grant all on xxxdb.* to mysql@localhost identified by 'パスワード';
      grant all on xxxdb.* to ユーザ名@localhost identified by 'パスワード';

      設定の更新
      flush privileges;

    * ユーザ情報参照(rootでログイン後)

      select user, host, password from mysql.user;

    * ユーザ削除(rootでログイン後)

      delete from mysql.user where user="ユーザ名";

    * MySQLのアンインストール(強制削除)

      例) rpm -e --nodeps perl-DBD-MySQL-2.9003-4  &

      例) rpm -e --nodeps mysql-3.23.58-9.1

    * データベースの初期化

      例) /usr/local/mysql/bin/mysql_install_db

    * パスワードの設定(ログイン・設定・再起動)

       mysql -u root mysql
       set password for root@localhost=password('パスワード');
       mysqladmin -u root password new_password
       mysqladmin reload

    ---------------------- 以上 -----------

これでMySQLデータベースの作成における一連の作業は完了です。
お疲れ様です。cake

Fedora11 リリーススケジュール が出ていました。
ちょっと古い話題より

* Fudcon Fedora 11 - Fri 09-Jan-2009 - Sun 11-Jan-2009
* Alpha Release - Tue 27-Jan-2009
* Feature Freeze (depend feature submission) - Tue 3-Mar-2009
* Critical Package Freeze (anaconda, kernel) - Tue 3-Mar-2009
* Beta Freeze - Tue 10-Mar-2009
* Beta Release - Tue 24-Mar-2009
* Preview Release - Tue 28-Apr-2009
* GA Release - Tue 26-May-2009

いやー遂に来ました、いよいよ世界へ公開です。
まだまだ、搭載するパッケージや各種設定はありますが、
LANの外から見えると張り合いが出ます。

ここまでの作業はルーターのDHCP機能で、自動ipアドレス払い出しを利用してきましたが、
公開にあたり、ipアドレスを固定化します。
(固定ipのネットワーク設定がすんでいる場合は必要ありません。)
先のルーターの設定で既に固定払い出しをされている場合は、
そのアドレスを登録することになります。

① ネットワーク設定

   GUIでも出来るのですが、書き込んでも書き換わってしまうバグがあるので、

  GNOME端末より追加修正します。

   # su -

   # gedit /etc/sysconfig/network-scripts/ifcfg-eth0

      # Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+
      DEVICE=eth0
      HWADDR=00:ab:11:cd:22:ef
      ONBOOT=yes
      BOOTPROTO=none
      USERCTL=no
      IPV6INIT=no
      NM_CONTROLLED=yes
      TYPE=Ethernet
      PEERDNS=yes
      NETMASK=255.255.255.0  →   追加
      IPADDR=192.168.0.xx     →   固定ipアドレス
      GATEWAY=192.168.0.1   →   追加

   保存し終了します。

② 確認

   携帯電話や外からのPCで Fedora Test Page が表示されるか、確認します。


、、、、ドキドキですね。birthday

GNOME端末から管理者権限でエディター(GEDIT)を使おうとすると、突然にエラー表示が。
あれっ壊れちゃったのかなー、、、、なんて。

これは、壊れたのではありません。

 GNOME端末から

   # su - または # su -l + 管理者権限のパスワード を入力します。
    (プログラムの起動中には su -l を使用するとファイルは開きますが、
                 一時停止をして su - で修正し、再起動)

 次に

   # gedit <編集するファイルのPATH>

 これで、エラー表示は出ません。

 # su コマンドを使ったときは
 # vi  コマンドで編集モードに入れば問題ありません。(本来の使用コマンドです)
      但しこちらはwindowsに慣れた人にはチョット抵抗あるかも。

   ---動作---
                 gedit           vi

      バックアップ   作る            作らない
      属性、所有権  変わる場合が有る    変えない

だんだん本格的なサーバーに成ろうとしていますので、この辺で、
GUIが所々立ち上がらない等のバグを少し退治しておきましょう。

①サービスなどの画面が表示できない

  --症状--

   サービス
   Samba
   ソフトウェアの追加/削除
   ファイアーウォール

  等の画面が表示できない。

  --原因--

  system-config-services をアップデートすると症状発生。

  --対策--

  GNOME端末で

  # su - (+パスワード)
  # gedit /etc/dbus-1/system.conf を入力

   このファイルの中に

     !-- allow sending valid replies --
     allow send_requested_reply="true" send_type="method_return"/
     allow send_requested_reply="true" send_type="error"/
     allow send_requested_reply="true"/ → この一行を追加します。

   保存し、サーバーを再起動します。

②自動updateがされない

 --症状--

   自動updateを実行しない

 --原因--

   gnome-packagekit の不良

 --対策--

GNOME端末で

  # su (+パスワード)
  # yum --enablerepo=u*g update gnome-packagekit を入力
  # y

   暫くするとインストールが完了。サーバーを再起動します。

    * 自動updateはサーバーを安定に稼動させるためには或るところで
      止めたほうが良いでしょう。(サブサーバーで検証後updateするのがベター)

いよいよWEB公開の準備です。

①GNOME端末を立ち上げ、パッケージをインストールします。
  必要なパッケージは httpd/mod_perl/firefox ですが、既にmod_perlとfirefoxは
  インストールされていますので、httpd(Apache) のみインストールします。

  1. # su   と  root管理者権限のパスワード を入力

  2. # yum install httpd を入力

    (省略)

  3. # y を入力

    (省略)

   Complete! と表示され完了。

②WEBサーバーの設定

  続けて(GNOME端末で)

  1. # su -

  2. # gedit /etc/httpd/conf/httpd.conf を入力

  3. httpd.conf ファイルを編集します

    a. 文字検索で serveradmin と入力し検索します。色付きでハイライトされます。

       ServerAdmin root@localhost → ServerAdmin root@自サーバーアドレス に変更
        (通常使用しているメールアドレスを登録します)

    b. 続けて servername と入力し検索します。色付きでハイライトされます。

       #ServerName www.example.com:80 → ServerName 自サーバーアドレス:80 に変更

    c. 続けて options indexes と入力し検索します。色付きでハイライトされます。

        Options Indexes FollowSymLinks → Options Includes ExecCGI FollowSymLinks に変更

       * Includes : SSIを許可
       * ExecCGI : CGIを許可
       * FollowSymLinks : シンボリックリンク先へのアクセスを許可します。

    d. 続けて allowoverride と入力し検索します。色付きでハイライトされます。

        AllowOverride None → AllowOverride All に変更

       * オプションは他にもあります。詳細の説明は割愛します。
       * 「 None 」は、全てのオーバーライド(上書き)を禁止し.htaccess の設置を無視します。
       * 「 All 」は、.htaccess ファイルの設置を許可します。
       * .htaccess ファイルを設置する設定で作業を進めます。
          サーバーのパフォーマンスが多少落ちてしまいますが、
          このファイルの使用に慣れたら httpd.conf に記述する方向で構築します。
          httpd.conf に記述するとパフォーマンスが向上します。

    e. 続けて 少し下にある 

       Order allow,deny             Order allow,deny
      Allow from all         →     Allow from 192.168.0.0/24

      に書き換えます。(アドレスはサーバーのipアドレスに応じ変更します)
      ここでは、自宅内のパソコンよりのみアクセスを許可しています。
       (まさか自宅でipアドレス数256個もありませんが、、、、)

       * 今回の設定では、LAN内のみにWEBページが閲覧できる設定になります。
         サーバー構築の状況をみて、LAN外に開放します。その時は、

          Allow from 192.168.0.0/24  →   Allow from all に戻します。

       * 全てのマシンからのアクセスを拒否する時には、

          Order allow,deny だけにします。

    f. 続けて servertokens と入力し検索します。色付きでハイライトされます。

       ServerTokens OS → ServerTokens Prod

       * エラーページ等でOS名を表示させない

    g. 続けて serversignature と入力し検索します。色付きでハイライトされます。

       ServerSignature On → ServerSignature Off

       * エラーページ等でApacheのバージョンを表示させない

    h. 続けて addhandler と入力し検索します。色付きでハイライトされます。

       #AddHandler cgi-script .cgi → AddHandler cgi-script .cgi .pl

       * CGIスクリプトが実行できる

    i. 続けて adddefaultcharset と入力し検索します。色付きでハイライトされます。

       AddDefaultCharset UTF-8 → #AddDefaultCharset UTF-8

       * デフォルトキャラセットを無効にする。

    j. 続けて LogFormat と入力し検索します。色付きでハイライトされます。

       LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
         
       → LogFormat "%h %l %u %t \"%!414r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

       * 長すぎるURI(414 Error)はログに記録しない

    k. 続けて customlog logs と入力し検索します。色付きでハイライトされます。

       #CustomLog logs/access_log common の下に下記を追記します。

       ------------------------------------- 追加 ------------------------------------------

       SetEnvIf Request_URI "default\.ida" no_log  : wormからのアクセスをログに記録しない
       SetEnvIf Request_URI "cmd\.exe" no_log    : wormからのアクセスをログに記録しない
       SetEnvIf Request_URI "root\.exe" no_log    : wormからのアクセスをログに記録しない
       SetEnvIf Request_URI "Admin\.dll" no_log   : wormからのアクセスをログに記録しない
       SetEnvIf Request_URI "NULL\.IDA" no_log   : wormからのアクセスをログに記録しない
       SetEnvIf Request_URI "\.(gif)|(jpg)|(png)|(ico)|(css)$" no_log
                               : (拡張子)ファイルへのアクセスを記録しない
       SetEnvIf Remote_Addr 192.168. no_log  : 内部からのアクセスをログに記録しない
       CustomLog logs/access_log combined env=!no_log  : 上記以外のアクセスをログに記録する

       ---------------------------------------------------------- 以上 ---------------------

    以上で完了です。ファイルを保存しエディタを終了します。

③Perlのシンボリックリンク設定

  続けて(GNOME端末で)

    # ln -s /usr/bin/perl /usr/local/bin/perl を入力

     * シンボリックリンク設定(/usr/local/bin/perl から /usr/bin/perl へリンクする)
     * この設定でPerlのパスが/usr/local/bin/perlでもCGIが実行出来る様になります。

④ドキュメントルートの所有者変更

  続けて(GNOME端末で)

    # chown xxxx:xxx /var/www/html/ を入力

     * ドキュメントルートの所有者を変更します。
     * 所有者は /etc/passwd ファイル にあるログイン名(例ではxxxx)を指定します。
       rootのままだと何かと不都合なので変更します。

⑤WEBサーバーの起動

  続けて(GNOME端末で)

    # /etc/init.d/httpd start    でApacheを起動

    # /sbin/chkconfig --level 2345 httpd on    でApacheを自動起動に設定

⑥確認

  アドレス欄に 127.0.0.1 を入力する。

    Fedora Test Page が表示されれば、インストール完了です。


 * 今回のApacheのMPM (Multi Processing Module) はデフォルトのpreforkで動かします。
   PHPを搭載しますので、このままの設定で構築します。(システムの安定化優先)
   workerも搭載されていますので、必要により使用する時は

    /etc/sysconfig/httpd にある #HTTPD=/usr/sbin/httpd.worker の # を削除します。

 * CGIの動作テストで Internal Server Error の表示で止まってしまった場合は、
   プログラムの改行コードの表記違いによる場合があります。

     先頭行のPerlへのパスを #!/usr/bin/perl  →  #!/usr/bin/perl --  に変更し確認します。

      もし直るようであれば、改行コードによるエラーです。
      FTP転送ソフトの転送モードを確認しましょう。
      転送モードをバイナリー転送モードにします。(Linux上では LF のみ使用できます。)
      この場合、改行コードはDOS(CR+LF)からUnix(LF)に変換されます。

      vsftpdの場合は、vsftpd.confを開いて、

       ascii_upload_enable=YES
       ascii_download_enable=YES

      コメントアウトされている部分のコメントを外し、YESに設定を変更します。


WEB公開へ向けた下ごしらえの完了です。
本公開は以上の設定の他に、ルーター・ネットワーク・ファイアウォールの設定などが必要になります。

サーバー構築中に不正アクセスされるのは嫌なので、アクセス制限を掛けておきます。

①GNOME端末を立ち上げ

 1. # su -   と  root管理者権限のパスワード を入力

 2. # gedit /etc/hosts.deny を入力しエディターにて

    ALL: ALL

   を最後の行に追加し保存します。

 3. GNOME端末に戻り

   # gedit /etc/hosts.allow を入力しエディターにて

    ALL : 127.0.0.1
    ALL : 192.168.0.*

   を最後の行に追加し保存します。

②再起動

   サーバーを再起動します。

これで一先ず安心です。(取り敢えず安心)

PHP 5.2.7にセキュリティ問題が見つかった。
magic_quotes_gpcが有効になっている設定でセキュリティ問題が発生するらしい。

この問題に対処するPHP 5.2.8がリリースされるまでは、
当面PHP 5.2.6で。

インターネット公開の準備としてDynamic DNSに利用の申請をします。
このサービスを扱っている中から、ここでは no-ip.com をご紹介します。

登録は、公開するサーバーのWEBブラウザから行います。(アドレスを自動で登録するため)

ロゴマークもだいぶ以前の駐車禁止のような色合いと違って、
今では落ち着いた色合いとなり好感の持てるデザインのサイトになっています。

英語のサイトなので、「おっ!!」となりますが、登録内容も少ないので、使い易くなっています。
初期の登録も簡単ですので、オススメです。

①登録はno-ip.com に移り

  No-Ip FREEを選びます。(他に有料のサービスも扱っています)

   登録の時、メールアドレスが必要になります。
   登録すると、このメールアドレスに返信が帰ってきます。

  返信されたメールの中に登録確認のアドレスがありますので、
  登録時のユーザー名とパスワードとメールアドレスでログインします。

   ホスト名とドメインを決定します。

②登録が完了したら

   システム → 管理 → ネットワーク → DNS  のホスト名を変更

     → ホスト(タブ) → 新規 → アドレス(127.0.0.1)とホスト名(ホスト名のみ) → OK
       → 新規 → アドレス(127.0.0.1)とホスト名(ホスト名+ドメイン名) → OK
         → 保存 → 終了

    * アドレス(127.0.0.1) : ループバックアドレス
      この行を追加することにより、外部からの呼び出しに応えるようになります。
      (別の表現をすると、「私はココに居るんだよー」と言っていることになります。)
      複数のドメインを持っている場合は、複数記述します。

    * 念のために etc ディレクトリにある hosts ファイルに登録されているか
      確認しておきましょう。(最初からエディタで書けばこんな手間は要りません。coldsweats01
      まだFedoraのGUIにはバグがあり、上手く書き込まれていないことがありますので。
      ここがおかしくなるとサーバーが立ち上がりません。
      うまく書き込めていない場合は、直に書き込んでしまいましょう。

    * hosts ファイルを変更するときに、一番初めにある、
      127.0.0.1 localhost.localdomain の行は絶対に削除しないように。
    * ::1 はIPv6対応の事を指しています。
        (IPv6対応のサーバーにするときに必要なので、今回は削除してもOKです。)

③再起動

  登録を反映するためにサーバーを再起動します。

④Dynamic DNSに自動でIPアドレスを送信する

  ここでは、DiCE を使います。

  ダウンロードしたファイルを GNOME端末 により

   # su (root管理者権限+パスワード)

   # cd /usr/local/

   # tar zxvf /tmp/diced01914.tar.gz

     * 例は tmp ディレクトリにダウンロードした場合です。

  として解凍します。

   # /usr/local/DiCE/diced を入力し起動します。


     * DiCEを実行しても応答がない場合は
        『バッファオーバーフロー対策(Exec-Shield)』が有効になっています。

       -- 確認 --

        # cat /proc/sys/kernel/exec-shield
         2

        --- 数値の意味 ---

         0:常に無効
         1:マークされたバイナリを有効にし、以外は無効
         2:マークされたバイナリを無効にし、以外は有効
         3:常に有効

       有効( 2 または 3 )になっている場合は、一時的 1 にレベルを下げます。

        # echo 1 > /proc/sys/kernel/exec-shield  →  1 にします。
        # cat /proc/sys/kernel/exec-shield  →  確認します。
         1

          * DiCE の設定が終了したら、上記の操作により、また元に戻します。

       -----------------------------


   : と現れたら ? を入力 (:?)

     DiCEのヘルプが表示されます。

     ****** 起動オプション ******

     diced [-s|-d|-h|-e] [-b] [-l]

     -s 起動と同時に開始します
     -d 起動と同時にバックグラウンドで開始します
     -h コマンドオプションを表示します
     -b イベント実行時にビープ音を鳴らします
     -l ログを作成します
     -e 指定のイベントを実行して終了します

     ****** コマンド一覧 ******

     exit   DiCEを終了します
     start   DiCEを開始します
     startd  DiCEをバックグラウンドで開始します
     setup  DiCEの環境設定を行います
     list    登録済のイベント一覧を表示します
     add   イベントを追加します
     edit <番号>  イベントを編集します
     del <番号> イベントを削除します
     enable <番号> イベントを有効にします
     disable <番号> イベントを無効にします
     event <番号> イベントの情報を表示します
     exec <番号>  イベントを今すぐ実行します
     logcr    ログをクリアします

    ***************************************

   : と現れたら add を入力 (:add)

  暫く画面の指示に従い登録します。

    * ログインユーザ名 : no-ip の場合メールアドレスになります。

  イベントの登録保存が終わると、

   : と再度表示されますので setup を入力 (:setup)

  暫く画面の指示に従い登録します。
  設定完了すると、

   : と再度表示されますので ex 0 を入力 (:exec 0)し動作確認をします。
     もしエラーが出るようであれば edit コマンドで修正し再度確認をします。

   :list
   :ev 0  →  イベント番号が 0 の場合。

  確認が上手く行ったら、

   : exit で終了です。 (:exit)

⑤自動起動の登録

  ④の最後より更に続けて

   # /usr/local/DiCE/diced -d -l

   # echo "/usr/local/DiCE/diced -d -l" >> /etc/rc.local

  と入力し登録完了です。


ここまでくると、ワクワクしますね。present

WEBに公開するためにルーターの設定を行います。

ポートフォアーディング機能によりインターネットに直接サーバーを接続している状態にします。
この機能を使用することにより、ルーターに割り当てられたグローバルIPアドレス宛のリクエストが
自宅のLAN内にあるサーバーに転送され、インターネットからのリクエストに応えることが可能になります。
ポートフォアーディング機能は、
ポート転送・静的NAPT・静的NAT・静的IPマスカレード・ポートマッピングなどの名で呼ばれています。

ルーターの設定

 ①機種の設定方法(各メーカーの仕様に準ずる)により、WAN側とLAN側に、
   使用する各サーバーのポートを登録します。

 ②WAN側からの不正なアクセスを防止するために、
   ステルス(TCP/UDP/ICMP)機能を設定します。

 ③Windows共有フィルタ機能を設定します。
   これは、LAN側から不必要な情報の流出を防ぎます。

 ④SPI機能を設定します。
   この機能はWAN側からの不正アクセスを防止します。

 ⑤無線LANの機種を使用の場合にも同様に、
   不正なアクセスを防止する設定を必ず行います。

SMTPサーバー(送信)には Postfix を使用します。
(sendmail互換に開発されたSMTPサーバーです。)
POP/IMAPサーバー(受信)には dovecot を使用します。

メールを格納する形式にはMaildir形式を採用しました。
データの保守性(ファイルの破損など)やセキュリティ的にもMaildir形式がオススメです。

さーいよいよ構築作業に入ります。
メールサーバーはサーバーの中でも大物中の大物です。
設定ミスが無き様、心を引き締めて取り掛かりましょう。


-------- メール格納形式を簡単におさらい --------

  共有ディレクトリ形式

      /var/spool/mail/ユーザ名の一つのファイルに全てのメールを蓄積します。

  ホームMailbox形式

      /home/ユーザ名/Mailbox名の一つのファイルに全てのメールを蓄積します。

  Maildir形式は

      新着メール  : /home/ユーザ名/Maildir/new
      既読メール  : /home/ユーザ名/Maildir/cur
      配送中メール : /home/ユーザ名/Maildir/tmp

    と分割され各ディレクトリ内でメール1通を1ファイルとして格納します。
----------------------------------------


①Postfixのインストール(送信メールサーバー)

   GNOME端末より

     1. # su   と root管理者権限のパスワード を入力

     2. # yum install postfix cyrus-sasl system-switch-mail-gnome を入力

     3. y     でリポジトリへの接続とインストール開始。

     4. 暫くすると Complete! でインストール完了です。

②dovecotのインストール(受信メールサーバー)

   GNOME端末より

     1. # su   と root管理者権限のパスワード を入力

     2. # yum install dovecot を入力

     3. y     でリポジトリへの接続とインストール開始。

     4. 暫くすると Complete! でインストール完了です。

③ファイアーウォールの設定

   システム → 管理 → ファイアーウォールの設定 → 信頼したサービス

     一覧の中から メール(SMTP) にチェックを入れる

   システム → 管理 → ファイアーウォールの設定 → その他のポート

    一覧の中から  110 tcp
               110 udp
               143 tcp
               143 udp
               993 tcp
               993 udp
               995 tcp
               995 udp   を選ぶ → 適用 → 終了

④メールサービスの有効化および各種設定など


   --------- これより以降の設定は他の構築が済んでから再開しました。     ---------  
   --------- サーバーの中でもメールサーバーは大物級(難易度が高い)なので --------- 
   --------- 他に立ち上げるサーバーがあるのであれば               --------- 
   --------- 他を優先して立ち上げる事をオススメします。              ---------


⑤Postfixの設定(main.cfの編集)

   GNOME端末より

      # vi /etc/postfix/main.cf

        # INTERNET HOST AND DOMAIN NAMES
           (略)
        #myhostname = host.domain.tld
        #myhostname = virtual.domain.tld

        myhostname = mail.abc.xyz.com  →  メールサーバー名を追加(ホスト名ドメイン名)


        # The mydomain parameter specifies the local internet domain name.
           (略)
        #mydomain = domain.tld
        mydomain = abc.xyz.com  →  追加(ホスト名ドメイン名)


        # SENDING MAIL
           (略)
        #myorigin = $myhostname
        #myorigin = $mydomain
        myorigin = $myhostname
              →  追加(メール送信時に送信元メールアドレスの@以降にドメイン名を付加します)


        # RECEIVING MAIL
           (略)
        #inet_interfaces = $myhostname, localhost
        #inet_interfaces = localhost
        inet_interfaces = all  → 追加(外部からのメール受信を許可)


        # See also below, section "REJECTING MAIL FOR UNKNOWN LOCAL USERS".
           (略)
        mydestination = $myhostname, localhost.$mydomain, localhost

            →  コメントアウトします(# mydestination = $myhostname, localhost.$mydomain, localhost)

        mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain

            →  追加(メールが受信できるようになります)

        # Alternatively, you can specify the mynetworks list by hand, in
           (略)
        #mynetworks = 168.100.189.0/28, 127.0.0.0/8        
        mynetworks = 192.168.0.0/24, 127.0.0.0/8
                     →  LANのアドレスとローカルホストアドレスを設定


        # TRUST AND RELAY CONTROL
           (略)
        # mynetworks_style = subnet  →  コメントアウトを外します(mynetworks_style = subnet)
           (略)
        # relay_domains = $mydestination  →  コメントアウトを外します(relay_domains = $mydestination)


        # REJECTING MAIL FOR UNKNOWN LOCAL USERS
           (略)
        #local_recipient_maps = unix:passwd.byname $alias_maps
          →  サーバーに登録されたユーザーのみ受信する場合はコメントアウトを外します(#を取る)

           * 教育用などのサーバー構築に有効です。
           * 今回のサーバーの構築ではデフォルトの設定(#は付けたまま)にしました。


        # DELIVERY TO MAILBOX
           (略)
        #home_mailbox = Mailbox
        #home_mailbox = Maildir/
        home_mailbox = Maildir/  →  追加(メールボックス形式をMaildir形式にします)

           * メールボックス(Maildir)を各ユーザのホームディレクトリに配置します。


        # For details, see "man header_checks".
        #
        #header_checks = regexp:/etc/postfix/header_checks

            →  コメントアウトを外します(header_checks = regexp:/etc/postfix/header_checks)


        # SHOW SOFTWARE VERSION OR NOT
           (略)
        #smtpd_banner = $myhostname ESMTP $mail_name
        #smtpd_banner = $myhostname ESMTP $mail_name ($mail_version)
        smtpd_banner = $myhostname ESMTP unknown
                   →  追加(メールサーバ情報の隠蔽化)


        # INSTALL - TIME CONFIGURATION INFORMATION
           (略)
        sendmail_path = /usr/sbin/sendmail.postfix


    ---- 以下を最終行へ追加(SMTP-Authを有効にします。*印の付記は追加しません。) ----

           * メール送信時にユーザ名とパスワードで認証を行ない、
             迷惑メールの不正中継に利用されないようにします。

        # Enable SMTP Auth

         allow_percent_hack = yes  →  "user%domain" から "user@domain" への書き換えを有効にします。
         disable_vrfy_command = yes
             →  アカウント流出の防止(ローカルユーザの洗い出しを不可能にします)
         smtpd_sasl_auth_enable = yes  →  SMTP認証を有効にします。
         smtpd_sasl_local_domain = $myhostname
             →  SMTP認証するローカルドメインの指定
                 (上段にあるmyoriginの値と同じにします。
                     同じにしないとメーラーの認証でエラーが発生します。)

           * メールアドレスを user@abc.xyz.comにする場合は
             $mydomainを指定します。(myoriginの値も$mydomainにします。)

         smtpd_sasl_security_options = noanonymous, noplaintext

           * noanonymous : 匿名は許可しない
           * noplaintext    : 暗号化されていないパスワードは許可しない

         smtpd_recipient_restrictions =
                    permit_mynetworks,
                    permit_sasl_authenticated,
                    permit_auth_destination,
                    reject_unauth_destination

                       →  SMTP認証内容の設定(実際の記述は一行にします。
                            多い時には , と 半角ブランク で繋ぎます。)

           * permit_mynetworks : mynetworksで指定されたネットワークからを許可
           * permit_sasl_authenticated : SMTP認証を通過したものを許可
           * permit_auth_destination : 自サーバ宛のメールを許可
           * reject_unauth_destination : 上記設定以外は全て拒否

         broken_sasl_auth_clients = yes
         smtpd_client_restrictions = permit_mynetworks, reject_unknown_client, permit

             →  Authコマンドのサポートを認識できない
                    (Outlook Express 4 、 Exchange 5等)クライアント対応

         smtpd_sender_restrictions = reject_unknown_sender_domain

             →  送信者アドレスを制限

         message_size_limit = 10485760
            →  (受信メールサイズを10MB=10*1024*1024に制限)

      # postfix check  →  エラーをチェックします。

      # postfix reload  →  上記のチェックでエラーがなければリロードします。

           * エラーが出た場合は先達たちの意見を参考にします。
                             (エラーをコピペして目いっぱいググリます。)

        ---------------- エラー時のお助けコマンド ----------------

    # postconf  : 現在の設定ファイル( main.cf )の設定事項のみが表示されます。
    # postconf -n  : 設定ファイル( main.cf )で変更した設定のみを表示することができます。
    # postconf -d  : 設定ファイル( main.cf ) のデフォルト値を確認することができます。

    # vi /var/log/maillog  : メールメッセージの送受信によるエラーログを見ることができます。


⑥転送設定

   GNOME端末より

     # vi /etc/aliases

       # Person who should get root's mail
       #root: marc
       root: abc  →  ユーザー名abcを追加(ユーザ abc に転送)

     # newaliases  →  aliasesの読み込み(修正した内容を反映します)

⑦header_checksの設定(main.cfに対応)

   GNOME端末より

     # vi /etc/postfix/header_checks

        ---- 以下を最終行へ追加します ----

         /^Received:.*192\.168\..*/ IGNORE
         /^Received:.*127\.0\.0\.1.*/ IGNORE

           * メールのヘッダー部(Received行)に
                  ローカルIPアドレスが表示されないように設定を変更します。

⑧認証プログラムの設定(Cyrus SASL)

   GNOME端末より

     # vi /usr/lib/sasl2/smtpd.conf

         pwcheck_method: saslauthd  →  コメントアウトします
         pwcheck_method: auxprop  →  追加(/etc/sasldb2を参照に行きます)
         mech_list: plain login  →  コメントアウトします
         mech_list: plain login cram-md5 digest-md5  →  追加

     # vi /etc/sysconfig/saslauthd

         MECH=pam  →  コメントアウトします。(システムアカウントを利用した認証は使用しません。)

         FLAGS=  →  FLAGS=sasldb

           * SMTP認証にはシステムアカウントを利用する方法と、
             sasldb2を利用する方法があります。
             sasldb2では、システムアカウントとは異なるパスワードが設定できるので、
             sasldb2を利用した方がセキュリティを向上させます。


⑨SASLDBの作成とユーザー登録など

   GNOME端末より

     # saslpasswd2 -u mail.abc.xyz.com -c def
              →  ユーザ def を登録(ホスト名abcドメイン名xyz)

         Password:  →  パスワード
         Again (for verification):  →  パスワード(確認)

           * SASLのデータベースが /etc/sasldb2 として作成されます。

          ---------------- 変更処理 ----------------

           * パスワード変更

              # saslpasswd2 -u mail.abc.xyz.com def  →  ユーザ def のパスワードを変更
                Password:  →  パスワード
                Again (for verification):  →  パスワード(確認)

           * ユーザ削除

              # saslpasswd2 -u mail.abc.xyz.com -d def  →  ユーザ def を削除

           * ユーザ確認

              # sasldblistusers2

          ------------------------------------------------

     # chmod 600 /etc/sasldb2  →  パーミッションを変更
     # chown postfix:postfix /etc/sasldb2  →  権限の変更

           * SALSのデータベースをPostfixから参照できるようにしました。
           * root でも変更したい場合は、

              # chown root /etc/sasldb2
              # chmod 640 /etc/sasldb2
              # chgrp postfix /etc/sasldb2  のように設定します。

    (メールサーバ構築後はセキュリティ面で postfix:postfix(600) を推奨します。
       メールサーバ構築中は構築作業がし易い root:postfix(640) をオススメします。)

⑩Postfixの起動(sendmailからPostfixが標準MTAへ切り替え)

   GNOME端末より

     # /etc/rc.d/init.d/sendmail stop  →  sendmail の停止

     # chkconfig sendmail off  →  サーバー起動時にsendmailの自動起動設定解除。

     # chkconfig --list sendmail  →  sendmailの自動起動設定解除を確認

     # alternatives --config mta  →  システムで使用するメールサーバーを切替えます

           2 プログラムがあり 'mta'を提供します。

            選択 コマンド
           -----------------------------------------------
           *+ 1 /usr/sbin/sendmail.sendmail
            2 /usr/sbin/sendmail.postfix

           Enterを押して現在の選択[+]を保持するか、選択番号を入力します:2  →  2を入力しEnter

     # /etc/rc.d/init.d/postfix start  →  Postfixを起動

     # chkconfig postfix on  →  Postfixをサーバー起動時に自動で立ち上げます。

     # chkconfig --list postfix  →  Postfixの自動起動設定を確認

⑪Dovecotの設定(dovecot.confの編集)

   GNOME端末より

     # vi /etc/dovecot.conf

         # Protocols we want to be serving: imap imaps pop3 pop3s
         # If you only want to use dovecot-auth, you can set this to "none".
         #protocols = imap imaps pop3 pop3s
         protocols = imap imaps pop3 pop3s  →  追加

           (略)

         #
         #
         #mail_location =
         mail_location = maildir:~/Maildir  →  追加(メールボックスをMaildir形式にする)

⑫Dovecotの起動

   GNOME端末より

     # /etc/rc.d/init.d/dovecot start  →  Dovecotの起動

     # chkconfig dovecot on  →  Dovecotの自動起動設定

     # chkconfig --list dovecot  →  Dovecotの自動起動設定を確認


 ------------  ⑫までの構築を完了するとメールサーバーが受信したメールは、 ------------
 ------------  共有ディレクトリ /var/spool/mail/ユーザ名 というファイルに    ------------
 ------------  全てのメールが蓄積(格納)されるようになります。          ------------
 ------------  メーラーでtestメールを発信して「/var/spool/mail/ユーザ名」に  ------------
 ------------  受信メールの内容が有るのを確認してみましょう。          ------------


 ========  いよいよ、Maildir/ 形式への移行です。 ========


①Postfix を停止

   GNOME端末より

     # postfix stop

           * サーバーを再起動するとPostfix が自動起動し
                 メールを受信してしまうので注意しましょう。

②メールボックス作成

   GNOME端末より

     # mkdir -p /etc/skel/Maildir/{new,cur,tmp}

            →  新規ユーザ追加時に自動でMaildir形式メールボックス作成

     # chmod -R 700 /etc/skel/Maildir/

            →  メールボックスのパーミッションを700に設定

           * 新規ユーザ追加時に自動で home(ホームディレクトリ)に
                         Maildir形式のメールボックスが作成されます。

③rpm管理ツールのインストール

   GNOME端末より

     # yum -y install cpan2rpm

           →  PerlモジュールをRPMパッケージでインストール出来るようにします。

④Maildir変換ツールのインストール

   GNOME端末より

     # wget http://perfectmaildir.home-dn.net/perfect_maildir/perfect_maildir.pl -O /usr/local/bin/perfect_maildir.pl

        →  Maildir変換ツールのダウンロード

     # chmod +x /usr/local/bin/perfect_maildir.pl  →  Maildir変換ツールへ実行権限付与

⑤TimeDateモジュールのインストール(Maildir変換に必要です)

   GNOME端末より

     # yum install perl-TimeDate

⑥Maildir一括変換スクリプト作成

   GNOME端末より

     # vi migrate-maildir.sh

   ------------- 新規作成ファイル内容 --------------------------------

#!/bin/bash

#
#Maildir一括変換スクリプト
#

#メールボックス=>Maildir形式変換スクリプト
#http://perfectmaildir.home-dn.net/
FOLDERCONVERT=/usr/local/bin/perfect_maildir.pl

#一般ユーザリスト
USERLIST=`ls /home/`

#ログ
MIGRATELOG=/tmp/migrate-maildir.log
rm -f $MIGRATELOG

#引数(変換元メールボックス形式)チェック
if [ "$1" != "mbox" ] && [ "$1" != "Mailbox" ]; then
echo "Usage: migrate-maildir.sh {mbox|Mailbox}"
exit
fi

#一般ユーザメールボックス移行
for user in $USERLIST;
do
if [ "$1" = "mbox" ]; then
inbox="/var/spool/mail/${user}"
else
inbox="/home/${user}/Mailbox"
fi
if [ -f "${inbox}" ]; then
newdir="/home/${user}/Maildir/"
mkdir -p "$newdir"
mkdir -p "$newdir"/cur
mkdir -p "$newdir"/new
mkdir -p "$newdir"/tmp
chmod -R 700 "${newdir}"
$FOLDERCONVERT "$newdir" < "${inbox}" >> $MIGRATELOG 2>&1
chown -R ${user}. "$newdir"
find "$newdir" -type f -exec chmod 600 {} \;
fi
done

#rootユーザメールボックス移行
user="root"
if [ "$1" = "mbox" ]; then
inbox="/var/spool/mail/${user}"
else
inbox="/${user}/Mailbox"
fi
if [ -f "${inbox}" ]; then
newdir="/${user}/Maildir/"
mkdir -p "$newdir"
mkdir -p "$newdir"/cur
mkdir -p "$newdir"/new
mkdir -p "$newdir"/tmp
chmod -R 700 "${newdir}"
$FOLDERCONVERT "$newdir" < "${inbox}" >> $MIGRATELOG 2>&1
chown -R ${user}. "$newdir"
find "$newdir" -type f -exec chmod 600 {} \;
fi
[ -a $MIGRATELOG ] && cat $MIGRATELOG;rm -f $MIGRATELOG

   ---------------------------------------------------------------- 以上 -------

⑦メールデータ移行(共有ディレクトリ形式→Maildir形式)

   GNOME端末より

     # sh migrate-maildir.sh mbox  →  Maildir一括変換スクリプト実行

⑧Maildir移行スクリプト削除

   GNOME端末より

     # rm -f migrate-maildir.sh  →  Maildir一括変換スクリプト削除
     # rm -f /usr/local/bin/perfect_maildir.pl  →  Maildir変換ツール削除

⑨Postfix を起動

   GNOME端末より

     # postfix start

⑩動作確認

   お使いのメーラーを立ち上げ、送受信を確認します。

⑪mailサーバへのユーザー追加・ユーザー削除・転送方法

   --- ユーザー追加

     # useradd -s /sbin/nologin ユーザー名

   --- パスワード変更

     # passwd ユーザー名  
      New password: ********  →  パスワード入力
      Retype password:********  →  パスワード再入力

      passwd: all authentication tokens updated successfully

   --- ユーザー削除

     # userdel -r ユーザー名

   --- mail転送

     # vi .forword

       /home/ユーザー名
       xxxx@abcdef.com  →  転送先アドレス

     :wq


お疲れ様です。

まだまだ、機能などは他にも搭載しなければならないものもありますが、
送受信のベースが出来上がりました。

ココまでは順調(ではないか)にサーバーの導入が進んできたのですが、
本日大量にシステムのアップデータがありインストールしました。

ところが、あちらこちらのGUIが動作不能に陥ったではありませんか。
頼みのGUIもこれでは頼れません。
テキストモードではなんら問題ないので、
GUIを通して必要なファイルに書き込むインターフェースの部分が
クラッシュしてしまったのでしょう。
今のところ、立ち上げには問題も無さそうで、探す時間も無いので、
このまま暫くは放任放置ということで頭の片隅へ。

インストールが終わればリモート処理でのテキストモードになるので、
コマンドラインを覚える事にしましょう。

システム自体は動いているので、
コマンドラインを利用してインストール作業を進めることにしました。
(GUIでのGNOME端末は動いています。)

そこで、今必要な部分をチョコットお勉強。

①ランレベル---Fedoraの動作モード

 現在のランレベルの確認 : # runlevel または # who -r

  0  シャットダウン                             システムの停止
  1  シングルユーザーモード(rootのみ)               緊急時などに使用
  2  NFSを使わないマルチユーザーモード(テキストログイン)   場合により使用
  3  通常のマルチユーザーモード(テキストログイン)        使用
  4  未使用                                未使用
  5  グラフィカルログインによるマルチユーザーモード        使用
  6  再起動                                システムの再起動

 一時的にランレベルを変更(root管理者権限で)

   # init 3 : 番号を変更する。

②サービスの確認・起動・停止方法

  1. 起動しているサービスの確認

      # /sbin/chkconfig --list

    リストの一番左がサービス名で

     数字(ランレベル):on・off

    の順となり状態を表示しています。

  2. サービスの起動・停止

     例)
      # /sbin/chkconfig --level 2345 vsftpd on  (ランレベル サービス名 オプション)

       オプション : 起動:on /停止:off

まずはこんなところで、GNOME端末を使います。

FTPはWEBサーバーにコンテンツをアップロードするのに利用します。

早速インストールしましょう。

①GNOME端末 により(root管理者権限に移り)

  # yum install vsftpd  と入力します。

   Is this ok [y/n] で y と入力。

  暫くするとインストールが始まります。

  完了すると、 Complete! と表示されます。

②FTPサービスを有効にする。

  システム → 管理 → サービス → サービスの設定

    一覧の中から vsftpd にチェックを入れ → 起動 → 保存 → 終了

③ファイアーウォールの設定

   システム → 管理 → ファイアーウォールの設定 → 信頼したサービス

     一覧の中から FTP にチェックを入れ → 適用 → 終了

④Anonymous FTP の設定(機能の無効化)

   GNOME端末 により

    # su vi /etc/vsftpd/vsftpd.conf

     aonymous_enable=YES  →  NOに変更(利用する時にはYESに戻す)

⑤WindowsクライアントPCからのアクセス確認

   Filezilla などのソフトで、ホストの設定を行い接続を確認します。
    (UTF-8に対応していないソフトでは文字化けします)

    参考 2008-12-02 - FileZilla Client 3.1.6 released

おおっ、繋がりました。scorpius

以上でFTPサーバーの出来上がりです。
ここまで来ると、イッチョ前のサーバーになってきました。

SSHサーバーは既にインストール済みになっています。
これを使用することで、サーバーをリモートで操作出来るようになります。

まず端末で確認してみましょう。

①GNOME端末 により

  # rpm -qa | grep openssh と入力します。

    openssh-clients-5.1p1-3.fc10.i386
    openssh-server-5.1p1-3.fc10.i386
    openssh-askpass-5.1p1-3.fc10.i386
    openssh-5.1p1-3.fc10.i386

  と有ればOKです。

②SSHサービスを有効にする。
  通常はデフォルトで開始(稼動)している。

  システム → 管理 → サービス → サービスの設定

     一覧の中から sshd にチェックを入れ → 開始 → 終了

③SSHサービスにログインしてみる。

   GNOME端末 により

    # slogin localhost と入力します。 → yes → ログインパスワード

   Last login ・・・ と表示されれば使用可能です。

④rootログインを不許可にする。

  サーバーを侵入者から守る設定を施します。(乗っ取りの防止)

   GNOME端末 により root(# su -) ログインし

     # gedit /etc/ssh/sshd_config と入力します。

        (省略)

       #PermitRootLogin yes → PermitRootLogin no (root でのログインを禁止)

        (省略)

       #PasswordAuthentication yes → PasswordAuthentication no (通常パスワードの禁止)
       #PermitEmptyPasswords no → PermitEmptyPasswords no (空パスワードの禁止)

    へ修正し保存する。

⑤再起動

   システム → 管理 → サービス → サービスの設定

     サービス一覧から sshd を選び 再開始する。

 以上の作業により、root でのリモートログインが出来なくなります。
 これで、乗っ取りの脅威から、チョットだけ安心できます。catface

 SSHサーバーの設定は完全には完了していません。
 暗号化の設定などを、別途追記します。


プリンタサーバーは既にインストール済みになっています。
プリンタ共有には CUPS を使用します。

 システム → 管理 → 印刷

となっていれば登録されていますが、更に端末で確認してみましょう。

①GNOME端末 により

  # rpm -qa | grep cups と入力します。
   
    libgnomecups-0.2.3-4.fc10.i386
    cups-libs-1.3.9-2.fc10.i386
    cups-1.3.9-2.fc10.i386
    bluez-cups-4.17-2.fc10.i386
    cupsddk-drivers-1.2.3-5.fc10.i386
    hal-cups-utils-0.6.17-4.fc10.i386

  となっていればOKです。

②プリンタの登録

  今回は既にプリンタサーバーがLAN上に設置してある事を前提に、
  プリンタサーバーとしては使用せずに、共有プリンターが使用できる設定を行います。

     システム → 管理 → 印刷 → プリンター設定 → 新規

       LPD/LPR Host or Printer を選び
       ホスト にプリンタサーバーの ipアドレス を入れます。

     進む → プリンタードライバーを選択 → 画面の指示に従います。

      あとは、Windowsの設定とほぼ同じです。

  試しに、テストプリントを印刷してみましょう。

これで、プリンターが使用出来るようになりました。

ファイルサーバーの準備です。いよいよサーバーの仲間入り。

①Samba を導入

  システム → 管理 に Samba の項目が無い事を確認し、
  システム → 管理 → ソフトウェアの追加/削除 を選び、

   検索窓に Samba と入れ検索します。

  検索結果の中から、

   system-config-samba-1.2.67-1.fc10(noarch)

  を選びインストールします。

②GNOME端末 に移り

  # rpm -qa | grep samba と入力し、

   samba-winbid-3.2.5-0.23.fc10.i386
   samba-client-3.2.5-0.23.fc10.i386
   samba-common-3.2.5-0.23.fc10.i386
   samba-3.2.5-0.23.fc10.i386          → 追加
   system-config-samba-1.2.67-1.fc10.noarch  → 追加

  がインストールされている事を確認する。

③再起動

  システム → 管理 に Samba の項目が追加されています。

④Samba の設定

  システム → 管理 → Samba → プレファレンス → サーバーの設定

   ワークグループを設定(他のクライアントと同じにします) → OK

  システム → 管理 → Samba → プレファレンス → Sambaのユーザー

   1. ユーザーの追加をします。(Fedoraのインストールの時に登録したユーザーを選択)
   2. Windowsユーザー名は上記のユーザー名にします。
       (ユーザー名追加による追加変更可能です)
   3. パスワードを設定します。(クライアントからアクセスする時のパスワードになります)
   4. OKで保存します。

  システム → 管理 → Samba → 共有を追加 → 基本
   
   1. 公開可能なディレクトリを選択します。
   2. 共有名を必要に応じ書き換えます。
   3. 書き込み可能と可視にチェックを入れます。
   4. OKで保存

  システム → 管理 → Samba → 共有を追加 → アクセス

   1. アクセスを許可するユーザーを選びます。
   2. OKで保存

⑤Samba のサービスを有効にします

   システム → 管理 → サービス → サービスの設定

     一覧の中から smb + nmb を選びシステムを有効にします。

      * smb + nmb になったのはFC7からです。

⑥ファイアーウォールの設定

   システム → 管理 → ファイアーウォールの設定 → 信頼したサービス

     一覧の中から Samba にチェックを入れ → 適用 → 終了

⑦再起動

⑧確認作業

   GNOME端末により

     1. ifconfig コマンドでサーバーのアドレス(inet addr)の確認をします。

     2. firefoxブラウザのアドレスに上記のipアドレスを入力
          ¥¥ipアドレス と入力する(¥は2つとも半角で)

   ユーザー名とパスワードを入力し、
   接続されると画面にサーバーの共有名が表示され、
   続けて選択するとディレクトリが表示されます。

上記の設定は接続の確認用ですので、本番使用時には、
ユーザーが共有できるディレクトリを別に作成し開放します。

これで、ファイルサーバーが出来上がりました。beer

まだまだ、設定などを行わないと本格的なファイルサーバーにはなりませんが、
ベースが完成です。

いよいよパソコンからサーバーへ変身の始まりです。
ネットワークの設定はDHCPを使用しています。
(必要により固定ipアドレスの設定をします。)

①NetworkManager(ネットワークマネージャー)設定

   ネットワークを突然にオフラインにしたりなど、
   悪さをする駄々っ子なので使用方法の変更をします。

     システム → 管理 → ネットワーク → ネットワーク設定 → デバイス(タブ)

      1. 使用中のデバイスが起動中になっていることを確認。
      2. 編集を選びます。
      3. 全般(タブ)の中の

           NetworkManager で管理する。
           コンピューターの起動時にデバイスを起動

        にチェックを入れる。 → OK で保存

     システム → 管理 → サービス → サービスの設定

      1. NetworkManager

         サービスを無効 + サービスを停止   にする。

      2. network

         サービスを有効 + サービスを実行中  にする。

   これは初期設定というよりは、バグの回避処理ですねー。sad

②SELinuxの無効化

   セキュリティの確認には大変に有効なのでしょうが、インストール中に煩いので停止します。

     # vi /etc/sysconfig/selinux

   を実行し(root権限)、リストの途中にある

     SELINUX=enforcing  →  disabled  に修正し保存(:w:q)。


最後に再起動して再度サーバーの赤ちゃんを立ち上げましょう。

 確認作業

   GNOME端末により

     ifconfig コマンドでサーバーのアドレス(inet addr)の確認をします。有ればOK。
     ping コマンドで別のクライアント(パソコン)に繋がっているか確認しましょう。

ディスプレイの解像度を調整しましょう。

 GUIで操作します。

   システム → 設定 → ハードウェア → 画面の解像度 → モニタ解像度の設定

 とやれば本来なら動くはず、、、、、
 ところが、動かない。
 上手くいった人には関係のない事かも知れません。

① まず手始めに

  ソフトウェアの追加/削除 → システム  この中から

    「system-config-display-1.1.1-1.fc10 (noarch)」を選んでインストールします。

② 続いて

 GNOME端末 root管理者権限で

     /etc/X11/xorg.conf ファイルを直接修正します。

       * この方法は「黒画面」になり易いので細心の注意が必要です。
       * ③に入る前にディスプレードライバの仕様(解像度)と
          使用しているディスプレーの解像度を調べましょう。
       * 修正対象ファイルの修正前のコピーを必ず保存しましょう。

③ 内容は「 → 変更後 」の部分を修正します。
  例 : 解像度が1024x768の液晶ディスプレーです。

   # Xorg configuration created by system-config-display
   Section "ServerLayout"
     ・
     ・
     ・
     ・  (省略)
     ・
     ・
   Section "Monitor"
    Identifier "Monitor0"
    ModelName "LCD Panel 1024x768" → 変更後
    HorizSync 30.0 - 70.0 → 変更後
    VertRefresh 50.0 - 70.0 → 変更後
     ・
     ・
     ・
     ・  (省略)
     ・
     ・
    DefaultDepth 24
    SubSection "Display"
       Viewport 0 0
       Depth 24
       Modes "1024x768" "800x600" "640x480" → 変更後
    EndSubSection
EndSection

として保存します。

④ GUIで操作します。

   システム → 設定 → ハードウェア → 画面の解像度 → モニタ解像度の設定

おおっ感激ですね。cancer

ファイルを書き換えてさーどうだと再起動して待つと、突然に襲ってくる黒画面。
やって来ると、ビックリですね。
慌ててしまいますが、ここは落ち着いて、

①インストールCD1を用意しましょう。

②トレイに入れ再起動します。

③インストールモードになり「Welcome to Fedora」の画面になります。

   「Rescue installed system」を選んでEnter キーを押します。

④暫く画面の指示に従います。

 Choose a Language : Japanese → OK

 Language Unavailable  : OK

 Keyboard Type       :  jp106 → OK

 Setup Networking     :  NO

 Rescue             :  Continue

 Rescue             :  OK

⑤コマンド入力画面が表示されます。ここまでくれば一安心。トンネルから抜けた感じ。

  chroot /mnt/sysimage を実行。
  cd コマンドでディレクトリに移動してファイルの復旧にあたります。

 

Movable Type においてクロスサイトスクリプティングによる脆弱性が。

【対象のバージョン】

・Movable Type 4
・Movable Type 4 Enterprise
・Movable Type 4 Community Solution
・Movable Type 4 (Open Source)
・Movable Type 3
・Movable Type Enterprise 1.5

バージョンを上げると version 4.23-ja となります。

◆脆弱性に関する情報 Six Apart

私の小さなサイトには滅多に危険が及ぶものでもありませんが、用心に越したことありません。

rootユーザー権限領域へのパッケージのインストールなどにはGUI操作が使用出来ない時に必要になります。
必ずお役立ちのyumコマンドとrpmコマンドを少しばかり、覚えておきましょう。
ついでに、ソフトウェアの追加を高速にする方法も。shine

flairソフトウェアの追加/削除

 ユーザー(rootユーザー以外)領域はデスクトップにあるGUIで操作します。

  システム → 管理 → ソフトウェアの追加/削除

flairコマンドラインから行う場合は、
 GNOME端末を呼び出し、rootユーザー権限で(suコマンドで切り替え)。

 yumコマンド(インストール・アップデート・再インストールなど)

  yum install 「パッケージ名」          : パッケージをインストール
  yum update 「パッケージ名」         : パッケージをアップデート
  yum update --exclude=「パッケージ名」 : 指定パッケージを除いてアップデート
  yum remove 「パッケージ名」         : パッケージをアンインストール
  yum check-update           : プラグインが有効なパッケージ一覧を表示
  yum list                    : 利用可能なパッケージ一覧を表示
  yum list installed             : インストール済みのパッケージ一覧を表示
  yum clean all                : ダウンロードしたパッケージと古いヘッダを削除
  yum reinstall 「パッケージ名」        : パッケージを再インストール


 rpmコマンド(インストール・アンインストールなど)

  rpm -i 「パッケージ名」           : 新規インストール
  rpm -e 「パッケージ名」          : アンインストール
  rpm -ivh 「パッケージ名」 -v       : インストール・アンインストール時の情報を表示
  rpm -ivh 「パッケージ名」 -h       : インストール・アンインストール進行状況を '#' で表示
  rpm -ev --nodeps 「パッケージ名」  : 依存問い合わせをしないでアンインストール
  rpm -i --force --nodeps 「パッケージ名」  : 強制インストール
  rpm -qa 「パッケージ名」          : ファイルに含まれているファイルを表示

  * 似たようなコマンドが二つあってヤヤコシイナーなんて思ったりした人、居ませんか。
     パッケージ管理インターフェイス : 
         yum(Fedora派生) / rpm(RedHat派生) /apt(或いはdpkg/Debian派生)
      二つあったほうが、永い愛用者にも新しい開発者にも何かと便利なためでしょうか?。
      yumには「もぐもぐ美味ちぃ」の意味もあるそうです。

        yum : Yellowdog Updater Modified
        rpm : Red Hat Package Manager

flairソフトウェアの追加を高速にする

 # yum install yum-fastestmirror

    を実行しプラグインを追加しておきましょう。作業の効率アップになります。

    * yum-fastestmirror : ミラーリストから速いリポジトリを自動的に選択してくれるプラグイン。
    * リポジトリ : ソフトウェアの置いてある倉庫の意味

flairプラグインが有効になっているか調べるには

 # yum check-update

   を実行します。

   例えば上記の yum-fastestmirror であれば、

       Loaded plugins : fastestmirror,refresh-packagekit
        .....
   と表示されればOKです。
   これで次回のサーバー立ち上げ時には自動的に有効になっています。
   (まだただのパソコンでしたcoldsweats01

flairOSのアップデートをまず最初に実行します。

 チョット慣れた(?)コマンドを早速使ってみましょう。
 (最初にアップデートを行う事により作業の効率化とバグに遭遇する危険から少しだけ回避できます。
   残念な事に、アップデートをしたことによりバグ発生という事もあります、、、
    → この場合はfedoraのフォーラムにて解決策が見つかる事があります。)

  GNOME端末を呼び出します。

   # su  (rootユーザー管理権限+パスワード)

   # yum update  を入力(yum -y update でも良い)

  自動で始まりますので、暫く待ちます。 
  終了したら exit を入力しGNOME端末を終了させます。

flairパソコンを再起動しましょう。

 再起動して立ち上げれば、下ごしらえの完了です。

インストールが完了しホット一息。
早速、デスクトップとFirefoxブラウザを使ってみましょう。

あちこちカチカチとやりながら、何がどこにあるのかをざっと覚えます。
一昔前のLINUXと違ってGUIが充実しているのに驚きです。
ココまでのものがオープンソースで尚且つ無償提供されるとは更に驚きます。
更にアップデートも自動なのには脱帽です。

デスクトップ

①コマンドラインの操作(GNOME端末)

    アプリケーション → システムツール → 端末

②テキストエディタ(gedit)

    アプリケーション → アクセサリ → テキスト・エディタ

      日本語入力には Ctrl + スペース キーでAnthyツールバーを表示。

③書庫マネージャ

    アプリケーション → アクセサリ → 書庫マネージャ

       圧縮ファイルの解凍も出来ます。

などなど使えるツールがギッシリあります。

日本語表示のフォントなどは少ないので、IPAfontなどを入手して、ルートにあるfontsフォルダーに入れましょう。
此の場合は、コマンドラインの操作が便利です。
 su コマンドとルート権限のパスワードでユーザーを切り替え、
 cd コマンドで入手し解凍したフォントのあるディレクトリーに移動し、
 cp コマンドでfontsフォルダーにコピーします。
最後にexitで終了。
次にシステムの中の外観の設定でフォントを登録します。

Firefox ウェブブラウザ

IEと違ってHTMLコーディングの表示方法が厳格なためか、
WEBサイトのCSSファイルを上手く読み込んで無いかなど、
多くのWEBサイトの表示が上手く出ないところがあり、
IEに慣れてしまうと、何かと不便ですが、
こんなものかと慣れてしまえば、どうにかなるのでしょうか。
(うーん、でも、ちょっとストレス溜まるなー)shock
チョット見づらいのですが、文字サイズは小さめにしたほうが、画面表示は良さそうです。
目的はサーバーで、ブラウザは補助的にあれば良いのでよしとしましょう。

いよいよ、インストールです。
古いパソコンに必要なデータがある場合はバックアップを取りましょう。
(HDD全てにフォーマットしますのでデータが消えてしまいます。)

①まず、手始めに環境設定。パソコンのBIOSの設定画面を開きましょう。
 今回のsonyの機種は電源を入れて、F2キーを押すとBIOSの設定画面が立ち上がります。
 (BIOSの設定画面の立ち上げ方はメーカーや機種により異なります。)

 BOOT設定の中で、パソコンの立ち上げ時にROM(CD/DVD)が
 一番初めに読まれるように設定し保存します。
 これでインストールの最初の環境設定は完了です。

②続いてFedoraのインストールCDROM1をトレイに入れ、再起動します。
  自動的にFedoraのインストールが始まります。

③インストールが始まると
   HDDはチェックしますか?
   メモリーはチェックしますか?
  と聞いてきますが、今回はハード的なチェックは行わないで、全てスキップします。

④本インストール前に必ず実行したいCDROMのデータチェック。
  インストール開始のBOOT画面でEnterキーを押してCDFoundという画面を出し、
  OKボタンにカーソルを合わせ(デフォルト)Enterキーを押します。
  CDROMのチェックが始まります。書き込みにエラーがあるとErrorとなり、正常な場合は
  Successで終了します。
  もしErrorの場合は、同じサイトからダウンロードすると駄目な可能性があるので、
  別のサイトからダウンロードして焼き直し、再度チェックします。

  6枚全てチェックが完了したら、いよいよ本番インストールです。

  この Media Check 完了時に本来ならば Continue ボタンを押せば
  インストールが始まるはずなのですが、、、、、(バグ?)
  始まらない場合は 「Ctrl + Alt + Dell」 を押すと始まります。

⑤始まれば、後は画面の指示に従いインストールを進めます。

⑥容易にインストールは進むと思いますが、ポイントとしては、
  パーテーションの選択はデフォルトが無難です。
  ホスト名はデフォルト(localhost.localdomain)のままで。(後で変更)
  パッケージのインストールでは、オフィスとプロダクティビティのチェックをはずします。
   (必要に応じ後から追加する)

⑦後は画面の指示に従いCDROMを交換してじっと待ちます。
  待ち時間は掛かりますが、難なく完了。
  再起動ボタンを押しましょう。
  しばらくすると、BOOTローダーが動き出して、Fedoraの初期画面が表示されます。

⑧お疲れさま。happy01

ハードはこれまでwindows2000で稼動していたパソコンに決定。
2010年にはwindows7も発売になるのでそろそろ置き換え時。
これで我が家で稼動しているパソコンの中で一番古いos(windows2000)が無くなります。

聞くところによりますとwindows7はメモリ使用量がvistaに比べ軽くなり、
廉価な機種のパソコンでも動作可能なosになるとの情報もありますが、
さすがに此の機種にwindows7はBIOSがxpまでの対応なので無理かと。
いよいよLinuxでの再出発としマザーボードが壊れるまでは、まだまだ現役続行。

ハード

 pc      sony PCV-J15 をベース
 BIOS    1003(最新)
 cpu     800MHz AMD Duron プロセッサー
 メモリー   512MB(max)
 HDD     80GB
 クロック   200MHz(メモリーバスクロック:133MHz)
 消費電力  約57W(最大約220W、スタンバイ時約2.5W)

    低スペックなのですが消費電力が少ないのでお気に入りです。
    ファイルサーバーにする場合は更に大容量のHDDがオススメです。
    HDD容量を137GB以上にする場合、
    マシンのマザーボードのスペックにより
    容量137GB(128GB)が境目になりますので確認が必要です。(更に古いパソコンを除く)

ソフト → ダウンロード → CDROMへ展開

 os      Fedora 10
          のミラーサーバーサイトからCountry JP の中の
          Bandwidth が 2000 の Internet Initiative Japan Inc. の 
          → http を選択。更に 
          → releases/
          → 10/
          → Fedora/
          → i386/
          → iso/(あわてんぼさんはコチラ)

          と進み Fedora-10-i386-disc(1-6).iso をダウンロード。
          サーバーが休止している場合は上記のFedora 10より他のサイトへ移りダウンロードします。
          上記のサイトをオススメしましたが、
          どうやら(12/02現在)Fedora-10-i386-disc1のファイルにエラーがあるようです。
          なのでdisc1は下記のサイトをオススメします。

           → disc1

          ダウンロードしたらCDROMに焼きます。(6枚)

          (焼き方) 拡張子が iso のファイルはイメージファイルです。
                 CDROMに焼くときには、通常のデータ焼きで使用する、
                 汎用編集・データ編集では展開出来ません。(bootも出来ない)
                 必ず、トラック編集でこんがりと焼きましょう。bread

          また、同レベルのフォルダーにDVDバージョンやネットインストールバージョンもあります。
           別フォルダーに、Apple Macintosh用もあります。

          Fedoraは適時新バージョン(パッチ含)が出るので、Fedora Projectを随時要確認。

いよいよ、自宅にサーバーを構築します。
今より6年ほど前にwindows2000をベースでHTTPにはapacheを使用してサーバーを構築(現在未稼働)したことがありますが、
今回は、LinuxのFedoraをベースに自宅サーバーを構築します。

OSのLINUXには数々あり、いろいろバグが多いとかで不人気な部分もありますが、fedoraはここ2年間にバージョン5(2006年)から10へとUP(2008/11/20)し、fedoraのサイトを拝見して力(チカラ)入ってるなと感じ、今回、fedora に決定しました。

 構想 Fedora + dynamicDNS + apache + SSHサーバー + メールサーバー
       + FTPサーバー + プリンタサーバー + ファイルサーバー + PHP5
         + データベースサーバー(MySQL) + ファイアウォール + アプリケーション(ブログなど)

今後、構築の状況を発信します。

まずは、お知らせまで、、、、、、。flair