SSHサーバ(OpenSSH)

■ FC2~FC6 / Fedora7 / Fedora8 / Fedora9
SSHは、データの暗号化や公開鍵を利用した認証技術により安全なリモート管理やファイル転送を可能にするツールです。パスワードやデータの漏洩といった危険性が高いTelenetやFTPに代わって、リモート管理に良く使われるようになりました。接続方式にはSSH1とSSH2がありSSH2の方が、SSH1より強固な暗号化になっていますので、ここではSSH2を使用し鍵方式によるログインの設定を行います。
■OpenSSHの設定

OpenSSH設定ファイルを編集します
[root@linux ~]# vi /etc/ssh/sshd_config
スーパーユーザでのログインを禁止
#PermitRootLogin yes
↓
PermitRootLogin no  ← #を削除して no に変更
通常のパスワードではなく鍵方式に変更
#PasswordAuthentication yes
↓
PasswordAuthentication no  ← #を削除して no に変更
空パスワードの禁止
#PermitEmptyPasswords no
↓
PermitEmptyPasswords no  ← #を削除

■OpenSSHの再起動

[root@linux ~]# /etc/rc.d/init.d/sshd restart
sshdを停止中:                                             [  OK  ]
sshdを起動中:                                             [  OK  ]

■SSH2による鍵の作成

鍵を作成するユーザーで作業を進めます。
[root@linux ~]# su - higo
鍵の作成を行います
[higo@linux ~]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
何も入力しないでエンターキー押す
Enter file in which to save the key (/home/higo/.ssh/id_rsa):
Created directory '/home/higo/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/higo/.ssh/id_rsa.
Your public key has been saved in /home/higo/.ssh/id_rsa.pub.
The key fingerprint is:
7d:cb:ab:06:c6:bf:52:79:60:57:11:ae:f8:f3:b3:d0 higo@linux.yokensaka.com
鍵の作成先を表示します
[higo@linux ~]$ ls -la /home/higo/.ssh/
合計 20
drwx------  2 higo higo 4096 10月 28 02:31 .
drwx------ 21 higo higo 4096 10月 28 02:31 ..
-rw-------  1 higo higo 1743 10月 28 02:31 id_rsa      ← 秘密鍵
-rw-r--r--  1 higo higo  406 10月 28 02:31 id_rsa.pub  ← 公開鍵
公開鍵をauthorized_keysに追加します
[higo@linux ~]$ cat /home/higo/.ssh/id_rsa.pub >> /home/higo/.ssh/authorized_keys
公開鍵を自分のみアクセスできるように変更します
[higo@linux ~]$ chmod 600 /home/higo/.ssh/authorized_keys
公開鍵を削除します
[higo@linux ~]$ rm -f /home/higo/.ssh/id_rsa.pub
鍵の作成先を表示します
[higo@linux ~]$ ls -la /home/higo/.ssh/
合計 20
drwx------  2 higo higo 4096 10月 28 02:32 .
drwx------ 21 higo higo 4096 10月 28 02:31 ..
-rw-------  1 higo higo  406 10月 28 02:32 authorized_keys  ← 公開鍵
-rw-------  1 higo higo 1743 10月 28 02:31 id_rsa           ← 秘密鍵

■秘密鍵の抜き取り
1.フロッピーディスクにコピーする方法

 su - コマンドでスーパーユーザ(root)になる、ハイフン(-)を付けないと、
変更後のユーザー用環境が設定されない為、思い通りの操作が出来なくなります。
[higo@linux ~]$ su -
rootのパスワードを入力します。
Password:
[root@linux ~]#        ← スーパーユーザー root になった
フロッピーをマウント
[root@linux ~]# mount /media/floppy/
秘密鍵をフロッピーに移動
[root@linux ~]# mv /home/higo/.ssh/id_rsa /media/floppy/
フロッピーのマウントを解除
[root@linux ~]# umount /media/floppy/

2.FTPでコピーする方法

スーパーユーザ(root)になる。
[higo@fadora ~]$ su -
rootのパスワードを入力します。
Password:
FTPサーバをインストールします
[root@linux ~]# yum install vsftpd
Loading "installonlyn" plugin
Setting up Install Process
Setting up repositories
core                      100% |=========================| 1.1 kB    00:00
extras                    100% |=========================| 1.1 kB    00:00
updates                   100% |=========================| 1.2 kB    00:00
Reading repository metadata in from local files
Parsing package install arguments
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for vsftpd to pack into transaction set.
vsftpd-2.0.5-8.i386.rpm   100% |=========================|  16 kB    00:00
---> Package vsftpd.i386 0:2.0.5-8 set to be updated
--> Running transaction check
Dependencies Resolved
============================================================
Package                 Arch       Version          Repository        Size
============================================================
Installing:
vsftpd                  i386       2.0.5-8          core              137 k
Transaction Summary
============================================================
Install      1 Package(s)
Update       0 Package(s)
Remove       0 Package(s)
Total download size: 137 k
Is this ok [y/N]: y
Downloading Packages:
(1/1): vsftpd-2.0.5-8.i38 100% |=========================| 137 kB    00:00
warning: rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY, key ID 4f2a6fd2
Importing GPG key 0x4F2A6FD2 "Fedora Project "
Is this ok [y/N]: y
Importing GPG key 0xDB42A60E "Red Hat, Inc "
Is this ok [y/N]: y
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing: vsftpd                       ######################### [1/1]
Installed: vsftpd.i386 0:2.0.5-8
Complete!
FTPサーバを起動させます
[root@linux ~]# /etc/rc.d/init.d/vsftpd start
vsftpd 用の vsftpd を起動中:                               [  OK  ]

