现在的位置: 首页 > 综合 > 正文

HTTP 服务器:

2013年05月07日 ⁄ 综合 ⁄ 共 4869字 ⁄ 字号 评论关闭

HTTP 服务器:

需求支持:

TR143 Upload Diagnostic (使用put) ,Download Diagnostic get) 

TR69 RPC Upload ,Download.

安装配置:

1 Fedora 10 都自带了Apache,如果要自行安装可以使用:

   应用程序------添加删除软件----选择相应的服务包

2 配置:

测试www服务器是否安装:http:127.0.0.1

Upload Diagnostic 使用put 方法进行测试,所以利用webdav配置httpd服务,使其满足需要:

第一步:在/var/www/html 下面再建立一个speed_test目录

mkdir -p  /var/www/html/speed_test

chmod 777  /var/www/html/speed_test

第二步 在WebDAV 模块添加以下代码:

# WebDAV module configuration section.

<IfModule mod_dav_fs.c>

    # Location of the WebDAV lock database.

    DAVLockDB /var/lib/dav/lockdb

    <Location "/speed_test">

        DAV On

        <LimitExcept GET HEAD OPTIONS PUT>

            Allow from all

        </LimitExcept>

    </Location>

</IfModule>

第三步:http:127.0.0.1/speed_test/  即可用于upload diagnostic

启动apache: /etc/init.d/httpd start /restart /stop.

头的时候不是讲过 CentOS 的 Apache 预设首页放置在 /var/www/html 这个目录吗? 为什么呢?因为 DocumentRoot 这个设定值的关系啦!此外,由于 Apache 允许 Internet 对我们的资料进行浏览, 所以你当然必须要针对可被浏览的目录进行权限的相关设定,那就是 <Directory> 这个设定值的重要特色!先让我们来看看预设的主网页设定吧!
[root@linux ~]# vi /etc/httpd/conf/httpd.conf

DocumentRoot "/var/www/html"  <==可以改成你放置首页的目录!

这个设定值重要到不行,因为他规范了 WWW 服务器主网页所放置的『目录』所在。

这个设定值是可以被随意更动的,不过更动之后你必须要针对该目录进行权限设定,

也就是底下要讲到的 Directory 这个设定值来规范目录的权限才行喔!

<Directory />

    Options FollowSymLinks

    AllowOverride None

</Directory>

这个设定值是针对 WWW 服务器的『预设环境』而来的,因为针对『/』的设定嘛!

建议可以设定的严格一点,就是保留上述的预设设定即可 (已经很严格了!)

<Directory "/var/www/html">

    Options Indexes FollowSymLinks  <==建议拿掉 Indexes 比较妥当!

    AllowOverride None

    Order allow,deny

    Allow from all

</Directory>

§ 这个地方则是针对 /var/www/html 这个目录来设定权限啦!就是咱们首页所在目录的权限。 主要的几个设定项目的意义是这样的:
Options
表示这个目录内能够进行的动作,亦即是权限设定啦!主要的设定值:
Indexes
如果在此目录下找不到『首页档案』时, 就显示整个目录下的文件名称,『首页档案』与 DirectoryIndex 设定值有关。

§ FollowSymLinks
让在此目录下的连结档可以连结出此目录外。 一般来说被 chroot 的程序将无法离开其目录,也就是说预设的情况下,你在 /var/www/html 底下的连结档只要连结到非此目录的其他地方,则该连结档预设是失效的。 但使用此设定即可让连结档有效的离开本目录。

§ ExecCGI
让此目录具有执行 CGI 程序的权限,非常重要!举例来说,目前常见的 OpenWebMail 使用了很多的 perl 的程序, 你要让 openwebmail 可以执行,就得要在 openwebmail 程序所在目录 拥有 ExecCGI 的权限。注意,不要让所有目录均可使用 ExecCGI 

§ Includes
让一些 Server-Side Include 程序可以运作。建议可以加上去!

§ MultiViews
这玩意儿有点象是多国语言的支持,与语系资料 (LanguagePriority) 有关。最常见在错误讯息的回报内容,在同一部主机当中, 可以依据用户端的语系而给予不同的语言显示呢!预设在错误回报讯息当中存在, 你可以检查一下 /var/www/error/ 目录下的资料喔!

§ AllowOverride
表示是否允许额外设定档 .htaccess 的权限复写?我们可以在 httpd.conf 内设定好所有的权限,不过如此一来若使用者自己的个人网页想要修改权限时将会对管理员造成困扰。因此 Apache 预设可以让使用者以目录底下的 .htaccess 档案内复写 <Directory> 内的权限设定。 这个项目则是在规定 .htaccess 可以复写的权限类型有哪些。常见的有:
ALL:全部的权限均可被复写;

