有关apache的认证、授权、身份验证

发布时间:2020-11-20编辑:脚本学堂
有关apache的认证、授权、身份验证方面的知识,感兴趣的朋友可以参考下。

有关apache的认证、授权、身份验证方面的知识,感兴趣的朋友可以参考下。

1.安装perl
下载 http://www.cpan.org/src/README.html
最新的稳定版是perl-5.8.8.tar.gz
 

复制代码 代码如下:
./Configure
make
make test
make install

2.安装awstats
 

复制代码 代码如下:
tar -xvzf awstats-6.7.tar.gz
mv awstats-6.7 awstats
cd awstats/tools
 

注:
perl awstats_configure.pl
perl awstats_configure.pl这一步的目的是为要分析的网站创建配置文件,也可以省略,而使用下面的命令拷贝模板

mkdir /etc/awstats
cp /opt/awstats/wwwroot/cgi-bin/awstats.model.conf /etc/awstats/common.conf

注:如果是使用perl awstats_configure.pl命令创建配置文件,下面的配置将自动添加到apache的配置文件上,否则需要手动添加。
 

复制代码 代码如下:
#Directives to allow use of AWStats as a CGI
alias /awstatsclasses "/opt/awstats/wwwroot/classes/"
Alias /awstatscss "/opt/awstats/wwwroot/css/"
Alias /awstatsicons "/opt/awstats/wwwroot/icon/"
Alias /icons "/opt/awstats/wwwroot/icon/"
ScriptAlias /awstats/ "/opt/awstats/wwwroot/cgi-bin/"
<Directory "/opt/awstats/wwwroot">
Options None
AllowOverride None
Order allow,deny
Allow from all
</Directory>

注销掉 Alias /icons/ "/opt/apache/icons/"

3.使用模板后,按照以下样例设置配置文件:
 

复制代码 代码如下:
mkdir -p /opt/awstats/wwwroot/cgi-bin/data/
#cd /etc/awstats
#vi awstats.rhel5.conf
include "common.conf"
LogFile="/opt/apache/logs/access_log.%YYYY-24%MM-24%DD-24"
# %YYYY-24%MM-24%DD-24是指用24小时前的年月日日志文件名,如access_log.20061206
SiteDomain="rhel5"
HostAliases="rhel5"
DefaultFile="index.html"
DirData="/opt/awstats/wwwroot/cgi-bin/data/"

多站点日志统计
AWStats自带了一个批处理工具:tools/awstats_updateall.pl,可以批量地遍历一个目录下所有地配置文件并运行统 计。因此剩下的工作就主要是日志的同步问题了。

针对多个站点,很多配置选项是重复的,如果每个配置文件都修改维护起来会很麻烦,AWStats从5.4版本开始提供了配置文件包含的功能,所以我们可 以配置一个通用配置,比如:common.conf。

然后其他站点的配置设置为:可以通过后面的选项覆盖和缺省不一致的配置。
新建配置文件awstats.bbs.chedong.conf
内容为
 

复制代码 代码如下:
Include "common.conf"
LogFile="/opt/apache/logs/access_log"
SiteDomain="1212"
#HostAliases="bbs"
DefaultFile="index.html"
DirData="/opt/awstats/wwwroot/cgi-bin/data/"

同样的
 

复制代码 代码如下:
awstats.www.chedong.conf
Include "common.conf"
LogFile="/opt/apache/logs/access_log"
SiteDomain="chedong"
#HostAliases="chedong"
DefaultFile="index.html"
DirData="/opt/awstats/wwwroot/cgi-bin/data/"

4. 添加定时分析
 

复制代码 代码如下:
crontab -e
* */1 * * * ( /usr/bin/perl /opt/awstats/wwwroot/cgi-bin/awstats.pl -update -config=rhel5)

5. 关于验证
 

复制代码 代码如下:
<Directory "/opt/awstats/wwwroot">
Options None
AllowOverride None
Order allow,deny
Allow from all
</Directory>

修改 AllowOverride None 为 AllowOverride AuthConfig
启用认证
touch /opt/.apachepasswords
使用下面的命令为用户设定密码:
/opt/apache/bin/htpasswd -c /opt/.apachepasswords adm

在/opt/awstats/wwwroot目录下新建.htaccess文件:
AuthType Basic
AuthName "你需要输入密码才可以继续访问"
AuthUserFile /opt/.apachepasswords
require user adm

附: 其它说明

#就是不统计指定IP的访问量
SkipHosts="x.x.x.x."

