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=ドメイン名

CentOS 7 Apacheインストール

Webサーバ(Apache)

■Apache がインストールされてるかどうか確認する。

[root@server1 ~]# rpm -q httpd
パッケージ httpd はインストールされていません。

■Apache のインストール

[root@server1 ~]# yum -y install httpd
読み込んだプラグイン:fastestmirror, langpacks, priorities
Loading mirror speeds from cached hostfile
 * base: mirrors.yun-idc.com
 * centosplus: ftp.riken.jp
 * epel: kartolo.sby.datautama.net.id
 * extras: ftp.riken.jp
 * rpmforge: ftp.kddilabs.jp
 * updates: mirrors.yun-idc.com
45 packages excluded due to repository priority protections
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ httpd.x86_64 0:2.4.6-17.el7.centos.1 を インストール
--> 依存性の処理をしています: httpd-tools = 2.4.6-17.el7.centos.1 のパッケージ: httpd-2.4.6-17.el7.centos.1.x86_64
--> 依存性の処理をしています: /etc/mime.types のパッケージ: httpd-2.4.6-17.el7.centos.1.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ httpd-tools.x86_64 0:2.4.6-17.el7.centos.1 を インストール
---> パッケージ mailcap.noarch 0:2.1.41-2.el7 を インストール
--> 依存性解決を終了しました。

依存性を解決しました

====================================================================================================
 Package                アーキテクチャー  バージョン                          リポジトリー     容量
====================================================================================================
インストール中:
 httpd                  x86_64            2.4.6-17.el7.centos.1               base            2.7 M
依存性関連でのインストールをします:
 httpd-tools            x86_64            2.4.6-17.el7.centos.1               base             77 k
 mailcap                noarch            2.1.41-2.el7                        base             31 k

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

総ダウンロード容量: 2.8 M
インストール容量: 9.6 M
Downloading packages:
(1/3): mailcap-2.1.41-2.el7.noarch.rpm                                       |  31 kB  00:00:00
(2/3): httpd-tools-2.4.6-17.el7.centos.1.x86_64.rpm                          |  77 kB  00:00:00
(3/3): httpd-2.4.6-17.el7.centos.1.x86_64.rpm                                | 2.7 MB  00:00:00
----------------------------------------------------------------------------------------------------
合計                                                                3.9 MB/s | 2.8 MB  00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  インストール中          : httpd-tools-2.4.6-17.el7.centos.1.x86_64                            1/3
  インストール中          : mailcap-2.1.41-2.el7.noarch                                         2/3
  インストール中          : httpd-2.4.6-17.el7.centos.1.x86_64                                  3/3
  検証中                  : mailcap-2.1.41-2.el7.noarch                                         1/3
  検証中                  : httpd-2.4.6-17.el7.centos.1.x86_64                                  2/3
  検証中                  : httpd-tools-2.4.6-17.el7.centos.1.x86_64                            3/3

インストール:
  httpd.x86_64 0:2.4.6-17.el7.centos.1

依存性関連をインストールしました:
  httpd-tools.x86_64 0:2.4.6-17.el7.centos.1              mailcap.noarch 0:2.1.41-2.el7

完了しました!

■php、php-mbstringをインストール

[root@server1 ~]# yum -y install php php-mbstring
読み込んだプラグイン:fastestmirror, langpacks, priorities
Loading mirror speeds from cached hostfile
 * base: mirrors.yun-idc.com
 * centosplus: ftp.riken.jp
 * epel: mirror.premi.st
 * extras: ftp.riken.jp
 * rpmforge: ftp.kddilabs.jp
 * updates: mirrors.yun-idc.com
45 packages excluded due to repository priority protections
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ php.x86_64 0:5.4.16-21.el7 を インストール
--> 依存性の処理をしています: php-common(x86-64) = 5.4.16-21.el7 のパッケージ: php-5.4.16-21.el7.x86_64
--> 依存性の処理をしています: php-cli(x86-64) = 5.4.16-21.el7 のパッケージ: php-5.4.16-21.el7.x86_64
---> パッケージ php-mbstring.x86_64 0:5.4.16-21.el7 を インストール
--> トランザクションの確認を実行しています。
---> パッケージ php-cli.x86_64 0:5.4.16-21.el7 を インストール
---> パッケージ php-common.x86_64 0:5.4.16-21.el7 を インストール
--> 依存性の処理をしています: libzip.so.2()(64bit) のパッケージ: php-common-5.4.16-21.el7.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ libzip.x86_64 0:0.10.1-8.el7 を インストール
--> 依存性解決を終了しました。

