CentOS 7 バックアップ(サーバ内へ)

サーバーのデータを tar コマンドを使い、同じサーバー内に圧縮バックアップが出来るようにする。
■ サーバー側でのバックアップ設定

1.バックアップスクリプト作成

[root@server1 ~]# vi backup.sh
#!/bin/bash
LANG=C
# バックアップ対象ファイルリスト名
BACKUPLIST=/root/backuplist
[ ! -s $BACKUPLIST ] && echo "$BACKUPLIST is not found" && exit 1
# バックアップ対象外ファイルリスト名
BACKUPNOLIST=/root/backupnolist
# バックアップ先ディレクトリ名
BACKUPDIR=/backup
mkdir -p $BACKUPDIR
# バックアップの保存世代数
BACKUPGEN=10
# バックアップのログファイル名
BACKUPLOG=/var/log/backup.log
# バックアップ先ディレクトリをバックアップ対象外ファイルリストに追加
TMPBACKUPNOLIST=`mktemp`
[ -s $BACKUPNOLIST ] && cat $BACKUPNOLIST > $TMPBACKUPNOLIST
echo $BACKUPDIR >> $TMPBACKUPNOLIST
# 前回バックアップしたファイル名変更
cd $BACKUPDIR
OLDBACKUPFILE=`ls backup.tar.bz2* 2>/dev/null`
if [ -f $OLDBACKUPFILE ]; then
TIMESTAMP=`ls --full-time $OLDBACKUPFILE|awk '{print $6}'|tr -d -`
mv $BACKUPDIR/$OLDBACKUPFILE $BACKUPDIR/${TIMESTAMP}$OLDBACKUPFILE > /dev/null 2>&1
fi
# バックアップのログファイル作成
rm -f $BACKUPLOG
touch $BACKUPLOG
chmod 400 $BACKUPLOG
# バックアップの実行
echo "`date` backup start" >> $BACKUPLOG
tar cjvfP $BACKUPDIR/backup.tar.bz2 -T $BACKUPLIST -X $TMPBACKUPNOLIST >> $BACKUPLOG 2>&1
[ $? -ne 0 ] && cat $BACKUPLOG | mail -s "BACKUP NG" root && exit 1
echo "`date` backup end" >> $BACKUPLOG
# バックアップの保存世代を超えた古いバックアップファイルを削除
if [ $(ls /backup/|wc -l) -gt $BACKUPGEN ]; then
OLDBACKUPCNT=`expr $(ls /backup/|wc -l) - $BACKUPGEN`
for file in `ls -t $BACKUPDIR|tail -n $OLDBACKUPCNT`
do
rm -f $BACKUPDIR/$file
done
fi
# バックアップ対象外ファイルを削除
rm -f $TMPBACKUPNOLIST

バックアップスクリプトへ実行権限付加

[root@server1 ~]# chmod 700 backup.sh

2.バックアップ対象ファイルリストの作成
バックアップ対象ファイルリストに/var/www/htmlディレクトリを追加

[root@server1 ~]# echo "/var/www/html" >> backuplist

3.バックアップ対象外ファイルリストの作成
例としてバックアップ対象外ファイルリストに/var/www/errorディレクトリを追加

[root@server1 ~]# echo "/var/www/error" >> backupnolist

4.バックアップスクリプトの確認

[root@server1 ~]# ./backup.sh ← バックアップスクリプトの実行
[root@server1 ~]# ls -lh /backup ← バックアップ先ディレクトリの照会
合計 3.3G
-rw-r--r-- 1 root root 3.3G 12月 17 03:05 backup.tar.bz2
↑ backup.tar.bz2というバックアップファイルが出来ている

5.バックアップディレクトリ、ファイルの確認

[root@server1 ~]# tar tjvf /backup/backup.tar.bz2
バックアップしたディレクトリ、ファイルが一覧表示される

6.バックアップ定期自動実行設定

毎日2:30にバックアップを実行する
[root@server1 ~]# echo "30 2 * * * root /root/backup.sh" > /etc/cron.d/backup

■MySQLのデータベースのバックアップ
MySQLのバックアップにも色々な方法があるが、もっとも簡単な方法はmysqldumpを利用して自サーバー内の/backupディレクトリーにバックアップすることだと思う。

1.mysqldumpによるバックアップ
たとえば、全データベースを/backupディレクトリーにalldump.sqlという名前でバックアップするのなら次のようにする。linuxではこれをcronから起動させれば深夜に無人バックアップさせることが出来る。

# mysqldump -A -uroot -pパスワード --default-character-set=binary > /backup/alldump.sql

個別のデータベースを/backupディレクトリーにデータベース名.sqlという名前でバックアップしたい場合は以下のようにする。

# mysqldump mysql -uroot -pパスワード --default-character-set=binary > /backup/mysqldump.sql
# mysqldump fedora -uroot -pパスワード --default-character-set=binary > /backup/fedoradump.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

2.MySQLのデータベースの自動バックアップ

MySQLの個別のデータベースを/backupにバックアップするスクリプトを作成。
[root@server1 ~]# vi mysqldump.sh
#! /bin/sh
mysqldump mysql -uroot -pパスワード --default-character-set=binary > /backup/mysqldump.sql
mysqldump fedora -uroot -pパスワード --default-character-set=binary > /backup/fedoradump.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
実行権限を与える
[root@server1 ~]# chmod 700 mysqldump.sh
バックアップスクリプトを実行
[root@server1 ~]# ./mysqldump.sh
バックアップされてるか確認
[root@server1 ~]# ls -lh /backup
合計 3.4G
-rw-r--r-- 1 root root 3.3G 12月 17 03:05 backup.tar.bz2
-rw-r--r-- 1 root root  13M 12月 17 18:58 blogdump.sql
-rw-r--r-- 1 root root 2.3M 12月 17 18:58 centosdump.sql
-rw-r--r-- 1 root root 694K 12月 17 18:58 fedoradump.sql
-rw-r--r-- 1 root root 503K 12月 17 18:58 mysqldump.sql
-rw-r--r-- 1 root root 788K 12月 17 18:58 takadump.sql

3.自動実行
すでに毎日2:30にデータベース以外のバックアップを自動実行させているので、データベースのバックアップはその前の毎日2:00に自動実行させる。

[root@server1 ~]# echo "0 2 * * * root /root/mysqldump.sh" > /etc/cron.d/mysqldump