ここからは、クライアント(IP:192.168.1.3)のコマンドプロンプトで作業します。

Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
ローカルのカレントをC:\にしておきます
C:\Documents and Settings\client>cd \
C:\>
FTPでサーバに接続します
C:\>ftp 192.168.1.10
Connected to 192.168.1.10.
220 (vsFTPd 2.0.1)
ユーザ名を入力します
User (192.168.1.10:(none)): higo
331 Please specify the password.
パスワードを入力します
Password:
230 Login successful.
転送モードをバイナリモードにします
ftp> bin
200 Switching to Binary mode.
秘密鍵を取得します
ftp> get /home/higo/.ssh/id_rsa
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for /home/higo/.ssh/id_rsa (951 bytes).
226 File send OK.
ftp: 1,675 bytes received in 0.00Seconds 1675000.00Kbytes/sec.
サーバの秘密鍵を削除します
ftp> delete /home/higo/.ssh/id_rsa
250 Delete operation successful.
FTP接続を終了します
ftp> bye
221 Goodbye.
C:\>
ローカルの確認
C:\>dir
ドライブ C のボリューム ラベルがありません。
ボリューム シリアル番号は 8433-4372 です
C:\ のディレクトリ
2004/05/05  10:48     25 .DAT
2003/11/08  23:47 <DIR>  Apache Group
・
・
・
2006/10/27  18:20   1,675 id_rsa ← コピーされている
・
・
・
2006/09/18  05:52 <DIR>  Program Files
・
・
・
13 個のファイル        850,256 バイト
19 個のディレクトリ 9,977,475,072 バイトの空き領域
コマンドプロンプトを終了します
C:\>exit

■外部からの接続
外部からの接続には、ルーターの設定が必要です。
ルータの設定で22番のポートを開けてください。

ドメイン名でアクセス

■ FC2~FC6 / Fedora7 / Fedora8 / Fedora9
■内部ネットワーク(server)からドメイン名でアクセス
hosts ファイルを利用してドメイン名でアクセスできるようにする。
このファイルにはホスト名とIPアドレスの対応がホスト1台につき1行ずつ記述されている。「IPアドレス」、「ドメイン名」を空白やタブで区切って記述する。 hosts ファイルを編集。

[root@server ~]# vi /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1               localhost.localdomain localhost
::1             localhost.localdomain localhost
121.113.199.136         server.yokensaka.com server ← 現在のIPアドレスが記載されてる
↓
192.168.1.10           yokensaka.com server ← 内部ネットワークのIPアドレスとホストネームに変更
192.168.1.2             linux.yokensaka.com linux ← クライアントのIPアドレスとホストネームを追加
192.168.1.3             t-higo ← クライアント(Windows)のIPアドレスとホストネームを追加

ファイルを保存すると、内部ネットワーク(server)からドメイン名でアクセスできるようになる。
※Windowsのホストネームを調べるにはコマンドプロンプト(スタート→プログラム→アクセサリ→コマンドプロンプト)で、以下のコマンドを入力。

ipconfig /all

Host Nameに表示される英数字が、ホストネーム。
■内部ネットワーク(Windows)からドメイン名でアクセス
Windowsのメモ帳などのテキスト・エディタを起動して
「C:¥WINDOWS¥system32¥drivers¥etc¥hosts」ファイルを開く。開いたファイルに、対応したいドメインを「IPアドレス ドメイン」の順序に追加。IPアドレスは設置したサーバーのプライベートIPアドレスを指定。

# Copyright (c) 1993-1999 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
#      102.54.94.97     rhino.acme.com          # source server
#       38.25.63.10     x.acme.com              # x client host
127.0.0.1           localhost
192.168.1.10     yokensaka.com server ← サーバー機
192.168.1.2       linux.yokensaka.com linux ← 予備機(linux)
192.168.1.3       t-higo ← クライアント機(Win)

ファイルを保存すると、内部ネットワーク(Windows)からドメイン名でアクセスできるようになる。

