隐藏Apache版本等敏感信息

$ grep Server /usr/local/httpd/conf/extra/httpd-default.conf|grep -v "#"

修改后如下:

ServerTokens Prod

ServerSignature Off

但是还是会出现apache的字样:

$ curl -I localhost

Server: Apache

彻底隐藏的方法: 在编译前, 修改tar包下的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  6   #补丁级别

#define AP_SERVER_DEVBUILD_BOOLEAN  0    #...

更改apache的默认用户

$ useradd -M -s /sbin/nologin apache

$ vim /usr/local/httpd/conf/httpd.conf

User apache

Group apache

修改apache日志权限

$ chmod 700 /usr/local/httpd/logs

日志轮询(分割)

$ cd /usr/local/tools

$ wget 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

$ grep CustomLog /usr/local/httpd/conf/httpd.conf

按天轮询(生产环境常见用法,推荐使用。按小时,则文件名再加上 %H):

CustomLog "|/usr/local/sbin/cronolog /usr/local/httpd/logs/access_%Y%m%d.log" combined

ErrorLog  "|/usr/local/sbin/cronolog /usr/local/httpd/logs/error_%Y%m%d.log"

错误页面优雅显示

$ vi /usr/local/httpd/conf/httpd.conf

<Directory "/usr/local/httpd/htdocs">

    Options Indexes FollowSymLinks

    AllowOverride None

    Order allow,deny

    Allow from all

    ErrorDocument  /.html  ##新增一行

</Directory>

$ vi /usr/local/httpd/htdocs/404.html

Error: lost page...

mod_rewrite防盗链

##示例: 虚拟主机的配置文件

<VirtualHost *:>

    ServerAdmin @qq.com

    DocumentRoot "/usr/local/httpd/htdocs"

    ServerName www.test.com

    ServerAlias test.com

    CustomLog "|/usr/local/sbin/cronolog /usr/local/httpd/logs/access_%Y%m%d.log" combined

    ErrorLog "|/usr/local/sbin/cronolog /usr/local/httpd/logs/error_%Y%m%d.log"

    <IfModule rewrite_module>

      RewriteEngine On

      RewriteCond %{HTTP_REFERER} !^http://test.com/.*$ [NC]

      RewriteCond %{HTTP_REFERER} !^http://test.com$ [NC]

      RewriteCond %{HTTP_REFERER} !^http://www.test.com/.*$ [NC]

      RewriteCond %{HTTP_REFERER} !^http://www.test.com$ [NC]

      RewriteRule .*\.(gif|jpg|swf)$ http://www.test.com [R,NC]

    </IfModule>

</VirtualHost>

禁止目录浏览: httpd.conf

<Directory "/usr/local/httpd/htdocs">

    Options -Indexes  ##方式1

    Options FollowSymLinks  ##方式2

</Directory>

禁用AllowOverride选项: httpd.conf

apache需要在每个目录中查找.htaccess文件。因此,无论是否真正用到,启用.htaccess都会导致服务器性能的下降。另外,对于每一个请求,都需要读取一次.htaccess文件。

<Directory /usr/local/httpd/htdocs>

        Options none

        AllowOverride None  ##设置为none

        Require all granted

</Directory>

关闭.htaccess文件使用: httpd-default.conf

全部目录权限定义使用httpd.conf中的定义,不使用.htaccess进行定义

#AccessFileName .htaccess  ##注释掉

关闭自带CGI功能: httpd.conf

一般我们不使用apache自带的cgi的功能,如果使用的话,可以用mod_perl模块来替代

修改配置文件, 删掉有关cgi的内容

#ScriptAlias /cgi-bin/ "/usr/local/httpd/cgi-bin/"

#<Directory "/usr/local/httpd/cgi-bin">

    #AllowOverride None

    #Options None

    #Order allow,deny

    #Allow from all

#</Directory>

禁止PHP解析某个目录: 比如用户的上传文件目录

apache的安全模块

我们需要对apache站点增加一些扩展的安全模块,如:mod_evasive20防DDOS、mod_limitipconn(针对单站点)配置、mod_security2防SQL注入等等之类的工具。

另外,下面是推荐给大家的几个工具。

1、makejail           http://www.floc.net/makejail/

它是一个自动把建立jail所需要的程序放到jail内的软件,使用python编写,他有debian和openbsd的版本。

2、mod-security           http://www.modsecurity.org/

