(转)巩固Apache配置的安全方法20则

Ubuntu 20.04 安装配置 Apache 详细指南 Apache 是广泛使用的开源 Web 服务器,其稳定性和模块化设计使其成为 Linux 系统部署网站的核心组件。在 Ubuntu 20.04 这一长期支持(LTS)版本中,Apache 通过 APT 包管理器深度集成 systemd、AppArmor 和默认安全策略,但这也导致新手常遇 403 错误、HTTPS 配置失败或服务无法启动等问题。理解其基于 Debian 的配置结构(如 sites-enabled、mods-enabled)、权限模型(www-data 用户与 DocumentRoot 权限) 阅读详情

文章来源:http://www.webdn.com/web_file/program/jsp/0602080486/

声明:关于安全的事情没有保证的或者绝对的。这些建议可以让你的服务器更安全,但不要认为遵循这些建议后你的服务器就理所当然是安全的。另外,在这些建议中有的建议可能会降低服务器性能或者因为你的环境引起问题。我建议所作的任何改变是否适合你的需求完全由你决定。换句话说,那是你的风险。

一、确保你安装的是最新的补丁

如果门是敞开的话,在窗户上加锁就毫无意义。同样道理,如果你没有打补丁,继续下面的操作就没有什么必要。

二、隐藏Apache的版本号及其它敏感信息

默认情况下,很多Apache安装时会显示版本号及操作系统版本,甚至会显示服务器上安装的是什么样的Apache模块。这些信息可以为黑客所用,并且黑客还可以从中得知你所配置的服务器上的很多设置都是默认状态。

这里有两条语句,你需要添加到你的httpd.conf文件中:

ServerSignature Off

ServerTokens Prod

ServerSignature 出现在Apache所产生的像404页面、目录列表等页面的底部。ServerTokens目录被用来判断Apache会在Server HTTP响应包的头部填充什么信息。如果把ServerTokens设为Prod,那么HTTP响应包头就会被设置成:

Server:Apache

如果你非常想尝试其它事物,你可以通过编辑源代码改成不是Apache的其它东西,或者你可以通过下面将要介绍的mod_security实现。

三、确保Apache以其自身的用户账号和组运行

有的Apache安装过程使得服务器以nobody的用户运行,所以,假定Apache和你的邮件服务器都是以nobody的账号运行的,那么通过Apache发起的攻击就可能同时攻击到邮件服务器,反之亦然。

User apache

Group apache

四、确保web根目录之外的文件没有提供服务

我们不让Apache访问web根目录之外的任何文件。假设你的所以web站点文件都放在一个目录下(例如/web),你可以如下设置:

<directory></directory>

Order Deny,Allow

Deny from all

Options None

AllowOverride None

 

<directory web=""></directory>

Order Allow,Deny

Allow from all

 

注意,因为我们设置Opitins None 和AllowOverride None,这将关闭服务器的所有Option和Override。你现在必须明确把每个目录设置成Option或者Override。

五、关闭目录浏览

你可以在Directory标签内用Option命令来实现这个功能。设置Option为None或者-Indexes。

Options -Indexes

六、关闭includes

这也可以通过在Directory标签内使用Option命令来实现。设置Option为None或者-Includes。

Options -Includes

七、关闭CGI执行程序

如果你不用CGI,那么请把它关闭。在目录标签中把选项设置成None或-ExecCGI就可以:

Options -ExecCGI

八、禁止Apache遵循符号链接

同上,把选项设置成None或-FollowSymLinks:

Options -FollowSymLinks

九、关闭多重选项

如果想关闭所有选项,很简单:

Options None

如果只想关系一些独立的选项,则通过将Options做如下设置可实现:

Options -ExecCGI -FollowSymLinks -Indexes

十、关闭对.htaccess文件的支持

在一个目录标签中实现:

AllowOverride None

如果需要重载,则保证这些文件不能够被下载,或者把文件名改成非.htaccess文件。比如,我们可以改成.httpdoverride文件,然后像下面这样阻止所有以.ht打头的文件:

AccessFileName .httpdoverride

<files></files>

Order allow,deny

Deny from all

Satisfy All

十一、运行mod_security

Run mod_security是O’Reilly出版社出版的Apache Security一书的作者,Ivan Ristic所写的一个非常好用的一个Apache模块。可以用它实现以下功能:

·简单过滤

·基于过滤的常规表达式

·URL编码验证

·Unicode编码验证

·审计

·空字节攻击防止

·上载存储限制

·服务器身份隐藏

·内置的Chroot支持

·更多其它功能

十二、关闭任何不必要的模块

Apache通常会安装几个模块,浏览Apache的module documentation,了解已安装的各个模块是做什么用的。很多情况下,你会发现并不需要激活那些模块。

找到httpd.conf中包含LoadModule的代码。要关闭这些模块,只需要在代码行前添加一个#号。要找到正在运行的模块,可以用以下语句:

grep LoadModule httpd.conf