インストール後の設定

■ FC2~FC6 / Fedora7 / Fedora8 / Fedora9
Fedora8まではインストールのときにファイアーウォールとSELinuxの設定が出来たが、Fedora9ではインストール段階では設定出来ない。いったんログオンしてから設定するようにする。コマンドを一つ一つ入力して作業を進めていくのが本筋なのだが、初めてだと結構入力ミスなどあり、思うようにうまくいかないことがある。そこでFedora のデスクトップ画面の上のタスクバーにある ウェブ・ブラウザ をクリックして、このページを開いてコピペで作業を進めるようにする。
また、コマンドを入力して進めていく場合は[Linuxコマンド集]を参考にする。まずは、アプリケーション→システムツールから端末を起動。
■ファイアーウォールの設定
ファイアーウォールはデフォルトで有効になっているが、各サーバの設定が正しいにも関わらず、ファイアウォールによって通信が遮断されてしまうことがあるので、 セキュリティーに関しては後から設定。

[root@linux ~]# system-config-firewall-tui

* セキュリティレベル無効 を選択して OK を押す。
■SELinuxの設定
SELinuxもデフォルトで有効になっている。こちらも無効にして構築。

[root@linux ~]# vi /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#   enforcing - SELinux security policy is enforced.
#   permissive - SELinux prints warnings instead of enforcing.
#   disabled - SELinux is fully disabled.
SELINUX=disabled ← SELINUXを無効。
# SELINUXTYPE= type of policy in use. Possible values are:
#   targeted - Only targeted network daemons are protected.
#   strict - Full SELinux protection.
SELINUXTYPE=targeted
設定を有効にする為再起動。
[root@linux ~]# reboot

SELinux を有効にすると、LInux の全てのユーザー(rootも含む)にさまざまな制限をかけることができ、 万が一rootが乗っ取られても影響を最小限にすることが出来る。本来はSELinuxを有効にするべきですが、 トラブル時の対応が複雑になる為、ここでは無効にする。
■一般ユーザーの作成(useradd、passwd)
ここでは(higo)というユーザを作成。

一般ユーザ(higo)を追加。
[root@linux ~]# useradd higo
一般ユーザーでログインするためにはパスワードを設定する必要がある。
[root@linux ~]# passwd higo
Changing password for user higo.
パスワードの入力(入力したパスワードは表示されない)
New UNIX password:
再入力を促されるので、もう一度入力。(上記のパスワードと同じ物を入れる)
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
ログアウト(GUIでは単に端末が閉じるだけ)
[root@linux ~]# exit

ユーザーの削除は userdel コマンドを使用。ユーザーの作成、削除はrootユーザーのみで実行できる。今後は、一般ユーザログオン後に su – コマンドでスーパーユーザになり、設定変更を行う。 Linuxへのログインはスーパーユーザのログインは止めること!
■日本語コードの変更(UTF-8 → eucJP)
一旦、 root からログアウトして、一般ユーザー(higo)でログイン。そして、 GNOME 端末 を起動。

 su - コマンドでスーパーユーザ(root)になる、ハイフン(-)を付けないと、
変更後のユーザー用環境が設定されない為、思い通りの操作が出来なくなる。
[higo@linux ~]$ su -
rootのパスワードを入力。
パスワード(P):
デフォルトのUTF-8コードをeucJPコードに変更。
[root@linux ~]# sed -i 's/UTF-8/eucJP/g' /etc/sysconfig/i18n
デフォルト文字コード変更確認。
[root@linux ~]# cat /etc/sysconfig/i18n
LANG="ja_JP.eucJP"
manコマンドで文字化け対応。
[root@linux ~]# sed -i 's/\/usr\/bin\/less -is/\/usr\/bin\/lv/g' /etc/man.config
manコマンドで文字化け対応の確認。
[root@linux ~]# grep "/usr/bin/lv" /etc/man.config
PAGER           /usr/bin/lv
BROWSER         /usr/bin/lv

■rootになれるユーザを制限
rootになれるユーザを管理者(higo)のみにする。vi というエディタで編集をすることになるが、 Windows に慣れた人は使い方が分からず戸惑う。最初は使い方が分からず、いろいろいじくりまわして、結局再インストールする羽目になったことがあった。とりあえず vi の基本のコマンドをまとめた。

rootになれるユーザを管理者(higo)のみにする
[root@linux ~]# vi /etc/group
rootになれるユーザ(higo)を追加。
wheel:x:10:root,higo
次に以下のファイルも vi で編集して保存。
[root@linux ~]# vi /etc/pam.d/su
#auth            required        pam_wheel.so use_uid
↓
auth            required        pam_wheel.so use_uid ← #をはずす。
次に以下のように入力して/etc/login.defs の最終行に SU_WHEEL_ONLY yes を追加。
[root@linux ~]# echo "SU_WHEEL_ONLY yes" >> /etc/login.defs

