Apache安全加固配置教程(小白篇)

这篇具有很好参考价值的文章主要介绍了Apache安全加固配置教程(小白篇)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Apache安全加固配置教程(小白篇)

资源宝分享:www.httple.net

apache 打补丁,网站优化,网站防御,apache,安全,服务器
一,Apache服务器的介绍

Apache服务器它是Internet网上应用最为广泛的Web服务器软件之一。Apache服务器源自美国国家超级技术计算应用中心(NCSA)的 Web服务器项目中。目前已在互联网中占据了领导地位。Apache服务器得经过精心配置之后,才能使它适应高负荷,大吞吐量的互联网工作。快速、可靠、通过简单的API扩展,Perl/Python解释器可被编译到服务器中,且完全免费,完全源代码开放。如果你需要创建一个每天有数百万人访问的Web服务器,Apache可能是最佳选择。

二,Apache服务器的主要安全缺陷

正如我们前言所说尽管Apache服务器应用最为广泛,设计上非常安全的程序。但是同其它应用程序一样,Apache也存在安全缺陷。毕竟它是完全源代码,Apache服务器的安全缺陷主要是使用HTTP协议进行的拒绝服务攻击(denial of service)、缓冲区溢出攻击以及被攻击者获得 root权限三缺陷和最新的恶意的攻击者进行“拒绝服务”(DoS)攻击。合理的网络配置能够保护Apache服务器免遭多种攻击。我们来介绍一下主要的安全缺陷:

(1)使用HTTP协议进行的拒绝服务攻击(denial of service)的安全缺陷

这种方法攻击者会通过某些手段使服务器拒绝对HTTP应答。这样会使Apache对系统资源(CPU时间和内存)需求的剧增,最终造成Apache系统变慢甚至完全瘫痪。

(2)缓冲区溢出的安全缺陷

该方法攻击者利用程序编写的一些缺陷,使程序偏离正常的流程。程序使用静态分配的内存保存请求数据,攻击者就可以发送一个超长请求使缓冲区溢出。比如一些Perl编写的处理用户请求的网关脚本。一旦缓冲区溢出,攻击者可以执行其恶意指令或者使系统宕机。

(3)被攻击者获得root权限的安全缺陷

该安全缺陷主要是因为Apache服务器一般以root权限运行(父进程),攻击者会通过它获得root权限,进而控制整个Apache系统。

(4)恶意的攻击者进行“拒绝服务”(DoS)攻击的安全缺陷

这个最新在6月17日发现的漏洞,它主要是存在于Apache的chunk encoding中,这是一个HTTP协议定义的用于接受web用户所提交数据的功能。 利用黑客程序可以对于运行在FreeBSD 4.5, OpenBSD 3.0 / 3.1, NetBSD 1.5.2平台上的 Apache服务器均可进行有效的攻击.

所有说使用最高和最新安全版本对于加强Apache Web服务器的安全是至关重要的。请广大Apache服务器管理员去http://www.apache.org/dist/httpd/下载补丁程序以确保其WEB服务器安全!

正确维护和配置Apache服务器

  1. 选择漏洞较少的apache版本,并打上安全补丁

查看apache版本号:httpd -v

然后在sebug上搜索该版本号有什么漏洞,可根据提示提升版本或者打上补丁

  1. 关闭一些不使用的模块及功能

可在LoadModule前加#,来注释掉一些不使用的模块

  1. 隐藏banner信息
  ServerTokens OS  修改为:ServerTokens Prod (在出现错误页的时候不显示服务器操作系统的名称)
  ServerSignature On 修改为:ServerSignature Off(不回显apache版本信息)
  1. 删除默认网站及页面

删除默认的页面,防止泄露服务器信息

  1. 可修改banner信息

  2. 配置httpd.conf禁止目录浏览

  Options Indexes FollowSymLinks
  改为
  Options -Indexes FollowSymLinks
  1. 配置httpd.conf设置默认文档
DirectoryIndex index.html
  1. 合理配置apache的运行账户

