yumのエラーメッセージ

Anacronから以下のメッセージが届いた

/etc/cron.daily/0yum.cron:
There are unfinished transactions remaining. You might consider running yum-complete-transaction first to finish them.

実行中のyumのトランザクションが残っているので yum-complete-transaction せよとのこと。昨日サーバのバックアップのことで色々と作業していたのが原因かも・・

[root@server1 ~]# yum-complete-transaction

yum update してみる

[root@server1 ~]# yum update
Loaded plugins: downloadonly, fastestmirror, priorities, refresh-packagekit, security
Loading mirror speeds from cached hostfile
* base: ftp.tsukuba.wide.ad.jp
* centosplus: ftp.tsukuba.wide.ad.jp
* epel: mirror01.idc.hinet.net
* extras: ftp.tsukuba.wide.ad.jp
* updates: ftp.tsukuba.wide.ad.jp
99 packages excluded due to repository priority protections
Setting up Update Process
No Packages marked for Update

特に問題なさそう。

アクセスログ解析(Awstats)

Awstats は視覚的に綺麗で、見やすいログ解析ツールだ。
日別・時間別・アクセス先など様々な統計情報を把握することが出来る。
Awstatsをインストールする前にRepoforgeリポジトリを追加しておく。
■Awstatsのインストール
以下のコマンドでAwstatsをインストールする。

[root@server1 ~]# yum -y install awstats

awstatsを使うには、perlも必要。perl -vと入力して、
以下のような情報が返ってくれば、perlはインストールされている。

[root@server1 ~]# perl -v
This is perl, v5.10.1 (*) built for i386-linux-thread-multi
Copyright 1987-2009, Larry Wall
Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.
Complete documentation for Perl, including FAQ lists, should be found on
this system using "man perl" or "perldoc perl".  If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.

■ Awstatsの設定ファイルの編集

まず不要な設定ファイルを削除しておく
[root@server1 ~]# rm -f /etc/awstats/awstats.localhost.localdomain.conf
[root@server1 ~]# rm -f /etc/awstats/awstats.`hostname`.conf
設定ファイルのコピー
[root@server1 ~]# cp /etc/awstats/awstats.model.conf /etc/awstats/awstats.yokensaka.com.conf
awstats.confを編集
[root@server1 ~]# vi /etc/awstats/awstats.yokensaka.com.conf
SiteDomain="localhost.localdomain"
 ↓
SiteDomain="yokensaka.com" ← 独自ドメイン名に変更
HostAliases="localhost 127.0.0.1"
 ↓
HostAliases="localhost 127.0.0.1 REGEX[^192\.168\.1\.]"   ← 内部からはスキップするように変更
DNSLookup=2
 ↓
DNSLookup=1 ← 1に変更(DNSの逆引きにする設定に変更)
#LoadPlugin="tooltips"
 ↓
LoadPlugin="tooltips" ← #を削除(該当する部分にマウスを当てるとヘルプが表示される。)
#LoadPlugin="geoipfree"
↓
LoadPlugin="geoipfree" ← #を削除(アクセス元の国情報を詳細に取得するように設定変更)
プラグイン「perl-Geo-IPfree」のダウンロード
[root@server1 ~]# wget http://pkgs.repoforge.org/perl-Geo-IPfree/perl-Geo-IPfree-0.8-1.el6.rf.noarch.rpm
perl-Geo-IPfreeのインストール
[root@server1 ~]# yum -y localinstall --nogpgcheck perl-Geo-IPfree-*.rpm
ダウンロードしたファイルを削除
[root@server1 ~]# rm -f perl-Geo-IPfree-*.rpm

■ awstats.plアクセス制限

[root@server1 ~]# vi /etc/httpd/conf.d/awstats.conf
<Directory /var/www/awstats/>
DirectoryIndex awstats.pl
Options ExecCGI
order deny,allow
deny from all
allow from all ← 追加
#allow from 127.0.0.1 ← コメントアウト
allow from xxx.xxx.xxx.xxx ← 特定の外部IP(xxx.xxx.xxx.xxx)からのアクセスを許可
</Directory>
Apache設定反映
[root@server1 ~]# /etc/rc.d/init.d/httpd restart
httpd を停止中:                                            [  OK  ]
httpd を起動中:                                            [  OK  ]

会社等からアクセスする場合、自分の会社の接続環境(IPアドレス)を調べ、/etc/hosts.allowへ登録する必要がある。そんな時は診断くんで確認できる。
■ ApacheログファイルからAWStatsのデータファイル作成