它是apche的一个模块,它不仅可以实现过滤请求和日志审计等功能,而且可以防止SQLInjection和跨站脚本攻击等是个很不错的安全模块。

apache网站架构优化

1.在生产环境中建议将程序页面服务器、图片附件服务器和上传服务器三者的功能尽量分离

2.或在前端负载均衡器通过haproxy/nginx来根据用户请求的目录或扩展名来对后端的服务器发出请求。

优化linux系统内核参数

net.ipv4.tcp_fin_timeout  #表示如果套接字由本端要求关闭,这个参数决定了它保持在FIN-WAIT-2状态的时间,默认值是60秒。

net.ipv4.tcp_tw_reuse   #表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认值为0,表示关闭。该参数对应系统路径为:/proc/sys/net/ipv4/tcp_tw_reuse 0

net.ipv4.tcp_tw_recycle  #表示开启TCP连接中TIME-WAIT sockets的快速回收该参数对应系统路径为:/proc/sys/net/ipv4/tcp_tw_recycle提示:reuse和recycle两个参数为了防止生产环境下web,squid等time_wait过多设置的。

net.ipv4.tcp_syncookies   #表示开启SYN Cookies功能。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,Centos5系列默认值为1,表示开启。因此这个参数也可以不添加。该参数对应系统路径为:/proc/sys/net/ipv4/tcp_syncookies,默认为1

net.ipv4.tcp_keepalive_time   #表示当keepalive起用的时候,TCP发送keepalive消息的频度。缺省是2小时,改为10分钟。该参数对应系统路径为:/proc/sys/net/ipv4/tcp_keepalive_time,默认为7200秒。

net.ipv4.ip_local_port_range  #选项用来设定允许系统打开的端口范围。即用于向外连接的端口范围。该参数对应系统路径为:/proc/sys/net/ipv4/ip_local_port_range  32768  61000

net.ipv4.tcp_max_syn_backlog   #表示SYN队列的长度,默认为1024,加大队列长度为8192,可以容纳更多等待连接的网络连接数。选项为服务器端用来记录那些尚未收到客户端确认信息的连接请求的最大值。

该参数对应系统路径为:/proc/sys/net/ipv4/tcp_max_syn_backlog

net.ipv4.tcp_max_tw_buckets    #表示系统同时保持TIME_WAIT套接字的最大数量,如果超过这个数字,TIME_WAIT套接字将立刻被清楚并打印警告信息。默认为180000,对于Apache、Nginx等服务器来说可以调整低一点,如改为5000-30000,不同业务的服务器也可以给大一旦,比如lvs,squid。上几行的参数可以很好地减少TIME_WAIT套接字数量,但是对于Squid效果却不大。此项参数可以控制TIME_WAIT套接字的最大数量,避免Squid服务器被大量的TIME_WAIT套接字拖死。此参数对应系统路径为:/proc/sys/net/ipv4/tcp_max_tw_buckets

net.ipv4.tcp_synack_retries   #参数的值决定了内核放弃连续之前发送SYN+ACK包的数量。该参数对应系统路径为:/proc/sys/net/ipv4/tcp_synack_retries默认值为5

net.ipv4.tcp_syn_retries    #表示在内核放弃建立连接之前发送SYN包的数量。该参数对应系统路径为:/proc/sys/net/ipv4/tcp_syn_retries 5

net.ipv4.tcp_max_orphans    #选项用于设定系统中最多有多少个TCP套接字不被关联到任何一个用户文件句柄上。如果超过这个数字,孤立连接将立即被复位并打印出警告信息。这个限制这是为了防止简单的Dos攻击,不能过分依靠这个限制甚至认为减少这个值,更多的情况是增加这个值。该参数对应系统路径为:/proc/sys/net/ipv4/tcp_max_orphans 65536

;

