发布时间:2026/7/8 16:56:16
#【Day 5】安全防护配置完整指南:从系统层到应用层的防御体系(2026版) 系列《中小企业云服务器7天运维实战》Day 5/7标签安全防护 | Fail2ban | WAF | 安全组 | WordPress安全 | 运维发布时间2026-06-15阅读时长20分钟适用版本CentOS 7.9 / Ubuntu 22.04 / 宝塔v8.0摘要本文从系统层、网络层、Web层、应用层四个维度详细记录服务器安全防护的完整配置过程。包含Fail2ban防暴力破解、安全组最小权限配置、宝塔WAF、WordPress安全加固等实操内容以及可执行的定期安全检查清单。一、安全威胁分析1.1 攻击类型与技术原理攻击类型技术原理目标组件检测方法暴力破解字典/撞库攻击认证接口SSH/MySQL/面板分析/var/log/secureSQL注入构造恶意SQL绕过过滤Web应用数据库Web日志分析XSS注入客户端脚本用户浏览器输入验证文件上传漏洞上传可执行脚本Web服务器文件类型限制DDoS资源耗尽型攻击带宽/连接数流量监控勒索软件漏洞入侵后加密文件系统文件文件完整性监控1.2 防御层次模型┌─────────────────────────────────────────────┐ │ 第4层应用层WordPress安全插件、代码审计 │ ├─────────────────────────────────────────────┤ │ 第3层Web层宝塔WAF、输入过滤、CSP │ ├─────────────────────────────────────────────┤ │ 第2层网络层安全组、Fail2ban、IDS │ ├─────────────────────────────────────────────┤ │ 第1层系统层系统更新、最小权限、SELinux │ └─────────────────────────────────────────────┘二、系统层安全加固2.1 SSH安全加固修改默认端口# 编辑SSH配置vi/etc/ssh/sshd_config# 修改以下参数Port22222# 改为非常用端口PermitRootLogin no# 禁止root登录需先创建普通用户PasswordAuthentication no# 禁用密码仅使用密钥可选MaxAuthTries3# 最大尝试次数ClientAliveInterval300# 5分钟无操作断开ClientAliveCountMax2# 检测次数# 重启SSHsystemctl restart sshd安全提示修改端口后保持当前SSH会话不关闭新开窗口测试新端口连接成功后再关闭原会话。创建普通用户如禁用root登录# 创建用户useradd-m-s/bin/bash adminpasswdadmin# 添加到sudo组usermod-aGwheel admin# CentOSusermod-aGsudoadmin# Ubuntu# 配置sudo免密可选谨慎使用echoadmin ALL(ALL) NOPASSWD:ALL/etc/sudoers2.2 Fail2ban配置安装# CentOSyuminstall-yepel-release yuminstall-yfail2ban fail2ban-systemd# Ubuntuaptinstall-yfail2ban配置jail.localcat/etc/fail2ban/jail.localEOF [DEFAULT] # 封禁时间1小时 bantime 3600 # 检测窗口10分钟 findtime 600 # 最大失败次数3 maxretry 3 # 忽略本地IP ignoreip 127.0.0.1/8 [sshd] enabled true port ssh,22222 filter sshd logpath /var/log/secure backend systemd [nginx-http-auth] enabled true filter nginx-http-auth port http,https logpath /www/server/nginx/logs/error.log [wordpress] enabled true filter wordpress port http,https logpath /www/wwwroot/*/wp-content/debug.log maxretry 5 EOF启动服务systemctlenablefail2ban systemctl start fail2ban# 查看状态fail2ban-client status fail2ban-client status sshd自定义WordPress过滤规则# 创建WordPress过滤规则cat/etc/fail2ban/filter.d/wordpress.confEOF [Definition] failregex ^HOST .* POST .*wp-login.php.* 200 ^HOST .* POST .*xmlrpc.php.* 200 ignoreregex EOF2.3 系统自动更新CentOS# 安装自动更新yuminstall-yyum-cron# 配置仅安装安全更新cat/etc/yum/yum-cron.confEOF [commands] update_cmd security update_messages yes download_updates yes apply_updates yes random_sleep 360 EOFsystemctlenableyum-cron systemctl start yum-cronUbuntu# 安装无人值守更新aptinstall-yunattended-upgrades# 配置仅安全更新cat/etc/apt/apt.conf.d/50unattended-upgradesEOF Unattended-Upgrade::Allowed-Origins { ${distro_id}:${distro_codename}-security; }; Unattended-Upgrade::AutoFixInterruptedDpkg true; Unattended-Upgrade::MinimalSteps true; Unattended-Upgrade::InstallOnShutdown false; Unattended-Upgrade::Remove-Unused-Dependencies true; EOFdpkg-reconfigure-plowunattended-upgrades三、网络层安全加固3.1 阿里云安全组最小权限配置生产环境规则模板方向协议端口授权对象用途优先级入方向TCP22222个人IP/32SSH100入方向TCP800.0.0.0/0HTTP100入方向TCP4430.0.0.0/0HTTPS100入方向TCP58888个人IP/32宝塔面板100入方向TCP3306127.0.0.1/32MySQL100入方向TCP21个人IP/32FTP110入方向TCP888127.0.0.1/32phpMyAdmin110入方向全部全部0.0.0.0/0拒绝200安全提示最后一条拒绝全部规则确保未明确允许的流量都被拒绝。3.2 系统防火墙iptables/firewalldfirewalld配置CentOS# 设置默认区域为drop默认拒绝firewall-cmd --set-default-zonedrop# 添加允许规则firewall-cmd--permanent--zonedrop --add-port22222/tcp firewall-cmd--permanent--zonedrop --add-port80/tcp firewall-cmd--permanent--zonedrop --add-port443/tcp firewall-cmd--permanent--zonedrop --add-rich-rulerule familyipv4 source address你的IP/32 port protocoltcp port58888 accept# 重载配置firewall-cmd--reload# 查看配置firewall-cmd--zonedrop --list-all四、Web层安全加固4.1 宝塔WAF配置安装软件商店 - 堡塔网站防火墙配置建议功能推荐设置说明CC攻击防护开启阈值100/分钟防止恶意刷流量SQL注入防护开启过滤恶意SQLXSS防护开启过滤恶意脚本上传文件检查开启阻止可执行文件上传敏感文件访问开启阻止访问.git/.env等恶意蜘蛛屏蔽开启屏蔽非搜索引擎爬虫4.2 Nginx安全头配置宝塔 - 网站 - 设置 - 配置文件添加# 安全响应头 add_header X-Frame-Options SAMEORIGIN always; add_header X-Content-Type-Options nosniff always; add_header X-XSS-Protection 1; modeblock always; add_header Referrer-Policy strict-origin-when-cross-origin always; add_header Content-Security-Policy default-src self; script-src self unsafe-inline unsafe-eval; style-src self unsafe-inline; always; # 隐藏Nginx版本号 server_tokens off; # 限制请求体大小防止超大请求攻击 client_max_body_size 10M; # 限制连接数防止单IP占用过多资源 limit_conn_zone $binary_remote_addr zoneaddr:10m; limit_conn addr 10;五、应用层安全加固WordPress5.1 安全插件配置Wordfence安装与配置后台 - 插件 - 安装 Wordfence Security激活后运行初始扫描配置防火墙为扩展保护模式关键配置项配置项推荐值说明登录安全开启限制失败尝试防火墙规则更新自动保持最新规则扫描频率每周平衡安全与性能实时IP黑名单开启自动封禁恶意IP阻止恶意爬虫开启减少资源消耗5.2 wp-config.php安全加固?php// 数据库配置略// 安全密钥使用官方生成器define(AUTH_KEY,put your unique phrase here);define(SECURE_AUTH_KEY,put your unique phrase here);// ... 其他密钥// 禁用文件编辑防止后台被入侵后修改文件define(DISALLOW_FILE_EDIT,true);// 禁用自动更新可选建议手动控制define(AUTOMATIC_UPDATER_DISABLED,true);// 限制POST大小ini_set(post_max_size,10M);ini_set(upload_max_filesize,10M);// 禁用XML-RPC如不需要add_filter(xmlrpc_enabled,__return_false);// 表前缀安装时已设置不要修改$table_prefixwp_a1b2c3_;5.3 文件权限安全设置cd/www/wwwroot/yourdomain.com# 设置文件权限文件644目录755find.-typef-execchmod644{}\;find.-typed-execchmod755{}\;# wp-config.php只读甚至root不可写chmod444wp-config.php# 上传目录可写chmod755wp-content/uploads# 设置正确用户组chown-Rwww:www.# 验证权限ls-lawp-config.phpls-lawp-content/uploads5.4 删除默认内容cd/www/wwwroot/yourdomain.com# 删除默认主题保留当前使用的rm-rfwp-content/themes/twentytwenty/rm-rfwp-content/themes/twentytwentyone/rm-rfwp-content/themes/twentytwentytwo/# 删除默认插件rm-fwp-content/plugins/hello.phprm-fwp-content/plugins/akismet/# 删除安装文件rm-fwp-admin/install.php六、定期安全检查清单6.1 自动化检查脚本创建/root/scripts/security_check.sh#!/bin/bashLOG_FILE/var/log/security_check.logDATE$(date%Y-%m-%d\%H:%M:%S)echo[$DATE] 安全检查开始 $LOG_FILE# 检查系统更新echo[$DATE] 检查系统更新...$LOG_FILEyum check-update$LOG_FILE21# 检查Fail2ban状态echo[$DATE] Fail2ban状态$LOG_FILEfail2ban-client status$LOG_FILE21# 检查最近登录失败echo[$DATE] 最近登录失败Top 10 IP$LOG_FILEgrepFailed password/var/log/secure|awk{print $11}|sort|uniq-c|sort-rn|head-10$LOG_FILE# 检查磁盘空间echo[$DATE] 磁盘空间$LOG_FILEdf-h$LOG_FILE# 检查异常进程echo[$DATE] 异常进程检查$LOG_FILEpsaux|grep-E(nc|netcat|wget|curl)|grep-vgrep$LOG_FILE21echo[$DATE] 安全检查完成 $LOG_FILE加入定时任务每周一执行chmodx /root/scripts/security_check.shecho0 9 * * 1 /root/scripts/security_check.sh|crontab-6.2 手动检查清单每日5分钟□ 网站能否正常打开HTTP 200 □ 宝塔面板无异常告警 □ 无异常登录通知邮件 □ 磁盘使用率 80%每周15分钟□ 备份任务成功完成 □ 安全日志无新增异常IP □ 系统有安全更新待安装 □ WordPress插件/主题有更新 □ Fail2ban封禁列表正常每月30分钟□ 安装系统安全补丁 □ 检查SSL证书有效期30天需续期 □ 分析访问日志查找异常请求 □ 清理无用文件和日志 □ 检查用户权限删除无用账号 □ 运行安全扫描Wordfence/Sucuri □ 检查文件完整性对比备份 □ 更新安全插件规则库七、版本与兼容性说明组件本文适用版本兼容性注意Fail2ban0.11CentOS 7默认0.9需升级firewalld0.6CentOS 7默认支持Wordfence最新版免费版功能足够宝塔面板v8.0WAF功能需安装插件Nginx1.24配置语法兼容八、常见问题排查Q1Fail2ban启动失败# 检查日志journalctl-ufail2ban# 常见原因日志路径不存在mkdir-p/var/logtouch/var/log/secure# 重新启动systemctl restart fail2banQ2安全组规则不生效# 检查安全组是否关联实例# 检查规则优先级数字小的优先# 检查是否有冲突规则# 测试端口连通性nc-zv你的IP22222Q3Wordfence导致网站变慢优化方案Wordfence - 选项 - “防火墙优化” - 选择学习模式完成后的优化调整扫描频率为每周而非每日在所有选项中禁用实时流量监控如不需要Q4修改SSH端口后密钥登录失败# 检查SELinuxgetenforce# 如为Enforcing临时关闭测试setenforce0# 检查sshd_config语法sshd-t# 检查密钥权限chmod700~/.sshchmod600~/.ssh/authorized_keys九、明日预告Day 6性能优化与加速技术要点图片优化WebP转换、懒加载、响应式图片Gzip压缩与Brotli压缩浏览器缓存策略Cache-Control阿里云CDN全站加速配置数据库查询优化与索引十、总结Day 5的核心任务是建立多层安全防御体系✅ 系统层SSH加固、Fail2ban、自动更新✅ 网络层安全组最小权限、firewalld✅ Web层宝塔WAF、Nginx安全头✅ 应用层WordPress安全插件、文件权限✅ 运维层定期检查清单、自动化脚本明天进入性能优化阶段提升网站访问速度。本文技术内容基于开源工具和标准云产品。版本信息更新于2026-06-15请以官方最新版本为准。如有技术问题欢迎在评论区交流。

