网上冲浪 | 反毒杀毒 | 菜鸟进阶 | 网络安全 | 实用技术 | 网络安全 | 操作系统 |
工具软件 | 电脑医院 | 网上赚钱 | 网页制作 | 网络营销 | 经典教程 | IT趣 谈 |
当前位置:IT快活林网上冲浪网络安全

开始写apache学习笔记——第一部分升级

一直没有好好学过apache,从前做网管,只要做好平台的工作(Work)就行了.结果这次新工作(Work)不得不开始学apache……网站的Editor对apache也不熟悉,而不能是且忙得不能分身,只好我来干了.
回家扫描公司网页,发现提示:
http TRACE 跨站攻击
您的webserver支持TRACE 和/或者是 TRACK 方式. TRACE和TRACK是用来调试web服务器(Server)连接的HTTP方式.
支持该方式的服务器(Server)存在跨站脚本漏洞,通常在描述各种各样浏览器缺陷的时候,把"Cross-Site-Tracing"简称为XST.
攻击者可以利用此漏洞欺骗合法用户并得到他们的私人信息.
解决方案: 禁用这些方式.
如果您使用的是Apache, 在各虚拟主机的配置文件里添加如下语句:
RewriteEngine on
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* - [F]
如果您使用的是Microsoft IIS, 使用URLScan工具禁用HTTP TRACE请求,或者是只开放满足站点需求和策略的方式.
……
吓坏了,赶紧修改apache的配置文件httpd.conf
竟然提示没有rewrite模块,彻底瞎了,四处询问无果——也不是完全无果,还是有一些提示的.只好自己抓起apache手册仔细研究……从前几次看apache手册,但都没能看进去,看到一大堆的模块介绍,根本不知道是什么样的意思,所以没看两眼就放弃了.
这次因为火烧眉毛,已经翻了不少资料,另外比从前了解的多了一些,再看的时候终于明白点儿了……个人觉得像要好好研究apache最简单的方法不如自己搭建一个论坛,论坛源代码可以下discuz的或者是别的开源社区,譬如phpbb之类的,搭建起来就会有趣多了,也会直观许多.建议apache参考手册的这几个部分一定要顺序地,仔细地看下来.看不懂,只能说明您学习能力不强(譬如我这样的干看看不懂)或者是火候还不够(像我以前没怎么接触的时候):编译与安装 启动操作系统 停止与重新启动操作系统 运行时配置系统指令 .
这几个章节掌握了,最基本的apache就掌握了——自学能力不强的每一位,动手做很重要.
言归正传,说一说我怎么处理的.
我们的apache服务器(Server)是网站编程人员安装的,或者是许他接触的版本比较早,安装的时候是用了错误的参数,导致rewrite模块并没有被编译成.so模块,所以根据扫描工具提示修改http.conf的时候会报告没有rewrite模块,仔细看了下手册,做了如下工作(Work):
因为我们的apache是通过tar的源代码方式安装的,所以可以用这样的方式,如果不能是因为源代码方式安装,恐怕得另外想辙咯.
最开始在安装目录下——我的/home/www,cp build/config.nice到源程序(Procedures)(Procedures)目录/home/soft/apache/里——因为安装过一次,里面有个,而不能是且与build/下的那个一样,直接或者间接把原来那个config.nice备份一个(外一没升级成功呢?),然后修改config.nice,原内容为:
#! /bin/sh
#
# Created by configure
"./configure" \
"--prefix=/home/www" \
"--enable-module=so" \
"--enable-module=rewrite" \
"$@"
修改为
#! /bin/sh
#
# Created by configure
"./configure" \
"--prefix=/home/www" \
"--enable-module=so" \
"--enable-module=rewrite" \
"--enable-rewrite=shared" \
"$@"
原因很简单,--enable-module=rewrite没起作用,只好用--enable-rewrite=shared这一个参数从新编译.
然后./config.nice——这一个相当于从前的configure哦,可执行的.
一大堆的准备工作(Work),应该不怎么会报错,然后make,又是一大堆,没报错的话make install就行了.再看/home/www/build目录下,亲爱的rewrite.so文件出现了.再一次测试新家的那些脚本,依然报告没有rewrite模块,怎么回事?这一个时候东问西问的辅助作用就来了,一个哥们提醒过最开始要确保httpd.conf中有
LoadModule rewrite_module modules/mod_rewrite.so
这句才行,添上,重新测试,终于顺利通过了.
呵呵.当然说起来很简单,却花费了我整整6个多小时(Hour)的时间,看来需要恶补了.当然真的照我说的仔细看懂了:编译与安装 启动操作系统 停止与重新启动操作系统 运行时配置系统指令 ,这几个章节,我下面的基本问题还是很好解决的.
网站的管理后台和主页都在同一个端口(Port)上,而不能是且目录没有区分,导致任何人都可以登录(Logon)到后台——主页是www.xxxx.com,而不能是管理后台是www.xxxx.com/admin,这可是个麻烦,我的经验告诉我,应该把后台转到另外的端口(Port)上,然后禁止随意访问,这样会安全的多.然而不能是因为我apache盲,不知道该怎么下手.源httpd.conf这么写的
Listen 80