■ランレベル3(CUI)で起動させる
Linuxはサーバー用途で使用するので、本来なら X Window System は必要ない。常に X Window System を利用する必要が無いのであれば、以下のように /etc/inittab を編集。そうする事で次回起動時よりランレベル3(CUI)で起動できる。

inittabの編集
[root@linux ~]# vi /etc/inittab
#
# inittab       This file describes how the INIT process should set up
#               the system in a certain run-level.
        ・
        ・
id:5:initdefault:
  ↓
id:3:initdefault:  ← ランレベル5をランレベル3に変更。
これで次回起動時よりランレベル3(CUI)で起動できる。 

■X Window System
ランレベル3で起動後、一時的にX Window System を使いたいのであれば、startx コマンドを実行。( X Window System も何かと便利なので、この方法で運用することにした。)

[root@linux ~]# startx

■ホスト名を変更したい場合
インストールのとき設定したホスト名を後で変更したいときは、以下の設定ファイルを変更する事によって、ホスト名を変更する事ができる。 ホスト名の設定ファイルを変更。

[root@linux ~]# vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=localhost.localdomain
      ↓
HOSTNAME=linux.yokensaka.ddo.jp
      ↓
HOSTNAME=linux.yokensaka.com ←独自ドメインで運用するようにしたので変更
GATEWAY=192.168.1.1
OSを再起動
[root@linux ~]# reboot
ホスト名の表示
[root@linux ~]# hostname
新ホスト名になっている
linux.yokensaka.ddo.jp
      ↓
linux.yokensaka.com ←独自ドメイン名になっている

各サーバを構築してからホスト名を変更すると、各サーバが正常に動作しなくなる。ホスト名を変更したら、各サーバの設定ファイル内のホスト名も新ホスト名に変更する。また、各サーバーの設定ファイルを変更したらそのサーバを再起動する必要がある。(ホスト名の変更→各サーバの設定ファイルの変更→OSの再起動→動作確認)

Fedora 9 インストール

■Fedora 9 の取得
Fedora Projectのミラーサイトから(Fedora-9-i386-DVD)をダウンロードします。ダウンロードしたファイルは、ISOイメージファイルですので、別途DVD-Writerソフト等でDVD-Rに焼いて準備します。私は(Fedora-9-i386-DVD)をダウンロードしましたが、CPUの種類によってダウンロードする物が違ってきますから環境に合わせてください。ミラーサイトによってはかなり時間がかかる場合がありますので、なるべく早いサイトからダウンロードします。私は「ftp.riken.jp」からダウンロードしました。
Direct Download
i386 – Install DVD
x86_64 – Install DVD
ppc – Install DVD
Fedora リリースノート
■Fedora 9 のインストール
グラフィカルモード(GUI)でインストール作業を進めますが、サーバー用途で linux を使用する際には、X Window Systemを利用することをあまり推薦していません。なぜならGUIが余計なリソースを使用するからです。もし常にX Window Systemを利用する必要が無いのであれば、後で /etc/inittab を編集し、 “id:5:initdefault:” を “id:3:initdefault:” に変更します。そうする事で次回起動時よりランレベル3(CUI)で起動します。また、ランレベル3でX Window Systemを起動したい場合には、 startx コマンドを実行します。
1.インストーラーの起動
Fedora 9 のインストールDVDをDVD-ドライブに挿入し、電源を入れます。
※BIOSの設定で1番最初にDVDからブートできるようになっている必要があります。
* Install or upgrade an existing system を選択してエンターをキーを押します。
2.Choose a Language(インストール時の言語の選択)
* Japanese を選び、 OK を押します。
* ここでの言語の選択は、あくまでインストール作業を進めていくときに使用する言語の選択です。 実際にシステムを使用するときの言語選択に関しては、後で設定を行います。
3.Keyboard Type(キーボード設定)
* jp106 になっていることを確認して、 OK を押します。
4.Installation Method(インストールメディアの選択)
* Lacal CD/DVD を選び、 OK を押します。
5.Disk Found(CDメディアのテスト)
* Skip を選び、押します。
6.Welcomeメッセージ
* を押します。
7.ネットワークの設定
* 編集ボタン をクリックして、ネットワークデバイスを編集します。
* IPv4 サポートを有効にする: チェックを入れる
* 手動による設定: チェックを入れる
* IP アドレス: 192.168.1.2 / プレフィックス(ネットマスク):24
を入力
* IPv6 サポートを有効にする: チェックを外す
チェックを外したら をクリック
8. ホスト名・その他の設定
* ホスト名を設定は 手動設定 を選択して linux.yokensaka.com と入力
* ゲートウェイ : 192.168.1.1
* 1番目のDNS : 192.168.1.1
入力したら をクリック
1番目のDNSは通常サーバー自身をDNSサーバーとして設定するときにサーバー自身に割り当てた 192.168.1.2 をDNSサーバーアドレスとして設定します。 しかし、ここで 192.168.1.2 に設定するとインターネットに繋がらなくなり、wgetによるダウンロードができなくなる為、この段階では1番目のDNSは 192.168.1.1 とします。
9.タイムゾーンの選択
* アジア/東京 を選択して、 を押します。
10.Rootパスワードを設定
* Root パスワード : xxxxxxxx
* 確認 : xxxxxxxx
スーパーユーザ(Root)のパスワードを入力します。確認の為にもう一回同じパスワードを入力します。
入力したら をクリック
注意 : このパスワードは絶対に忘れない様に! 何もできなくなってしまいます。
11.ディスクパーティションの作成
* 選択したドライブ上のすべてのパーテーションを削除してデフォルトのレイアウトを作成します。を選択
*パーティションを自動設定にして を押します。
  ※システムを暗号化するという項目が選択できるようになっていますが、システムを暗号化すると、マシン起動時に必ずパスワードを求められるようです。サーバーとして使う分には、システム暗号化は必要ないかなと思った為、私はシステム暗号化は選択しませんでした。