#数据源日志格式和按天的截断规则
对于Apache:日志格式好设置:设置成combined格式即可,日志截断麻烦一点:需要安装cronolog工具,
将日志设置成按天截断:
CustomLog "|/usr/local/sbin/cronolog /path/to/apache/logs/access_log.%Y%m%d" combined 比如:logs/access_log.20061126
日志是压缩格式,可以使用gzip -d < /home/apache/logs/access_log.%YYYY-24%MM-24%DD-24.gz | 动态解压缩统计。

#多站点日志统计
AWStats自带了一个批处理工具:tools/awstats_updateall.pl,可以批量地遍历一个目录下所有地配置文件并运行统 计。针对多个站点,很多配置选项是重复的,如果每个配置文件都修改维护起来会很麻烦,所以我们可 以配置一个通用配置,比如:common.conf
然后其他站点的配置设置可以通过后面的选项覆盖和缺省不一致的配置。
 

复制代码 代码如下:
awstats.www.zhangjianfeng.com.conf
Include "common.conf"
LogFile "/path/to/access_log"
SiteName "www.zhangjianfeng.com"
HostAliases="zhangjianfeng.com"

#统计指标说明
参观者:按来访者不重复的IP统计,一个IP代表一个参观者;
参观次数:一个参观者可能1天之内参观多次(比如:上午一次,下午一次),所以按一定时间内(比如:1个小时),不重复的IP数统计,参观者 的访问次数;
网页数:不包括图片,CSS, javascript文件等的纯页面访问总数,但如果一个页面使用了多个帧,每个帧都算一个页面请求;
文件数:来自浏览器客户端的文件请求总数,包括图片,CSS,JavaScript等,用户请求一个页面是,如果页面中包含图片等,所以对服 务器会发出多次文件请求,文件数一般远远大于文件数;
字节:传给客户端的数据总流量;
来自REFERER中的数据:日志中的参考(REFERER)字段,记录了访问相应网页之前地址,因此如果用户是通过搜索引擎的搜索结果点击 进入网站的,日志中就会有用户在相应搜索引擎的查询地址,这个地址中就可以通过解析将用户查询使用的关键词提取出来:

##plugin

安装GeoIP
需要
GeoIP C Library
Geo::IP Perl Module (faster, but requires C library)
Geo::IP::PurePerl Module (slower, but does not require C library)
C Library和Perl Module是一组,必须先编译安装C的,再编译安装perl,或者直接装PurePerl Module,我就是这种方式

安装GeoIP C Library
 

复制代码 代码如下:
# wget http://www.maxmind.com/download/geoip/api/c/GeoIP-1.3.8.tar.gz
# tar zxvf GeoIP-1.3.8.tar.gz
# cd GeoIP-1.3.8
# ./configure; make; make install

安装 Geo::IP Perl Module
 

复制代码 代码如下:
# wget http://www.maxmind.com/download/geoip/api/perl/Geo-IP-1.25.tar.gz
# tar zxvf Geo-IP-1.25.tar.gz
# cd Geo-IP-1.25
# perl Makefile.PL
# make
# make test (在AS4下通不过,放弃,改装PurePerl Module)
# make install

以上两步也可以这样安装
 

复制代码 代码如下:
# perl -MCPAN -e shell
cpan> install Geo::IP

安装Geo::IP::PurePerl Module
 

复制代码 代码如下:
# wget http://www.maxmind.com/download/geoip/api/pureperl/Geo-IP-PurePerl-1.14.tar.gz
# tar zxvf Geo-IP-PurePerl-1.14.tar.gz
# cd Geo-IP-PurePerl-1.14
# perl Makefile.PL
# make
# make test
# make install
 

也可以这样安装
 

复制代码 代码如下:
# perl -MCPAN -e shell
cpan> install Geo::IP::PurePerl


修改/usr/local/etc/awstats/awstats.www.test.com.conf,取消下面这行的注释,启用此插件
LoadPlugin="geoip GEOIP_STANDARD"

更新GeoIP库
 

复制代码 代码如下:
# cd /usr/local/share/GeoIP/
# wget http://www.maxmind.com/download/geoip/database/GeoIP.dat.gz
# gunzip GeoIP.dat.gz


定时更新GeoIP库
0 0 * * * root /usr/local/bin/geoipupdate -v

安装XWhois
# perl -MCPAN -e shell
cpan> install Net::XWhois
修改/usr/local/etc/awstats/awstats.www.test.com.conf,取消下面这行的注释,启用此插件
LoadPlugin="hostinfo"

安装decodeutfkeys
# perl -MCPAN -e shell
cpan> install URI::Escape
修改/usr/local/etc/awstats/awstats.www.test.com.conf,取消下面这行的注释,启用此插件
LoadPlugin="decodeutfkeys"

更新日志
/usr/local/awstats/wwwroot/cgi-bin/awstats.pl -config=www.zhangjianfeng.com -update -lang=cn