ITPub博客

首页 > IT基础架构 > 网络安全 > apache的配置说明

apache的配置说明

原创 网络安全 作者:flysers 时间:2007-06-21 09:32:47 0 删除 编辑
httpd.conf 基本设置及特殊配置[@more@]

Port, Apache 在哪一个 TCP 端口进行侦听,HTTP 的默认端口为 80。如果你使用其它端口,你不得不在 URLs 中指定端口来连接你的服务器,

User,Group 由于安全上的原因,在 Linux 上,可以通过把 User 和 Group 都设置成 nobody

ServerRoot 参数应该是 Apache 安装的基础。除非你移动了周围的资料,否则其值与你所给定的值一样。

ServerName, 如果你的机器有多个名称或者 IP 地址,设置 Apache 表征服务器的名称。

DocumentRoot 是 Web 树的根目录,

UserDir 在启用 ~username 处理请求时, 此指令告诉 Apache 哪个目录追加到用户的主目录(home)。UserDir 被设置为 public_html。用户将只有基本的网页服务功能,

是一个容器指令。格式的结束指令。

及相关的和指令的目的,是为了让你在每个目录或者每个文件的基础上,控制Apache行为的方式。指令放在中,也适用于子目录。

FollowSymLinks选项,告诉 Apache 它可以从文档根目录内部到文档根目录外部跟踪符号链接。在文档根目录内部,FollowSymLinks 和 Indexes 都处于开启状态(on)。万一缺省的索引文件(通常为 index.html)不存在时,最后允许目录列表显示。

Directory 中,用 Options 指令你可以控制什么选项是被允许的。

Options 指令:
1) ExecCGI CGI 脚本程序能够运行于该目录树。
2) FollowSymLinks 在该目录中,服务器将跟踪符号链接。注意:即使服务器跟踪符号链接,它也不会改变用来匹配不同区域的路径名。注意:如果在区域内设置,该选项会被忽略。
3) Includes 服务器端包容被允许。
4) IncludesNOEXEC 服务器端引用被允许,但 #exec 命令和 CGI 脚本程序的 #include 被禁止。
5) Indexes 如果要求映射到目录的 URL 和在该目录里没有 DirectoryIndex(例如,index.html),那么服务器将返回格式化的目录列表。
6) MultiViews 处理多重浏览内容被允许。
7) SymLinksIfOwnerMatch 通过与用户 id 一样的链接,服务器只跟踪目标文件或者目录所拥有的符号链接。
8) All 除 MultiViews 外的一切东西。要是没有 Options 指令,默认为all.

AccessFileName 命令来设置(缺省设置为 .htaccess)。在任何目录中,Apache 配置指令可被放入一个叫做 .htaccess 的文件。指令也可应用于目录里的子目录。在访问文件中,

AllowOverride 控制哪个指令将被使用。如果 AllowOverride 被设置为 none。Apache 甚至不会检查访问文件。

AllowOverride 参数:
1) AuthConfig, 授权指令哪一个允许使用;
2) FileInfo,用来控制文档类型和处理方法的指令;
3)Indexes,使用其中的一个指令来控制目录列表、图标等的显示;
4) Limit,允许使用指令来控制主机访问;
5) Options,使用 Options 指令中的一个。

“allow”和“deny”指令就是用来控制访问的。第三个指令“order”,控制这些指令的使用顺序。如果你把顺序设置成 allow,deny,而没有指定哪个主机是被拒绝的话,则所有主机都被假定为禁止访问。在本例子中,allow 指令被选中,deny 指令被普遍应用。在 .htaccess 文件或者 指令内,更多典型的配置可能是:
order allow,deny
allow from all
deny aaa.com
所有主机被允许,除了那些来自 aaa.com 域的主机。

如果相反,
order deny,allow
deny from all
allow from 11.23.44
deny 首先被检查。只有来自 11.23.44 IP 网络的主机才被允许访问。它也可能指定网络掩码,参数 11.23.44.0/255.255.255.0 相当于上面的例子。

特殊配置:
1. 支持用户个人主页:
在../conf/httpd.conf中加入
UserDir /home/*/public_html
设置用户可以使用CGI等:

options ExecCGI
SetHandler cgi-bin #如果在全局设置了AddHandler cgi-bin .cgi ...,
#这儿就不用设了


2. 虚拟主机设置:

1)基于IP的虚拟主机
若该机器的IP地址为192.168.0.2,虚拟的IP为192.168.0.3
首先, 在一台机器的网卡上绑定多个IP地址去服务多个虚拟主机。
#/sbin/ifconfig eth0:0 192.168.0.2 netmask 255.255.255.0 broadcast 192.168.11.255 up
#/sbin/route add -host 192.168.0.2 eth0:0

设置../conf/httpd.conf文件:
看DocumentRoot是什么, 如果为/home/httpd

DocumentRoot /home/httpd/aaa


创建目录
/home/httpd/aaa,

2)基于名字的虚拟主机:
编辑../conf/httpd.conf

NameVirtualHost 192.168.0.2

DocumentRoot /home/httpd/aaa
ServerName aaa.yourdomain.com


要有NameVirtualHost在最前面,下面依次为各个虚拟主机,
还需要把aaa.yourdomain.com的DNS都指向IP地址192.168.0.2

3. Apache用户认证
基本的Apache用户认证
假定, 对目录/home/aaa下的文件需要做到用户认证,在httpd.conf
中加入下面的行

allowoverride authconfig
order allow,deny
allow from all

用在目录/home/aaa下放文件.htaccess,内容如下:
authname "Please give me your ID number and Password"
authtype basic
authuserfile /etc/.passwd
require valid-user

用htpasswd 生成文件/etc/.passwd,
htpasswd -c /etc/.passwd username

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/443022/viewspace-920031/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
  • 博文量
    13
  • 访问量
    17140