ちなみにメインサーバの自動実行設定は以下のようになっている。
/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 "15 2 * * * root /root/mysqlbackup.sh" > /etc/cron.d/mysqlbackup
[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/

4.復元
バックアップファイルをサーバーへ復元する必要が出てきた場合は、以下のコマンドを実行することで、パーミッション、所有者も含めて元のメインサーバーにリストア出来る。

[root@server1 ~]# tar jxvfP /backup/backup.tar.bz2
個別にパーミッション、所有者も含めて復元する場合は
[root@server1 ~]# tar jxvfP /backup/backup.tar.bz2 /var/www/html/ファイル名

mysqldumpでバックアップしたファイルをリストアするにはmysqlコマンドを使う。

全てをバックアップした場合のリストア
# mysql -uroot -pパスワード --default-character-set=binary < /backup/alldump.sql
個別のデータベースをバックアップした場合のリストア
# mysql -uroot -pパスワード mysql --default-character-set=binary < /backup/mysqldump.sql
# mysql -uroot -pパスワード fedora --default-character-set=binary < /backup/fedoradump.sql
# mysql -uroot -pパスワード nucleus --default-character-set=binary < /backup/nucleusdump.sql
# mysql -uroot -pパスワード taka --default-character-set=binary < /backup/takadump.sql
# mysql -uroot -pパスワード centos --default-character-set=binary < /backup/centosdump.sql
mysqlをリストアした場合や全てをリストアした場合はmysqlを再起動が必要
[root@server1 ~]# /etc/init.d/mysql restart

5.mysqldumpの世代管理
mysqldumpで個別バックアップして世代管理したい場合

[root@server1 ~]# vi mysqlbackup.sh
#!/bin/bash
# 認証情報
DBUSER="root";
DBPASSWD="パスワード";
# バックアップ先ディレクトリ /backup/mysql/130524 となる。
BAKDIR="/backup/mysql";
TODAYS_BAKDIR="$BAKDIR/`date +%y%m%d`";
# DB一覧
DATABASES=`mysql -NB -u$DBUSER -p$DBPASSWD -e 'show databases'|egrep -vi 'information_schema|performance_schema'`;
# バックアップ先がなければ作成
[ ! -d $TODAYS_BAKDIR ] && mkdir -p $TODAYS_BAKDIR;
# DB名でループ、ダンプ取得
for DB in $DATABASES; do
mysqldump -u$DBUSER -p$DBPASSWD --opt --events --default-character-set=binary --skip-lock-tables $DB > $TODAYS_BAKDIR/$DB.dump.sql;
done;
# 3 日より古いバックアップは削除
find $BAKDIR -type d -mtime +3 -print0 | xargs -0 rm -rf;

これを毎日1:00に自動実行させる

[root@server1 ~]# echo "15 2 * * * root /root/mysqlbackup.sh" > /etc/cron.d/mysqlbackup

CentOS 7 phpMyAdminインストール

phpMyAdminは標準のリポジトリには入っていないのでEPELリポジトリを追加しておく。
■ phpMyAdminインストール

[root@server1 ~]# yum install phpmyadmin
Loaded plugins: fastestmirror, priorities, refresh-packagekit
Loading mirror speeds from cached hostfile
epel/metalink                                                                | 5.0 kB     00:00
* base: www.ftp.ne.jp
* centosplus: www.ftp.ne.jp
* epel: ftp.jaist.ac.jp
* extras: www.ftp.ne.jp
* rpmforge: ftp.riken.jp
* updates: www.ftp.ne.jp
117 packages excluded due to repository priority protections
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package phpMyAdmin.noarch 0:4.2.7.1-1.el7 will be installed
--> Processing Dependency: php-php-gettext for package: phpMyAdmin-4.2.7.1-1.el7.noarch
--> Running transaction check
---> Package php-php-gettext.noarch 0:1.0.11-10.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
====================================================================================================
Package                     Arch               Version                      Repository        Size
====================================================================================================
Installing:
phpMyAdmin                  noarch             4.2.7.1-1.el7                epel               20 M
Installing for dependencies:
php-php-gettext             noarch             1.0.11-10.el7                 epel              57 k
Transaction Summary
====================================================================================================
Install       2 Package(s)
Total download size: 4.3 M
Installed size: 17 M
Is this ok [y/N]: y
Downloading Packages:
(1/2): php-php-gettext-1.0.11-10.el7.noarch.rpm                               |  57 kB     00:00
(2/2): phpMyAdmin-4.2.7.1-1.el7.noarch.rpm                                   | 20 MB     00:00
----------------------------------------------------------------------------------------------------
Total                                                               5.1 MB/s | 4.3 MB     00:00
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : php-php-gettext-1.0.11-10.el7.noarch                                              1/2
Installing : phpMyAdmin-4.2.7.1-1.el7.noarch                                                  2/2
Verifying  : php-php-gettext-1.0.11-10.el7.noarch                                              1/2
Verifying  : phpMyAdmin-4.2.7.1-1.el7.noarch                                                  2/2
Installed:
phpMyAdmin.noarch 0:4.2.7.1-1.el7
Dependency Installed:
php-php-gettext.noarch 0:1.0.11-10.el7
Complete!

■ 設定
Apacheのバージョンによって編集する場所が違う。

# httpd -v でApacheのバージョン確認できる。
[root@server1 ~]# httpd -v
Server version: Apache/2.4.6 (CentOS)
Server built:   Jun 17 2014 19:11:24

[root@server1 ~]# vi /etc/httpd/conf.d/phpMyAdmin.conf
<Directory /usr/share/phpMyAdmin/>
   <IfModule mod_authz_core.c>
     # Apache 2.4
     <RequireAny>
       Require ip 127.0.0.1
       Require ip ::1
       Require ip 192.168.1.  ← 追加:内部ネットワークからのアクセスを許可
     </RequireAny>
   </IfModule>
   <IfModule !mod_authz_core.c>
     # Apache 2.2
     Order Deny,Allow
     Deny from All
     Allow from 127.0.0.1
     Allow from ::1
   </IfModule>
</Directory>

Apache設定反映

[root@server1 ~]# service httpd restart
Redirecting to /bin/systemctl restart  httpd.service

■ phpMyAdmin確認
http://サーバー名/phpmyadmin/へアクセスして、phpMyAdminのログイン画面が表示されることと、MySQLに登録されているアカウントでログインできることを確認

SSHサーバ(OpenSSH)

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

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

■ SSHアクセス制限

サーバー自身、内部ネットワーク、特定の外部IP(xxx.xxx.xxx.xxx)からのアクセスを許可
[root@server1 ~]# echo "sshd : 127.0.0.1 192.168.1. xxx.xxx.xxx.xxx" >> /etc/hosts.allow
上記以外の全てのアクセスを禁止
[root@server1 ~]# echo "sshd : ALL" >> /etc/hosts.deny

会社等からアクセスする場合、自分の会社の接続環境(IPアドレス)を調べ、/etc/hosts.allowへ登録する必要がある。そんな時は診断くんで確認できる。
■ OpenSSHの再起動

[root@server1 ~]# systemctl restart sshd ← sshd再起動
[root@server1 ~]# systemctl enable sshd ← sshd自動起動設定
[root@server1 ~]# systemctl status sshd ← sshd状態表示
sshd.service - OpenSSH server daemon
   Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled)
   Active: active (running) since 日 2014-12-21 08:11:12 JST; 1min 5s ago
 Main PID: 14825 (sshd)
   CGroup: /system.slice/sshd.service
           └─14825 /usr/sbin/sshd -D

12月 21 08:11:12 server1.yokensaka.com systemd[1]: Started OpenSSH server daemon.
12月 21 08:11:12 server1.yokensaka.com sshd[14825]: Server listening on 0.0.0.0 port 22.
12月 21 08:11:12 server1.yokensaka.com sshd[14825]: Server listening on :: port 22.

■ SSH2による鍵の作成

鍵を作成するユーザーで作業を進める。
[root@server1 ~]# su - higo
鍵の作成を行う(何も入力しないで空エンターを押す)
[higo@server1 ~]$ 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:
50:49:5b:d2:b8:09:0f:6b:68:bc:5b:83:2e:4c:ce:25 higo@server1.yokensaka.com
The key's randomart image is:
+--[ RSA 2048]----+
|       .++.      |
|      o.o+.      |
|   . ..=.o       |
|    + o.+        |
|   . +  S        |
|  E + o          |
| = + o .         |
|  = o            |
|   .             |
+-----------------+
鍵の作成先を表示する
[higo@server1 ~]$ ls -la /home/higo/.ssh/
合計 16
drwx------   2 higo higo 4096  9月 19 10:49 2011 .
drwx------. 24 higo higo 4096  9月 19 10:49 2011 ..
-rw-------   1 higo higo 1675  9月 19 10:49 2011 id_rsa  ← 秘密鍵鍵
-rw-r--r--   1 higo higo  408  9月 19 10:49 2011 id_rsa.pub  ← 公開鍵
公開鍵をauthorized_keysに追加
[higo@server1 ~]$ cat /home/higo/.ssh/id_rsa.pub >> /home/higo/.ssh/authorized_keys
公開鍵を自分のみアクセスできるように変更
[higo@server1 ~]$ chmod 600 /home/higo/.ssh/authorized_keys
公開鍵を削除
[higo@server1 ~]$ rm -f /home/higo/.ssh/id_rsa.pub
鍵の作成先を表示
[higo@server1 ~]$ ls -la /home/higo/.ssh/
合計 16
drwx------   2 higo higo 4096  9月 19 10:51 2011 .
drwx------. 24 higo higo 4096  9月 19 10:49 2011 ..
-rw-------   1 higo higo  408  9月 19 10:51 2011 authorized_keys  ← 公開鍵
-rw-------   1 higo higo 1675  9月 19 10:49 2011 id_rsa           ← 秘密鍵