apache功能优化的更多相关文章

  1. linux apache服务器优化建议整理(很实用)

    转载:http://www.cnblogs.com/zhongbin/archive/2013/06/11/3131865.html 1.apache服务器的time_wait过多 fin_wait1 ...

  2. Apache网页优化与安全

    目录 一.Apache网页优化 1.1.概述 1.2.gzip介绍 1.3.Apache的压缩模块 二.网页压缩实验 2.1.检查是否安装mod_deflate模块 2.2.重新编译安装Apache添 ...

  3. Apache网页优化

    目录: 一.Apache网页优化概述 二.网页压缩 三.网页缓存 四.隐藏版本信息 五.Apache防盗链 一.Apache网页优化概述 在企业中,部署Apache后只采用默认的配置参数,会引发网站很 ...

  4. Apache——网页优化与安全

    Apache--网页优化与安全 1.Apache 网页优化概述 2.网页压缩 3.网页缓存 4.隐藏版本信息 5.Apache 防盗链 1.Apache 网页优化概述: 企业中,部署Apache后只采 ...

  5. Apache性能优化、超时设置,linux 重启apache

    在httpd.conf中去掉Include conf/extra/httpd-default.conf前的#以使httpd-default.php生效.其中调节以下参数Timeout 15 (连接超时 ...

  6. CentOS系统Apache服务器优化详解

    1.Apache优化 Apache能够在CentOS系统正常运行.但是,对于访问量稍大的站点,Apache的这些默认配置是无法满足需求的,我们仍需调整Apache的一些参数,使Apache能够在大访问 ...

  7. Apache性能优化总结

    1.介绍 首先要了解Apache采用的MPM(Multi -Processing Modules,多道处理模块),MPM是Apache的核心,它的作用是管理网络连接.调度请求.Apache2.0中MP ...

  8. WeTest功能优化第3期:业内首创,有声音的云真机

    第3期功能优化目录 [云真机远程调试]音频同步传输实现测试有声 [兼容性测试报告]新增视频助力动态定位问题 [云真机远程调试]菜单栏优化助力机型选择 本期介绍的新功能,秉承创造用户需求的理念,在云真机 ...

  9. WeTest功能优化第2期:云真机智能投屏,调试告别鼠标

    第2期功能优化目录 [云真机视频映射]云真机画面本地映射[兼容性测试报告]新增问题机型聚类功能[新增Android9.0]同步上线最新安卓系统 本期介绍的云测产品功能优化,既有重磅级技术突破,也有报告 ...

随机推荐

  1. 机器学习(4):数据分析的工具-pandas的使用

    前面几节说一些沉闷的概念,你若看了估计已经心生厌倦,我也是.所以,找到了一个理由来说一个有兴趣的话题,就是数据分析.是什么理由呢?就是,机器学习的处理过程中,数据分析是经常出现的操作.就算机器对大量样 ...

  2. 渗透测试集成环境Faraday

    渗透测试集成环境Faraday   Kali Linux集成了海量的渗透测试工具.但是这些工具在使用的时候,还是分离的.虽然用户可以通过Shell.日志/报告导入导出功能等方式,进行整合,但是仍然不便 ...

  3. Display LOV (List Of Values) Using Show_Lov In Oracle Forms

    Show_Lov Function is used to display list of values (LOV) in Oracle Forms. It returns TRUE if the us ...

  4. weblogic的集群与配置图文方法

      一.Weblogic的集群 还记得我们在第五天教程中讲到的关于Tomcat的集群吗? 两个tomcat做node即tomcat1, tomcat2,使用Apache HttpServer做请求派发 ...

  5. VS2010 MFC中 静态编译设置方法

    问题:VS2010 c++编写的程序在别人的机子运行不了,缺少mfc100u.dll xxx100d.dll等 解决方法:1.将这些dll打包,和应用程序一起发布;2.采用MFC静态编译; 静态编译: ...

  6. *** Python版一键安装脚本

    本脚本适用环境:系统支持:CentOS 6,7,Debian,Ubuntu内存要求:≥128M日期:2018 年 02 月 07 日 关于本脚本:一键安装 Python 版 *** 的最新版.友情提示 ...

  7. PocketBeagle 初高级设置

    前言 原创文章,转载引用务必注明链接,水平有限,如有疏漏,欢迎指正.本文使用markdown标记语言写成,为获得最好的阅读体验,请访问我的博客原文. 1. PocketBeagle Summary ​ ...

  8. C 作用域规则

    C 作用域规则 任何一种编程中,作用域是程序中定义的变量所存在的区域,超过该区域变量就不能被访问.C 语言中有三个地方可以声明变量: 在函数或块内部的局部变量 在所有函数外部的全局变量 在形式参数的函 ...

  9. vue2.0 仿手机新闻站(六)详情页制作

    1.结构 2.配置详情页路由 router.config.js /** * 配置 路由 */ // 导入组件 import Home from './components/Home.vue' impo ...

  10. .net 网站登录

    如何实现,按回车键,自动登录,在相应控件上添加onkeypress事件 function CheckCodePress(e){ var e = e||window.event if (e.keyCod ...