* 警告メッセージが出ますが 変更をディスクに書き込む を押します。
12.ソフトウェアセットの選択
* 「今すぐカスタマイズする」を選択して を押します
13.ソフトウェアセットの選択
* デスクトップ環境  デフォルト
* アプリケーション  デフォルト
* 開発 開発ツール、開発ライブラリ を選択
* サーバ  デフォルト
* ベースシステム  デフォルト 
* 言語  デフォルト
サーバーを構築する際は極力不要なパッケージはインストールせず、すべてのチェックをはずして必要になったときにその都度インストールすべきですが、 ここでは、作業の行いやすさを考え、「開発」以外はデフォルトにして ボタンを押します。
14.インストールの準備完了
* を押してインストールを開始します。
15.パッケージのインストール
* インストール完了したらDVDドライブよりDVD-Rが自動的に排出されます。
16.インストール作業の終了
* 再起動 を押してインストールを終了します。
17.Fedora 9 の起動
* コンピューターの再起動が行われ、しばらくすると Fedora 9 が起動し、初期設定を行う画面が表示されます。
18.インストール後の初期設定
* ようこそ画面では 進む を押します。
19.ライセンス情報
* 進む を押します。
20.ユーザーの作成
* ここではそのまま 進む ボタンを押します。警告が表示されますので 続ける ボタンを押します。
ユーザーの追加は後でコマンドを使った方法で追加します。
21.日付と時刻
* 日付と時刻を 正しい設定 に変更して 進む を押します。
22.ハードウェアプロフィール
* ハードウェアーの情報を送信しても良い方は「プロフィールを送信する」を、送信したくない方は「プロフィールを送信しない」を選択して、進む を押します。
  *「プロフィールを送信しない」を選択した場合は再メッセージが出てきますので、「いいえ、送信しません」ボタンをクリック して、進む を押します。
23.ログイン
* ログイン画面が表示されたら、rootユーザーでログインしますので root と入力します。
* rootユーザーのパスワード ******** を入力し、 Enter を押します。
パスワードが正しければそのユーザーで作業が出来るように Fedora 9 のデスクトップ画面が表示されます。

パッケージ管理(yum)

■ Fedora7 / Fedora8 / Fedora9
yum(Yellow dog Updater, Modified)は、RPMパッケージを操作する為のソフトウェアです。 yumでは、依存関係があるパッケージも自動的にインストールされます。また、yumを利用する事によって、セキュリティーホールのアップデートや、バグフィックスパッケージも、より簡単に行う事が可能です。さらには、システム全体のアップデートも、より簡単に行う事が可能です。
■レポジトリについて
Fedoraは自由なソフトウェアのみを提供している為、MP3等のように特許によって保護されている技術を利用したソフトウェアを配布していません。特許によって保護された技術を利用したFedora用のソフトウェアはFreshRPMもしくはrpm.livna.org から提供されています。FreshRPMrpm.livna.orgの両方のレポジトリを同時に利用すると問題が発生する可能性がありますので、私はrpm.livna.orgを利用することにしました。
* Fedora9

[root@linux ~]# rpm -Uvh http://livna-dl.reloumirrors.net/fedora/9/i386/livna-release-9-1.noarch.rpm

* Fedora8

[root@linux ~]# rpm -Uvh http://livna-dl.reloumirrors.net/fedora/8/i386/livna-release-8-1.noarch.rpm

* Fedora7

[root@linux ~]# rpm -Uvh http://rpm.livna.org/fedora/7/i386/livna-release-7-2.noarch.rpm