■ 秘密鍵の抜き取り 
(xWindowにしてUSB経由で抜き取り、クライアントマシンにコピーするほうが簡単)
FTPでコピーする方法

スーパーユーザ(root)になる。
[higo@server1 ~]$ su -
rootのパスワードを入力。
Password:
FTPサーバをインストール
[root@server1 ~]# yum install vsftpd
Loaded plugins: fastestmirror, refresh-packagekit
Existing lock /var/run/yum.pid: another copy is running as pid 2557.
Another app is currently holding the yum lock; waiting for it to exit...
The other application is: PackageKit
Memory :  47 M RSS ( 95 MB VSZ)
Started: Mon Sep 19 08:36:00 2011 - 00:14 ago
State  : Sleeping, pid: 2557
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 vsftpd.i686 0:2.2.2-6.el6_0.1 set to be updated
--> Finished Dependency Resolution
Dependencies Resolved
==========================================================================================
Package              Arch           Version                  Repository             Size
==========================================================================================
Installing:
vsftpd               i686           2.2.2-6.el6_0.1          updates               155 k
Transaction Summary
==========================================================================================
Install       1 Package(s)
Upgrade       0 Package(s)
Total download size: 155 k
Installed size: 343 k
Is this ok [y/N]: y
Downloading Packages:
vsftpd-2.2.2-6.el6_0.1.i686.rpm                                    | 155 kB     00:00
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing     : vsftpd-2.2.2-6.el6_0.1.i686                                        1/1
Installed:
vsftpd.i686 0:2.2.2-6.el6_0.1
Complete!
FTPサーバを起動させる
[root@server1 ~]# /etc/rc.d/init.d/vsftpd start
vsftpd 用の vsftpd を起動中:                               [  OK  ]

ここからは、Windowsのコマンドプロンプトで作業する。(管理者として実行)

Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.
C:\Users\higo>cd \ ← ローカルのカレントをC:\にしておく
C:\>ftp 192.168.1.4 ← FTPでサーバに接続
192.168.1.4 に接続しました。
220 (vsFTPd 2.2.2)
ユーザー (192.168.1.4:(none)): higo ← ユーザ名を入力
331 Please specify the 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> bye
221 Goodbye.
C:\>
C:\>dir ← ローカルの確認
ドライブ C のボリューム ラベルがありません。
ボリューム シリアル番号は 2514-DE80 です
C:\ のディレクトリ
2011/07/31  13:00    <DIR>          ATI
2011/07/31  18:22    <DIR>          ColorVision
2011/08/03  00:17    <DIR>          CrystalDiskMark0003FFBA
2011/08/07  23:55    <DIR>          CrystalDiskMark002D3A0D
2011/08/12  21:28    <DIR>          CrystalDiskMark004337AE
2011/07/31  08:50    <DIR>          FIRSTITPRO
2011/09/19  10:49             1,675 id_rsa ←  コピーされている
2011/07/30  21:25    <DIR>          Intel
2011/07/31  19:57             1,692 lucid.log
2009/07/14  12:20    <DIR>          PerfLogs
2011/09/17  07:39    <DIR>          Program Files
2011/09/17  07:37    <DIR>          Program Files (x86)
2011/07/31  01:48    <DIR>          temp
2011/07/30  20:43    <DIR>         Users
2011/09/17  03:21    <DIR>          Windows
2011/07/31  21:18         8,388,608 Z68PRO_1.60
3 個のファイル           8,391,975 バイト
13 個のディレクトリ  52,273,422,336 バイトの空き領域
C:\>exit ← コマンドプロンプトを終了

■ 外部からの接続
外部からの接続には、ルーターの設定が必要。
ルータの設定で22番のポートを開ける。
■ ポートチェック【ポート開放確認】
「管理しているサーバーが外部から接続アクセスできるか?」「ポートは開放されているか?」「portは閉じているか?」「ルータのポートは開放されているか」等の
ポートチェック・ポートの疎通確認テストはこちらで
■ 秘密鍵の抜き取りが出来たら、次はリモート接続(PuTTY)の設定

PHPでファイルがアップロードできない

■PHPでファイルがアップロードできない場合は、まずphp.iniの下記の設定を変更する。

upload_max_filesize  → アップロードされるファイルの最大サイズ

アップロードしたいファイルサイズがupload_max_filesizeを超えていたら、アップロードできない。

そんな時はupload_max_filesizeの設定値を増やしてあげる。

ただし、この値の変更時は、下記2つの設定値にも注意する必要がある。

memory_limit  → スクリプトが確保できる最大メモリ
post_max_size  → POSTデータに許可される最大サイズ

上記3つの項目が下記のような関係になるように設定しなければいけない。

memory_limit >= post_max_size >= upload_max_filesize

例として、ファイルサイズを32MBまで許容する設定にする。
php.iniを直接編集する

/etc/php.ini(保存場所は違う可能性がある)を直接編集。

実際はこんな風に綺麗に3行並んでいない。
<pre>[root@server1 ~]# vi /etc/php.ini

memory_limit = 128M

post_max_size = 32M

upload_max_filesize = 32M</pre>

CentOS 7 chronyインストール

NTPサーバー(chrony)

CentOS7 の時刻同期に関しては、今まで使われてきた「ntpd」に代わって「chronyd」が標準となった。

■NTPサーバー停止
今まで使われてきた「ntpd」をインストールしている場合は停止する。

[root@server1 ~]# systemctl stop ntpd
[root@server1 ~]# systemctl disable ntpd
rm '/etc/systemd/system/multi-user.target.wants/ntpd.service'
[root@server1 ~]# systemctl list-unit-files -t service | grep ntpd
ntpd.service                                disabled
ntpdate.service                             disabled

■Chronyサーバーインストール
すでにインストールされているはずだが、インストールされていなければyumでインストールする。

[root@server1 ~]# yum -y install chrony
読み込んだプラグイン:fastestmirror, langpacks, priorities
Loading mirror speeds from cached hostfile
 * base: ftp.riken.jp
 * centosplus: ftp.riken.jp
 * extras: mirror.nus.edu.sg
 * updates: mirror.nus.edu.sg
パッケージ chrony-1.29.1-1.el7.centos.x86_64 はインストール済みか最新バージョンです
何もしません

■Chronyサーバー設定ファイル編集

[root@server1 ~]# vi /etc/chrony.conf
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
#server 0.centos.pool.ntp.org iburst ← #コメントアウト
#server 1.centos.pool.ntp.org iburst ← #コメントアウト
#server 2.centos.pool.ntp.org iburst ← #コメントアウト
#server 3.centos.pool.ntp.org iburst ← #コメントアウト
server ntp1.plala.or.jp ← server には、プロバイダーのNTPサーバーを追加
server ntp2.plala.or.jp ← セカンダリのNTPサーバーも追加

# Ignore stratum in source selection.
stratumweight 0

# Record the rate at which the system clock gains/losses time.
driftfile /var/lib/chrony/drift

# Enable kernel RTC synchronization.
rtcsync

# In first three updates step the system clock instead of slew
# if the adjustment is larger than 10 seconds.
makestep 10 3

# Allow NTP client access from local network.
#allow 192.168/16
allow 192.168.1.0/24 ← 内部からのアクセス許可

# Listen for commands only on localhost.
bindcmdaddress 127.0.0.1
bindcmdaddress ::1

# Serve time even if not synchronized to any NTP server.
#local stratum 10

keyfile /etc/chrony.keys

# Specify the key used as password for chronyc.
commandkey 1

# Generate command key if missing.
generatecommandkey

# Disable logging of client accesses.
noclientlog

# Send a message to syslog if a clock adjustment is larger than 0.5 seconds.
logchange 0.5

logdir /var/log/chrony
#log measurements statistics tracking

■Chronyサーバーの起動
いったん、手動でNTPサーバの時刻と同期させる。

[root@server1 ~]# ntpdate ntp1.plala.or.jp
21 Dec 07:32:01 ntpdate[2323]: no server suitable for synchronization found

■Chronyサーバー再起動

[root@server1 ~]# systemctl restart chronyd

■Chronyサーバー自動起動設定