以下模块通常被激活而并无大用:mod_imap, mod_include, mod_info, mod_userdir, mod_status, mod_cgi, mod_autoindex。

更多方法请见http://www.petefreitag.com/item/505.cfm

Ubuntu 20.04下Apache自签名SSL证书配置实战 SSL证书是TLS协议中实现服务器身份认证的核心机制,其本质并非加密数据,而是通过数字签名建立可信的身份信封。在开发、测试及内网场景中,自签名证书提供了一种零成本、离线可控的HTTPS启用方案,具备与商业证书同等的加密强度(如RSA-2048或ECDSA),仅缺失第三方CA背书。它广泛应用于Docker微服务通信、Vue/React本地HTTPS开发、Jenkins/GitLab内网管理等场景,有效规避混合内容错误、CI/CD构建失败(如no required ssl certificate was sen 阅读详情

相关推荐

Ubuntu 20.04下Nginx与Apache共存配置实战

Web服务器架构中,Nginx和Apache并非互斥选项,而是可协同工作的互补组件。Nginx基于事件驱动的异步非阻塞I/O模型,擅长高并发静态资源服务、SSL终止与反向代理;Apache则在动态内容处理(如PHP/Perl模块化运行)、.htaccess重写及安全模块(mod_security)方面具备成熟生态。二者混合部署能兼顾性能与兼容性,尤其适用于遗留系统升级、多租户平台演进等生产场景。其技术价值体现在:卸载静态压力、复用现有配置、统一安全策略与流量治理。典型应用包括电商大促架构、政务系统平滑迁移及

weixin_34146805的博客 1469

18 个 Apache Web 服务器安全和强化技巧

Apache Web 服务器是最流行且使用最广泛的 Web 服务器之一,用于托管文件和网站。它易于安装和配置,可以满足您的托管需求。但是,默认设置并不安全,无法提供您网站所需的急需保护。在本指南中,我们将介绍一些 Apache 服务器强化提示和技巧,您可以实施它们来增强 Web 服务器的安全性。

u012748257的博客 1799

Ubuntu 20.04 Apache 自签名SSL证书快速配置指南

SSL证书是现代Web通信加密的基础机制,其核心原理在于通过公钥基础设施(PKI)实现身份认证与信道加密。自签名证书虽不被公共信任,但作为本地开发、内网服务和测试环境的轻量级TLS解决方案,具备零成本、高可控、低延迟的技术价值。它广泛应用于Apache/Nginx服务器配置、前端HTTPS调试、混合内容规避、PWA功能启用及CI/CD webhook安全回调等场景。在Ubuntu 20.04系统中,依托OpenSSL 1.1.1f与Apache 2.4.41原生支持,结合mod_ssl模块与subjectA

weixin_30632089的博客 496

[转]巩固Apache配置的安全方法20则

 文章来源:http://www.webdn.com/web_file/program/jsp/0602080486/声明:关于安全的事情没有保证的或者绝对的。这些建议可以让你的服务器更安全,但不要认为遵循这些建议后你的服务器就理所当然是安全的。另外,在这些建议中有的建议可能会降低服务器性能或者因为你的环境引起问题。我建议所作的任何改变是否适合你的需求完全由你决定。换句话说,那是你的风险。

heiyeluren的blog(黑夜路人的开源世界) 3000

Ubuntu 20.04 Apache快速部署与生产级配置指南

Apache是Linux Web服务的核心HTTP服务器软件,基于模块化架构和多处理模块(MPM)实现请求分发与内容响应。其核心价值在于配置可预测、`.htaccess`动态覆盖灵活、安全模块(如mod_security)成熟稳定,特别适合WordPress等CMS及需精细权限控制的场景。在Ubuntu 20.04 LTS系统中,APT原生包提供符合FHS标准的规范路径、自动安全更新能力与完善的日志/服务管理集成,但默认配置存在权限陷阱、rewrite未启用、IPv6监听异常等典型问题。本文聚焦真实运维场景

weixin_34198453的博客 530

Ubuntu 20.04 LAMP生产级部署:Apache+MySQL8+PHP7.4安全配置指南

LAMP(Linux-Apache-MySQL-PHP)是Web开发最经典的技术栈,其核心价值在于稳定、可运维与工程可控性。Apache作为模块化清晰的Web服务器,提供直观的虚拟主机与重写规则管理;MySQL 8.0默认启用caching_sha2_password认证插件和原子DDL,显著提升安全性与数据一致性;PHP 7.4在Ubuntu 20.04中通过libapache2-mod-php7.4深度集成,兼顾调试效率与运行性能。该技术组合广泛应用于WordPress、Laravel等PHP项目快速验

weixin_33850015的博客 420

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

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

云博客_资源宝分享 2871

使用ExcelJS向XLSX单元格居中插入图片

本文记录了使用ExcelJS库向XLSX单元格里居中写入图片的方法。本文内容包括:xlsx 文件格式;xlsx 图片定位的长度单位;使用nativeColOff和nativeRowOff进行定位,不要使用官网给的定位方式;添加图片到数据表的总体流程和样例代码;注意事项等。

weixin_43678000的博客 3456

Apache 服务器的安全设置

Apache 服务器的安全设置Apache 简单介绍Apache 服务器的安全设置账号设置授权设置日志设置隐藏Apache 版本信息修改Apache默认首页禁止目录浏览限制目录执行权限删除缺省安装的无用文件自定义错误页面关闭 TRACE 功能禁用 CGI限制IP访问限制请求消息长度修改默认端口 Apache 简单介绍 Apache HTTP Server(简称Apache)是Apache软件基金...

Beret-81的博客 2193

STM32玩转C++:从Arduino库到HAL库的封装思路(Clion环境配置指南)

本文介绍了如何在STM32开发中使用C++封装HAL库,从Arduino风格过渡到更高效的开发方式。通过Clion环境配置指南和详细的代码示例,展示了如何利用C++的面向对象特性简化GPIO、UART等外设操作,提升代码可读性和开发效率。特别适合嵌入式开发者和从Arduino转向STM32的开发者。

weixin_33737134的博客 335

【芯片验证随心记】1.SystemVerilog中,rand和randc的区别?如何用constraint实现randc?

在SystemVerilog里,randc 的“不重复循环”特性是用一个 周期性排列器(permutation engine) 实现的,而这个引擎在 LRM 里并没有公开。我们只能在 “用户空间” 用 rand + constraint 去模仿它的行为。每次随机化只取 queue.pop_front(),用完再洗。在4次随机化内,y会依次出现0,1,2,3各一次(顺序随机)每次随机化,x可能是0-3中的任意值,可能连续多次相同。每次随机化时,在未使用的值里随机挑一个;第5次随机化时,重新生成新的排列周期。

qq_43172512的博客 342

Apache HTTP 服务器的安全配置指南

随着互联网的发展,Web服务器面临着越来越多的安全威胁。Apache作为最广泛使用的Web服务器之一,其安全配置至关重要。本文将探讨如何通过一系列措施加强Apache的安全性,包括配置SSL/TLS、设置访问控制、防止常见攻击等。通过对Apache服务器进行细致的安全配置,可以大大降低遭受攻击的风险。上述建议只是起点,每个环境都有其独特之处,因此应当根据实际情况调整安全策略。持续关注最新的安全趋势和技术,不断改进和优化你的服务器配置,是保证长期安全的关键。

Programming Talk 1400

windows10系统上安装最新版mysql 8.0详细步骤

windows10系统上安装最新版mysql 8.0详细步骤

glei20的博客 6715

ubuntu20.04 apache2 配置安装ssl证书

自建服务器的SSL证书配置过程,目前网络上一些教程,证书文件格式不同,可能会设置不成功。 1. 证书申请准备 *以上三个文件,根据自己网站域名重命名 将证书上传到你的服务器上,我是在/etc/ssl/目录下新建了一个文件夹。 2. 配置证书 首先,进入/etc/apache2/sites-available目录,如下: 原先只有default-ssl.conf文件,“.old”结尾的文件用于备用原有配置文件。 做好备份后,我们需要设置一个软链接,把这个文件链接到sites-...

1802

当AI写小说——一个被严重低估的工程化战场

摘要 AI小说创作远非简单的prompt生成,而是一项需要系统化工程管理的复杂任务。本文通过真实案例分析,揭示了当前AI写小说存在的五大核心难题:设定一致性难以维持、文风控制缺乏个性、爽感节奏难以把握、长篇记忆能力有限以及平台规则适配困难。研究显示,90%的失败案例源于错误的创作方法,主要表现为对话框式随机生成和模板式同质化创作。要实现高质量的AI小说创作,必须建立包括设定治理、记忆管理、文风校准等在内的全链路工程化体系,而非依赖单一prompt指令。只有采用系统化的人机协同方法,才能突破当前AI创作的质量

sellyogurt的博客 680

微信开发 - 最新第三方网站接入微信登录、微信支付时,本地 redirect_uri 参数错误导致无法调试的解决方案(微信开放平台)完美解决每次都需要部署到线上测试,在本地使用本地 ip 就能轻松调试

redirect_uri参数错误,微信第三方登录,没有服务器时的测试方法,微信开放平台的回调域名怎么设置为本地域名IP,微信登录微信支付每次调试都需要放到服务器上怎么办,微信登录支付业务在本地调试不了怎么办,在本地怎么测试微信支付和登录,微信第三方登陆本地测试,怎么在本地进行测试,微信回调域怎么设置为本地IP,微信扫码登录redirect_uri参数错误,微信开放平台,微信开放平台开发的第三方登录和支付,vue2,nuxt2,vue3,nuxt3,uniapp,微信开放平台,公众号,微信支付,微信登录授权,

🏆 前端领域优质创作者 8790
上一篇: (转)Mysql的优化设置
下一篇: javascript常用技巧归纳
jackyrongvip
博客等级 码龄17年 1645粉丝 4072原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值