为apache单独建立一个运行账户及账户组,并在httpd.conf配置

  User apache
  Group apache
  1. 合理控制apache运行账户对磁盘的写入,执行权限

取消apache运行账户对网站目录的写入权限,上传目录除外,其他非网站目录尽量不给权限

  1. 合理控制apache运行账户对sh等的执行权限

取消掉了运行账户对sh等的执行权限后能够防止webshell通过默认的sh执行命令

  1. 配置httpd.conf取消对上传目录的php执行权限
<Directory "/var/www/html/aaa">
  <FilesMatch ".(php|php5)$">
  Deny from all
  </FilesMatch>
  </Directory>
  1. 配置httpd.conf限制禁止访问的文件夹,例如后台目录
<Directory "/var/www/html/aaa">
  Deny from all
  </Directory>
  1. 配置httpd.conf限制一些特殊目录的特定ip访问,如内部接口等。
<Directory "/var/www/html/aaa">
  Order Deny,Allow
  Deny from all
  Allow from 192.168.1.111
  </Directory>
  1. 配置httpd.conf限制一些文件类型的访问,如txt的日志
<Files ~ ".txt$">
  Order allow,deny
  Deny from all
  </Files>

15.配置httpd.conf修改修改监听端口来防止一些内部系统被扫描

这样可以防止一些直接扫描80端口的黑客

Listen 12345
  1. 关闭对.htaccess的支持
  AllowOverride All
  改为
  AllowOverride None
  1. 配置httpd.conf记录访问日志

.htaccess常见配置方法参考

首先,不建议使用.htaccess,其次,使用.htaccess需要在httpd.conf中开启,最后,开始.htaccess支持后需要在httpd.conf中配置防止.htaccess文件被下载,下面介绍几个基本配置方法不全,更多的可以参考其他网站专门针对.htaccess 的配置方法。

  1. 定制目录的默认文档
DirectoryIndex index.html index.php index.htm

Apache 错误页面重定向功能可以防止敏感信息泄露。

2.修改 httpd.conf 配置文件:

ErrorDocument 400 /custom400.html
ErrorDocument 401 /custom401.html
ErrorDocument 403 /custom403.html
ErrorDocument 404 /custom404.html
ErrorDocument 405 /custom405.html
ErrorDocument 500 /custom500.html
  1. 控制访问文件和目录的级别
  order deny,allow
  deny from all
  allow from 192.168.0.0/24
  1. 防止列目录
Options -Indexes

18、拒绝服务防范
根据业务需要,合理设置 session 时间,防止拒绝服务攻击。

1、修改 httpd.conf 配置文件:

Timeout 10 
KeepAlive On
KeepAliveTimeout 15
AcceptFilter http data
AcceptFilter https data

Timeout 10 #客户端与服务器端建立连接前的时间间隔
KeepAliveTimeout 15 限制每个 session 的保持时间是 15 秒
此处为建议值,具体的参数值需要根据现实际情况设定。
默认值为Timeout 120、KeepAlive Off、KeepAliveTimeout 15,该项设置涉及性能调整。

19、关闭 TRACE功能
关闭 TRACE 功能,防止 TRACE 方法被访问者恶意利用。

/etc/httpd/conf/httpd.conf 配置文件中添加以下设置参数:
TraceEnable Off  

20、禁用非法 HTTP 方法
禁用 PUT、DELETE 等危险的 HTTP 方法
您可根据需要进行设置,如果需要用到 PUT 或 Delete 等 HTTP 方法的话,在 /etc/httpd/conf/httpd.conf 配置文件中相应添加即可。


修改 httpd.conf 配置文件,只允许 get、post 方法。
<Location />
<LimitExcept GET POST CONNECT OPTIONS>  Order Allow,Deny  Deny from all</LimitExcept>
</Location> 

若使用IP黑名单,则根据业务需求添加下面内容

<Directory "/var/www/html/test">	
    Options All	
    AllowOverride None	
    Order Deny,Allow	
    Deny From 192.168.1.0/24 192.168.3.0/24	
    Deny From 192.168.56.1