[root@server1 ~]# systemctl enable chronyd
[root@server1 ~]# systemctl list-unit-files -t service | grep chronyd
chronyd.service                             enabled

■Chronyサーバーの動作確認。

[root@server1 ~]# chronyc sources
210 Number of sources = 2
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^? ntp1.plala.or.jp              0   6     0   10y     +0ns[   +0ns] +/-    0ns
^? ntp2.plala.or.jp              0   6     0   10y     +0ns[   +0ns] +/-    0ns

■約15分後、再度Chronyサーバーの動作確認。

[root@server1 ~]# chronyc sources
210 Number of sources = 2
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^+ ntp1.plala.or.jp              4   6     7     0   -198us[  -20ms] +/-  103ms
^* ntp2.plala.or.jp              4   6     7     0    +56us[  -20ms] +/-  103ms
指定したNTPサーバの前に*や+が表示された時は同期完了の状態。

CentOS 7 Tripwireインストール

TripwireをYumでインストール

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

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

■Tripwireのインストール

[root@server1 ~]# yum install tripwire
読み込んだプラグイン:fastestmirror, langpacks, priorities
Loading mirror speeds from cached hostfile
 * base: mirror.vodien.com
 * centosplus: mirror.vodien.com
 * epel: mirrors.vinahost.vn
 * extras: mirror.vodien.com
 * rpmforge: ftp.neowiz.com
 * updates: mirror.vodien.com
77 packages excluded due to repository priority protections
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ tripwire.x86_64 0:2.4.2.2-6.el7 を インストール
--> 依存性解決を終了しました。

依存性を解決しました

====================================================================================================
 Package                アーキテクチャー     バージョン                    リポジトリー        容量
====================================================================================================
インストール中:
 tripwire               x86_64               2.4.2.2-6.el7                 epel               1.0 M

トランザクションの要約
====================================================================================================
インストール  1 パッケージ

総ダウンロード容量: 1.0 M
インストール容量: 4.1 M
Is this ok [y/d/N]: y
Downloading packages:
tripwire-2.4.2.2-6.el7.x86_64.rpm                                            | 1.0 MB  00:00:01
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  インストール中          : tripwire-2.4.2.2-6.el7.x86_64                                       1/1
  検証中                  : tripwire-2.4.2.2-6.el7.x86_64                                       1/1

インストール:
  tripwire.x86_64 0:2.4.2.2-6.el7

完了しました!

■tripwireの初期設定

[root@server1 ~]# 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@server1 ~]# 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@server1 ~]# 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@server1 ~]# rm -f /etc/tripwire/twcfg.txt

設定ファイル(テキスト版)を復活させる場合は以下のコマンドで復活できる
[root@server1 ~]# twadmin --print-cfgfile > /etc/tripwire/twcfg.txt

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

ポリシーファイルの最適化スクリプトを作成

[root@server1 ~]# 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@server1 ~]# perl /etc/tripwire/twpolmake.pl /etc/tripwire/twpol.txt > /etc/tripwire/twpol.txt.new

ポリシーファイル(暗号署名版)を作成

[root@server1 ~]# 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@server1 ~]# rm -f /etc/tripwire/twpol.txt*

ポリシーファイル(テキスト版)を復活させる場合は以下のコマンドで復活できる
[root@server1 ~]# twadmin -m p -c /etc/tripwire/tw.cfg -p /etc/tripwire/tw.pol -S /etc/tripwire/site.key > /etc/tripwire/twpol.txt

■Tripwireのデータベース作成
ポリシーファイルよりデータベースを作成

[root@server1 ~]# tripwire -m i -s -c /etc/tripwire/tw.cfg
Please enter your local passphrase: ← ローカルパスフレーズを入力

下は/root/backup.tar.bz2のファイルサイズが2Gを超えてしまったため、tripwireがエラーを出してデータベース作成が失敗した時のもの。このような時は、/root/backup.tar.bz2をチェック対象外にすることでエラー回避出来る。
### Error: File seek failed.
### Filename: /root/backup.tar.bz2
### \xe3\x81\x9d\xe3\x81\xae\xe3\x82\x88\xe3\x81\x86\xe3\x81\xaa\xe3\x83\x95\xe3\x82\xa1\xe3\x82\xa4\xe3\x83\xab\xe3\x82\x84\xe3\x83\x87\xe3\x82\xa3\xe3\x83\xac\xe3\x82\xaf\xe3\x83\x88\xe3\x83\xaa\xe3\x81\xaf\xe3\x81\x82\xe3\x82\x8a\xe3\x81\xbe\xe3\x81\x9b\xe3\x82\x93
### Exiting...

ポリシーファイル(テキスト版)を復活
[root@server1 ~]# twadmin -m p -c /etc/tripwire/tw.cfg -p /etc/tripwire/tw.pol -S /etc/tripwire/site.key > /etc/tripwire/twpol.txt

ポリシーファイル(テキスト版)の編集
[root@server1 ~]# vi /etc/tripwire/twpol.txt
  rulename = "Invariant Directories",
  severity = $(SIG_MED)
)
{
  /                                    -> $(SEC_INVARIANT) (recurse = 0) ;
  /home                                -> $(SEC_INVARIANT) (recurse = 0) ;
  /etc                                 -> $(SEC_INVARIANT) (recurse = 0) ;
!/root/backup.tar.bz2; ← 対象外ファイルを追加
}

ポリシーファイル(暗号署名版)を作成
[root@server1 ~]# twadmin -m P -c /etc/tripwire/tw.cfg -p /etc/tripwire/tw.pol -S /etc/tripwire/site.key /etc/tripwire/twpol.txt
Please enter your site passphrase: ← サイトパスフレーズを入力
Wrote policy file: /etc/tripwire/tw.pol

ポリシーファイル(テキスト版)を削除
[root@server1 ~]# rm -f /etc/tripwire/twpol.txt

ポリシーファイルよりデータベースを作成

[root@server1 ~]# tripwire -m i -s -c /etc/tripwire/tw.cfg
Please enter your local passphrase: ← ローカルパスフレーズを入力
※データベースを作成するには結構時間がかかる

■Tripwireの確認

[root@server1 ~]# tripwire -m c -s -c /etc/tripwire/tw.cfg
Open Source Tripwire(R) 2.4.2.2 Integrity Check Report

Report generated by:          root
Report created on:            2014年12月06日 23時08分26秒
Database last updated on:     Never

===============================================================================
Report Summary:
===============================================================================

Host name:                    server1.yokensaka.com
Host IP address:              114.186.88.44
Host ID:                      None
Policy file used:             /etc/tripwire/tw.pol
Configuration file used:      /etc/tripwire/tw.cfg
Database file used:           /var/lib/tripwire/server1.yokensaka.com.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
  ---------                       --------------    -----    -------  --------
  User binaries                   66                0        0        0
  Tripwire Binaries               100               0        0        0
  Libraries                       66                0        0        0
  Operating System Utilities      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)
  Critical Utility Sym-Links      100               0        0        0
  Shell Binaries                  100               0        0        0
  Critical system boot files      100               0        0        0
* Tripwire Data Files             100               1        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
  Invariant Directories           66                0        0        0
  Temporary directories           33                0        0        0
  Critical devices                100               0        0        0
  (/proc/kcore)

Total objects scanned:  52987
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/server1.yokensaka.com.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

CentOS 7 ImageMagickインストール

画像処理(ImageMagick)

■ ImageMagickのインストール

[root@server1 ~]# yum -y install ImageMagick
読み込んだプラグイン:fastestmirror, langpacks, priorities
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * centosplus: mirrors.btte.net
 * epel: ftp.cuhk.edu.hk
 * extras: ftp.riken.jp
 * rpmforge: ftp.kddilabs.jp
 * updates: mirrors.aliyun.com
