热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

Apache服务器日志与安全

互联网的飞速发展,无论是传统企业的网站,还是互联网企业,为了了解自己的客户来源,点击率等资料,对网站日志的分析尤为重要,以下就本人所做的日志分析系统与大家分享,希望能对大家有所帮助。一,所用软件及工具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

推荐阅读
author-avatar
mobiledu2502923673
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有