■ミラーについて
Fedora Projectではミラーリストを用意しており、デフォルトで世界中のミラーに接続しにいきます。ただこのままだととんでもなく遅いサーバに接続しにいく場合があります。 Fedora7 になってから速いミラーを優先的に接続しにいくプラグインが提供されており、そのプラグインをインストールする事により、遅いサーバに接続する確立が非常に低くなります。そのプラグインをインストールするには以下のコマンドを入力してください。

[root@linux ~]# yum -y install yum-fastestmirror

■yumのデータベース情報更新
ローカルに保存されているrpmヘッダ情報を最新の情報に更新します。

yumのデータベース情報更新
[root@linux ~]# yum list
インストールパッケージの確認
[root@linux ~]# yum list installed

■アップデート情報の確認

アップデート情報の確認
[root@linux ~]# yum check-update

■一括アップデート
インストールされているパッケージを全てアップデートします。

パッケージの一括アップデート
[root@linux ~]# yum update

アップデートしてよいかの問い合わせに全て” y “で回答するためには -y オプションを指定します。

パッケージの一括アップデート
[root@linux ~]# yum -y update

■yumによるパッケージ更新時にエラーが表示される場合
yumコマンドでパッケージの更新を行った際に、エラーが表示されることがある。これはyumのデータベースが壊れていることが考えられるので、以下のコマンドを実行してyumのデータベースをクリアしてみる。

[root@linux ~]#  yum clean all
[root@linux ~]#  yum update

■その他のコマンド
パッケージのインストール

[root@linux ~]# yum install パッケージ名

パッケージのアップデート

[root@linux ~]# yum update パッケージ名

パッケージの検索

[root@linux ~]# yum search パッケージ名

パッケージの詳細表示

[root@linux ~]# yum info パッケージ名

パッケージのアンインストール

[root@linux ~]# yum remove パッケージ名

■yum-updatesdのサービスを停止
Fedora 7では、システムの起動時にyum-updatesdを実行し、1時間おきにアップデートパッケージの有無をチェックする為、このサービスが動作している間はyumコマンドが実行できません。cronでアップデートを行った時にyum-updatesdが動いているとうまくアップデートできない可能性があるので、yum-updatesdのサービスは停止します。

現在実行中のyum-updatesdを停止
[root@linux ~]# service yum-updatesd stop
yum-updates を停止中:                                      [  OK  ]
システム起動時のyum-updatesdの実行も停止
[root@linux ~]# chkconfig yum-updatesd off

■yum updateの定期自動実行設定

パッケージ自動更新スクリプト作成
[root@linux ~]# vi /root/yum_upgrade.sh
#!/bin/sh
/usr/bin/yum -y update yum > /dev/null 2>&1 ; \
/usr/bin/yum -y update > /dev/null 2>&1
パッケージ自動更新スクリプトへ実行権限付加
[root@linux ~]# chmod 700 /root/yum_upgrade.sh
自動で実行する為にcronに登録します
[root@linux ~]# crontab -e
00 06 * * * /root/yum_upgrade.sh

NTPサーバ(ntp)

■ FC2~FC6 / Fedora7 / Fedora8 / Fedora9
ここでは、自サーバをNTPサーバーとして立ち上げて、システム時刻を日本標準時間に合わせます。自サーバは、プロバイダーのNTPサーバより時刻を同期して、LAN内のクライアント、ルーターを自サーバの時刻と同期させるようにします。
■NTP がインストールされてるかどうか確認します。

[root@linux ~]# rpm -q ntp
ntp-4.2.4p4-6.fc9.i386  ← パッケージ情報が表示された
パッケージ情報が表示されなければNTPをインストールします。
[root@linux ~]# yum -y install ntp 

■NTPサーバーの設定

オリジナルの設定ファイル名を変更する。
[root@linux ~]# mv /etc/ntp.conf /etc/ntp.conf.org
NTPサーバーの設定ファイルを作成
[root@linux ~]# vi /etc/ntp.conf
driftfile /var/lib/ntp/drift
server ntp1.plala.or.jp  ← server には、プロバイダーのNTPサーバーを指定
server ntp2.plala.or.jp  ← セカンダリのNTPサーバーも指定しておきます

時刻同期先の公開NTPサーバーを調べるには、NTP/プロバイダ・機関別一覧を参照
利用しているISPがここに無い時は、推奨公開サーバを使用しましょう。
■NTPサーバーの起動

いったん、手動でNTPサーバの時刻と同期させる。
[root@linux ~]# ntpdate ntp1.plala.or.jp
16 May 21:31:05 ntpdate[19704]: step time server 219.164.211.129 offset -10.200102 sec
NTPサーバーの起動
[root@linux bin]# /etc/rc.d/init.d/ntpd start
ntpd を起動中:                                             [  OK  ]

■NTPサーバーの自動起動設定