AWStatsデータベース初期作成スクリプト作成
[root@server1 ~]# vi awstatsinit.sh
#!/bin/sh
logfile=`grep ^LogFile /etc/awstats/awstats.$1.conf|sed -e 's/LogFile="\([^ ]*\)"/\1/p' -e d`
for log in `ls $logfile*|sort -r`
do
`rpm -ql awstats|grep "awstats\.pl"` \
-config=$1 -update -logfile=$log
done
AWStatsデータベース初期作成スクリプト実行
[root@server1 ~]# sh awstatsinit.sh yokensaka.com
Create/Update database for config "/etc/awstats/awstats.yokensaka.com.conf" by AWStats version 7.1 (build 1.983)
From data in log file "/var/log/httpd/access_log-20140706"...
Phase 1 : First bypass old records, searching new record...
Direct access to last remembered record has fallen on another record.
So searching new records from beginning of log file...
Jumped lines in file: 0
Parsed lines in file: 241447
Found 16 dropped records,
Found 0 comments,
Found 0 blank records,
Found 6 corrupted records,
Found 241425 old records,
Found 0 new qualified records.
Create/Update database for config "/etc/awstats/awstats.yokensaka.com.conf" by AWStats version 7.1 (build 1.983)
From data in log file "/var/log/httpd/access_log-20140629"...
Phase 1 : First bypass old records, searching new record...
Direct access to last remembered record is out of file.
So searching it from beginning of log file...
Jumped lines in file: 0
Parsed lines in file: 233838
Found 18 dropped records,
Found 0 comments,
Found 0 blank records,
Found 0 corrupted records,
Found 233820 old records,
Found 0 new qualified records.
Create/Update database for config "/etc/awstats/awstats.yokensaka.com.conf" by AWStats version 7.1 (build 1.983)
From data in log file "/var/log/httpd/access_log-20140622"...
Phase 1 : First bypass old records, searching new record...
Direct access to last remembered record has fallen on another record.
So searching new records from beginning of log file...
Jumped lines in file: 0
Parsed lines in file: 261127
Found 8 dropped records,
Found 0 comments,
Found 0 blank records,
Found 2 corrupted records,
Found 261117 old records,
Found 0 new qualified records.
Create/Update database for config "/etc/awstats/awstats.yokensaka.com.conf" by AWStats version 7.1 (build 1.983)
From data in log file "/var/log/httpd/access_log-20140615"...
Phase 1 : First bypass old records, searching new record...
Direct access to last remembered record has fallen on another record.
So searching new records from beginning of log file...
Jumped lines in file: 0
Parsed lines in file: 268241
Found 26 dropped records,
Found 0 comments,
Found 0 blank records,
Found 6 corrupted records,
Found 268209 old records,
Found 0 new qualified records.
Create/Update database for config "/etc/awstats/awstats.yokensaka.com.conf" by AWStats version 7.1 (build 1.983)
From data in log file "/var/log/httpd/access_log"...
Phase 1 : First bypass old records, searching new record...
Direct access to last remembered record is out of file.
So searching it from beginning of log file...
Phase 2 : Now process new records (Flush history on disk after 20000 hosts)...
Jumped lines in file: 0
Parsed lines in file: 48942
Found 2 dropped records,
Found 0 comments,
Found 0 blank records,
Found 2 corrupted records,
Found 48900 old records,
Found 38 new qualified records.
AWStatsデータベース初期作成スクリプト削除
[root@server1 ~]# rm -f awstatsinit.sh

■ httpdの設定ファイルの編集

httpdの設定ファイルの編集
[root@server1 ~]# vi /etc/httpd/conf/httpd.conf
長すぎるURI(414 Error)はログに記録しない
# The following directives define some format nicknames for use with
# a CustomLog directive (see below).
#
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
ログの記録内容変更
# logged therein and *not* in this file.
#
#CustomLog logs/access_log common
この下に以下を追加
SetEnvIf Request_URI "default\.ida" no_log
SetEnvIf Request_URI "cmd\.exe" no_log
SetEnvIf Request_URI "root\.exe" no_log
SetEnvIf Request_URI "Admin\.dll" no_log
SetEnvIf Request_URI "NULL\.IDA" no_log
SetEnvIf Remote_Addr 192.168.1 no_log
SetEnvIf Remote_Addr 127.0.0.1 no_log
CustomLog logs/access_log combined env=!no_log
以上で設定は完了、一度httpdを再起動させる。
[root@server1 ~]# service httpd restart
httpd を停止中:                                            [  OK  ]
httpd を起動中:                                            [  OK  ]

これで、/etc/cron.hourly/awstats が一時間毎に実行される。セットアップして1時間たってから、 http://サーバーアドレス/awstats/awstats.pl にアクセスすれば、解析結果が見れるようになる。
Error: Couldn’t open config file・・・というエラーが出る場合は
http://サーバーアドレス/awstats/awstats.pl?config=ドメイン名

自動実行設定変更

CentOS6でのcron/anacronが少々変わった。今までは# crontab -e で設定してたが、/etc/cron.dにて時間指定することにした。また、特に時間指定しなくても良さそうなものは/etc/cron.dailyにスクリプトを入れておく。
メインサーバ

[root@server1 ~]# echo "*/1 * * * * root /usr/ddns/ddo.jpIP_upgrade.pl" > /etc/cron.d/ddns
[root@server1 ~]# echo "0 2 * * * root /root/mysqldump.sh" > /etc/cron.d/mysqldump
[root@server1 ~]# echo "30 2 * * * root /root/backup.sh" > /etc/cron.d/backup
[root@server1 ~]# mv chkrootkit /etc/cron.daily/
[root@server1 ~]# mv clamscan /etc/cron.daily/
yumはyum-cronで自動更新
[root@server1 ~]# yum -y install yum-cron
[root@server1 ~]# /etc/rc.d/init.d/yum-cron start
[root@server1 ~]# chkconfig yum-cron on
[root@server1 ~]# chkconfig --list yum-cron
[root@server1 ~]# yum -y groupinstall "Base" "Development tools"
[root@server1 ~]# crontab -e
全て削除

予備サーバ

[root@server2 ~]# echo "30 3 * * * root /root/backuprsync.sh" > /etc/cron.d/backuprsync
[root@server2 ~]# echo "30 4 * * * root /root/backupshare.sh" > /etc/cron.d/backupshare
[root@server2 ~]# echo "30 5 * * * root /root/restore.sh" > /etc/cron.d/restore
[root@server2 ~]# echo "0 6 * * * root /root/mysqldump.sh" > /etc/cron.d/mysqldump
[root@server2 ~]# echo "30 6 * * * root /root/backup.sh" > /etc/cron.d/backup
[root@server2 ~]# mv chkrootkit /etc/cron.daily/
[root@server2 ~]# mv clamscan /etc/cron.daily/
yumはyum-cronで自動更新
[root@server2 ~]# yum -y install yum-cron
[root@server2 ~]# /etc/rc.d/init.d/yum-cron start
[root@server2 ~]# chkconfig yum-cron on
[root@server2 ~]# chkconfig --list yum-cron
[root@server2 ~]# yum -y groupinstall "Base" "Development tools"
[root@server2 ~]# crontab -e
全て削除

rootkit検知ツール(chkrootkit)

chkrootkit は、システムにrootkitが組み込まれていないかを検査してくれるツール。 rootkit とは、不正アクセスの痕跡を消し去り、それを隠ぺいし、さらなる標的を攻撃することを可能とするツール群。 chkrootkit は、いくつかの rootkit を検出できるが、 検出しても駆除する機能はない。しかし不正侵入検知には役立つ。
■chkrootkitのインストール

chkrootkitをインストール
[root@server1 ~]# yum -y install chkrootkit

