目录
前言
1.1 Apache连接保持
1.2 Apache 的访问控制
1.2.1 客户机地址限制
1.2.2 用户授权限制
1.2.2.1 创建用户认证数据文件
1.2.2.2 添加用户授权配置
1.2.2.3 验证用户访问授权
编辑
1.3 Apache 日志分割
1.3.1 Apache 自带rotatelogs 分割工具
1.3.2 使用第三方工具cronolog 分割
1.4 AWStats 日志分析
1.4.1 部署AWStats 分析系统
1. 安装 AWStats 软件包
2. 为要统计的站点建立配置文件
(1)指定httpd主配置文件的路径
(2)为指定的Web站点创建配置文件
(3)后续配置工作
3. 修改站点统计配置文件
4. 执行日志分析,并设置cron计划任务
1.4.2 访问 AWStats 分析系统
前言
Apache HTTP Server 之所以受到众多企业的青睐,得益于其代码开源、跨平台、功能 模块化、可灵活定制等诸多优点,不仅性能稳定,在安全性方面的表现也十分出色。
1.1 Apache连接保持
- KeepAlive:决定是否打开连接保持功能,后面接 OFF 表示关闭,接 ON 表示打开,可以根据网站的并发请求量决定是否打开,即在高并发时打开连接保持功能,并发量不高时关闭此功能。
- KeepAliveTimeout:表示一次连接多次请求之间的最大间隔时间,即两次请求之间超过该时间连接就会自动断开,从而避免客户端占用连接资源。
- MaxKeepAliveRequests:用于设置在一次长连接中可以传输的最大请求数量,超过此最大请求数量就会断开连接,最大值的设置决定于网站中网页的内容,一般设置数量会多于网站中所有的元素。
1.2 Apache 的访问控制
为了更好地控制对网站资源的访问,可以为特定的网站目录添加访问授权。本章将分别介绍客户机地址限制、用户授权限制,这两种访问控制方式都应用于 httpd.conf 配置文件中的目录区域<Directory 目录位置> …… </Directory>范围内。
1.2.1 客户机地址限制
- Require all granted:允许所有主机访问;
- Require all denied:拒绝所有主机访问;
- Require local:仅允许本地主机访问;
- Require [not] host <主机名或域名列表>:允许或拒绝指定主机或域名访问;
- Require [not] ip <IP 地址或网段列表>:允许或拒绝指定 IP 地址网络访问。
<Directory "/usr/local/httpd/htdocs">....... 省略部分内容Require all granted
</Directory>
<Directory "/usr/local/httpd/htdocs/wwwtest">...... 省略部分内容Require ip 172.16.37.148
</Directory>
<Directory "/usr/local/httpd/htdocs/wwwtest">...... 省略部分内容<RequireAll>Require all grantedRequire not ip 192.168.0.0/24 192.168.1.0/24</RequireAll></Directory>
1.2.2 用户授权限制
1.2.2.1 创建用户认证数据文件
[root@www ~]# cd /usr/local/httpd/
[root@www httpd]# bin/htpasswd -c /usr/local/httpd/conf/.awspwd webadmin
New password:
Re-type new password:
Adding password for user webadmin
[root@www httpd]# cat /usr/local/httpd/conf/.awspwd
webadmin:$apr1$puj.M9Bf$ZyAKvsxcx2jKw6GlzqwTK/
[root@www httpd]#
[root@www httpd]# bin/htpasswd /usr/local/httpd/conf/.awspwd zhangsan
New password:
Re-type new password:
Adding password for user zhangsan
[root@www httpd]# cat /usr/local/httpd/conf/.awspwd
webadmin:$apr1$puj.M9Bf$ZyAKvsxcx2jKw6GlzqwTK/
zhangsan:$apr1$krVhdhr3$hzuXofqByQu8APNgeOatK.
[root@www httpd]#
1.2.2.2 添加用户授权配置
[root@www ~]# vim /usr/local/httpd/conf/httpd.conf …… //省略部分内容
<Directory "/usr/local/httpd/htdocs"> …… //省略部分内容
AuthName "DocumentRoot" AuthType Basic
AuthUserFile /usr/local/httpd/conf/.awspwd
Require valid-user
</Directory>
[root@www ~]# systemctl restart httpd //重启服务使配置生效
- AuthName:定义受保护的领域名称,该内容将在浏览器弹出的认证对话框中显示。
- AuthType:设置认证的类型,Basic 表示基本认证。
- AuthUserFile:设置用于保存用户账号、密码的认证文件路径。
- require valid-user:要求只有认证文件中的合法用户才能访问。其中,valid-user 表示
所有合法用户,若只授权给单个用户,可改为指定的用户名(如 webadmin)。
1.2.2.3 验证用户访问授权
1.3 Apache 日志分割
1.3.1 Apache 自带rotatelogs 分割工具
[root@www ~]# mkdir /var/log/httpd/
[root@www ~]# vim /usr/local/httpd/conf/httpd.conf…… //省略部分内容
ErrorLog "|/usr/local/bin/rotatelogs -l /var/log/httpd/error_%Y%m%d.log 86400"
CustomLog "|/usr/local/bin/rotatelogs -l /var/log/httpd/access_%Y%m%d.log 86400" combined
[root@www ~]# systemctl restart httpd
[root@www ~]# ll /var/log/httpd/
总用量 8
-rw-r--r-- 1 root root 150 1 月 11 20:36 access_20200101.log
-rw-r--r-- 1 root root 588 1 月 11 20:35 error_20200101.log
1.3.2 使用第三方工具cronolog 分割
[root@www ~]# tar zxvf cronolog-1.6.2.tar.gz
[root@www ~]# cd cronolog-1.6.2
[root@www cronolog-1.6.2]# ./configure
[root@www cronolog-1.6.2]# make && make install
(2)设置 cronolog 工具工具分割Apache日志
[root@www ~]# vim /usr/local/httpd/conf/httpd.conf
ErrorLog "| /usr/local/sbin/cronolog -l /var/log/httpd/www.bdqn.com-error_%Y%m%d.log 86400"
CustomLog "| /usr/local/sbin/cronolog -l /var/log/httpd/www.bdqn.com-access_%Y%m%d.log 86400" combined
[root@www ~]# systemctl restart httpd.service
1.4 AWStats 日志分析
1.4.1 部署AWStats 分析系统
1. 安装 AWStats 软件包
[root@www ~]# tar zxf awstats-7.7.tar.gz
[root@www ~]# mv awstats-7.7 /usr/local/awstats
2. 为要统计的站点建立配置文件
[root@www ~]# cd /usr/local/awstats/tools/
[root@www tools]# ./awstats_configure.pl
(1)指定httpd主配置文件的路径
----- AWStats awstats_configure 1.0 (build 20140126) (c) Laurent Destailleur -----
This tool will help you to configure AWStats to analyze statistics for
one web server. You can try to use it to let it do all that is possible
in AWStats setup, however following the step by step manual setup
documentation (docs/index.html) is often a better idea. Above all if:
- You are not an administrator user,
- You want to analyze downloaded log files without web server,
- You want to analyze mail or ftp log files instead of web log files,
- You need to analyze load balanced servers log files,
- You want to 'understand' all possible ways to use AWStats...
Read the AWStats documentation (docs/index.html).-----> Running OS detected: Linux, BSD or Unix-----> Check for web server installEnter full config file path of your Web server.
Example: /etc/httpd/httpd.conf
Example: /usr/local/apache2/conf/httpd.conf
Example: c:\Program files\apache group\apache\conf\httpd.conf
Config file path ('none' to skip web server setup):
> /usr/local/httpd/conf/httpd.conf ## 输入httpd.conf配置文件的路径
(2)为指定的Web站点创建配置文件
-----> Need to create a new config file ?
Do you want me to build a new AWStats config/profile
file (required if first install) [y/N] ? y ##确认创建新的站点配置文件
-----> Define config file name to create
What is the name of your web site or profile analysis ?
Example: www.mysite.com
Example: demo
Your web site, virtual server or profile name:
>www.kgc.com ##指定要统计的目标网站名称
-----> Define config file path
In which directory do you plan to store your config file(s) ?
Default: /etc/awstats
Directory path to store config file(s) (Enter for default):
> //直接按 Enter 键接受默认设置
-----> Create config file '/etc/awstats/awstats.www.kgc.com.conf' Config file /etc/awstats/awstats.www.kgc.com.conf created.
...... //省略部分内容
(3)后续配置工作
[root@www ~]# vim /usr/local/httpd/conf/httpd.conf
ErrorLog "logs/error_log" CustomLog "logs/access_log" combined
<IfModule !mpm_prefork_module>
LoadModule cgid_module modules/mod_cgid.so
</IfModule>
<IfModule mpm_prefork_module>
LoadModule cgi_module modules/mod_cgi.so
</IfModule>
......
<Directory "/usr/local/awstats/wwwroot">
Options None
AllowOverride None
# Order allow,deny //注释掉
# Allow from all //注释掉
Require all granted //添加
</Directory>
[root@www ~]# systemctl restart httpd
3. 修改站点统计配置文件
[root@www ~]#vim /etc/awstats/awstats.www.kgc.com.conf
LogFile="/usr/local/httpd/logs/access_log"
DirData="/var/lib/awstats"
…… ## 省略部分内容
[root@www ~]#mkdir /var/lib/awstats
4. 执行日志分析,并设置cron计划任务
[root@www ~]# cd /usr/local/awstats/tools/
[root@www tools]# chmod +x awstats_updateall.pl
[root@www tools]#./awstats_updateall.pl now
Running '"/usr/local/awstats/wwwroot/cgi-bin/awstats.pl" -update
-config=www.kgc.com -configdir="/etc/awstats"' to update config www.kgc.com
Create/Update database for config "/etc/awstats/awstats.www.kgc.com.conf" by
AWStats version 7.7 (build 20180105)
From data in log file "/usr/local/httpd/logs/access_log"... Phase 1 : First bypass old records, searching new record... Searching new records from beginning of log file... Jumped lines in file: 0
Parsed lines in file: 0
Found 0 dropped records, Found 0 comments, Found 0 blank records, Found 0 corrupted records, Found 0 old records, Found 0 new qualified records