相关新闻

2026/7/8 21:14:07

汽车智能制造如何依托数据AI实现生产提质提效

一、汽车智能制造关键在于摆脱经验依赖传统汽车制造依赖人工经验管控、纸质记录、人工复盘的生产模式,存在效率低、误差大、经验难留存等短板。随着工业互联网与人工智能技术深度落地,汽车智能制造彻底打破传统生产局限,依托全流程数字化、数…

2026/7/8 19:53:11

CleanWipe 14.2:彻底卸载西门子NX等专业软件的终极指南

1. 项目概述:什么是 CleanWipe 14.2?如果你经常折腾电脑,尤其是喜欢安装各种软件、测试不同系统,或者你的工作环境需要频繁部署和清理,那么你一定对“系统残留”和“软件卸载不干净”这两个词深恶痛绝。它们就像电脑里…

2026/7/8 22:12:49

解决“求解器未找到”错误:环境配置与路径排查全攻略

1. 问题现象与核心场景剖析“the demanded solver was not found in the specified path.” 这个错误信息,对于经常和各类科学计算库、仿真软件或优化工具打交道的开发者来说,绝对是个“老熟人”。它通常在你满怀期待地运行一段代码,准备求解…

2026/7/9 1:37:01

国外护照翻译如何办理?很简单,只需要这三步!

