apache安全设置

Apache禁止目录遍历

方法1:修改apche目录配置:

<Directory "D:/Apache/blog.phpha.com">
Options Indexes FollowSymLinks # 修改为: Options  FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

只需要将上面代码中的 Indexes 去掉,就可以禁止 Apache 显示该目录结构
方法2 通过.htaccess文件

可以在根目录新建或修改 .htaccess 文件中添加

<Files *>
 Options -Indexes
</Files>

就可以禁止Apache显示目录索引。

Apache隐藏版本信息

修改如下配置文件:

vim /usr/local/http-2.4.23/conf/extra/httpd-default.conf
找到:
ServerTokens Full
ServerSignature On
 
改成:
ServerTokens Prod
ServerSignature off

重启Apache并测试:

 service  httpd restart

注意:如果你需要彻底将版本之类的信息进行改头换面,你就需要在编译之前做准备或者进行从新编译了。在重新编译时,修改源码包下include目录下的ap_release.h文件

#define AP_SERVER_BASEVENDOR "Apache Software Foundation" #服务的供应商名称
#define AP_SERVER_BASEPROJECT "Apache HTTP Server"  #服务的项目名称
#define AP_SERVER_BASEPRODUCT "Apache"        #服务的产品名
#define AP_SERVER_MAJORVERSION_NUMBER 2  #主要版本号
#define AP_SERVER_MINORVERSION_NUMBER 4  #小版本号
#define AP_SERVER_PATCHLEVEL_NUMBER 23  #补丁级别
#define AP_SERVER_DEVBUILD_BOOLEAN  0  #

上述列出的行,已经给出了注释,大家可以修改成自己想要的,然后编译安装之后,对方就彻底不知道你的版本号了。

Apache日志分割(安全)

简介:
为什么要日志分割?

随着网站的访问越来越大,WebServer产生的日志文件也会越来越大,如果不对日志进行分割,那么只能一次将大的日志(如Apache的日志)整个删除,

这样也丢失了很多对网站比较宝贵的信息,因为这些日志可以用来进行访问分析、网络安全监察、网络运行状况监控等,

因此管理好这些海量的日志对网站的意义是很大的。

方法1:使用rotatelogs(apache自带的工具)每隔一天记录一个日志

①编辑Apache的主配置文件,更改内容如下:

注释掉如下两行:

ErrorLog logs/error_log
CustomLog logs/access_log common

 然后添加如下两行:

ErrorLog "|/usr/local/http-2.4.23/bin/rotatelogs -l logs/error_%Y%m%d.log 86400"
CustomLog "|/usr/local/http-2.4.23/bin/rotatelogs -l logs/access_%Y%m%d.log 86400" combined

注意:其中86400为轮转的时间单位为秒
②重启Apache验证:查看logs目录下的日志文件
 
注意:由于apache自带的日志轮询工具rotatelogs,据说在进行日志切割时容易丢日志,因此我们通常使用cronolog进行日志轮询。

方法2:使用 cronolog 为每一天建立一个新的日志

①下载安装cronolog程序

官网下载地址:http://cronolog.org/download/cronolog-1.6.2.tar.gz

tar zxf cronolog-1.6.2.tar.gz 
cd cronolog-1.6.2/
/configure && make && make install

②安装完成后, Apache主配置文件添加如下两行:

ErrorLog "|/usr/local/sbin/cronolog logs/error-%Y%m%d.log"
CustomLog "|/usr/local/sbin/cronolog logs/access-%Y%m%d.log" combined

如果Apache中有多个虚拟主机,最好每个虚拟主机中放置一个这样的代码,并将日志文件名改成不同的名字。
重启Apache验证,查看logs目录下的日志文件
 
注意:这两个管道日志文件程序还有一点不同之处是,使用cronolog 时如果日志是放在某个不存在的路径则会自动创建目录,而使用 rotatelogs 时不能自动创建,这一点要特别注意

赞(1) 打赏
特别声明:除特殊标注,本站文章均为原创,遵循CC BY-NC 3.0,转载请注明出处。三伏磨 » apache安全设置

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