当前位置:   article > 正文

Apache配置与日志管理_apache 怎么配置日志外发到日志审计系统

apache 怎么配置日志外发到日志审计系统

Apache配置剖析

Apache连接保持

Apache连接保持相关参数

  • KeepAlive (默认是On)
    • 是否打开连接保持,OFF关闭,ON打开
  • KeepAlive Timeout(默认超时时间5)
    • 一次连接多次请求之间的最大间隔时间,两次请求超过该时间连接断开
  • MaxKeepAliveRequests(默认最大100)
    • 一次长连接能够传输的最大请求数量

修改配置文件
修改主配置文件
vi /usr/local/httpd/conf/httpd.conf
在这里插入图片描述
配置连接保持
vi /usr/local/httpd/conf/extra/httpd-default.conf
KeepAlive On ####保持连接开启(默认开启)
MaxKeepAliveRequests 200 ####一次连接最多请求200个文件(默认100个)
KeepAliveTimeout 10 ####无响应超时踢下线时间设置10秒(默认5秒)

浏览器抓包
在这里插入图片描述

Apache访问控制概述

作用:

  • 控制对网站资源的访问
  • 为特定的网站目录添加访问授权

常用访问控制方式:

  • 客户机地址限制
  • 用户授权限制

基于客户端地址的访问控制

使用Require配置项实现访问控制,按先后顺序限制
可用于<Location><Directory><Files><Limit>配置段中
Require配置项的常见语法
	Require all granted
	Require all denied
	Require local
	Require [not] host <主机名或域名列表>
	Require [not] ip <IP地址或网段列表>
使用not禁止访问时要将其置于<RequireAll></RequireAll>容器中并在容器中指定相应的限制策略
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

用户授权限制

创建用户认证数据库
[root@server ~]# cd /usr/local/httpd/
[root@server httpd]# bin/htpasswd -c /usr/local/httpd/conf/.awspwd lisi		//新建密码文件,-c:新建使用,再次建用户则不需要
New password:
Re-type new password:
Adding password for user lisi
[root@server httpd]# cat /usr/local/httpd/conf/.awspwd		//确认用户数据库文件
lisi:$apr1$6T3S73Kb$BdIVh.dArtNvxdS0i/J0K/
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

添加用户授权配置

有了授权用户账号以后,还需要修改 httpd.conf 配置文件,在特定的目录区域中添加授
权配置,以启用基本认证并设置允许哪些用户访问。例如,若只允许.awspwd 数据文件中
的任一用户访问系统,可以执行以下操作。