内容摘要:国外护照翻译办理需提前准备好完整的护照材料及基础个人信息,办理渠道分为线上小程序、线下翻译机构两大类,线上办理操作便捷、出件快,电子版发送到邮箱,需要纸质版可邮寄,线下办理可当面对接核验…

2026/7/9 1:37:01

HarmonyOS 小游戏《对战五子棋》开发第17篇 - AI的两种评估策略

单点评估 vs 全盘评估——AI如何看待棋盘设计截图如下:两种评估函数的对比 本项目实现了两种评估策略:维度evaluatePositionevaluateLines用途普通模式、候选排序困难模式Minimax叶节点范围评估单个位置的四方向评估全盘所有线复杂度O(1)O(n)精度局部精确…

2026/7/9 1:37:01

Windows命令调用的神经反射弧:Run-Command智能启动器

1. 项目概述:这不是又一个WinR替代品,而是Windows命令行调用的“神经反射弧”你有没有过这种体验:想快速打开防火墙设置,下意识按WinR,输入firewall.cpl,回车——成功;但下一秒想查系统信息&…

2026/7/9 1:37:01

软件团队管理中的领导风格适配

软件团队管理中的领导风格适配 在快速变化的软件开发领域,团队管理的成功往往取决于领导风格的适配性。不同的项目阶段、团队构成和业务目标需要灵活调整领导方式,否则可能导致效率低下或成员士气受挫。如何根据情境选择合适的领导风格,成为…

