思索网:WWW.4SO.NET
网站首页
设为首页
加入收藏
社区论坛
联系我们
网站地图
发现个人价值
提高企业内涵
一切源于思索
首页
企业之家
公关文秘
免费论文
网上办公指南
操作系统
多媒体应用
现代教学
下载中心
专题报道
推荐文章
评论
English Article
IT资讯
网页设计
网站运营
编程开发
平面设计
网络安全
工具下载
站内搜索
最新文章
热门文章
论坛
栏目列表
Windows XP
win9x
Windows NT/2000
Windows 2003
Longhorn
Windows应用
Linux
首页
>
操作系统
>
Linux
> Linux Apache Web 服务器(续三)
Linux Apache Web 服务器(续三)
日期:
2006-06-12 00:19:26
来源:
网络转载
请您记住思索网的网址:
http://www.4so.net
[加入收藏夹]
八、建立Apache站点的基本安全机制
对于WWW服务来说,在WWW
服务器
和WWW浏览器之间并不始终维持对话过程。办要WWW
服务器
完成对一个URL请求的服务,连接就断开了。
在这种情况下,在WWW上保证可以使用的唯一认证机制是由HTTP本身提供 的。在标准的Apache
服务器
实现了这样的认证,它能控制哪些主机可能访问特定的站点或特点的站点的一部分。
这种认证可以分为两种,一种是基于主机的的认证,另一种是基于用户名/口令的认证。由于互联网上的决大多数用户的IP地址是动态获得的,所以基于主机的认证方式并不总适用。所以在大多数情况下,传统的基于用户名/口令的认证方式更为现实。下面我们就对这两种认证的实现做一简要的介绍。
8.1 基于主机的认证方式
在种认证模式顾名思义,访问是用主机名或主机IP地址来控制的。支持这种认证方式的是Apache的mod_access模块,这个模块缺省状态下是被安装了的。该模块用以下几种Apache命令来提供访问控制功能。
allow命令
语法:allow from host1 host2 host3 ...
这个命令定义了允许访问站点或目录的主机清单。主机清单可以用以下几
种形式表示:
ALL:代表所有主机;
主机的全域名,如:
www.mot.com
;
主机的部分域名,如:.mot.com;
完整的IP地址,如:202.98.2.32;
部分IP地址,如:202.98
网络地址/网络掩码对,如:202.98.0.0/255.255.0.0
网络地址/nn(CIDR定义),如:202.98.0.1/16
deny命令
语法:deny from host1 host2 host3 ...
这个命令定义了禁止访问站点或目录的主机清单,其他与allow命令相似。
order命令
语法:order deny,allow | allow,deny
这个命令定义评价allow和deny命令的先后顺序。
例如:
<Directory /home/httpd/html>
order deny,allow
deny from
www.mot.com
allow all
</Directory>
这组命令设置了禁止
www.mot.com
访问/home/httpd/html目录下的文件。
请大家注意,顺序是先deny后allow,如果是:order allow,deny 那么,先允许所有的主机访问,然后再禁止,这样是无效的,所有主机仍然能够访问。
8.2 基于用户名/口令的认证方式
这种认证方式其实相当简单,当WWW浏览器请求经此认证模式保护的URL
时,将会出现一个对话框,要求用户键入用户名和口令。用户输入后,传给WWW
服务器
,WWW
服务器
验证它的正确性,如果正确,返回页面,否则返回401错误。要说明的一点是,这种认证模式是基本的,并不能用于安全性要求极高的场合。
Apache 中有许多模块可以支持这种认证方式,下面我们就介绍一下最基本、最标准的mod_auth模块。正如前面提到的一样,mod_auth模块使用存储在文本文件中的用户名、组名和口令来实现认证。这种方法非常适合处理少量用户,它能工作得很好。如果你需要对大量的用户,如数以千计的用户做认证时,这种方法的性能将急剧下降到不可忍受,所以当这种情况下,就需要考虑使用mod_dbm模块或mod_mysql模块来获得更好的性能。
实例一:需要用户名和口令的访问控制
下面我们就一起来看一下如何建立需要用户名/口令才能进行访问的目录。
基本情况:
www.xxx.com
的站点有设置为:
DocumentRoot /home/httpd/html
AccessFileName .htaccess
AllowOverride All
需求:限制/home/httpd/html/backup/目录的访问,只允许用户“super”以口令“fill-06”访问此目录。
实现步骤:
使用htpasswd建立用户文件
htpasswd –c /home/httpd/secr/.htpasswd super
此程序会询问用户“super”的口令,你输入“fill-06”,两次生效。
建立.htaccess文件
用vi在/home/httpd/html/backup/目录下建立一个文件.htaccess,写入
以下几行:
AuthName My Friend Only (注:这个名字是任取的)
AuthType Basic
AuthUserFile /home/httpd/secr/.htpasswd
require user super
设置文件权限,确保Apache用户有读的权限
这样就完成了设置工作,你可以试一试效果了。
实例二:允许一组用户访问一个目录
假设,现在
www.xxx.com
想让myfriend组中的mf1与mf2两个用户分别能
使用口令“mf001-1”“mf002-2”访问/home/httpd/html/backup/目录。
实现步骤:
使用htpasswd建立用户文件
htpasswd –c /home/httpd/secr/.htpasswd mf1
htpasswd –c /home/httpd/secr/.htpasswd mf2
建立组文件
用vi/home/httpd/secr/目录下建立一个文件.htgroup,写入:
myfriend:mf1 mf2
建立.htaccess文件
用vi在/home/httpd/html/backup/目录下建立一个文件.htaccess,写入
以下几行:
AuthName My Friend Only
AuthType Basic
AuthUserFile /home/httpd/secr/.htpasswd
AuthGroupFile /home/httpd/secr/.htgroup
require group myfriend
配置工作到此结束,试一试吧!
实例三:混合使用基于主机与基于用户名/口令的认证方式
如果你除了只允许让mf1与mf2两个用户访问外,还想禁止除
www.mot.com
外的主机访问这个目录的话,就将/home/httpd/html/backup/.htaccess修改成为:
AuthName My Friend Only
AuthType Basic
AuthUserFile /home/httpd/secr/.htpasswd
AuthGroupFile /home/httpd/secr/.htgroup
require group myfriend
order deny,allow
deny from all
allow from
www.mot.com
九、解读Apache日志
当你一步步地看到这里的时候,相信你的WWW站点已经建好,并且已经在
Internet上展现出来了。这时你可能就会关心谁造访过你的站点,或者想知道你的Apache
服务器
现在的运行状态与性能如何。下面我们一起通过解读Apache的日志来实现这个伟大的愿望。
9.1 盯着Apache
服务器
Apache允许通过WWW监视
服务器
的配置信息与运行状态。
1.观看配置信息
如果你的Apache象缺省配置一样加入了mod_info模块的话,你就可以通过访问
http://localhost/server-info
查看
服务器
信息。
2.使用状态页
如果你的Apache象缺省配置一样加入了mod_status模块的话,你就可以
通过访问
http://localhost/apache-status
查看
服务器
的运行状态信息,其中包括:
¨
服务器
系统的当前时间;
¨
服务器
最近一次重启时间;
¨
服务器
启动后的运行时间;
¨ 到目前为止服务的访问总数;
¨ 到目前为止传输的字节总数;
¨ 服务请求的子进程数;
¨ 空闲子进程数;
¨ 每个进程状态、子进程服务的请求数以及该子进程传输的字节总数;
¨ 每秒平均请求数、每秒传输的字节数、每次请求平均传输字节数;
¨ 目前每个子进程CPU占用及Apache的总的CPU占用率;
¨ 当前主机及处理的请求。
9.2 什么是日志文件
日志文件是Apache工作的记录,Apache包括了mod_log_config模块,它
用来记录日志。在缺省情况下,它用通用日志格式CLF规范来写。
CLF日志文件内对每个请求均有一个单独行,形如:
host ident anthuser date request status bytes
其含义如下:
¨ host客户端主机的全称域名或IP地址;
¨ ident存放客户端报告的识别信息;
¨ authuser如果是基于用户名认证的话,值为用户名;
¨ date请求的日期与时间;
¨ request客户端的请求行;
¨ status返回到客户端的三们数字的HTTP状态码;
¨ bytes除去HTTP头标外,返回给客户端的字节数。
9.3 分析日志文件
有了日志文件后,我们可以利用UNIX的一些工具和一此专门的日志分析工具对日志文件进行分析。
实例一:列出访问过本
网站
的主机名或IP:
对于这个需求,我们可以通过一个Unix的一个脚本语句来完成:
cat /var/log/httpd/access_log | awk ‘{print $1}’
用上面的方法虽然可以得到访问过本
网站
的主机名或IP,但是由于有些是多次访问的,我们希望在上面得到的结果的基础上做一些优化,使得列出的表中,每个主机只出现一次。我们可以使用:
cat /var/log/httpd/access_log | awk ‘{print $1}’ | wc –l
3.当然,我们可以根据需要选择第三方提供日志分析工具甚至自己开发一些日志分析工具来满足我们的需求。常见的第三方日志分析工具有:WebTrends、Wusage、wwwstat、http-analyze、pwebstats、WebStat Explorer、AccessWatch。
9.4 一些提示
日志一方面是我们分析
网站
的第一手资料,一方面却是吞噬大量磁盘空间的罪魁祸首。所以别忘了定期转储或删除一些老的日志文件。
十、Apache与代理
服务器
代理
服务器
是位于客户和客户要访问的
服务器
之间的系统。当客户机使用URL请求访问远程资源时,代理
服务器
接受该请求并取得该资源以满足客户机的请求。在通常情况下,代理
服务器
是客户机的
服务器
,同时也是远程
服务器
的客户。
代理
服务器
可以在自己的缓冲区中存储被请求的内容,当这些信息再次被请求的时候,代理
服务器
就无需再从远程
服务器
上取了,这样代理
服务器
就减轻了网络的瓶颈问题。
Apache可以配置成为代理
服务器
。
10.1 前向代理
服务器
和逆向代理
服务器
1.前向代理
服务器
前向代理
服务器
通常位于用户主机和要访问的远程网络之间。它从远程
服务器
取得所要求的资源,然后返回给用户,同时存在磁盘上,以供下次使用。
在这种情况下,客户端的主机知道它们正在使用代理
服务器
,因为每个主机都必须配置为使用代理
服务器
。
例如,必须告诉WWW浏览器使用代理
服务器
,它才能使用代理
服务器
。所有的远程请求都通过代理
服务器
传输。
这类代理
服务器
也称为缓冲代理
服务器
。逆向
服务器
也可以缓冲数据,但它的作用愉好与前向
服务器
相反。
前向代理
服务器
的结构图如下所示:
图4 前向代理
服务器
2.逆向代理
服务器
逆向代理
服务器
位于互联网资源前面,逆向
服务器
从原始
服务器
找到被请求的资源,并反它返回给用户主机。
与前向代理
服务器
不同的是,逆向代理
服务器
的用户并不知道它们连接的是代理
服务器
而不是资源
服务器
本身。其结构如下图所示:
图5 逆向代理
服务器
10.2 配置代理
服务器
为了允许Apache作为代理
服务器
,需要将ProxyRequests设为On,然后根据你希望代理
服务器
做什么而增加什么附加配置。无论你希望做什么,你所选的代理配置都应该放入一个特殊的<Directory>容器中。
<Directory proxy:*>
…
</Directory>
实例一:将私有IP网连到互联网
假设私有网上只有一台
计算机
被分配了互联网上合法的IP地址,这台计算
机运行Apache代理
服务器
,ProxyRequest设置为On,并且不需要附加其他配置,所有请求均可由这台代理
服务器
代理服务。
实例二:让Apache允当远程WWW站点的缓冲
第一步:将ProxyRequest设置为On
第二步:创建配置如下:
<Directory proxy:*>
CacheRoot /www/cache
CacheSize 1024
CacheMaxExpire 24
</Directory>
这里的意思是设置Cache目录为/www/cache;大小为1024KB,即1MB;缓冲中的内容在24小时后失效。
实例三:建立镜像站点(其实这也就是所谓的逆向代理
服务器
)
第一步:将ProxyRequest设置为On
第二步:创建配置如下:
<Directory proxy:*>
ProxyPass /
www.mot.com
/
CacheRoot /www/cache
CacheDefaultExpire 24
</Directory>
10.3 一些提示
代理
服务器
,我们将会在后面的章节中详细介绍,这里只是针对Apache的功能介绍的。用Apache作代理
服务器
的性能并不高,效果并不好。不建议使用。
本文地址:
http://www.4so.net/system/linux/58704.html
将本页加入收藏夹
将地址复制到剪贴板发送给好友
若发现本文有误或版权问题点击这里
热门信息
相关文章
[
Linux
]
wget的常见用法
[
Linux
]
/dev/null丟失后
[
Linux
]
自认为最简单的中文latex配置,3
[
Linux
]
介绍一个apt系统的小技巧
[
Linux
]
好用的工具checkinstall
[
Linux
]
关于如何设置sources.list,大家一
[
Linux
]
关于如何设置sources.list
[
Linux
]
关于debian汉化的一点补充
[
Linux
]
告诉大家一个非常好的工具--nets
[
Linux
]
《Debian服务器设置入门》系列教
Linux Apache Web 服务器
hhyy安装Linux9 httpd-2.0.52 tomcat-5.0.28 mod_jk2步骤
我用的是Redhat linux,但是我的.htm文件显示出来的却是HTML源码
如何在linux上设置虚拟主机(一)
如何集成Linux/Apache/PHP4/FastCGI/Oracle/MySQL环境
三步安装Tomcat 4.0.1 JDK1.4 linux Mysql
请问linux 8.0如何做虚拟主机
Apache-2.0.43 Php-4.2.3 Mysql-3.23.53在linux下的安装
apache mysql php for linux全攻略
apache 1.3.26 resin 2.1.4在linux下面的整合安装
文章评论
收藏本文
打印本文
关闭窗口