[root@linux ~]# chkconfig ntpd on
[root@linux ~]# chkconfig --list ntpd
ntpd            0:off   1:off   2:on    3:on    4:on    5:on    6:off
           ランレベル2~5がオンの状態であることを確認

■NTPサーバーの動作確認

[root@linux ~]# ntpq -p
remote           refid      st t when poll reach   delay   offset  jitter
=============================================================
ntp1.plala.or.j 202.234.233.106  4 u   21   64    1    5.842   -0.011   0.001
ntp2.plala.or.j 202.234.233.106  4 u   20   64    1    6.185    0.383   0.001
指定したNTPサーバの前が空白の時は同期中の状態です。
約15分後、再度NTPサーバーの動作確認をします。
[root@linux ~]# ntpq -p
remote           refid      st t when poll reach   delay   offset  jitter
=============================================================
+ntp1.plala.or.j 202.234.233.109  4 u   12   64  377    4.913   25.310   8.021
*ntp2.plala.or.j 202.234.233.106  4 u   11   64  377    5.354   25.250   8.102
指定したNTPサーバの前に*や+が表示された時は同期完了の状態です。

■時刻同期設定
クライアントのPCで日付と時刻のプロパティ画面を表示し、「インターネット時刻」タブを表示します。 サーバの入力欄に自サーバのIPアドレス「192.168.1.2」を入力し「今すぐ更新」ボタンを押します。 最後に「OK」ボタンを押すと、以降、自サーバより時刻を同期するようになります。
※サーバーでファイアーウォールを有効にしている場合は、サーバーの「ファイアーウォール設定」で「他のポート」に「123:udp」を追記しておく必要があります。そうしないとクライアント側で同期に失敗します。
設定の方法はX Window Systemで起動し「アプリケーション・メニュー」から「システム設定」-「セキュリティレベル」を選択して「セキュリティレベルの設定ツール」を起動します。「セキュリティレベル」で「ファイアウォールを有効にする」を選択し、「他のポート」に「123:udp」と入力します。すでに他のポート設定が記述されてる場合は、カンマ記号(,)で区切って新しい設定を追記します。
  
ルータの設定でNTPサーバーのIPアドレスを自サーバーのIPアドレス「192.168.1.2」に変更します。  
これで、自サーバー、LAN内のWindowsマシン、ルーターの時刻が常に同期が取れてる状態で日本標準時間となるようになります。

IPアドレス自動更新スクリプト

■ Fedora7 / Fedora8 / Fedora9
DiCEのプロセスのCPUが常に高い使用率になってたので、DiCEを使わないでIPアドレスを自動更新させるようにしました。10分毎にIPアドレスをチェックして、IPアドレスに変更があった時のみDDNSサーバ(Dynamic DO!.jp)に対しIPアドレスの更新を行うようにします。

[root@server ~]# cd /usr ← /usr ディレクトリへ移動
[root@server usr]# mkdir -p ddns ← ddns ディレクトリの作成
[root@server usr]# cd ddns ← ddns ディレクトリへ移動

■ 自動更新スクリプトの作成  スクリプトはこちらのスクリプトを利用させて頂きました。

[root@server ddns]# vi ddo.jpIP_upgrade.pl
#!/usr/bin/perl
#
$CRT_IPF = '/usr/ddns/CRT_IP.dat';
$NEW_IPF = '/usr/ddns/NEW_IP.dat';
$LOG = '/var/log/ddns.log';
open INPUT,"$CRT_IPF";
$CRT_IP=<INPUT>;
close INPUT;
system("wget -q -O $NEW_IPF http://info.ddo.jp/remote_addr.php");
open(INPUT,$NEW_IPF);
$c = <INPUT>;
$stp = index($c,"REMOTE_ADDR:")+12;
$edp = length($c);
$NEW_IP = substr($c,$stp,($edp-$stp));
close(INPUT);
if ($NEW_IP ne "" and $CRT_IP ne $NEW_IP) {
open (OUTPUT ,">$CRT_IPF");
print OUTPUT $NEW_IP;
close OUTPUT;
print "IP Address update: $CRT_IP to $NEW_IP\n";
system("wget -q -O - 'http://ddo.jp/dnsupdate.php?dn=ドメイン&pw=パスワード'");
$now_string = localtime;
open (OUTPUT ,">>$LOG");
print OUTPUT "$now_string DDNS IP Address Updated. $CRT_IP to $NEW_IP\n";
close OUTPUT;
}

■ スクリプトに実行権限を与える

[root@server ddns]# chmod +x ddo.jpIP_upgrade.pl

■ スクリプトの起動