45 packages excluded due to repository priority protections
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ ImageMagick.x86_64 0:6.7.8.9-10.el7 を インストール
--> 依存性の処理をしています: libwmflite-0.2.so.7()(64bit) のパッケージ: ImageMagick-6.7.8.9-10.el7.x86_64
--> 依存性の処理をしています: libImath.so.6()(64bit) のパッケージ: ImageMagick-6.7.8.9-10.el7.x86_64
--> 依存性の処理をしています: libIlmThread.so.6()(64bit) のパッケージ: ImageMagick-6.7.8.9-10.el7.x86_64
--> 依存性の処理をしています: libIlmImf.so.7()(64bit) のパッケージ: ImageMagick-6.7.8.9-10.el7.x86_64
--> 依存性の処理をしています: libIexMath.so.6()(64bit) のパッケージ: ImageMagick-6.7.8.9-10.el7.x86_64
--> 依存性の処理をしています: libIex.so.6()(64bit) のパッケージ: ImageMagick-6.7.8.9-10.el7.x86_64
--> 依存性の処理をしています: libHalf.so.6()(64bit) のパッケージ: ImageMagick-6.7.8.9-10.el7.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ OpenEXR-libs.x86_64 0:1.7.1-7.el7 を インストール
---> パッケージ ilmbase.x86_64 0:1.0.3-7.el7 を インストール
---> パッケージ libwmf-lite.x86_64 0:0.2.8.4-39.el7 を インストール
--> 依存性解決を終了しました。

依存性を解決しました

====================================================================================================
 Package                   アーキテクチャー    バージョン                   リポジトリー       容量
====================================================================================================
インストール中:
 ImageMagick               x86_64              6.7.8.9-10.el7               base              2.1 M
依存性関連でのインストールをします:
 OpenEXR-libs              x86_64              1.7.1-7.el7                  base              217 k
 ilmbase                   x86_64              1.0.3-7.el7                  base              100 k
 libwmf-lite               x86_64              0.2.8.4-39.el7               base               66 k

トランザクションの要約
====================================================================================================
インストール  1 パッケージ (+3 個の依存関係のパッケージ)

総ダウンロード容量: 2.5 M
インストール容量: 9.1 M
Downloading packages:
(1/4): ilmbase-1.0.3-7.el7.x86_64.rpm                                        | 100 kB  00:00:00
(2/4): OpenEXR-libs-1.7.1-7.el7.x86_64.rpm                                   | 217 kB  00:00:00
(3/4): libwmf-lite-0.2.8.4-39.el7.x86_64.rpm                                 |  66 kB  00:00:00
(4/4): ImageMagick-6.7.8.9-10.el7.x86_64.rpm                                 | 2.1 MB  00:00:00
----------------------------------------------------------------------------------------------------
合計                                                                3.6 MB/s | 2.5 MB  00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  インストール中          : ilmbase-1.0.3-7.el7.x86_64                                          1/4
  インストール中          : OpenEXR-libs-1.7.1-7.el7.x86_64                                     2/4
  インストール中          : libwmf-lite-0.2.8.4-39.el7.x86_64                                   3/4
  インストール中          : ImageMagick-6.7.8.9-10.el7.x86_64                                   4/4
  検証中                  : ilmbase-1.0.3-7.el7.x86_64                                          1/4
  検証中                  : ImageMagick-6.7.8.9-10.el7.x86_64                                   2/4
  検証中                  : libwmf-lite-0.2.8.4-39.el7.x86_64                                   3/4
  検証中                  : OpenEXR-libs-1.7.1-7.el7.x86_64                                     4/4

インストール:
  ImageMagick.x86_64 0:6.7.8.9-10.el7

依存性関連をインストールしました:
  OpenEXR-libs.x86_64 0:1.7.1-7.el7                    ilmbase.x86_64 0:1.0.3-7.el7
  libwmf-lite.x86_64 0:0.2.8.4-39.el7

完了しました!

■ PerlMagickのインストール

[root@server1 ~]# yum -y install ImageMagick-perl
読み込んだプラグイン:fastestmirror, langpacks, priorities
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * centosplus: mirrors.btte.net
 * epel: ftp.cuhk.edu.hk
 * extras: ftp.riken.jp
 * rpmforge: ftp.kddilabs.jp
 * updates: mirrors.aliyun.com
45 packages excluded due to repository priority protections
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ ImageMagick-perl.x86_64 0:6.7.8.9-10.el7 を インストール
--> 依存性解決を終了しました。

依存性を解決しました

====================================================================================================
 Package                      アーキテクチャー   バージョン                  リポジトリー      容量
====================================================================================================
インストール中:
 ImageMagick-perl             x86_64             6.7.8.9-10.el7              base             147 k

トランザクションの要約
====================================================================================================
インストール  1 パッケージ

総ダウンロード容量: 147 k
インストール容量: 412 k
Downloading packages:
ImageMagick-perl-6.7.8.9-10.el7.x86_64.rpm                                   | 147 kB  00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  インストール中          : ImageMagick-perl-6.7.8.9-10.el7.x86_64                              1/1
  検証中                  : ImageMagick-perl-6.7.8.9-10.el7.x86_64                              1/1

インストール:
  ImageMagick-perl.x86_64 0:6.7.8.9-10.el7

完了しました!

■サムネイルを作成するのに必要なphp-gdをインストール

[root@server1 ~]# yum -y install php-gd
読み込んだプラグイン:fastestmirror, langpacks, priorities
Loading mirror speeds from cached hostfile
 * base: ftp.riken.jp
 * centosplus: mirrors.btte.net
 * epel: ftp.cuhk.edu.hk
 * extras: ftp.riken.jp
 * rpmforge: ftp.kddilabs.jp
 * updates: ftp.riken.jp
45 packages excluded due to repository priority protections
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ php-gd.x86_64 0:5.4.16-21.el7 を インストール
--> 依存性の処理をしています: libt1.so.5()(64bit) のパッケージ: php-gd-5.4.16-21.el7.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ t1lib.x86_64 0:5.1.2-14.el7 を インストール
--> 依存性解決を終了しました。

依存性を解決しました

====================================================================================================
 Package               アーキテクチャー      バージョン                   リポジトリー         容量
====================================================================================================
インストール中:
 php-gd                x86_64                5.4.16-21.el7                base                122 k
依存性関連でのインストールをします:
 t1lib                 x86_64                5.1.2-14.el7                 base                166 k

トランザクションの要約
====================================================================================================
インストール  1 パッケージ (+1 個の依存関係のパッケージ)

総ダウンロード容量: 288 k
インストール容量: 734 k
Downloading packages:
(1/2): php-gd-5.4.16-21.el7.x86_64.rpm                                       | 122 kB  00:00:00
(2/2): t1lib-5.1.2-14.el7.x86_64.rpm                                         | 166 kB  00:00:00
----------------------------------------------------------------------------------------------------
合計                                                                620 kB/s | 288 kB  00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  インストール中          : t1lib-5.1.2-14.el7.x86_64                                           1/2
  インストール中          : php-gd-5.4.16-21.el7.x86_64                                         2/2
  検証中                  : t1lib-5.1.2-14.el7.x86_64                                           1/2
  検証中                  : php-gd-5.4.16-21.el7.x86_64                                         2/2

インストール:
  php-gd.x86_64 0:5.4.16-21.el7

依存性関連をインストールしました:
  t1lib.x86_64 0:5.1.2-14.el7

完了しました!

■httpd を再起動

[root@server1 ~]# systemctl restart httpd

CentOS 7 sambaインストール

ファイルサーバ(samba)

■ sambaをyumでインストール

[root@server1 ~]# yum install samba
読み込んだプラグイン:fastestmirror, langpacks, priorities
Loading mirror speeds from cached hostfile
 * base: ftp.riken.jp
 * centosplus: mirrors.btte.net
 * epel: kartolo.sby.datautama.net.id
 * extras: ftp.riken.jp
 * rpmforge: ftp.kddilabs.jp
 * updates: mirrors.btte.net
45 packages excluded due to repository priority protections
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ samba.x86_64 0:4.1.1-35.el7_0 を インストール
--> 依存性解決を終了しました。

依存性を解決しました

====================================================================================================
 Package             アーキテクチャー     バージョン                    リポジトリー           容量
====================================================================================================
インストール中:
 samba               x86_64               4.1.1-35.el7_0                updates               536 k

トランザクションの要約
====================================================================================================
インストール  1 パッケージ