依存性を解決しました

====================================================================================================
 Package                   アーキテクチャー    バージョン                   リポジトリー       容量
====================================================================================================
インストール中:
 php                       x86_64              5.4.16-21.el7                base              1.3 M
 php-mbstring              x86_64              5.4.16-21.el7                base              499 k
依存性関連でのインストールをします:
 libzip                    x86_64              0.10.1-8.el7                 base               48 k
 php-cli                   x86_64              5.4.16-21.el7                base              2.7 M
 php-common                x86_64              5.4.16-21.el7                base              559 k

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

総ダウンロード容量: 5.2 M
インストール容量: 18 M
Downloading packages:
(1/5): libzip-0.10.1-8.el7.x86_64.rpm                                        |  48 kB  00:00:00
(2/5): php-cli-5.4.16-21.el7.x86_64.rpm                                      | 2.7 MB  00:00:00
(3/5): php-common-5.4.16-21.el7.x86_64.rpm                                   | 559 kB  00:00:00
(4/5): php-mbstring-5.4.16-21.el7.x86_64.rpm                                 | 499 kB  00:00:00
(5/5): php-5.4.16-21.el7.x86_64.rpm                                          | 1.3 MB  00:00:01
----------------------------------------------------------------------------------------------------
合計                                                                4.6 MB/s | 5.2 MB  00:00:01
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  インストール中          : libzip-0.10.1-8.el7.x86_64                                          1/5
  インストール中          : php-common-5.4.16-21.el7.x86_64                                     2/5
  インストール中          : php-cli-5.4.16-21.el7.x86_64                                        3/5
  インストール中          : php-5.4.16-21.el7.x86_64                                            4/5
  インストール中          : php-mbstring-5.4.16-21.el7.x86_64                                   5/5
  検証中                  : php-common-5.4.16-21.el7.x86_64                                     1/5
  検証中                  : php-cli-5.4.16-21.el7.x86_64                                        2/5
  検証中                  : php-mbstring-5.4.16-21.el7.x86_64                                   3/5
  検証中                  : libzip-0.10.1-8.el7.x86_64                                          4/5
  検証中                  : php-5.4.16-21.el7.x86_64                                            5/5

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

依存性関連をインストールしました:
  libzip.x86_64 0:0.10.1-8.el7  php-cli.x86_64 0:5.4.16-21.el7  php-common.x86_64 0:5.4.16-21.el7

完了しました!

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

[root@server1 ~]# vi /etc/httpd/conf/httpd.conf

サーバー名を指定
#ServerName www.example.com:80
                  ↓
ServerName yokensaka.com:80 ← #をはずして独自ドメインに変更

# http://httpd.apache.org/docs-2.0/mod/core.html#options
# for more information.
#
CGIの許可、SSIの許可
    Options Indexes FollowSymLinks
         ↓
    Options Includes ExecCGI FollowSymLinks

.htaccessの許可
# It can be "All", "None", or any combination of the keywords:
#   Options FileInfo AuthConfig Limit
#
    AllowOverride None
         ↓
    AllowOverride All

長すぎる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

デフォルトキャラセットを無効にする(文字化け対策)
AddDefaultCharset UTF-8
         ↓
#AddDefaultCharset UTF-8 ← #を付ける

CGIスクリプトを実行できる様にする
#AddHandler cgi-script .cgi
         ↓
AddHandler cgi-script .cgi .pl ← #をはずして.plを追加

チェック
[root@server1 ~]# apachectl configtest
Syntax OK

■Perlのパスが/usr/local/bin/perlでもCGIを実行出来るようにする。

[root@server1 ~]# whereis perl
perl: /usr/bin/perl /usr/share/man/man1/perl.1.gz

