server_hardening.zip
根据碰到的实际情况,让gpt写了一份根据服务器配置和环境自动优化的脚本
功能概览
1)自动优化(安全 + PHP + MySQL)
执行后脚本会一次性完成以下几类优化:
安全增强
- 关闭
UFW/firewalld的过度日志输出,降低journalctl写入压力。 - 添加基础
iptables防护规则,限制 SYN / UDP flood 等简单攻击流量。 - 安装并启用
fail2ban,开启常用的 SSH / Nginx / Apache 防爆破规则。
PHP-FPM 自动优化
- 自动检测所有 PHP-FPM 版本(同时支持系统原生、宝塔、aaPanel 安装路径)。
- 根据服务器 CPU 核数与内存大小,自动计算合适的
pm.max_children。 - 将 PHP-FPM 的进程管理模式调整为
pm = ondemand,并设置空闲超时(默认10s)。 - 在修改
www.conf/php-fpm.conf之前自动备份原配置,方便回滚。
MySQL / MariaDB 自动优化
- 智能识别 MySQL / MariaDB 配置路径,兼容系统原生与宝塔 / aaPanel 环境。
- 写入一组低内存友好的调优参数,包括:
innodb_buffer_pool_sizeinnodb_log_buffer_sizemax_connectionstable_open_cacheinnodb_buffer_pool_instances- 禁用
query_cache(query_cache_size/query_cache_type)
- 在使用
conf.d的系统中,单独生成zz-autotune.cnf;否则在主配置文件中插入带标记的配置块。 - 自动重启 MySQL / MariaDB 服务使配置生效。
2)恢复默认(回滚)
回滚功能会尽量撤销由本脚本带来的所有变更,不影响你原先的站点环境和面板。
恢复安全相关设置
- 将
UFW/firewalld日志行为恢复为更常规的默认设置。 - 删除脚本添加的 SYN / UDP 相关
iptables防护规则,并保存规则。 - 停用
fail2ban服务(不卸载软件包,以避免依赖问题或与面板冲突)。
恢复 PHP-FPM 配置
- 扫描所有 PHP-FPM 配置文件(包含系统原生路径与
/www/server/php/下的宝塔 / aaPanel 安装)。 - 自动从
/root/server_hardening_backups/中匹配对应备份文件,并恢复到原路径。 - 按配置来源重启对应 PHP-FPM 服务(例如
php8.2-fpm、php-fpm-82、php-fpm等)。
恢复 MySQL / MariaDB 配置
- 优先尝试从备份中还原 MySQL / MariaDB 配置文件。
- 若使用独立
zz-autotune.cnf文件,则删除该文件。 - 若是在主配置文件中插入了自动调优块,则只清理带有
# BEGIN server_hardening_autotune/# END server_hardening_autotune标记的片段。 - 重启 MySQL / MariaDB 服务,使回滚后的配置生效。
0)退出脚本
直接退出,不进行任何改动。
脚本
curl -fsSL https://www.185858.xyz/script/server_hardening.sh -o server_hardening.sh
chmod +x server_hardening.sh
./server_hardening.sh
请勿直接在生产环境下测试,本人概不负责


Comments | NOTHING