[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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

验证用户访问授权

在这里插入图片描述
其他则拒绝

需要使用“仅拒绝”的限制策略时,灵活使用 Require 与 Require not 配置语句设
置拒绝访问策略,仅禁止一部分主机访问。在使用 not 禁止访问时要将其置于<RequireAll>
</RequireAll>容器中,并在容器中设置相应的限制策略。例如,若只希望禁止来自两个内
网网段 192.168.100.0/24 和 192.168.1.0/24 的主机访问,但允许其他任何主机访问,可以使
用如下限制策略

论坛访问限制
<Directory "/usr/local/httpd/htdocs/bbs">
 …… //省略部分内容
<RequireAll>
Require all granted
Require not ip 192.168.0.0/24 192.168.1.0/24
</RequireAll>
</Directory>

当未被授权的客户机访问网站目录时,将会被拒绝访问。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

日志分割

随着网站的访问量增加,默认情况下Apache的单个日志文件也会越来越大
	日志文件占用磁盘空间很大
	查看相关信息不方便
对日志文件进行分割
	Apache自带rotatelogs分割工具实现
	第三方工具cronolog分割
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

rotatelogs分割工具

配置网站的日志文件转交给rotatelogs分割处理
配置格式
	ErrorLog "|rotatelogs命令的绝对路径 -l 日志文件路径/网站名-error_%Y%m%d.log 86400"
	CustomLog "|rotatelogs命令的绝对路径 -l 日志文件路径/网站名-access_%Y%m%d.log 96400" common

	[root@server ~]# 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" common
	[root@server ~]# systemctl restart httpd.service
	[root@server ~]# ll /var/log/httpd
	-rw-r--r--. 1 root root  889 11月 23 18:35 access_20201123.log
	-rw-r--r--. 1 root root 3598 11月 23 18:35 error_20201123.log
	
实际生成环境中,一个服务器绝大多数对应N个子域名站点,为了方便统一管理,可以用虚拟机的方式进行配置,并用网站名标识日志文件
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

使用第三方工具cronolog分割

1.编译安装cronolog工具
[root@server ~]# tar zxf cronolog-1.6.2.tar.gz
[root@server ~]# cd cronolog-1.6.2/
[root@server cronolog-1.6.2]# ./configure
[root@server cronolog-1.6.2]# make && make install

2.设置 cronolog 工具工具分割 apache 日志
[root@server ~]# vim /usr/local/httpd/conf/httpd.conf
ErrorLog "|/usr/local/sbin/cronolog /var/log/httpd/www.51xit.top-error_%Y%m%d.log" 
CustomLog "|/usr/local/sbin/cronolog /var/log/httpd/www.51xit.top-access_%Y%m%d.log" common

[root@server ~]# systemctl restart httpd
[root@server ~]# ll /var/log/httpd
-rw-r--r--. 1 root root  511 11月 23 18:55 www.51xit.top-access_20201123.log
-rw-r--r--. 1 root root  700 11月 23 18:55 www.51xit.top-error_20201112.log
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

AWStats日志分析系统介绍

Perl语言开发的一款开源日志分析系统
可用来分析Apache、Samba、Vsftpd、IIS等服务器的访问日志
结合crong等计划任务服务,可对日志内容定期进行分析
  • 1
  • 2

安装AWStats软件包

[root@server ~]# mkdir /usr/local/awstats
[root@server ~]# tar xf awstats-7.7.tar.gz -C /usr/local/awstats
[root@server ~]# cd /usr/local/awstats
[root@server awstats-7.7]# ls
docs  README.md  tools  wwwroot
[root@server awstats-7.7]# cd tools/
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

为要统计的站点建立配置文件

[root@server tools]# ./awstats_configure.pl 
Config file path ('none' to skip web server setup):
> /usr/local/httpd/conf/httpd.conf          //输入配置文件
Your web site, virtual server or profile name:
> www.51xit.top                         //输入域名

其他全部是y 或者 回车
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

修改httpd的配置文件

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>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

修改站点统计配置文件

vim /etc/awstats/awstats.www.51xit.top.conf
LogFile="/usr/local/httpd/logs/access_log"		##必须要和http指定日志文件存放的路径一致
DirData="/var/lib/awstats" 

mkdir /var/lib/awstats
[root@server tools]# chmod +x awstats_updateall.pl 
[root@server tools]# ./awstats_updateall.pl now //启动更新
Running '"/usr/local/awstats/wwwroot/cgi-bin/awstats.pl" -update -config=www.51xit.top -configdir="/etc/awstats"' to update config www.51xit.top
Create/Update database for config "/etc/awstats/awstats.www.51xit.top.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: 8
 Found 0 dropped records,
 Found 0 comments,
 Found 0 blank records,
 Found 8 corrupted records,
 Found 0 old records,
 Found 0 new qualified records.
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

数据更新

crontab -e
*/5 * * * * /usr/local/awstats/tools/awstats_updateall.pl now

systemctl start crond
systemctl enable crond
  • 1
  • 2
  • 3
  • 4

简化

在访问 AWStats 系统时,需要指定 awstats 目录、脚本位置、统计目标等信息,这样既不便于记忆,输入时也比较麻烦。为了简化操作,可以在 Web 根目录下建立一个自动跳转的 HTML 网页。例如,执行以下操作后,用户只要访问 http://192.168.100.10,即可自动跳转到 192.168.100.10站点的 AWStats 日志分析页面

[root@www ~]# vim /usr/local/httpd/htdocs/awb.html		#这个采集数据的页面放在站点目录中
<html>
<head>
<meta http-equiv=refresh content="0;
url=http://192.168.100.41/awstats/awstats.pl?config=www.51xit.top">
</head>
<body></body>
</html>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/寸_铁/article/detail/810894
推荐阅读
相关标签
  

闽ICP备14008679号