シンボリックリンク設定(/usr/local/bin/perlから/usr/bin/perlへリンクをはる
[root@server1 ~]# ln -s /usr/bin/perl /usr/local/bin/perl

変更後のPerlの位置
[root@server1 ~]# whereis perl
perl: /usr/bin/perl /usr/local/bin/perl /usr/share/man/man1/perl.1.gz

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

[root@server1 ~]# chown higo:higo /var/www/html/

WordPress対応(所有者変更)
# chown -R apache:apache /var/www/html/blog ← blog,centos,fedora,1129,pf,taka
# chown -R higo:higo /var/www/html/blog/wp-content/uploads
# chown higo:higo /var/www/html/blog/wp-config.php

ドキュメントルート所有者変更確認
[root@server1 ~]# ll /var/www/
合計 0
drwxr-xr-x 2 root root 6  6月 18 04:12 cgi-bin
drwxr-xr-x 2 higo higo 6  6月 18 04:12 html

■Apacheの起動

root@server1 ~]# systemctl start httpd

■Apacheの自動起動設定

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

■起動確認

[root@server1 ~]# systemctl status httpd
httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled)
   Active: active (running) since 土 2014-10-25 10:48:28 JST; 10s ago
 Main PID: 4098 (httpd)
   Status: "Total requests: 0; Current requests/sec: 0; Current traffic:   0 B/sec"
   CGroup: /system.slice/httpd.service
           ├─4098 /usr/sbin/httpd -DFOREGROUND
           ├─4100 /usr/sbin/httpd -DFOREGROUND
           ├─4101 /usr/sbin/httpd -DFOREGROUND
           ├─4102 /usr/sbin/httpd -DFOREGROUND
           ├─4103 /usr/sbin/httpd -DFOREGROUND
           └─4104 /usr/sbin/httpd -DFOREGROUND

10月 25 10:48:27 server1.yokensaka.com systemd[1]: Starting The Apache HTTP Server...
10月 25 10:48:28 server1.yokensaka.com systemd[1]: Started The Apache HTTP Server.

■公開前の準備
ホームページを外部に公開するに当たって、ルータの設定でポート番号80番を開ける必要がある。

CentOS 7 postfixインストール

■Postfixのインストール

[root@server1 ~]# yum -y install postfix
読み込んだプラグイン:fastestmirror, langpacks, priorities
Loading mirror speeds from cached hostfile
 * base: ftp.riken.jp
 * centosplus: mirrors.btte.net
 * epel: ftp.kddilabs.jp
 * extras: ftp.riken.jp
 * rpmforge: ftp.kddilabs.jp
 * updates: mirrors.btte.net
45 packages excluded due to repository priority protections
パッケージ 2:postfix-2.10.1-6.el7.x86_64 はインストール済みか最新バージョンです
何もしません

■Postfixの設定
Postfixの基本的な設定は、/etc/postfix/main.cfで行う

[root@server1 ~]# vi /etc/postfix/main.cf
# The myhostname parameter specifies the internet hostname of this
# mail system. The default is to use the fully-qualified domain name
# from gethostname(). $myhostname is used as a default value for many
# other configuration parameters.
#
#myhostname = host.domain.tld
↓
myhostname = server1.yokensaka.com ← #を外して、サーバーのホスト名を設定
#myhostname = virtual.domain.tld
# The mydomain parameter specifies the local internet domain name.
# The default is to use $myhostname minus the first component.
# $mydomain is used as a default value for many other configuration
# parameters.
#
#mydomain = domain.tld
↓
mydomain = yokensaka.com ← #を外して、ドメイン名を設定
# For the sake of consistency between sender and recipient addresses,
# myorigin also specifies the default domain name that is appended
# to recipient addresses that have no @domain part.
#
#myorigin = $myhostname
#myorigin = $mydomain
↓
myorigin = $mydomain ← #を外して、設定を有効に
      (メールアドレスの「@」以下に付加する文字列を指定)