</Directory> 

关闭Trace,防止Trace方法被恶意访问利用,造成信息泄露

TraceEnable off

我们也可以为单独的站点禁用CGI和Include

<Directory "/var/www/html/web1">
Options -Includes -ExecCGI
</Directory>

21.限制请求的大小

Apache默认对HTTP请求的大小没有任何限制。当web服务器对请求没有任何限制是,容易引发拒绝服务攻击。我们可以通过LimitRequestBody为每个目录单独配置请求大小限制。

我们可以将http请求的大小限制在 0(不受限制)~2147483647 (2GB)之间。一般建议将LimitRequestBody的值设置在略大于最大上传文件的大小即可。

<Directory "/var/www/myweb1/user_uploads">
   LimitRequestBody 512000
</Directory>

22.DDOS攻击防范,避免僵尸请求

我们可以调整Apache的参数,将DDOS攻击的影响降到最低。

Timeout:指令允许您设置服务器在失败之前等待某些事件完成的时间。默认 300 秒。当收到DDOS攻击时,可以将该值设置到最低。

MaxClients:允许您设置将同时提供的并发连接数的限制。默认值为256,超过的连接请求将会被放在队列中等待执行。它可用于Prefork和Worker两者MPM。

KeepAliveTimeout:服务器在关闭连接之前等待后续请求的时间。默认为5秒

LimitRequestFields:帮助我们设置从客户端接受的HTTP请求的头字段数量的限制,默认值为100.建议适当降低该值。

LimitRequestFieldSize:配置HTTP Request header大小。

23.启用Apache日志

Apache允许您独立于操作系统日志记录进行日志记录。启用Apache日志可以为我们提供更多的有用信息。

TransferLog:创建日志文件。

LogFormat:指定自定义格式。

CustomLog:创建和格式化日志文件。

您还可以为每个虚拟主机指定不同的日志。

<VirtualHost *:80>
  DocumentRoot /var/www/html/example.com/
  ServerName www.example.com
  DirectoryIndex index.htm index.html index.php
  ServerAlias example.com
  ErrorDocument 404 /story.php
  ErrorLog /var/log/httpd/example.com_error_log
  CustomLog /var/log/httpd/example.com_access_log combined
</VirtualHost>

其实一个web服务器的保护是分几个层次的

  1. 隐藏自己

要保护一个web服务器首先得学会隐藏自己,对于一些内部系统,如后台,内部接口等,我们可以通过改端口,限制ip等方式来不让黑客发现。

  1. 隐藏身份

对于多数web系统来说,都是提供给外面的访问的,所以想隐藏自己其实是很难的。但是我们还是要学会隐藏身份,可以通过改banner,该返回信息来隐藏身份来加大黑客攻击的难度。

  1. 选用安全的版本及修补一些已知的漏洞

其实前面两步都是很容易突破,然后获知一个web系统所使用的web服务器版本的,此时我们能做的就是选择一个少漏洞的版本,及打上安全补丁。

  1. 做好安全配置

做好基础的安全配置,禁止目录浏览,设定默认文档,上传目录限制php执行等等,来阻挡黑客的入侵。

  1. 合理配置web服务进程账户的权限

当黑客已经通过程序漏洞上传了一个webshell并且已经成功执行了,此时,就只能很好的配置服务进程的账户权限,包括磁盘的读取写入,特殊程序如sh的执行,等等,这样可以讲危害降到最低。

  1. 记录日志

最后,当黑客已经光顾之后,我们也只能通过日志来分析,看问题出在哪里了。文章来源地址https://www.toymoban.com/news/detail-761183.html