総ダウンロード容量: 536 k
インストール容量: 1.6 M
Is this ok [y/d/N]: y
Downloading packages:
samba-4.1.1-35.el7_0.x86_64.rpm                                              | 536 kB  00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  インストール中          : samba-4.1.1-35.el7_0.x86_64                                         1/1
  検証中                  : samba-4.1.1-35.el7_0.x86_64                                         1/1

インストール:
  samba.x86_64 0:4.1.1-35.el7_0

完了しました!

既存のユーザをSambaサーバーアクセス用ユーザとする場合

[root@server1 ~]# pdbedit -a higo
new password: ← パスワード入力
retype new password: ← パスワード再入力
Unix username:        higo
NT username:
Account Flags:        [U          ]
User SID:             S-1-5-21-3123654516-2731996513-2070615243-1003
Primary Group SID:    S-1-5-21-3123654516-2731996513-2070615243-513
Full Name:            higo
Home Directory:       \\server2\higo
HomeDir Drive:
Logon Script:
Profile Path:         \\server2\higo\profile
Domain:               SERVER2
Account desc:
Workstations:
Munged dial:
Logon time:           0
Logoff time:          木, 07  2月 2036 00:06:39 JST
Kickoff time:         木, 07  2月 2036 00:06:39 JST
Password last set:    金, 18  7月 2014 08:13:26 JST
Password can change:  金, 18  7月 2014 08:13:26 JST
Password must change: never
Last bad password   : 0
Bad password count  : 0
Logon hours         : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

ユーザーアカウントを表示

[root@server1 ~]# pdbedit -L
higo:1000:higo

ユーザーアカウントの削除

[root@server1 ~]# pdbedit -x higo

■共有ディレクトリ作成

[root@server1 ~]# mkdir /home/share
[root@server1 ~]# chmod 777 /home/share ← 権限変更
[root@server1 ~]# chown nobody:nobody /home/share ← 共有ディレクトリ所有者変更

■ samba設定ファイル変更

[root@server1 ~]# vi /etc/samba/smb.conf
[global]
日本語文字コード変更(追記)
        unix charset = UTF-8
        dos charset = CP932

ワークグループを環境に合わせて変更
        workgroup = WORKGROUP

ネットワーク内のみからアクセス許可
        hosts allow = 192.168.1. 127.

ユーザー認証なしの設定に変更
        security = user
        passdb backend = tdbsam
        guest account = nobody
        map to guest = Bad User

共有フォルダ(ゴミ箱機能付きの)「share」 セクションの作成(最終行に追加)
[share]
   path = /home/share
   writable = yes
   guest ok = yes
   guest only = yes
   create mode = 0777
   directory mode = 0777
   share modes = yes
   vfs objects = recycle
   recycle:repository = .recycle
   recycle:keeptree = no
   recycle:versions = yes
   recycle:touch = no
   recycle:maxsize = 0
#Accessをファイルサーバで使うと、終了するたびに何故かごみ箱にファイルが作成される。
#なので、Accessのファイルはごみ箱にはファイルを作らないようにする。
   recycle:exclude = *.tmp ~$* *.mdb *.ldb *.accdb *.laccdb

■ sambaの起動

[root@server1 ~]# systemctl start smb
[root@server1 ~]# systemctl start nmb

■ 自動起動設定

[root@server1 ~]# systemctl enable smb
ln -s '/usr/lib/systemd/system/smb.service' '/etc/systemd/system/multi-user.target.wants/smb.service'
[root@server1 ~]# systemctl enable nmb
ln -s '/usr/lib/systemd/system/nmb.service' '/etc/systemd/system/multi-user.target.wants/nmb.service'

■ Samba確認
Windowsクライアントで「スタート」→「ファイル名を指定して実行」→「名前」に”\\SERVER1\share”または”\\192.168.1.4\share”を入力して「OK」ボタンをクリック。

CentOS 7 MariaDBインストール

データベースサーバ(MariaDB)
CentOS7 では、MySQLでなく互換の MariaDB をインストール。

[root@server1 ~]# yum -y install mariadb-server
読み込んだプラグイン:fastestmirror, langpacks, priorities
Loading mirror speeds from cached hostfile
 * base: ftp.riken.jp
 * centosplus: mirrors.btte.net
 * epel: ftp.cuhk.edu.hk
 * extras: ftp.riken.jp
 * rpmforge: ftp.kddilabs.jp
 * updates: mirrors.btte.net
45 packages excluded due to repository priority protections
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ mariadb-galera-server.x86_64 1:5.5.37-2.el7 を インストール
--> 依存性の処理をしています: mariadb-galera-common(x86-64) = 1:5.5.37-2.el7 のパッケージ: 1:mariadb-galera-server-5.5.37-2.el7.x86_64
--> 依存性の処理をしています: galera >= 25.3.3 のパッケージ: 1:mariadb-galera-server-5.5.37-2.el7.x86_64
--> 依存性の処理をしています: perl-DBI のパッケージ: 1:mariadb-galera-server-5.5.37-2.el7.x86_64
--> 依存性の処理をしています: perl-DBD-MySQL のパッケージ: 1:mariadb-galera-server-5.5.37-2.el7.x86_64
--> 依存性の処理をしています: perl(DBI) のパッケージ: 1:mariadb-galera-server-5.5.37-2.el7.x86_64
--> 依存性の処理をしています: mysql(x86-64) のパッケージ: 1:mariadb-galera-server-5.5.37-2.el7.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ galera.x86_64 0:25.3.5-7.el7 を インストール
--> 依存性の処理をしています: libboost_program_options.so.1.53.0()(64bit) のパッケージ: galera-25.3.5-7.el7.x86_64
---> パッケージ mariadb.x86_64 1:5.5.37-1.el7_0 を インストール
---> パッケージ mariadb-galera-common.x86_64 1:5.5.37-2.el7 を インストール
---> パッケージ perl-DBD-MySQL.x86_64 0:4.023-5.el7 を インストール
---> パッケージ perl-DBI.x86_64 0:1.627-4.el7 を インストール
--> 依存性の処理をしています: perl(RPC::PlServer) >= 0.2001 のパッケージ: perl-DBI-1.627-4.el7.x86_64
--> 依存性の処理をしています: perl(RPC::PlClient) >= 0.2000 のパッケージ: perl-DBI-1.627-4.el7.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ boost-program-options.x86_64 0:1.53.0-18.el7 を インストール
---> パッケージ perl-PlRPC.noarch 0:0.2020-14.el7 を インストール
--> 依存性の処理をしています: perl(Net::Daemon) >= 0.13 のパッケージ: perl-PlRPC-0.2020-14.el7.noarch
--> 依存性の処理をしています: perl(Net::Daemon::Test) のパッケージ: perl-PlRPC-0.2020-14.el7.noarch
--> 依存性の処理をしています: perl(Net::Daemon::Log) のパッケージ: perl-PlRPC-0.2020-14.el7.noarch
--> 依存性の処理をしています: perl(Compress::Zlib) のパッケージ: perl-PlRPC-0.2020-14.el7.noarch
--> トランザクションの確認を実行しています。
---> パッケージ perl-IO-Compress.noarch 0:2.061-2.el7 を インストール
--> 依存性の処理をしています: perl(Compress::Raw::Zlib) >= 2.061 のパッケージ: perl-IO-Compress-2.061-2.el7.noarch
--> 依存性の処理をしています: perl(Compress::Raw::Bzip2) >= 2.061 のパッケージ: perl-IO-Compress-2.061-2.el7.noarch
---> パッケージ perl-Net-Daemon.noarch 0:0.48-5.el7 を インストール
--> トランザクションの確認を実行しています。
---> パッケージ perl-Compress-Raw-Bzip2.x86_64 0:2.061-3.el7 を インストール
---> パッケージ perl-Compress-Raw-Zlib.x86_64 1:2.061-4.el7 を インストール
--> 依存性解決を終了しました。

依存性を解決しました

====================================================================================================
 Package                          アーキテクチャー
                                                  バージョン                 リポジトリー      容量
====================================================================================================
インストール中:
 mariadb-galera-server            x86_64          1:5.5.37-2.el7             epel              11 M