# See also the proxy_interfaces parameter, for network addresses that
# are forwarded to us via a proxy or network address translator.
#
# Note: you need to stop/start Postfix when this parameter changes.
#
メールの受信を許可するネットワークインターフェースを設定
#inet_interfaces = all
↓ #を外して、設定を有効にする(自サーバーからのメールだけを受信する場合は設定しない)
inet_interfaces = all
#inet_interfaces = $myhostname
#inet_interfaces = $myhostname, localhost
inet_interfaces = localhost
↓ 行頭に#を追加(自サーバーからのメールだけを受信する場合は設定しない)
#inet_interfaces = localhost
# Specify a list of host or domain names, /file/name or type:table
# patterns, separated by commas and/or whitespace. A /file/name
# pattern is replaced by its contents; a type:table is matched when
# a name matches a lookup key (the right-hand side is ignored).
# Continue long lines by starting the next line with whitespace.
#
# See also below, section "REJECTING MAIL FOR UNKNOWN LOCAL USERS".
#
受信したメールを拒否するかどうかを設定
mydestination = $myhostname, localhost.$mydomain, localhost
↓
#mydestination = $myhostname, localhost.$mydomain, localhost ← 行頭に#を追加
#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
↓
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain ← #を外す
#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain,
#       mail.$mydomain, www.$mydomain, ftp.$mydomain
# Specify "mynetworks_style = host" when Postfix should "trust"
# only the local machine.
#
#mynetworks_style = class
#mynetworks_style = subnet
↓
mynetworks_style = subnet ← #を外す
#mynetworks_style = host
# You can also specify the absolute pathname of a pattern file instead
# of listing the patterns here. Specify type:table for table-based lookups
# (the value on the table right-hand side is not used).
#
内部ネットワークアドレスとローカルホストアドレスを指定
#mynetworks = 168.100.189.0/28, 127.0.0.0/8
↓
mynetworks = 192.168.1.0/24, 127.0.0.0/8 ← #を外して書き換える
#mynetworks = $config_directory/mynetworks
#mynetworks = hash:/etc/postfix/network_table
# NOTE: Postfix will not automatically forward mail for domains that
# list this system as their primary or backup MX host. See the
# permit_mx_backup restriction description in postconf(5).
#
#relay_domains = $mydestination
↓
relay_domains = $mydestination ← #を外す
# DELIVERY TO MAILBOX
#
# The home_mailbox parameter specifies the optional pathname of a
# mailbox file relative to a user's home directory. The default
# mailbox file is /var/spool/mail/user or /var/mail/user.  Specify
# "Maildir/" for qmail-style delivery (the / is required).
#
#home_mailbox = Mailbox
#home_mailbox = Maildir/
↓
home_mailbox = Maildir/ ← #を外してメールボックス格納形式をMaildir形式にする
SMTP Authを有効にする。設定ファイルの最終行まで移動して、以下のように設定を追記。
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
送信するメール1通当たりのサイズはデフォルトで10MByte、
受信するメール合計の総容量はデフォルトで50MByteに設定されている。
それぞれ5倍の50MByteと250MByteに変更するには以下を最終行へ追加。
message_size_limit = 52428800 ← 1024*1024*50=52428800
mailbox_size_limit = 262144000 ← 1024*1024*250=262144000

変更を有効にする為、postfixを再起動。
[root@server1 ~]# systemctl restart postfix

■SMTP Auth設定
SMTP AuthではCyrus SASLと呼ばれる認証プログラムを利用している。 PostfixでCyrus SASLを利用出来るように設定する必要がある。

[root@server1 ~]# vi /etc/sasl2/smtpd.conf
設定ファイルの最後に追記
mech_list: plain login cram-md5 digest-md5

saslauthdの起動
[root@server1 ~]# systemctl start saslauthd

saslauthdの自動起動設定
[root@server1 ~]# systemctl enable saslauthd
ln -s '/usr/lib/systemd/system/saslauthd.service' '/etc/systemd/system/multi-user.target.wants/saslauthd.service'

■root宛メールを一般ユーザ(webmaster)へ転送
システムからroot宛に送られてくるメールを、一般ユーザ(webmaster)へ転送するようにする。

管理者ユーザ宛メールのroot宛転送設定を解除
[root@server1 ~]# sed -i 's/^webmaster/#webmaster/g' /etc/aliases

管理者ユーザ宛メールのroot宛転送設定解除を確認
[root@server1 ~]# grep ^webmaster /etc/aliases ← 結果がなにも表示されないことを確認

root宛メールを管理者ユーザ(webmaster)へ転送するように設定
[root@server1 ~]# sed -i 's/^root/#root/g' /etc/aliases

root宛メールを管理者ユーザ(webmaster)へ転送するように設定
[root@server1 ~]# echo "root: webmaster" >> /etc/aliases