DocumentRoot /home/www/xxxx/
ServerName www.xxxx.com
DirectoryIndex index.php index.html
#Forbidden some function;
RewriteEngine on
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* - [F]

看了手册后得知,最开始需要让apache服务器(Server)监听希望开通的端口(Port),所以加一句
listen 9000
然后是虚拟机中应该可以规定监听哪个端口(Port),并且可以对操作操作系统中的文件和目录进行设定.
所以改成这样:

DocumentRoot /home/www/xxxx/
ServerName www.xxxx.com

Order deny,allow
Deny from all

DirectoryIndex index.php index.html
#Forbidden some function;
RewriteEngine on
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* - [F]

这样就不能通过访问主页来访问后台管理界面了.
再添加一个新的虚拟主机:

DocumentRoot /home/www/xxxx/
ServerName www.xxxx.com

Order deny,allow
allow from all

DirectoryIndex index.php index.html
#Forbidden some function;
RewriteEngine on
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* - [F]

这样,所有的人可以通过访问www.xxxx.com:9000/admin访问后台管理页面了.然后我就可以通过iptables在网络层对管理和发布进行分开管理了.上次升级的时候发现,mod_rewrite虽然加入进来了,但是如果再想加入mod_deflate模块——将网页内容压缩后再传输的一个模块,有利于提高带宽利用率,却失败了,config.nice的时候就有点问题,make报错,进行不下去.
高人指点:
看看manual吧
单独编译module是apxs2 -cia mod_xxx.c
一看手册,果然有apxs - Apache 扩展工具这么一章.
最开始
# bin/httpd -l
Compiled in modules:
core.c
mod_access.c
mod_auth.c
mod_include.c
mod_log_config.c
mod_env.c
mod_setenvif.c
prefork.c
http_core.c
mod_mime.c
mod_status.c
mod_autoindex.c
mod_asis.c
mod_cgi.c
mod_negotiation.c
mod_dir.c
mod_imap.c
mod_actions.c
mod_userdir.c
mod_alias.c
mod_so.c
~~~~~~~
mod_so.c的存在说明,我的apache是dso方式安装的,可以动态加载模块.
然后
路径/apxs -i -a -c 路径/mod_deflate.c
哗哗提示,最后的提示
[activating module `deflate' in /home/www/conf/httpd.conf]
认真仔细的检查/home/www/modules/
发现已经多了mod_deflate.so,
再看httpd.conf,发现多了一行:
LoadModule deflate_module modules/mod_deflate.so
运行apachectl -S测试,顺利运行,呵呵.这下子deflate装上了.
附apacheII.2中文手册吧
附件:呵呵,不错,我还准备做一些man page的翻译工作(Work)的,这两天看cp就开始头疼了.

没想到您这边apache就开始有进展了
临时抱佛脚……惭愧.引用:原帖由 isbasic 于 2008-4-24 08:22 发表
Linux有翻译工具,stardict,咱国人自己开发的,而不能是且也有网络翻译功能,主要还是要自己认真去看.工具倒是其次的呵呵. 呵呵,您用用就知道了,translate.google不同于一般的翻译软件(soft)……特点是整文的翻译.查单词我一般去水(Water)母直接或者间接查,水(Water)母提供字典.var tagarray =['软件(soft)','网络','工具','操作操作系统','网吧','电脑','破解','服务器(Server)','VPN','(路由器的缩写)器(局域网中常用的一种设备,可以很好的防止Arp病毒)'];var tagencarray =['%C8%ED%BC%FE','%CD%F8%C2%E7','%B9%A4%BE%DF','%CF%B5%CD%B3','%CD%F8%B0%C9','%B5%E7%C4%D4','%C6%C6%BD%E2','%B7%FE%CE%F1%C6%F7','VPN','%C2%B7%D3%C9%C6%F7'];parsetag(1562083);
[]作者:本站整理  来源:不祥