依存性関連でのインストールをします:
 boost-program-options            x86_64          1.53.0-18.el7              base             154 k
 galera                           x86_64          25.3.5-7.el7               epel             1.1 M
 mariadb                          x86_64          1:5.5.37-1.el7_0           updates          8.9 M
 mariadb-galera-common            x86_64          1:5.5.37-2.el7             epel             212 k
 perl-Compress-Raw-Bzip2          x86_64          2.061-3.el7                base              32 k
 perl-Compress-Raw-Zlib           x86_64          1:2.061-4.el7              base              57 k
 perl-DBD-MySQL                   x86_64          4.023-5.el7                base             140 k
 perl-DBI                         x86_64          1.627-4.el7                base             802 k
 perl-IO-Compress                 noarch          2.061-2.el7                base             260 k
 perl-Net-Daemon                  noarch          0.48-5.el7                 base              51 k
 perl-PlRPC                       noarch          0.2020-14.el7              base              36 k

トランザクションの要約
====================================================================================================
インストール  1 パッケージ (+11 個の依存関係のパッケージ)

総ダウンロード容量: 23 M
インストール容量: 113 M
Downloading packages:
(1/12): boost-program-options-1.53.0-18.el7.x86_64.rpm                       | 154 kB  00:00:00
(2/12): mariadb-galera-common-5.5.37-2.el7.x86_64.rpm                        | 212 kB  00:00:00
(3/12): galera-25.3.5-7.el7.x86_64.rpm                                       | 1.1 MB  00:00:00
(4/12): perl-Compress-Raw-Zlib-2.061-4.el7.x86_64.rpm                        |  57 kB  00:00:00
(5/12): perl-DBI-1.627-4.el7.x86_64.rpm                                      | 802 kB  00:00:00
(6/12): perl-DBD-MySQL-4.023-5.el7.x86_64.rpm                                | 140 kB  00:00:00
(7/12): perl-Compress-Raw-Bzip2-2.061-3.el7.x86_64.rpm                       |  32 kB  00:00:00
(8/12): perl-Net-Daemon-0.48-5.el7.noarch.rpm                                |  51 kB  00:00:00
(9/12): perl-PlRPC-0.2020-14.el7.noarch.rpm                                  |  36 kB  00:00:00
(10/12): perl-IO-Compress-2.061-2.el7.noarch.rpm                             | 260 kB  00:00:00
(11/12): mariadb-5.5.37-1.el7_0.x86_64.rpm                                   | 8.9 MB  00:00:02
(12/12): mariadb-galera-server-5.5.37-2.el7.x86_64.rpm                       |  11 MB  00:00:02
----------------------------------------------------------------------------------------------------
合計                                                                6.4 MB/s |  23 MB  00:00:03
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  インストール中          : 1:perl-Compress-Raw-Zlib-2.061-4.el7.x86_64                        1/12
  インストール中          : 1:mariadb-galera-common-5.5.37-2.el7.x86_64                        2/12
  インストール中          : 1:mariadb-5.5.37-1.el7_0.x86_64                                    3/12
  インストール中          : boost-program-options-1.53.0-18.el7.x86_64                         4/12
  インストール中          : galera-25.3.5-7.el7.x86_64                                         5/12
  インストール中          : perl-Net-Daemon-0.48-5.el7.noarch                                  6/12
  インストール中          : perl-Compress-Raw-Bzip2-2.061-3.el7.x86_64                         7/12
  インストール中          : perl-IO-Compress-2.061-2.el7.noarch                                8/12
  インストール中          : perl-PlRPC-0.2020-14.el7.noarch                                    9/12
  インストール中          : perl-DBI-1.627-4.el7.x86_64                                       10/12
  インストール中          : perl-DBD-MySQL-4.023-5.el7.x86_64                                 11/12
  インストール中          : 1:mariadb-galera-server-5.5.37-2.el7.x86_64                       12/12
  検証中                  : perl-Compress-Raw-Bzip2-2.061-3.el7.x86_64                         1/12
  検証中                  : perl-Net-Daemon-0.48-5.el7.noarch                                  2/12
  検証中                  : boost-program-options-1.53.0-18.el7.x86_64                         3/12
  検証中                  : 1:mariadb-5.5.37-1.el7_0.x86_64                                    4/12
  検証中                  : 1:mariadb-galera-common-5.5.37-2.el7.x86_64                        5/12
  検証中                  : 1:perl-Compress-Raw-Zlib-2.061-4.el7.x86_64                        6/12
  検証中                  : perl-PlRPC-0.2020-14.el7.noarch                                    7/12
  検証中                  : galera-25.3.5-7.el7.x86_64                                         8/12
  検証中                  : perl-DBI-1.627-4.el7.x86_64                                        9/12
  検証中                  : 1:mariadb-galera-server-5.5.37-2.el7.x86_64                       10/12
  検証中                  : perl-DBD-MySQL-4.023-5.el7.x86_64                                 11/12
  検証中                  : perl-IO-Compress-2.061-2.el7.noarch                               12/12

インストール:
  mariadb-galera-server.x86_64 1:5.5.37-2.el7

依存性関連をインストールしました:
  boost-program-options.x86_64 0:1.53.0-18.el7      galera.x86_64 0:25.3.5-7.el7
  mariadb.x86_64 1:5.5.37-1.el7_0                   mariadb-galera-common.x86_64 1:5.5.37-2.el7
  perl-Compress-Raw-Bzip2.x86_64 0:2.061-3.el7      perl-Compress-Raw-Zlib.x86_64 1:2.061-4.el7
  perl-DBD-MySQL.x86_64 0:4.023-5.el7               perl-DBI.x86_64 0:1.627-4.el7
  perl-IO-Compress.noarch 0:2.061-2.el7             perl-Net-Daemon.noarch 0:0.48-5.el7
  perl-PlRPC.noarch 0:0.2020-14.el7

完了しました!

■MariaDB設定

[root@server1 ~]# vi /etc/my.cnf.d/server.cnf
[mysqld]
character-set-server = utf8 ← 追加(MariaDBサーバーの文字コードをUTF-8にする)

■MariaDB起動

[root@server1 ~]# systemctl start mariadb

■MariaDB自動起動設定

[root@server1 ~]# systemctl enable mariadb
ln -s '/usr/lib/systemd/system/mariadb.service' '/etc/systemd/system/multi-user.target.wants/mariadb.service'

■MariaDB起動確認

[root@server1 ~]# systemctl status mariadb
mariadb.service - MariaDB database server
   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled)
   Active: active (running) since 金 2014-07-18 01:02:42 JST; 8s ago
  Process: 7199 ExecStartPost=/usr/libexec/mariadb-wait-ready $MAINPID (code=exited, status=0/SUCCESS)
  Process: 7170 ExecStartPre=/usr/libexec/mariadb-prepare-db-dir %n (code=exited, status=0/SUCCESS)
 Main PID: 7198 (mysqld_safe)
   CGroup: /system.slice/mariadb.service
           ├─7198 /bin/sh /usr/bin/mysqld_safe --basedir=/usr
           └─7709 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/l...

 7月 18 01:02:38 server2.yokensaka.com mysqld_safe[7198]: 140718 01:02:38 mysqld_safe Logging ...'.
 7月 18 01:02:38 server2.yokensaka.com mysqld_safe[7198]: 140718 01:02:38 mysqld_safe Starting...ql
 7月 18 01:02:38 server2.yokensaka.com mysqld_safe[7198]: 140718 01:02:38 mysqld_safe WSREP: R...d'
 7月 18 01:02:40 server2.yokensaka.com mysqld_safe[7198]: 140718 01:02:40 mysqld_safe WSREP: R...-1
 7月 18 01:02:42 server2.yokensaka.com systemd[1]: Started MariaDB database server.
Hint: Some lines were ellipsized, use -l to show in full.

■MariaDB初期設定

[root@server1 ~]# mysql_secure_installation
/bin/mysql_secure_installation: 行 379: find_mysql_client: コマンドが見つかりません

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none): ← 空エンター
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n] ← 空エンター
New password: ← rootのパスワードを入力
Re-enter new password: ← rootのパスワードを再入力
Password updated successfully!
Reloading privilege tables..
 ... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] ← 空エンター
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] ← 空エンター
 ... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] ← 空エンター
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] ← 空エンター
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