root宛メールが管理者ユーザ(webmaster)宛へ転送されるかの確認
[root@server1 ~]# grep ^root /etc/aliases
root: webmaster ← root宛メールが管理者ユーザ(webmaster)へ転送されるように設定されている

転送先を反映させる
[root@server1 ~]# postalias /etc/aliases

■一般ユーザー(webmaster)の作成
webmasterへメールが届くようにするためには一般ユーザー(webmaster)の作成が必要。

一般ユーザ(webmaster)を追加。
[root@server1 ~]# useradd webmaster

一般ユーザーでログインするためにはパスワードを設定する必要がある
[root@server1 ~]# passwd webmaster
パスワードの入力(入力したパスワードは表示されない

ユーザー webmaster のパスワードを変更。
新しいパスワード: ← パスワード
新しいパスワードを再入力してください: ← パスワードを再入力
passwd: すべての認証トークンが正しく更新できました。

■Postfixの起動

[root@server1 ~]# systemctl start postfix

■Postfixの自動起動設定

[root@server1 ~]# systemctl enable postfix

■sendmailパスの確認
掲示板などで投稿があったらメール通知する設定をしている時は CGIのsendmailパスの設定を変更しないと送信エラーになる場合がある。

一般ユーザーでsendmailパスの確認をする
[root@server1 ~]# su - higo
最終ログイン: 2014/07/17 (木) 21:48:02 JST 192.168.1.18から開始日時 pts/0

sendmailパスの確認
[higo@server1 ~]$ which sendmail
/usr/sbin/sendmail

ルートになる
[higo@server1 ~]$ su -
パスワード: ← ルートのパスワードを入力
最終ログイン: 2014/07/17 (木) 21:48:31 JST日時 pts/0

以下のようにすれば一般ユーザーでもsendmailパスがみえるようになる。
[root@server1 ~]# ln -s /usr/sbin/sendmail /usr/bin/sendmail

一般ユーザーになる
[root@server1 ~]# su - higo
最終ログイン: 2014/07/17 (木) 22:44:12 JST日時 pts/0

endmailパスの確認
[higo@server1 ~]$ which sendmail
/bin/sendmail

root宛のメールを一般ユーザーへ転送してない場合、rootのメールが肥大化していくので注意が必要。そんな時は手動でroot宛のメールを削除する。

メール容量を確認
[root@server1 ~]# ls -la /var/spool/mail/
合計 288
drwxrwxr-x.  2 root      mail     54  7月 17 22:06 .
drwxr-xr-x. 11 root      root   4096  7月 14 23:47 ..
-rw-rw----.  1 higo      mail      0  7月 14 23:56 higo
-rw-------.  1 root      mail 289357  7月 17 06:12 root
-rw-rw----.  1 rpc       mail      0  7月 14 23:37 rpc
-rw-rw----   1 webmaster mail      0  7月 17 22:06 webmaster

root宛のメールを削除
[root@server1 ~]# cat /dev/null > /var/mail/root

再度メール容量を確認
[root@server1 ~]# ls -la /var/spool/mail/
合計 4
drwxrwxr-x.  2 root      mail   54  7月 17 22:06 .
drwxr-xr-x. 11 root      root 4096  7月 14 23:47 ..
-rw-rw----.  1 higo      mail    0  7月 14 23:56 higo
-rw-------.  1 root      mail    0  7月 17 22:55 root
-rw-rw----.  1 rpc       mail    0  7月 14 23:37 rpc
-rw-rw----   1 webmaster mail    0  7月 17 22:06 webmaster


サーバー管理のレポート送信先を変更
[root@server1 ~]# vi /etc/aliases
# Person who should get root's mail
#root:          marc
root:           hoge@yokensaka.com → 設定したいメールアドレスを指定する。

変更内容を有効化
[root@server1 ~]# newaliases

newaliases コマンドを実行すると、/etc/aliases.db が更新され、変更が反映される。
[root@server1 ~]# ls -l /etc/aliases*
-rw-r--r--  1 root root  1560  9月 14 12:22 /etc/aliases
-rw-r--r--. 1 root root 12288  9月 14 19:08 /etc/aliases.db

※SMTPサーバーを使うには、ルーターの設定が必要なので25番のポートを開ける。