§ AuthConfig:仅有网页认证 (账号密码可复写;

§ Indexes:仅允许 Indexes 方面的复写;

§ Limits:允许使用者利用 Allow, Deny 与 Order 管理可浏览的权限;

§ None:不可复写,亦即 .htaccess 档案失效去!

这部份我们在进阶设定时会再讲到的!

§ Order
决定是否可被浏览的权限设定啦!主要有两种方式:
deny,allow:以 deny 优先处理,但没有写入规则的则预设为 allow 喔。

§ allow,deny:以 allow 为优先处理,但没有写入规则的则预设为 deny 喔。

所以在预设的环境中,因为是 allow,deny 所以预设为 deny (不可浏览), 不过在下一行有个 Allow from all allow 优先处理,因此全部(all) 用户端皆可浏览啦!这部份我们会在进阶安全设定当中再提及低。

除了这些资料之外,你还得要知道的是底下这个玩意儿:
[root@linux ~]# vi /etc/httpd/conf/httpd.conf

DirectoryIndex index.html index.html.var  <==可能需要修改的项目!

如果用户端在网址列只输入到目录,例如 http://localhost/ 时,那么 Apache

将拿出那个档案来显示?这个档案也被称为预设的首页啦!一般来说是以

# index.* 为档名开头,但 Windows 则以 default.asp 之类的档名为开头的。

如果你想要让类似 index.pl 或 index.cgi 也可以是首页,那可以改成:

# DirectoryIndex index.html index.htm index.cgi index.php3 ...

这个项目与刚刚谈到的 Options 里面的 Indexes 有关喔!

浏览权限的设定动作 (order, limit)

咱们的 Apache 设定档内就可以指定限制浏览来源的动作了!我们可以针对来源 IP 或网域来限制呢! 就以 Order 这个限制配合 Allow 及 Deny 来处理即可。再次的强调一下:

· Order deny,allow:以 deny 优先处理,但没有写入规则的则预设为 allow 。常用于:拒绝所有,开放特定的条件;

· Order allow,deny:以 allow 为优先处理,但没有写入规则的则预设为 deny。 常用于:开放所有,拒绝特定的条件。

· 如果 allow 与 deny 的规则当中有重复的,则以预设的情况 (Order 的规范为主。

举例来说,如果我们的首页想要让 192.168.1.11 及政府部门无法连线,其他的则可以连线, 由上面的说明你可以知道是开放所有拒绝特定的条件,所以你可以这样做设定:

[root@linux ~]# vi /etc/httpd/conf/httpd.conf

<Directory "/var/www/html">

    Options FollowSymLinks

    AllowOverride None

    Order allow,deny

    allow from all

    deny from 192.168.1.11

    deny from .gov.tw

</Directory>

注意一下,因为 Order 是『 allow,deny 』,所以所有规则当中属于 allow 的都会被优先提到最上方, 为了避免这个设计上的困扰,所以建议你直接将 allow 的规则写在最上方。 而由于规则当中 192.168.1.11 隶属于 all 当中 (all 代表所有的嘛!),因此这个设定项目则为预设值, 亦即为 deny 啦!那个 .gov.tw 的设定项目也一样。如果是底下的模样:

[root@linux ~]# vi /etc/httpd/conf/httpd.conf

底下可是个错误的示范,请仔细看下个段落的详细说明喔!

<Directory "/var/www/html">

    Options FollowSymLinks

    AllowOverride None

    Order deny,allow

    deny from 192.168.1.11

    deny from .gov.tw

    allow from all

</Directory>

虽然 deny 会先挪到上方来处理,不过因为 192.168.1.11 是在 all 的范围内,所以发生重复, 因此这个设定值将会以预设的 allow 为主,因此就无法限制住这个 192.168.1.11 的存取啦! 这边很容易搞错的吶!鸟哥也是常常搞到头昏脑胀的~

例题:
如果有个应该要保护的内部目录,假设在 /var/www/html/lan/ ,我仅要让 192.168.1.0/24 这个网域可以浏览的话,那么你应该要如何设定的好?
答: 

这个案例当中有点象是『拒绝所有连线,仅接受特定连线』的样子,因此可以使用 deny,allow 那个情况, 所以你可以这样做:

<Directory "/var/www/html/lan">

    Options FollowSymLinks

    AllowOverride None

    Order deny,allow

    deny from all

    allow from 192.168.1.0/24

</Directory>


事实上,如果想要让某个网域或者是 IP 无法浏览的话,最好还是利用 iptables 来处理比较妥当。 不过如果仅是某些重要目录不想让人家来查阅的话,那么这个 allow, deny 与 order 的设定资料可就很值得参考了。

而除了这个 order 设定值之外,我们还有个限制用户端能进行的动作的设定喔! 那就是 Limit 

抱歉!评论已关闭.