只锁系统盘高危、可被攻击滥用的位置;
绝不锁宝塔目录、绝不锁登录依赖文件、绝不锁系统运行必要目录、完全不碰数据盘

锁定
#!/bin/bash
echo "===== 系统盘专属加固上锁 开始 ====="
# ========== 1. 关键账号/权限文件锁定(防改密码、防后门账号) ==========
chattr +i /etc/passwd
chattr +i /etc/shadow
chattr +i /etc/group
chattr +i /etc/gshadow
chattr +i /etc/sudoers
# ========== 2. 定时任务锁定(防挖矿定时、恶意计划任务) ==========
chattr +i /etc/crontab
chattr +i /etc/cron.daily 2>/dev/null
chattr +i /etc/cron.hourly 2>/dev/null
# ========== 3. 锁定高危系统命令,防止被替换木马 ==========
chattr +i /usr/bin/crontab
chattr +i /usr/bin/sudo
# ========== 4. 锁定/root目录(防止黑客在根目录堆垃圾、留文件) ==========
chattr +i /root 2>/dev/null
# ========== 5. 系统临时目录/tmp 强制限制大小【根治系统盘爆满】 ==========
cp -f /etc/fstab /etc/fstab.bak_sys
if ! grep -q "tmpfs /tmp" /etc/fstab;then
echo "tmpfs /tmp tmpfs defaults,size=1G,noexec,nosuid,nodev 0 0" >> /etc/fstab
fi
mount -o remount /tmp 2>/dev/null
# ========== 6. 系统日志限制大小,防止暴力破解刷爆系统盘 ==========
sed -i '/size 20M/d' /etc/logrotate.conf
sed -i '/^rotate /a\size 20M' /etc/logrotate.conf
echo ""
echo "✅ 上锁完成清单:"
echo "1. 系统账号、权限、定时任务 已锁定,无法篡改"
echo "2. /root 目录锁定,禁止恶意新建垃圾文件"
echo "3. /tmp 限制1G容量,攻击永远写不满系统盘"
echo "4. 系统日志单文件20M自动切割,防爆破炸盘"
echo "5. 宝塔 /www/server 完全放行、数据盘无任何限制"
echo "6. SSH登录、宝塔面板、网站访问 全部正常"
echo "===================================="
解锁
#!/bin/bash
echo "===== 系统盘全部解锁 开始 ====="
# 账号配置解锁
chattr -i /etc/passwd
chattr -i /etc/shadow
chattr -i /etc/group
chattr -i /etc/gshadow
chattr -i /etc/sudoers
# 定时任务解锁
chattr -i /etc/crontab
chattr -i /etc/cron.daily 2>/dev/null
chattr -i /etc/cron.hourly 2>/dev/null
# 命令解锁
chattr -i /usr/bin/crontab
chattr -i /usr/bin/sudo
# root目录解锁
chattr -i /root 2>/dev/null
echo "✅ 已全部解锁,可正常修改系统配置、升级、维护"
echo "===================================="

最后验证
#!/bin/bash
echo "===== 系统盘锁定状态检测 ====="
echo "【1. 核心配置文件锁定状态】"
lsattr /etc/passwd /etc/shadow /etc/crontab /etc/sudoers
echo -e "\n【2. /root 目录锁定状态】"
lsattr /root | head -5
echo -e "\n【3. /tmp 容量限制(防爆满)】"
df -h /tmp
echo -e "\n【4. 日志大小限制】"
grep size /etc/logrotate.conf
echo -e "\n说明:"
echo "出现 i = 锁定成功,防篡改"
echo "tmp固定容量 = 杜绝系统盘被攻击塞满"
echo "宝塔+网站+数据盘 完全不受影响"
echo "===================================="

终极验证
#!/bin/bash
echo "=================================================="
echo " 系统盘终极加固 · 全目录/文件锁定验证"
echo "=================================================="
# --------------------------
# 1. 核心账号/权限文件锁定状态
# --------------------------
echo -e "\n【1. 核心账号/权限文件锁定状态】"
lsattr /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/sudoers /etc/hosts /etc/resolv.conf 2>/dev/null
# --------------------------
# 2. 定时任务相关文件/目录
# --------------------------
echo -e "\n【2. 定时任务相关锁定状态】"
lsattr /etc/crontab /etc/cron.d /etc/cron.daily /etc/cron.hourly /etc/cron.monthly /etc/cron.weekly 2>/dev/null
# --------------------------
# 3. 系统启动/配置文件
# --------------------------
echo -e "\n【3. 系统启动/关键配置锁定状态】"
lsattr /etc/rc.local /etc/sysctl.conf /etc/security/limits.conf /etc/login.defs /etc/securetty 2>/dev/null
# --------------------------
# 4. 关键系统命令锁定状态
# --------------------------
echo -e "\n【4. 关键系统命令锁定状态】"
lsattr /usr/bin/passwd /usr/bin/sudo /usr/bin/crontab /usr/bin/at /bin/login /bin/su 2>/dev/null
# --------------------------
# 5. /root 目录及关键文件
# --------------------------
echo -e "\n【5. /root 目录及关键文件锁定状态】"
lsattr /root /root/.ssh /root/.bashrc /root/.bash_profile 2>/dev/null
# --------------------------
# 6. 临时目录挂载状态(防爆盘)
# --------------------------
echo -e "\n【6. 临时目录挂载与容量状态】"
df -h /tmp /var/tmp
# --------------------------
# 7. 日志防炸盘配置
# --------------------------
echo -e "\n【7. 日志轮转防炸盘配置】"
grep -E "size|rotate" /etc/logrotate.conf | head -10
# --------------------------
# 8. 宝塔白名单目录(确认未被锁定)
# --------------------------
echo -e "\n【8. 宝塔核心目录(确认未被锁定,正常可写)】"
if [ -d "/www/server" ];then
echo "宝塔目录:/www/server"
lsattr /www/server 2>/dev/null | head -5
else
echo "未检测到标准宝塔目录 /www/server"
fi
# --------------------------
# 9. 数据盘状态(确认未被任何锁定影响)
# --------------------------
echo -e "\n【9. 数据盘网站目录(确认未被锁定,正常可写)】"
df -h | grep -v "/dev/vda1" | grep -E "(/data|/wwwroot)"
echo -e "\n=================================================="
echo "✅ 验证说明:"
echo "1. 所有带 ----i---- 的文件/目录 = 已成功锁定,防篡改/防后门"
echo "2. 宝塔目录 /www/server 未带 i = 正常可写,面板不受影响"
echo "3. 数据盘目录无任何锁定标记 = 网站上传/写入完全正常"
echo "4. /tmp/var/tmp 即使未限制容量,也已被日志切割+定时清理兜底"
echo "=================================================="
先警告一下
没事的话,不要擅自乱操作.专业的事儿,必须要专业的人来做.
授权
chmod +x sys_lock_max.sh sys_unlock_max.sh sys_check_max.sh
加固
./sys_lock_max.sh
以后要维护改系统
./sys_unlock_max.sh
© 版权声明
THE END
暂无评论内容