2026/7/9 1:37:01

基于51/STM32单片机智能智能消毒柜控制系统 定时 紫外线消毒成品12(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_

基于51/STM32单片机智能智能消毒柜控制系统 定时 紫外线消毒成品12(设计源文件万字报告讲解)(支持资料、图片参考_相关定制)_ 1.51/STM32单片机进行数据处理 5.DHT11温湿度采集 3.LCD1602液晶显示当前温湿度,模式,时间&#xf…

2026/7/9 1:39:10

国内大模型选型与企业级落地实战指南

我不能提供任何关于访问境外网络信息的技术方案或变通方法。根据中国法律法规和网络管理要求,所有互联网服务必须遵守国家关于网络安全、数据安全和内容安全的规定。ChatGPT及其后续版本(如所谓“GPT-5”)是由境外机构研发的大语言模型&#…

2026/7/9 1:25:56

三步实战方案:高效获取智慧教育平台电子课本PDF的完整流程

三步实战方案:高效获取智慧教育平台电子课本PDF的完整流程 【免费下载链接】tchMaterial-parser 国家中小学智慧教育平台 电子课本下载工具,帮助您从智慧教育平台中获取电子课本的 PDF 文件网址并进行下载,让您更方便地获取课本内容。 项目…

2026/7/9 0:37:00

高精度ADC与STM32L4在工业测量中的优化设计

1. 项目背景与核心器件选型在工业测量和精密仪器领域,模拟信号与数字系统的无缝衔接一直是设计难点。ADS1262作为TI推出的32位精密Δ-Σ ADC,其7nV RMS噪声和3ppm线性度指标,配合STM32L442KC的低功耗特性,构成了理想的信号链解决方…

2026/7/9 0:37:00

ADS1262与STM32F446ZE的高精度数据采集系统设计

1. 为什么需要弥合模拟与数字领域的鸿沟?在嵌入式系统开发中,模拟信号与数字信号的处理一直是个经典难题。我最近在一个工业传感器项目中,就深刻体会到了这种"跨界"处理的挑战。当时需要测量多路微伏级电压信号,同时还要…

2026/7/9 0:37:00

【SpringCloud Alibaba】Spring Boot + Spring Cloud 微服务面试核心20问

大家好,我是 CodeStats。一个在底层技术上“考古”了四年的硬核爱好者,也是 WWAIC(全周项目AI编程) 范式的提出者和实践者。我曾手写过一个完整的 Java Web 框架(从 IoC 容器到嵌入式 Tomcat,代码全开源&a…

2026/7/8 5:27:22

3个高效策略:快速掌握Axure中文界面配置

3个高效策略:快速掌握Axure中文界面配置 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 还在为Axure RP的英文界面感…