■MariaDB確認

[root@server1 ~]# mysql -u root -p
Enter password: ← MariaDBのrootパスワード入力
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 10
Server version: 5.5.37-MariaDB-wsrep MariaDB Server, wsrep_25.10.r3980

Copyright (c) 2000, 2014, Oracle, Monty Program Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> select user,host from mysql.user; ← 登録済ユーザの確認
+------+-----------+
| user | host      |
+------+-----------+
| root | 127.0.0.1 |
| root | ::1       |
| root | localhost |
+------+-----------+
3 rows in set (0.00 sec)

MariaDB [(none)]> show databases; ← データベース確認
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
+--------------------+
3 rows in set (0.00 sec)

MariaDB [(none)]> select user,host,password from mysql.user; ← 登録済ユーザ及びパスワードの確認
+------+-----------+-------------------------------------------+
| user | host      | password                                  |
+------+-----------+-------------------------------------------+
| root | localhost | *4202C8EE0ABB7FD2186E1CB0180B55C5272A8556 |
| root | 127.0.0.1 | *4202C8EE0ABB7FD2186E1CB0180B55C5272A8556 |
| root | ::1       | *4202C8EE0ABB7FD2186E1CB0180B55C5272A8556 |
+------+-----------+-------------------------------------------+
3 rows in set (0.00 sec)

MariaDB [(none)]> show variables like 'character\_set\_%'; ← 文字セットの確認
+--------------------------+--------+
| Variable_name            | Value  |
+--------------------------+--------+
| character_set_client     | utf8   |
| character_set_connection | utf8   |
| character_set_database   | utf8   |
| character_set_filesystem | binary |
| character_set_results    | utf8   |
| character_set_server     | utf8   |
| character_set_system     | utf8   |
+--------------------------+--------+
7 rows in set (0.00 sec)

MariaDB [(none)]> exit
Bye

CentOS 7 Awstatsインストール

アクセスログ解析(Awstats)

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

■awstatsをインストール

[root@server1 ~]# yum install awstats
読み込んだプラグイン:fastestmirror, langpacks, priorities
Loading mirror speeds from cached hostfile
 * base: ftp.riken.jp
 * centosplus: ftp.riken.jp
 * epel: mirror.nus.edu.sg
 * extras: ftp.riken.jp
 * updates: mirrors.163.com
53 packages excluded due to repository priority protections
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ awstats.noarch 0:7.3-2.el7 を インストール
--> 依存性の処理をしています: perl-Geo-IP のパッケージ: awstats-7.3-2.el7.noarch
--> トランザクションの確y認を実行しています。
---> パッケージ perl-Geo-IP.x86_64 0:1.43-3.el7 を インストール
--> 依存性解決を終了しました。

依存性を解決しました

====================================================================================================
 Package                   アーキテクチャー     バージョン                 リポジトリー        容量
====================================================================================================
インストール中:
 awstats                   noarch               7.3-2.el7                  epel               2.3 M
依存性関連でのインストールをします:
 perl-Geo-IP               x86_64               1.43-3.el7                 epel                87 k

トランザクションの要約
====================================================================================================
インストール  1 パッケージ (+1 個の依存関係のパッケージ)

総ダウンロード容量: 2.4 M
インストール容量: 6.8 M
Is this ok [y/d/N]: y
Downloading packages:
(1/2): awstats-7.3-2.el7.noarch.rpm                                          | 2.3 MB  00:00:01
(2/2): perl-Geo-IP-1.43-3.el7.x86_64.rpm                                     |  87 kB  00:00:01
----------------------------------------------------------------------------------------------------
合計                                                                1.3 MB/s | 2.4 MB  00:00:01
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  インストール中          : perl-Geo-IP-1.43-3.el7.x86_64                                       1/2
  インストール中          : awstats-7.3-2.el7.noarch                                            2/2
  検証中                  : perl-Geo-IP-1.43-3.el7.x86_64                                       1/2
  検証中                  : awstats-7.3-2.el7.noarch                                            2/2

インストール:
  awstats.noarch 0:7.3-2.el7

依存性関連をインストールしました:
  perl-Geo-IP.x86_64 0:1.43-3.el7

完了しました!

※今までは別々にインストールする必要があったperl-Geo-IPも一緒にインストールされる

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

不要な設定ファイルを削除しておく
[root@server1 ~]# rm -f /etc/awstats/awstats.localhost.localdomain.conf
[root@server1 ~]# rm -f /etc/awstats/awstats.server1.yokensaka.com.conf

設定ファイルのコピー
[root@server1 ~]# cp /etc/awstats/awstats.model.conf /etc/awstats/awstats.yokensaka.com.conf

設定ファイルの編集
[root@server2 ~]# vi /etc/awstats/awstats.yokensaka.com.conf

独自ドメイン名に変更
SiteDomain="localhost.localdomain"
↓
SiteDomain="yokensaka.com"

アクセス元から内部(例:192.168.1.X)を除外する
HostAliases="localhost 127.0.0.1"
↓
HostAliases="localhost 127.0.0.1 REGEX[^192\.168\.1\.]"

アクセス元の名前解決を行う(アクセス元をIPアドレスではなくホスト名で表示する)
DNSLookup=2
↓
DNSLookup=1

コメント解除(該当する部分にマウスを当てるとヘルプが表示される)
#LoadPlugin="tooltips"
↓
LoadPlugin="tooltips"

コメント解除(アクセス元国情報を詳細に取得)
#LoadPlugin="geoipfree"
↓
LoadPlugin="geoipfree"

■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.3 (build 20140126)
From data in log file "/var/log/httpd/access_log-20140928"...
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: 491882
 Found 474 dropped records,
 Found 0 comments,
 Found 0 blank records,
 Found 2824 corrupted records,
 Found 488584 old records,
 Found 0 new qualified records.
Create/Update database for config "/etc/awstats/awstats.yokensaka.com.conf" by AWStats version 7.3 (build 20140126)
From data in log file "/var/log/httpd/access_log-20140921"...
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: 497671
 Found 706 dropped records,
 Found 0 comments,
 Found 0 blank records,
 Found 2766 corrupted records,
 Found 494199 old records,
 Found 0 new qualified records.
Create/Update database for config "/etc/awstats/awstats.yokensaka.com.conf" by AWStats version 7.3 (build 20140126)
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: 112559
 Found 94 dropped records,
 Found 0 comments,
 Found 0 blank records,
 Found 546 corrupted records,
 Found 111373 old records,
 Found 546 new qualified records.

AWStatsデータベース初期作成スクリプト削除
[root@server1 ~]# rm -f awstatsinit.sh

■Apacheログローテーション設定ファイル編集
Apacheログファイル切替え時、AWStatsのデータベースに取り込んでから切替えを行うようにする

[root@server1 ~]# vi /etc/logrotate.d/httpd
/var/log/httpd/*log {
    missingok
    notifempty
    sharedscripts
    ----追加(ここから)----
    prerotate
        `rpm -ql awstats|grep "awstats_updateall\.pl"` now -confdir="/etc/awstats" \
        -awstatsprog="`rpm -ql awstats|grep "awstats\.pl"`" >/dev/null
    endscript
    ----追加(ここまで)----
    delaycompress
    postrotate
        /bin/systemctl reload httpd.service > /dev/null 2>/dev/null || true
    endscript
}

■Apache設定
Apache用AWStats設定ファイル編集

[root@server1 ~]# vi /etc/httpd/conf.d/awstats.conf
<Directory "/usr/share/awstats/wwwroot">
    Options None
    AllowOverride None
    <IfModule mod_authz_core.c>    
        # Apache 2.4
        Require local
        Require ip 192.168.1.0/24 → 内部ネットワークを追加
    </IfModule>
    <IfModule !mod_authz_core.c> 
        # Apache 2.2
        Order allow,deny
        Allow from 127.0.0.1
        Allow from ::1
    </IfModule>
</Directory>

設定反映(httpdを再起動)

[root@server1 ~]# systemctl reload httpd

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

http://サーバーアドレス/awstats/awstats.pl?config=ドメイン名