[root@server ddns]# cd
[root@server ~]# /usr/ddns/ddo.jpIP_upgrade.pl
IP Address update:  to 121.113.208.81
<html><body>
<a href="http://ddo.jp/">Dynamic DO!.jp</a><br>
SUCCESS: yokensaka.com <= [ 121.113.208.81 ]<br>
IPアドレス更新完了<br>
2007/06/23 18:45:52<br>
<input type="button" value="閉じる" onclick="window.close();">
</body></html>

■ プログラムを08分~58分の10分おきに自動実行できるようにcronの設定ファイルに追加

[root@server ~]# crontab -e
08,18,28,38,48,58 * * * * /usr/ddns/ddo.jpIP_upgrade.pl
00 07 * * 0 rm -f /usr/ddns/CRT_IP.dat

ddo.jpは、IPアドレス更新リクエストが毎時00分前後の数秒に集中しており、サーバ負荷の増大に伴い、その間の更新リクエストが失敗する場合ありますので、自動更新処理は毎時00分を避け08分~58分の10分おきに設定しました。また、日曜日の午前7時にCRT_IP.datを強制削除するようにして、次のチェックタイミングに自動更新を行うようにしました。
※ 追記 (2008/02/17)
■ 停電などで再起動させたとき自動で実行するように設定

[root@server ~]# vi /etc/rc.local ← システム起動時実行コマンド定義ファイル編集
以下を最終行へ追加
chmod +x /usr/ddns/ddo.jpIP_upgrade.pl
/usr/ddns/ddo.jpIP_upgrade.pl

画像ポップアップウィンドウにスクロールバーを表示

画像アップロード時に自動的にサムネイルを作成してくれるプラグイン「NP_Thumbnail バージョン: 3.0」を導入してますが、デフォルトでは画面より大きいサイズのものをアップした場合、スクロールバーが表示されない為、全部見ることが出来ません。(F11をクリックするとフルスクリーンモードになりスクロールバーが出てきて全部見ることは出来ますが)
最近画像サイズの大きいものをアップすることが多くなったので、画像ポップアップウィンドウにスクロールバーを表示するようにしました。
「NP_Thumbnail.php」の278行目と279行目を以下のように変更

scrollbars=no
↓
scrollbars=yes

Nucleus バージョン3.31sp1 にアップグレード

Nucleus バージョン3.31sp1 日本語版にアップグレードしました。バージョン3.31英語版で発見されたXSS脆弱性の修正を加えたバージョン3.32相当のコードが含まれているようです。
アップグレード手順
■ パッケージのダウンロード
フルパッケージとアップグレード用パッケージがありますのが、(v3.3)からのアップグレードなのでアップグレード用パッケージをダウンロードします。
EUC-JP版
http://prdownloads.sourceforge.jp/nucleus-jp/29273/upgrade3.31_ja_euc_sp1.zip
■ バックアップの作成
今まで使ってたデータベースとconfig.php のバックアップをとります。
■ ファイルの更新
upgrade3.31_ja_euc_sp1のファイル全てをサーバーにアップします。但し、コアファイル等の変更をしてますので、変更してたファイルは全てバックアップをとっておきます。ファイル更新後、必要な箇所全てを変更しなおします。
変更しているファイル
1)未来投稿記事の表示
nucleus/libs/BLOG.php
nucleus/libs/COMMENTS.php
nucleus/libs/globalfunctions.php
2)コメント内の自動リンク表示変更
nucleus/libs/COMMENT.php
3)エディタに機能ボタンを追加
nucleus/javascript/edit.js
nucleus/libs/PAGEFACTORY.php
nucleus/language/japanese-euc.php
4)Nucleusのカテゴリーの順番入れ替え
nucleus/libs/BLOG.php
nucleus/libs/ITEMACTIONS.php
■ アップグレードスクリプトの実行
下記 URL にアクセスしてアップグレードスクリプトを実行します。
http://yokensaka.com/fedora/nucleus/upgrades/index.php
実行すべきアップグレード手順のリストが表示されます。
これらのアップグレード手順を全て実行します。
これによりアップグレード後に必要となるデータベース(v3.31用)が構築されます。
セキュリティリスクを避けるため、upgrades ディレクトリはアップグレード後は削除します。

crond異常終了

Cron Daemonから毎日送られてくるメールが来ないので、なんかへんだと思い調べらた、crondが起動してない事が分かりました。今まではyumでupdateを行ってもcrondが異常終了するようなことはありませんでしたが、今回の原因はpamのアップデートにより、/etc/pam.d/crondのauthとsufficientの間にTABが混入したため異常終了したようです。
Fedoraはyumでupdateした場合プロセスの再起動も行われるものと思ってたんですが、再起動しないものもあるようですね。今回はサーバーの再起動で解決しましたが、基本的にサーバーなんてのは24時間電源入れっぱなしで再起動なんてめったにしませんから、せっかくupdateされても古いバージョンが走ってたりしてるかもしれません。
ということは、定期的にサーバーの再起動を行わないといけないのかもしれませんね。