最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
怎样在Apache上配置安全策略
时间:2026-06-29 08:37:53 编辑:袖梨 来源:一聚教程网
一、更新系统与软件包确保系统和Apache相关软件包为最新版本,修复已知安全漏洞。

- CentOS:运行
sudo yum update -y更新所有软件包。 - Ubuntu/Debian:运行
sudo apt update && sudo apt upgrade -y更新系统及软件包。
二、配置防火墙限制访问使用防火墙仅允许可信端口(如HTTP 80、HTTPS 443)的流量,阻断非法访问。
- CentOS(firewalld):
sudo firewall-cmd --permanent --zone=public --add-service=httpsudo firewall-cmd --permanent --zone=public --add-service=httpssudo firewall-cmd --reload - Ubuntu(UFW):
sudo ufw allow 80/tcp# HTTPsudo ufw allow 443/tcp # HTTPSsudo ufw enable# 启用防火墙
三、禁用不必要的Apache模块减少攻击面,移除不使用的模块(如userdir、autoindex、status等)。
- 查看已加载模块:
apachectl -M(或httpd -M)。 - 禁用模块:编辑
/etc/httpd/conf.modules.d/00-base.conf(CentOS)或/etc/apache2/mods-enabled/下的符号链接(Ubuntu),注释或删除不需要的模块行(如LoadModule userdir_module modules/mod_userdir.so),然后重启Apache。
四、配置SSL/TLS加密(强制HTTPS)使用SSL/TLS加密客户端与服务器通信,防止数据泄露。
- 安装mod_ssl模块:
- CentOS:
sudo yum install mod_ssl -y - Ubuntu:
sudo apt install mod_ssl -y
- CentOS:
- 获取SSL证书:使用Let’s Encrypt免费获取证书:
sudo yum install certbot python3-certbot-apache -y# CentOSsudo apt install certbot python3-certbot-apache -y# Ubuntusudo certbot --apache -d yourdomain.com -d www.yourdomain.com - 强制HTTP转HTTPS:在HTTP虚拟主机配置(如
/etc/apache2/sites-available/000-default.conf)中添加重定向规则:<VirtualHost *:80>ServerName yourdomain.comRedirect permanent / https://yourdomain.com/</VirtualHost> - 优化SSL配置:编辑SSL虚拟主机配置(如
/etc/apache2/sites-available/default-ssl.conf),禁用不安全协议(SSLv2/3、TLSv1/1.1),设置强加密套件:SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1SSLCipherSuite HIGH:!aNULL:!MD5:!RC4:!3DESSSLHonorCipherOrder onSSLCompression offSSLSessionTickets off
五、设置安全HTTP头通过HTTP头增强客户端安全性,防范XSS、Clickjacking等攻击。在SSL虚拟主机配置中添加以下指令(需启用mod_headers模块):
<IfModule mod_headers.c>Header always set X-Content-Type-Options "nosniff"# 防止MIME类型嗅探Header always set X-Frame-Options "SAMEORIGIN"# 防止ClickjackingHeader always set X-XSS-Protection "1; mode=block"# 启用XSS防护Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"# 强制HTTPS(HSTS)</IfModule>六、配置访问控制限制对敏感目录、文件的访问,仅允许授权用户或IP访问。
- 基于IP的访问控制:使用
<Directory>指令限制特定IP访问(如后台目录):<Directory "/var/www/html/admin">Require ip 192.168.1.100# 仅允许该IP访问# Require all denied# 拒绝所有其他IP</Directory> - 基于身份验证的访问控制:对敏感目录启用基本认证(需创建密码文件):
- 创建密码文件(如
/etc/apache2/.htpasswd):sudo htpasswd -c /etc/apache2/.htpasswd username# 第一次创建需加-c,后续添加用户无需-c - 配置认证规则:
<Directory "/var/www/html/protected">AuthType BasicAuthName "Restricted Area"AuthUserFile /etc/apache2/.htpasswdRequire valid-user# 允许所有有效用户# Require user admin# 仅允许特定用户</Directory>
- 创建密码文件(如
- 禁止目录列表:禁用目录自动列表,防止泄露文件结构:
<Directory "/var/www/html">Options -Indexes# 关闭目录列表</Directory>
七、安装并配置ModSecurity(Web应用防火墙)使用ModSecurity拦截SQL注入、XSS、恶意爬虫等攻击。
- 安装ModSecurity:
- CentOS:
sudo yum install mod_security mod_security_crs -y - Ubuntu:
sudo apt install libapache2-mod-security2
- CentOS:
- 启用ModSecurity:编辑
/etc/httpd/conf.d/mod_security.conf(CentOS)或/etc/apache2/mods-enabled/security2.conf(Ubuntu),开启规则引擎:SecRuleEngine On# 开启规则引擎(On为拦截,DetectionOnly为仅检测)SecRequestBodyAccess On# 允许检查请求体SecResponseBodyAccess On # 允许检查响应体SecAuditLog /var/log/httpd/modsec_audit.log# 审计日志路径 - 自定义规则:可根据需求添加自定义规则(如拦截特定User-Agent):
SecRule REQUEST_HEADERS:User-Agent "badbot" "id:1001,deny,status:403,msg:'Bad Bot Detected'"
八、调整文件与目录权限遵循最小权限原则,限制Apache进程对文件系统的访问。
- 设置Apache运行用户(通常为
www-data或apache):sudo chown -R apache:apache /var/www/html# CentOS(用户为apache)sudo chown -R www-data:www-data /var/www/html# Ubuntu(用户为www-data) - 设置目录权限:Web根目录设置为
755(所有者可读写执行,其他用户可读执行),文件设置为644(所有者可读写,其他用户可读):sudo find /var/www/html -type d -exec chmod 755 {} ;sudo find /var/www/html -type f -exec chmod 644 {} ;
九、禁用危险功能与隐藏敏感信息
- 禁用符号链接追踪:防止恶意用户通过符号链接访问系统文件:
<Directory "/var/www/html">Options -FollowSymLinks# 禁止符号链接# 或使用SymLinksIfOwnerMatch(仅允许所有者匹配的符号链接)Options +SymLinksIfOwnerMatch</Directory> - 隐藏Apache版本信息:避免暴露服务器版本,减少针对性攻击:
ServerSignature Off# 关闭错误页面中的服务器版本信息ServerTokens Prod# 仅显示“Apache”(而非版本号)
十、定期更新与监控
- 定期更新:保持Apache、模块及系统软件包为最新版本,及时修复安全漏洞。
- 监控日志:定期检查Apache访问日志(
/var/log/httpd/access_log或/var/log/apache2/access.log)和错误日志(/var/log/httpd/error_log或/var/log/apache2/error.log),识别异常访问(如大量404请求、暴力破解尝试)。 - 备份配置:定期备份Apache配置文件(如
/etc/httpd/或/etc/apache2/)和网站数据,防止配置丢失。
相关文章
- 蚂蚁庄园今日答案 皮肤发黄:一定是肝脏有问题吗 06-29
- 小鸡庄园最新答案 小鸡庄园最新的答案6.22 06-29
- 2025今日小鸡最新答案6.22 支付宝小鸡最新答案2026.6.22 06-29
- 蚂蚁庄园今日答案 零防腐剂的食物一定更安全 06-29
- 6月22日蚂蚁庄园今日答案汇总 蚂蚁庄园小课堂今日答案最新6.22 06-29
- 蚂蚁庄园今日答案 最新蚂蚁庄园今日答案2026年6月22日 06-29