到了这里,关于Apache安全加固配置教程(小白篇)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • apache配置安全证书https踩坑记录

    apache配置安全证书有如下几步 一、申请证书 这个网上有很多免费的,我用的是阿里云的服务器,在阿里云后台就可以申请免费证书。 二、上传证书 申请好证书后,根据服务器用的什么软件,是apache还是ngnix,下载相应的证书文件,我用的是apache,有三个文件:公钥文件、私

    2024年02月12日
    浏览(42)
  • 配置安全的linux-apache服务器(5)

    实验简介 实验所属系列:Linux网络服务配置与安全 实验对象: 本科/专科信息安全专业、网络工程 相关课程及专业:系统安全配置、服务器配置、计算机网络 实验时数(学分):2学时 实验类别:实践实验类 预备知识 虚拟主机简介 虚拟主机(Virtual Host)是指在一台主机上运

    2024年02月03日
    浏览(44)
  • apache-maven-3.6.3 安装配置教程

    链接:https://pan.baidu.com/s/1RkMXipnvac9EKcZyUStfGQ?pwd=l32m  提取码:l32m 1. 将 maven 压缩包解压至指定文件夹 2. 配置环境变量 (1)打开此电脑- 鼠标右键选择属性-点击高级系统设置 (2)点击选择环境变量-新建         变量名:MAVEN_HOME         变量值:复制自己的 maven 路径

    2024年02月05日
    浏览(52)
  • Day79:服务攻防-中间件安全&IIS&Apache&Tomcat&Nginx&弱口令&不安全配置&CVE

    目录 中间件-IIS-短文件文件解析蓝屏写权限 HTTP.SYS(CVE-2015-1635)主要用作蓝屏破坏,跟权限不挂钩 IIS短文件(iis全版本都可能有这个问题) IIS文件解析 IIS写权限 中间件-Nginx-文件解析目录穿越漏洞CRLF CVE-2013-4547 文件上传 解析漏洞(配置不当) 目录穿越(配置不当) CRLF注入(配置

    2024年04月08日
    浏览(57)
  • Apache SeaTunnel 及 Web 功能部署指南(小白版)

    在大数据处理领域,Apache SeaTunnel 已成为一款备受青睐的开源数据集成平台,它不仅可以基于Apache Spark和Flink,而且还有社区单独开发专属数据集成的Zeta引擎,提供了强大的数据处理能力。随着SeaTunnel Web的推出,用户界面(UI)操作变得更加友好,项目部署和管理更加便捷。 本

    2024年03月09日
    浏览(53)
  • 网站压测工具Apache-ab,webbench,Apache-Jemeter

    编译LAMP网站部署:LAMP web1配置: yum方式搭建网站 web2跟上面一样搭建网站,做系统配置 ab是Apache自带的压力测试工具。它可以对apache服务器进行网站访问压力测试,生成详细的网站测试信息,从而帮助开发者优化网站。 在压测设备上测试web1 在压测设备上测试web2 web1的主要数

    2023年04月18日
    浏览(49)
  • linux部署apache服务部署静态网站

    第一步:配置IP地址 第二步:创建挂载点   配置yum仓库 mkdir -p /media/cdrom 挂载 mount /dev/cdrom /media/cdrom 安装服务  安装yum源 启用httpd服务程序并将其加入到开机启动项中 建立网站数据保存目录,并创建首页文件 mkdir /home/wwwroot echo \\\"The New Web Directory\\\" /home/wwwroot/index.html 打开htt

    2024年02月01日
    浏览(44)
  • 第八章 使用Apache服务部署静态网站

    一、网站服务程序 1、网站服务介绍 网站服务就是指Web网络服务,一般是只允许用户通过浏览器访问到互联网中各种资源的服务。Web网络服务是一种被动访问的服务程序,即只有接收到互联网中其他主机发出的请求后才会响应,最终用于提供服务程序的Web服务器,会通过HTT

    2024年02月03日
    浏览(50)
  • Ubuntu:使用apache2部署Vue开发的网站

    作者:CSDN @ _乐多_ 本文记录了Vue项目打包到部署到ubuntu系统的全部步骤。 一、代码打包 首先,确保您已经在本地开发环境中成功开发和测试了Vue项目。然后,执行以下命令来构建生产版本的Vue应用:

    2024年02月06日
    浏览(48)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包