■chkrootkitの実行

chkrootkitを実行
[root@linux ~]# chkrootkit
ROOTDIR is `/'
Checking `amd'... not found
Checking `basename'... not infected
Checking `biff'... not found
Checking `chfn'... not infected
・
・
・
Checking `scalper'... not infected
Checking `slapper'... not infected
Checking `z2'... user root deleted or never logged from lastlog!
Checking `chkutmp'... chkutmp: nothing deleted
[root@server1 ~]# chkrootkit | grep INFECTED
実行結果中に"INFECTED"という行がなければ問題ない

■chkrootkitの定期自動実行設定
rootkitを発見したときroot宛にメールが来るように設定

chkrootkitの実行スクリプトを作成
[root@server1 ~]# vi /root/chkrootkit
#!/bin/sh
/usr/bin/chkrootkit > /var/log/chkrootkit_log
grep "INFECTED" /var/log/chkrootkit_log
chmod 600 /var/log/chkrootkit_log
chkrootkitの実行スクリプトに実行権限を与える
[root@server1 ~]# chmod 700 chkrootkit
chkrootkit実行スクリプトを毎日自動実行されるディレクトリへ移動
[root@server1 ~]# mv chkrootkit /etc/cron.daily/

■chkrootkitで使用するコマンド群のコピー
chkrootkitが使用するコマンド群をコピーしておき、必要な場合にそのコマンド群でchkrootkitを実行する。

chkrootkitで使用するコマンド群の退避先ディレクトリの作成
[root@server1 ~]# mkdir chkrootkitcmd
chkrootkitで使用するコマンド群を退避先ディレクトリへコピー
[root@server1 ~]# cp `which --skip-alias awk cut echo egrep find head id ls netstat ps strings sed uname` chkrootkitcmd/
退避したchkrootkitでchkrootkit実行
[root@server1 ~]# chkrootkit -p /root/chkrootkitcmd|grep INFECTED
chkrootkitで使用するコマンド群の退避先ディレクトリを圧縮
[root@server1 ~]# zip -r chkrootkitcmd.zip chkrootkitcmd/
adding: chkrootkitcmd/ (stored 0%)
adding: chkrootkitcmd/id (deflated 55%)
adding: chkrootkitcmd/egrep (deflated 49%)
adding: chkrootkitcmd/sed (deflated 54%)
adding: chkrootkitcmd/netstat (deflated 58%)
adding: chkrootkitcmd/echo (deflated 54%)
adding: chkrootkitcmd/find (deflated 50%)
adding: chkrootkitcmd/awk (deflated 51%)
adding: chkrootkitcmd/head (deflated 53%)
adding: chkrootkitcmd/strings (deflated 53%)
adding: chkrootkitcmd/ps (deflated 59%)
adding: chkrootkitcmd/uname (deflated 55%)
adding: chkrootkitcmd/ls (deflated 53%)
adding: chkrootkitcmd/cut (deflated 53%)
退避先ディレクトリの削除
[root@server1 ~]# rm -rf chkrootkitcmd
圧縮したzipファイルを送信するのに必要なuuencodeコマンドのインストール
[root@server1 ~]# yum -y install sharutils
Loaded plugins: fastestmirror, refresh-packagekit
Loading mirror speeds from cached hostfile
* base: ftp.jaist.ac.jp
* centosplus: ftp.jaist.ac.jp
* epel: ftp.jaist.ac.jp
* extras: ftp.jaist.ac.jp
* updates: mirror.khlug.org
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package sharutils.i686 0:4.7-6.1.el6 set to be updated
--> Finished Dependency Resolution
Dependencies Resolved
===================================================================================================================
Package                      Arch                    Version                        Repository               Size
===================================================================================================================
Installing:
sharutils                    i686                    4.7-6.1.el6                    base                    186 k
Transaction Summary
===================================================================================================================
Install       1 Package(s)
Upgrade       0 Package(s)
Total download size: 186 k
Installed size: 609 k
Downloading Packages:
sharutils-4.7-6.1.el6.i686.rpm                                                              | 186 kB     00:00
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing     : sharutils-4.7-6.1.el6.i686                                                                  1/1
Installed:
sharutils.i686 0:4.7-6.1.el6
Complete!
圧縮したzipファイルをroot宛にメール送信
[root@server1 ~]# uuencode chkrootkitcmd.zip chkrootkitcmd.zip|mail root
圧縮したzipファイルを削除
[root@server1 ~]# rm -f chkrootkitcmd.zip

■chkrootkitの修正
Suckit による /sbin/init の改ざん誤検知対策。
rpm -V `rpm -qf /sbin/init` を実行し、なにも表示されなかったら未検出とする。
赤字の部分が追加

[root@server1 ~]# vi /usr/lib64/chkrootkit-0.49/chkrootkit
### Suckit
if [ -f ${ROOTDIR}sbin/init ]; then
if [ "${QUIET}" != "t" ];then printn "Searching for Suckit rootkit... "; fi
if [ ${SYSTEM} != "HP-UX" ] && ( ${strings} ${ROOTDIR}sbin/init | ${egrep} HOME  || \
cat ${ROOTDIR}/proc/1/maps | ${egrep} "init." ) >/dev/null 2>&1
then
if ! rpm -V `rpm -qf /sbin/init` >/dev/null 2>&1;
then
echo "Warning: ${ROOTDIR}sbin/init INFECTED"
fi
else
if [ -d ${ROOTDIR}/dev/.golf ]; then
echo "Warning: Suspect directory ${ROOTDIR}dev/.golf"
else
if [ "${QUIET}" != "t" ]; then echo "nothing found"; fi
fi
fi
fi

パッケージ管理(yum)

yum(Yellow dog Updater, Modified)は、RPMパッケージを操作する為のソフトウェア。 yumでは、依存関係があるパッケージも自動的にインストールされる。また、yumを利用する事によって、セキュリティーホールのアップデートや、バグフィックスパッケージも、より簡単に行う事が可能。さらには、システム全体のアップデートも、より簡単に行う事が可能。
■ レポジトリについて
RedHatのサポートするEPELとCentOSで提供されていないパッケージが多く提供されているRepoForgeを追加する事にする。
Extra Packages for Enterprise Linux (EPEL) とは従来 Fedora だけに提供されていた Fedora Extras のパッケージを Red Hat Enterprise Linux (RHEL) に提供することで、 Fedora から RHEL への移行や、 Fedora から CentOS や Scientific Linux 等の RHEL クローンへの移行を容易にするためのプロジェクト。Repoforgeとは、以前のRPMforgeの新しいプロジェクト名で、CentOSで提供されていないパッケージが多く提供されている。なお、標準リポジトリとEPELリポジトリ、Repoforgeの両方で提供されるパッケージについては、標準リポジトリのパッケージが優先されるようにyum-prioritiesプラグインを導入する。
■ yum-prioritiesのインストール
yum-plugin-prioritiesとは、サードパーティ製のリポジトリを追加した際にどちらを優先するか優先順位をつけるプラグイン。

[root@server1 ~]# yum -y install yum-plugin-priorities

設定ファイル/etc/yum/pluginconf.d/priorities.confを変更

[root@server1 ~]# vi /etc/yum/pluginconf.d/priorities.conf
[main]
enabled = 1
check_obsoletes = 1 ← 追加

■ CentOS-Base.repoの編集
CentOS-Base.repoは優先度を高く(priority=1)しておく。

[root@server1 ~]# vi /etc/yum.repos.d/CentOS-Base.repo
# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client.  You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the
# remarked out baseurl= line instead.
#
#
[base]
priority=1 ← 追加 priorityとは優先度で、1の方が優先度は高くなる。(未設定の場合は99)
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
#released updates
[updates]
priority=1 ← 追加
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
#additional packages that may be useful
[extras]
priority=1 ← 追加
name=CentOS-$releasever - Extras
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
#additional packages that extend functionality of existing packages
[centosplus]
priority=1 ← 追加
name=CentOS-$releasever - Plus
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=1 ← 0から1に変更
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
#contrib - packages by Centos Users
[contrib]
name=CentOS-$releasever - Contrib
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib
#baseurl=http://mirror.centos.org/centos/$releasever/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

■ EPELリポジトリのインストール
※このサイトのphpMyAdmin、Clam AntiVirusはEPELリポジトリのものを使っている。

[root@server1 ~]# rpm --import http://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-6
[root@server1 ~]# rpm -ivh http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
[root@server1 ~]# rm -f epel-release-* ← ダウンロードしたファイルを削除

※64Bit版はhttp://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpmこちら
■ epel.repoを確認
EPELは優先度を低く(priority未設定)して有効(enabled=1)に設定。

[root@server1 ~]# vi /etc/yum.repos.d/epel.repo
[epel]
name=Extra Packages for Enterprise Linux 6 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
failovermethod=priority
enabled=1 ← 1になってることを確認
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
[epel-debuginfo]
name=Extra Packages for Enterprise Linux 6 - $basearch - Debug
#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch/debug
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-debug-6&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
gpgcheck=1
[epel-source]
name=Extra Packages for Enterprise Linux 6 - $basearch - Source
#baseurl=http://download.fedoraproject.org/pub/epel/6/SRPMS
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-source-6&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
gpgcheck=1

■ Repoforgeリポジトリのインストール
※このサイトのAwstatsは Repoforgリポジトリのものを使っている

[root@server1 ~]# rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt
[root@server1 ~]# rpm -ivh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.i686.rpm
[root@server1 ~]# rm -f rpmforge-release-* ← ダウンロードしたファイルを削除

※64Bit版はhttp://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpmこちら
■ Repoforgeを確認
Rpmforgeは必要なときだけ使うので優先度を高く(priority=1)して無効(enabled=0)に設定。

[root@server1 ~]# vi /etc/yum.repos.d/rpmforge.repo
### Name: RPMforge RPM Repository for RHEL 6 - dag
### URL: http://rpmforge.net/
[rpmforge]
name = RHEL $releasever - RPMforge.net - dag
baseurl = http://apt.sw.be/redhat/el6/en/$basearch/rpmforge
mirrorlist = http://apt.sw.be/redhat/el6/en/mirrors-rpmforge
#mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge
enabled = 0 ← 0 必要なときだけに 1 に設定
protect = 0
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag
gpgcheck = 1
priority = 1 ← 追加 1の方が優先度は高くなる。(未設定の場合は99)
[rpmforge-extras]
name = RHEL $releasever - RPMforge.net - extras
baseurl = http://apt.sw.be/redhat/el6/en/$basearch/extras
mirrorlist = http://apt.sw.be/redhat/el6/en/mirrors-rpmforge-extras
#mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge-extras
enabled = 0
protect = 0
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag
gpgcheck = 1
[rpmforge-testing]
name = RHEL $releasever - RPMforge.net - testing
baseurl = http://apt.sw.be/redhat/el6/en/$basearch/testing
mirrorlist = http://apt.sw.be/redhat/el6/en/mirrors-rpmforge-testing
#mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge-testing
enabled = 0
protect = 0
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag
gpgcheck = 1

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

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

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

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

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

パッケージの一括アップデート
[root@server1 ~]# yum update
アップデートしてよいかの問い合わせに全て" y "で回答するためには -y オプションを指定。
パッケージの一括アップデート
[root@server1 ~]# yum -y update

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

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

■ その他のコマンド

パッケージのインストール
[root@server1 ~]# yum install パッケージ名
パッケージのアップデート
[root@server1 ~]# yum update パッケージ名
パッケージの検索
[root@server1 ~]# yum search パッケージ名
パッケージの詳細表示
[root@server1 ~]# yum info パッケージ名
パッケージのアンインストール
[root@server1 ~]# yum remove パッケージ名

■ yumのパッケージ自動更新設定
CentOS 5 は yum-updatesd だったが CentOS 6 では yum-cron に変わったので yum-cron をインストール。

yum-cron のインストール
[root@server1 ~]# yum -y install yum-cron
パッケージ自動更新 yum-cron の起動
[root@server1 ~]# /etc/rc.d/init.d/yum-cron start
夜間 yum 更新の有効化中:                                   [  OK  ]
パッケージ自動更新 yum-cron の自動起動設定
[root@server1 ~]# chkconfig yum-cron on
[root@server1 ~]# chkconfig --list yum-cron
yum-cron        0:off   1:off   2:on    3:on    4:on    5:on    6:off
サーバ管理に必要なベースパッケージ群と開発ツールパッケージ群をインストール
[root@server1 ~]# yum -y groupinstall "Base" "Development tools"

TripwireをYumでインストール

TripwireをYumでインストールする場合、EPELリポジトリを追加しておく。
古いTripwireが残ってる場合はアンインストールしておく

[root@server1 ~]# yum remove tripwire
下記コマンドで検索して出てきたものは全て削除しておく(ディレクトリー「rm -rf」、ファイル「rm -f」)
[root@server1 ~]# find /* | grep tripwire

■Tripwireのインストール

[root@server ~]# yum install tripwire
Loaded plugins: fastestmirror, refresh-packagekit
Loading mirror speeds from cached hostfile
epel/metalink                                                                | 2.9 kB     00:00
* base: www.ftp.ne.jp
* centosplus: www.ftp.ne.jp
* epel: ftp.riken.jp
* extras: www.ftp.ne.jp
* updates: www.ftp.ne.jp
base                                                                         | 3.7 kB     00:00
centosplus                                                                   | 3.5 kB     00:00
epel                                                                         | 4.3 kB     00:00
epel/primary_db                                                              | 4.2 MB     00:03
extras                                                                       | 3.5 kB     00:00
updates                                                                      | 3.5 kB     00:00
updates/primary_db                                                           | 4.3 MB     00:01
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package tripwire.i686 0:2.4.1.2-11.el6 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
====================================================================================================
Package                Arch               Version                         Repository          Size
====================================================================================================
Installing:
tripwire               i686               2.4.1.2-11.el6                  epel               1.2 M
Transaction Summary
====================================================================================================
Install       1 Package(s)
Total download size: 1.2 M
Installed size: 3.7 M
Is this ok [y/N]: y
Downloading Packages:
tripwire-2.4.1.2-11.el6.i686.rpm                                             | 1.2 MB     00:01
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : tripwire-2.4.1.2-11.el6.i686                                                     1/1
Verifying  : tripwire-2.4.1.2-11.el6.i686                                                     1/1
Installed:
tripwire.i686 0:2.4.1.2-11.el6
Complete!

■tripwireの初期設定

[root@server ~]# tripwire-setup-keyfiles
----------------------------------------------
The Tripwire site and local passphrases are used to sign a  variety  of
files, such as the configuration, policy, and database files.
Passphrases should be at least 8 characters in length and contain  both
letters and numbers.
See the Tripwire manual for more information.
----------------------------------------------
Creating key files...
(When selecting a passphrase, keep in mind that good passphrases typically
have upper and lower case letters, digits and punctuation marks, and are
at least 8 characters in length.)
Enter the site keyfile passphrase: ← サイトパスフレーズを設定
Verify the site keyfile passphrase: ← サイトパスフレーズを再度入力
Generating key (this may take several minutes)...Key generation complete.
(When selecting a passphrase, keep in mind that good passphrases typically
have upper and lower case letters, digits and punctuation marks, and are
at least 8 characters in length.)
Enter the local keyfile passphrase: ← ローカルパスフレーズを設定
Verify the local keyfile passphrase: ← ローカルパスフレーズを再度入力
Generating key (this may take several minutes)...Key generation complete.
----------------------------------------------
Signing configuration file...
Please enter your site passphrase: ← サイトパスフレーズを入力
Wrote configuration file: /etc/tripwire/tw.cfg
A clear-text version of the Tripwire configuration file:
/etc/tripwire/twcfg.txt
has been preserved for your inspection.  It  is  recommended  that  you
move this file to a secure location and/or encrypt it in place (using a
tool such as GPG, for example) after you have examined it.
----------------------------------------------
Signing policy file...
Please enter your site passphrase: ← サイトパスフレーズを入力
Wrote policy file: /etc/tripwire/tw.pol
A clear-text version of the Tripwire policy file:
/etc/tripwire/twpol.txt
has been preserved for  your  inspection.  This  implements  a  minimal
policy, intended only to test  essential  Tripwire  functionality.  You
should edit the policy file to  describe  your  system,  and  then  use
twadmin to generate a new signed copy of the Tripwire policy.
Once you have a satisfactory Tripwire policy file, you should move  the
clear-text version to a secure location  and/or  encrypt  it  in  place
(using a tool such as GPG, for example).
Now run "tripwire --init" to enter Database Initialization  Mode.  This
reads the policy file, generates a database based on its contents,  and
then cryptographically signs the resulting  database.  Options  can  be
entered on the command line to specify which policy, configuration, and
key files are used  to  create  the  database.  The  filename  for  the
database can be specified as well. If no  options  are  specified,  the
default values from the current configuration file are used.

■Tripwireの設定

[root@server ~]# 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
↓
LOOSEDIRECTORYCHECKING =true
MAILNOVIOLATIONS       =true
EMAILREPORTLEVEL       =3
REPORTLEVEL            =3
↓
REPORTLEVEL            =4
MAILMETHOD             =SENDMAIL
SYSLOGREPORTING        =false
MAILPROGRAM            =/usr/sbin/sendmail -oi -t
設定ファイル(テキスト版⇒暗号署名版)を作成
[root@server ~]# twadmin -m F -c /etc/tripwire/tw.cfg -S /etc/tripwire/site.key /etc/tripwire/twcfg.txt
Please enter your site passphrase: ← サイトパスフレーズを入力
Wrote configuration file: /etc/tripwire/tw.cfg
セキュリティ確保のため設定ファイル(テキスト版)を削除
[root@server ~]# rm -f /etc/tripwire/twcfg.txt
設定ファイル(テキスト版)を復活させる場合は以下のコマンドで復活できる
[root@server~]# twadmin --print-cfgfile > /etc/tripwire/twcfg.txt

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

ポリシーファイルの最適化スクリプトを作成
[root@server ~]# 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 (<POL>) {
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) ;
ポリシーファイルの最適化
[root@server ~]# perl /etc/tripwire/twpolmake.pl /etc/tripwire/twpol.txt > /etc/tripwire/twpol.txt.new
ポリシーファイル(暗号署名版)を作成
[root@server ~]# 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
ポリシーファイル(テキスト版)を削除
[root@server ~]# rm -f /etc/tripwire/twpol.txt*
ポリシーファイル(テキスト版)を復活させる場合は以下のコマンドで復活できる
[root@server ~]# twadmin -m p -c /etc/tripwire/tw.cfg -p /etc/tripwire/tw.pol -S /etc/tripwire/site.key > /etc/tripwire/twpol.txt

■Tripwireのデータベース作成

ポリシーファイルよりデータベースを作成
[root@server ~]# tripwire -m i -s -c /etc/tripwire/tw.cfg
Please enter your local passphrase: ← ローカルパスフレーズを入力

■Tripwireの確認

ファイル変更をチェック
[root@server ~]# tripwire -m c -s -c /etc/tripwire/tw.cfg
Open Source Tripwire(R) 2.4.1 Integrity Check Report
Report generated by:          root
Report created on:            2013年01月17日 17時11分21秒
Database last updated on:     Never
===============================================================================
Report Summary:
===============================================================================
Host name:                    server.pine-f.co.jp
Host IP address:              127.0.0.1
Host ID:                      None
Policy file used:             /etc/tripwire/tw.pol
Configuration file used:      /etc/tripwire/tw.cfg
Database file used:           /var/lib/tripwire/server.pine-f.co.jp.twd
Command line used:            tripwire -m c -s -c /etc/tripwire/tw.cfg
===============================================================================
Rule Summary:
===============================================================================
-------------------------------------------------------------------------------
Section: Unix File System
-------------------------------------------------------------------------------
Rule Name                       Severity Level    Added    Removed  Modified
---------                       --------------    -----    -------  --------
Invariant Directories           66                0        0        0
Temporary directories           33                0        0        0
* Tripwire Data Files             100               1        0        0
Critical devices                100               0        0        0
(/proc/kcore)
User binaries                   66                0        0        0
Tripwire Binaries               100               0        0        0
Libraries                       66                0        0        0
Operating System Utilities      100               0        0        0
Critical system boot files      100               0        0        0
File System and Disk Administraton Programs
100               0        0        0
Kernel Administration Programs  100               0        0        0
Networking Programs             100               0        0        0
System Administration Programs  100               0        0        0
Hardware and Device Control Programs
100               0        0        0
System Information Programs     100               0        0        0
Application Information Programs
100               0        0        0
(/sbin/rtmon)
Shell Related Programs          100               0        0        0
(/sbin/getkey)
Critical Utility Sym-Links      100               0        0        0
Shell Binaries                  100               0        0        0
System boot changes             100               0        0        0
OS executables and libraries    100               0        0        0
Critical configuration files    100               0        0        0
Security Control                100               0        0        0
Login Scripts                   100               0        0        0
Root config files               100               0        0        0
Total objects scanned:  27453
Total violations found:  1
===============================================================================
Object Summary:
===============================================================================
-------------------------------------------------------------------------------
# Section: Unix File System
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
Rule Name: Tripwire Data Files (/var/lib/tripwire)
Severity Level: 100
-------------------------------------------------------------------------------
Added:
"/var/lib/tripwire/server.pine-f.co.jp.twd" ← 今回追加されたTripwireのデータベースなので問題無し
===============================================================================
Error Report:
===============================================================================
No Errors
-------------------------------------------------------------------------------
*** End of report ***
Open Source Tripwire 2.4 Portions copyright 2000 Tripwire, Inc. Tripwire is a registered
trademark of Tripwire, Inc. This software comes with ABSOLUTELY NO WARRANTY;
for details use --version. This is free software which may be redistributed
or modified only under certain conditions; see COPYING for details.
All rights reserved.

■Tripwireの定期自動実行設定

インストール時に作成されてたTripwireの定期実行ファイルを編集
[root@server1 ~]# vi /etc/cron.daily/tripwire-check
#!/bin/sh
# デフォルトの部分をコメントアウト
#HOST_NAME=`uname -n`
#if [ ! -e /var/lib/tripwire/${HOST_NAME}.twd ] ; then
#        echo "****    Error: Tripwire database for ${HOST_NAME} not found.    ****"
#        echo "**** Run "/etc/tripwire/twinstall.sh" and/or "tripwire --init". ****"
#else
#        test -f /etc/tripwire/tw.cfg &&  /usr/sbin/tripwire --check
#fi
# パスフレーズ設定
LOCALPASS=xxxxxxxx # ローカルパスフレーズ
SITEPASS=xxxxxxxx # サイトパスフレーズ
cd /etc/tripwire
# Tripwireチェック実行
tripwire -m c -s -c tw.cfg|mail -s "Tripwire(R) Integrity Check Report in `hostname`" root
# ポリシーファイル最新化
twadmin -m p -c tw.cfg -p tw.pol -S site.key > twpol.txt
perl twpolmake.pl twpol.txt > twpol.txt.new
twadmin -m P -c tw.cfg -p tw.pol -S site.key -Q $SITEPASS twpol.txt.new > /dev/null
rm -f twpol.txt* *.bak
# データベース更新
rm -f /usr/local/tripwire/lib/tripwire/*.twd*
tripwire -m i -s -c tw.cfg -P $LOCALPASS
パーミッション変更
[root@server1 ~]# chmod 700 /etc/cron.daily/tripwire-check

これで、/etc/cron.daily/tripwire-check が一日一回実行され、メールが届くようになる。

ClamAV version: 0.97.3にアップデート

今までは、ClamAVの最新版が出るとその都度wgetでソースからインストールしてたが、yumでインストールすることにした。
■古いバージョンのclamavがある場合はアンインストールしておく

アンインストール用にバックアップしてあったモジュールを展開。
[root@server1 ~]# tar zxvf clamav-0.97.2_self.tar.gz
clamav-0.97.2のディレクトリへ移動
[root@server1 ~]# cd clamav-0.97.2
clamav-0.97.2のアンインストール
[root@server1 clamav-0.97.2]# make uninstall
clamav-0.97.2のファイルとディレクトリーを削除
[root@server1 clamav-0.97.2]# cd
[root@server1 ~]# rm -f clamav-0.97.2_self.tar.gz
[root@server1 ~]# rm -rf clamav-0.97.2
古いバージョンのディレクトリーの削除
[root@server1 ~]# rm -rf /usr/local/clamav

■Clam AntiVirusのインストール
yumでインストールする場合、レポジトリにEPELを追加しておく必要がある

[root@server1 ~]# yum -y install clamd
Loaded plugins: fastestmirror, refresh-packagekit
Loading mirror speeds from cached hostfile
* base: rsync.atworks.co.jp
* centosplus: centos.tt.co.kr
* epel: ftp.yz.yamagata-u.ac.jp
* extras: rsync.atworks.co.jp
* updates: centos.tt.co.kr
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package clamd.i686 0:0.97.3-3.el6 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
====================================================================================================
Package               Arch                 Version                      Repository            Size
====================================================================================================
Installing:
clamd                 i686                 0.97.3-3.el6                 epel                 128 k
Transaction Summary
====================================================================================================
Install       1 Package(s)
Total download size: 128 k
Installed size: 380 k
Downloading Packages:
clamd-0.97.3-3.el6.i686.rpm                                                  | 128 kB     00:00
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : clamd-0.97.3-3.el6.i686                                                          1/1
Installed:
clamd.i686 0:0.97.3-3.el6
Complete!

■設定ファイル変更
ルートで動作するように変更

[root@server1 ~]# vi /etc/clamd.conf
User clam
↓
#User clam

■Clam AntiVirusの起動

[root@server1 ~]# /etc/rc.d/init.d/clamd start
Starting Clam AntiVirus Daemon:                            [  OK  ]
clamdの自動起動設定
[root@server1 ~]# chkconfig clamd on
[root@server1 ~]# chkconfig --list clamd
clamd           0:off   1:off   2:on    3:on    4:on    5:on    6:off

■「freshclam」を使用してVirusDBをアップデート

ウィルス定義ファイルの更新機能を有効化
[root@server1 ~]# sed -i 's/Example/#Example/g' /etc/freshclam.conf
VirusDBをアップデート
[root@server1 ~]# freshclam
ClamAV update process started at Wed Feb 15 20:23:11 2012
main.cvd is up to date (version: 54, sigs: 1044387, f-level: 60, builder: sven)
Downloading daily-14460.cdiff [100%]
daily.cld updated (version: 14460, sigs: 97288, f-level: 63, builder: ccordes)
bytecode.cld is up to date (version: 167, sigs: 40, f-level: 63, builder: edwin)
Database updated (1141715 signatures) from db.jp.clamav.net (IP: 203.178.137.175)

■ウィルススキャン確認(/etc/passwdをスキャンしてみる)

[root@server1 ~]# clamscan --infected --remove --recursive /etc/passwd
----------- SCAN SUMMARY -----------
Known viruses: 1140422
Engine version: 0.97.3
Scanned directories: 0
Scanned files: 1
Infected files: 0
Data scanned: 0.00 MB
Data read: 0.00 MB (ratio 0.00:1)
Time: 8.730 sec (0 m 8 s)
version: 0.97.3でスキャンされてることを確認

■Clam AntiVirusの定期自動実行設定

毎日自動的にウィルス定義ファイル最新化して、全てのファイルのウィルススキャンを行うスプリクトの作成
[root@server1 ~]# vi clamscan
#!/bin/bash
PATH=/usr/bin:/bin
# clamd update
yum -y update clamd > /dev/null 2>&1
# excludelist
excludelist=/root/clamscan.exclude
if [ -s $excludelist ]; then
for i in `cat $excludelist`
do
if [ $(echo "$i"|grep \/$) ]; then
i=`echo $i|sed -e 's/^\([^ ]*\)\/$/\1/p' -e d`
excludeopt="${excludeopt} --exclude-dir=^$i"
else
excludeopt="${excludeopt} --exclude=^$i"
fi
done
fi
# scan
CLAMSCANTMP=`mktemp`
clamscan --recursive --remove ${excludeopt} / > $CLAMSCANTMP 2>&1
[ ! -z "$(grep FOUND$ $CLAMSCANTMP)" ] && \
# report
grep FOUND$ $CLAMSCANTMP | mail -s "Virus Found in `hostname`" root
rm -f $CLAMSCANTMP

■Clam AntiVirus定期自動実行スクリプトに実行権限付加

[root@server1 ~]# chmod +x clamscan

■ウィルススキャン実行スクリプトを毎日自動実行されるディレクトリへ移動

[root@server1 ~]# mv clamscan /etc/cron.daily/

■スキャン除外設定

/backupディレクトリと/sysディレクトリをスキャン対象外にするように設定
[root@server1 ~]# echo "/backup/" >> clamscan.exclude
[root@server1 ~]# echo "/sys/" >> clamscan.exclude

mysqldumpの警告メッセージ

Cronからmysqldumpの警告メッセージのメールがが届いた。
Cron /root/mysqldump.sh ; /root/backup.sh
— Warning: Skipping the data of table mysql.event. Specify the –events option explicitly.
実際やってみると確かに警告が出た。

[root@server1 ~]# /root/mysqldump.sh
-- Warning: Skipping the data of table mysql.event. Specify the --events option explicitly.

現在のmysqlのバージョンを調べる

[root@server1 ~]#  yum info mysql
Loaded plugins: fastestmirror, priorities, refresh-packagekit, security
Loading mirror speeds from cached hostfile
epel/metalink                                                                | 3.2 kB     00:00
* base: mirror.fairway.ne.jp
* centosplus: ftp.tsukuba.wide.ad.jp
* epel: ftp.iij.ad.jp
* extras: mirror.fairway.ne.jp
* updates: mirrors.neusoft.edu.cn
base                                                                         | 3.7 kB     00:00
centosplus                                                                   | 3.5 kB     00:00
epel                                                                         | 3.9 kB     00:00
epel/primary_db                                                              | 5.0 MB     00:00
extras                                                                       | 3.5 kB     00:00
updates                                                                      | 3.5 kB     00:00
90 packages excluded due to repository priority protections
Installed Packages
Name        : mysql
Arch        : x86_64
Version     : 5.1.69
Release     : 1.el6_4
Size        : 2.4 M
Repo        : installed
From repo   : updates
Summary     : MySQL client programs and shared libraries
URL         : http://www.mysql.com
License     : GPLv2 with exceptions
Description : MySQL is a multi-user, multi-threaded SQL database server. MySQL is a
: client/server implementation consisting of a server daemon (mysqld)
: and many different client programs and libraries. The base package
: contains the standard MySQL client programs and generic MySQL files.

最新版はmysql5.6系だが、CentOS6.4はmysql5.1系がデフォルトとなっている。最新版のmysql5.6をインストールするのは次回に持ち越しということで、とりあえず、今回は警告が出ないようにするだけにする。警告は、events optionをきちんと指定しなさいとの警告なので、mysqldump.shを書きなおすことにした。

[root@server1 ~]# vi mysqldump.sh
#! /bin/sh
mysqldump mysql -uroot -pパスワード --default-character-set=binary > /backup/mysqldump.sql
mysqldump fc -uroot -pパスワード --default-character-set=binary > /backup/fcdump.sql
mysqldump nucleus -uroot -pパスワード --default-character-set=binary > /backup/nucleusdump.sql
mysqldump taka -uroot -pパスワード --default-character-set=binary > /backup/takadump.sql
mysqldump centos -uroot -pパスワード --default-character-set=binary > /backup/centosdump.sql
を下のように --events のオプションを追加
#! /bin/sh
mysqldump --events -uroot mysql -pパスワード --default-character-set=binary > /backup/mysqldump.sql
mysqldump --events -uroot fc -uroot -pパスワード --default-character-set=binary > /backup/fcdump.sql
mysqldump --events -uroot nucleus -uroot -pパスワード --default-character-set=binary > /backup/nucleusdump.sql
mysqldump --events -uroot taka -uroot -pパスワード --default-character-set=binary > /backup/takadump.sql
mysqldump --events -uroot centos -uroot -pパスワード --default-character-set=binary > /backup/centosdump.sql

警告メッセージは出なくなった。

[root@server1 ~]# /root/backup.sh
[root@server1 ~]#

カーネルのバージョンも2.6.32-358.2.1.el6.centos.plus.x86_64から2.6.32-358.6.1.el6.centos.plus.x86_64に上がってた。カーネルは再起動しないと反映されないので再起動することに・・・ところがなかなか起動しないので焦った!!電源入れ直しで起動出来たが、いつものことながらカーネルのバージョンアップ→再起動はちゃんと起動してくれるか不安になる。

[root@server1 ~]# uname --kernel-release
2.6.32-358.6.1.el6.centos.plus.x86_64

crontab 変更

以前は予備サーバーは決められた時間に起動しバックアップ等が終わったらシャットダウンする設定にしていたが、予備サーバーもファイルサーバーの関係で24時間稼働させることにしたので、メインサーバー、予備サーバーとも crontab の設定を変更。
■メインサーバー

[root@server1 ~]# crontab -e
*/1 * * * * /usr/ddns/ddo.jpIP_upgrade.pl
00 02 * * * /root/chkrootkit.sh
10 02 * * * /root/clamscan.sh
00 03 * * * /root/yum_upgrade.sh
30 03 * * * /root/mysqldump.sh ; /root/backup.sh

■予備サーバー
[root@server2 ~]# crontab -e

30 04 * * * /root/backuprsync.sh ; /root/backupshare.sh
30 05 * * * /root/restore.sh
00 06 * * * /root/chkrootkit.sh
10 06 * * * /root/clamscan.sh
00 07 * * * /root/yum_upgrade.sh
30 07 * * * /root/mysqldump.sh ; /root/backup.sh

CentOS 6.4 リリース

2013年3月9日 CentOS 6.4 がリリースされた。
CentOS 6.4 Release Notes
http://wiki.centos.org/Manuals/ReleaseNotes/CentOS6.4
Direct Download
i386 – http://mirror.centos.org/centos/6/isos/i386/
x86_64 – http://mirror.centos.org/centos/6/isos/x86_64/
CentOSはいわゆるRPM系Linuxに属しており、パッケージ管理システムとしてYumを採用しているので、マイナーバージョンはyum updateでアップデートできる。だが、カーネルは再起動しないと反映されないので、yum update後は再起動しておく。
CentOSのバージョンは、メジャーバージョンとマイナーバージョンの二つより構成され、今回は、2013年2月21日にリリースされたRHELのバージョンアップに対応したものである。
ちなみに今までのバージョンとリリース日

バージョン         リリース日
CentOS 4 (4.0)	2005年03月09日
CentOS 5 (5.0)	2007年04月12日
CentOS 6 (6.0)	2011年07月09日
(6.1)	2011年12月09日
(6.2)	2011年12月20日
(6.3)	2012年07月09日
(6.4)	2013年03月09日

yumでアップデートして再起動

[root@server1 ~]# yum update
[root@server1 ~]# shutdown -r now

バージョン確認

[root@server1 ~]# cat /etc/redhat-release
CentOS release 6.4 (Final)

カーネル確認

[root@server1 ~]# uname -r
2.6.32-358.0.1.el6.centos.plus.x86_64

アップデートするとWebサーバのドキュメントルートの所有者がrootに戻るので所有者変更しておく

[root@server1 ~]# chown higo:higo /var/www/html/
[root@server1 ~]# ll /var/www/
合計 20
drwxr-xr-x  9 root root 4096  3月 11 06:01 2013 awstats
drwxr-xr-x  2 root root 4096  2月 22 20:20 2013 cgi-bin
drwxr-xr-x  3 root root 4096  3月 11 03:14 2013 error
drwxr-xr-x 42 higo higo 4096  2月 22 20:20 2013 html
drwxr-xr-x  3 root root 4096  3月 11 03:19 2013 icons