Apache服务器日志与安全
作者:mobiledu2502923673 | 来源:互联网 | 2014-05-28 10:53
互联网的飞速发展,无论是传统企业的网站,还是互联网企业,为了了解自己的客户来源,点击率等资料,对网站日志的分析尤为重要,以下就本人所做的日志分析系统与大家分享,希望能对大家有所帮助。一,所用软件及工具1,Apache服务器官方网址:http://www.apa
互联网的飞速发展,无论是传统企业的网站,还是互联网企业,为了了解自己的客户来源,点击率等资料,对网站日志的分析尤为重要,以下就本人所做的日志分析系统与大家分享,希望能对大家有所帮助。
一,所用软件及工具
1,Apache服务器
官方网址:http://www.apache.org
2,awstats 日志分析软件 官方网址:http://awstats.sourceforge.net/
3,cronolog 日志截取软件 官方网址:http://www.cronolog.org
二,环境构架
1,RedHat AS 3
2,Apache
./configure
Cprefix=/usr/local/Apache2/
--enable-so
make
make install
3, awstats
直接tar到 /usr/local/awstats
4,cronolog
./configure
Cprefix=/usr/local/cronolog
make
make install
三, 配置
1, Apache
a,让Apache中的某个虚拟主机产生日志:
全局环境变量设置:
CODE:
LogFormat "%h %l %u %t "%r" %>;s %b "%i" "%i"" combined
SetEnvIf Request_URI .gif$ gif-image
SetEnvIf Request_URI .GIF$ gif-image
SetEnvIf Request_URI .jpg$ gif-image
SetEnvIf Request_URI .JPG$ gif-image
SetEnvIf Request_URI .png$ gif-image
SetEnvIf Request_URI .swf$ gif-image
SetEnvIf Request_URI .SWF$ gif-image
SetEnvIf Request_URI .css$ gif-image
SetEnvIf Request_URI .CSS$ gif-image
SetEnvIf Request_URI .js$ gif-image
SetEnvIf Request_URI .JS$ gif-image
SetEnvIf Request_URI .ico$ gif-image
产生日志但不包括 图片。
虚拟主机日志设置
CODE:
;
ServerAdmin
webmaster@abc.net
DocumentRoot
/db/htdocs/www
ServerName www.abc.net
CustomLog
"|/usr/local/cronolog/sbin/cronolog /db/logs/www.%Y-%m-%d.log"
combined env=!gif-image
#用cronolog截取存放在/db/logs/下的按日期产生的Apache日志文件
;
注:日志文件是针对每一个虚拟主机产生的所以可以配置一台服务器上多个虚拟主机的日志分析
b,别名设置
CODE:
#
# Directives to allow use of AWStats as a CGI
#
Alias /awstatsclasses "/usr/local/awstats/wwwroot/classes/"
Alias /awstatscss "/usr/local/awstats/wwwroot/css/"
Alias /awstatsicons "/usr/local/awstats/wwwroot/icon/"
ScriptAlias /awstats/ "/usr/local/awstats/wwwroot/cgi-bin/"
#
# This is to permit URL access to scripts/files in AWStats
directory.
#
;
Options None
AllowOverride None
Order allow,deny
Allow from all
;
该配置在运行awstats/tools/awstats_configure.pl
后会自动产生所以不用手动添加。
c,awstats需要cgi的支持如果没有添加cgi可以现在添加
CODE:
./apxs -c -i
/usr/local/src/httpd-2.0.50/modules/generators/mod_cgi.c
再在httpd.conf 中添加
CODE:
LoadModule
cgi_module
modules/mod_cgi.so
d为了保护日志统计信息需要对某些目录进行认证设置,需要认证模块的支持
CODE:
./apxs -c -i /usr/local/src/httpd-2.0.50/..../mod_auth.c
再在httpd.conf 中添加
CODE:
LoadModule
auth_module
modules/mod_auth.so
配置需要认证的目录:
CODE:
;
AuthType Basic
AuthName "Restricted Files"
AuthUserFile /usr/local/Apache2/passwd/passwords
Require user loguser
;
其中在 /usr/local/Apache2/passwd/下产生passwords
的密码文件
运行如下代码产生用户名为loguser用户及其密码
CODE:
/usr/local/Apache2/bin/htpasswd
-c /usr/local/Apache2/passwd/passwords
loguser
注意:先要在 /usr/local/Apache2/下建passwd目录
2,Awstats
运行
/usr/local/awstats/tools/awstats_configure.pl
主要设置的是需要输入做统计的主机名的配置文件名如:www.abc.net
接着修改
刚才配置是产生的awstats配置文件
默认位置在:
/etc/awstats/awstats.www.abc.net.con 主要做指定log位置
CODE:
LogFile="/db/logs/www.%YYYY-4-%MM-2-%DD-2.log"
创建目录:mkdir /var/lib/awstats/
执行:
CODE:
/usr/local/awstats/wwwroot/cgi-bin/awstats.pl
-update -cOnfig=www.abc.net
更新,update 后可以在浏览器中输入 http://www.abc.net/awstats/awstats.pl 进行访问了。
3,cronolog (基本不用什么修改)
4,crontab的修改
在 crontab中添加如下
命令保证15分钟更新一次,也可以根据你自己的需要修改更新的间隔
CODE:
*/15 * * * *
/usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update
-cOnfig=www.abc.net
四,安全性考虑
1, 以上的设置由于要cgi支持,也增加了安全隐患可以用awstats
自带的awstats_buildstaticpages.pl来 生成静态页面 可以添加到crontab中
CODE:
*/15 * * * *
/usr/local/awstats/tools/awstats_buildstaticpages.pl -update
-cOnfig=www.abc.net -lang=cn -dir=/db/htdocs/www/awstat/
-awstatsprog=/usr/local/awstats/wwwroot/cgi-bin/awstats.pl
这样没15分钟在/db/htdocs/www/awstat/ 下生成各种静态页面
2,保护/db/htdocs/www/awstat/禁止未授权用户访问
在httpd.conf中添加
CODE:
;
AuthType Basic
AuthName "Restricted Files"
AuthUserFile /usr/local/Apache2/passwd/passwords
Require user loguser
;
如果www.abc.net 虚拟主机 主目录为/db/htdocs/www/ 则在浏览器中输入http://www.abc.net/awstat/awstats.www.abc.net.html 就可以通过认真访问静态页面
3,如果用静态页面就不要忘了注释掉
LoadModule cgi_module
modules/mod_cgi.so
推荐阅读
1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ...
[详细]
蜡笔小新 2024-12-27 19:32:17
在计算机技术的学习道路上,51CTO学院以其专业性和专注度给我留下了深刻印象。从2012年接触计算机到2014年开始系统学习网络技术和安全领域,51CTO学院始终是我信赖的学习平台。 ...
[详细]
蜡笔小新 2024-12-28 08:20:07
本周信息安全小组主要进行了CTF竞赛相关技能的学习,包括HTML和CSS的基础知识、逆向工程的初步探索以及整数溢出漏洞的学习。此外,还掌握了Linux命令行操作及互联网工作原理的基本概念。 ...
[详细]
蜡笔小新 2024-12-28 05:52:22
本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ...
[详细]
蜡笔小新 2024-12-27 18:20:43
本文详细介绍了360SRC平台处理一起关键安全事件的过程,涵盖从漏洞提交、验证、排查到最终修复的各个环节。通过这一案例,展示了360在安全应急响应方面的专业能力和严谨态度。 ...
[详细]
蜡笔小新 2024-12-27 11:10:05
本文详细分析了Hive在启动过程中遇到的权限拒绝错误,并提供了多种解决方案,包括调整文件权限、用户组设置以及环境变量配置等。 ...
[详细]
蜡笔小新 2024-12-26 19:14:29
网络运维工程师负责确保企业IT基础设施的稳定运行,保障业务连续性和数据安全。他们需要具备多种技能,包括搭建和维护网络环境、监控系统性能、处理突发事件等。本文将探讨网络运维工程师的职业前景及其平均薪酬水平。 ...
[详细]
蜡笔小新 2024-12-26 14:35:04
本文介绍如何使用 Oracle 存储函数查询特定员工的年收入。我们将详细解释存储函数的创建过程,并提供完整的代码示例。 ...
[详细]
蜡笔小新 2024-12-28 09:49:42
本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ...
[详细]
蜡笔小新 2024-12-27 17:40:42
本文详细介绍了W3C标准盒模型和IE传统盒模型的区别,探讨了CSS3中box-sizing属性的使用方法及其在布局中的重要性。通过实例分析,帮助读者更好地理解和应用这一关键概念。 ...
[详细]
蜡笔小新 2024-12-27 15:01:09
本文详细介绍了如何在Linux环境中安装和配置ActiveMQ,包括端口开放及防火墙设置。通过本文,您可以掌握完整的ActiveMQ部署流程,确保其在网络环境中正常运行。 ...
[详细]
蜡笔小新 2024-12-27 14:38:54
本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ...
[详细]
蜡笔小新 2024-12-27 13:55:14
本文介绍如何通过SQL查询从JDE(JD Edwards)系统中提取所有字典数据,涵盖关键表的关联和字段选择。具体包括F0004和F0005系列表的数据提取方法。 ...
[详细]
蜡笔小新 2024-12-26 21:04:46
在Web和移动开发中,为什么选择字体图标?主要原因是其卓越的性能,可以显著减少HTTP请求并优化页面加载速度。本文详细介绍了从设计到应用的字体图标制作流程,并提供了专业建议。 ...
[详细]
蜡笔小新 2024-12-26 20:48:44
本文详细介绍了如何通过命令行启动MySQL服务,包括打开命令提示符窗口、进入MySQL的bin目录、输入正确的连接命令以及注意事项。文中还提供了更多相关命令的资源链接。 ...
[详细]
蜡笔小新 2024-12-26 20:16:36
mobiledu2502923673
这个家伙很懒,什么也没留下!