网站密码定期修改提醒,管理员账号安全策略
网站后台被爆破、管理员密码长期不换、多人共用同一个账号,是很多小型站点被入侵的常见原因。
本文面向零基础运维和站长,讲清楚如何用宝塔面板和Linux系统自带工具,给管理员账号加上定期修改提醒和基础安全策略,照着做就能落地。
先理清:提醒机制和强制策略要分开做
密码定期修改提醒和账号安全策略是两件事,建议分开设计再组合使用。
- 提醒机制:定期通知管理员该换密码了,不强制阻断操作,适合个人站长或小团队。
- 强制策略:通过系统或面板强制密码复杂度、有效期、登录失败锁定,适合多人协作或有合规要求的场景。
对大多数零基础用户,推荐先用宝塔面板自带的安全功能,再用一条计划任务做提醒,成本最低。
宝塔面板里的管理员安全设置
如果服务器装了宝塔面板,登录后台后按下面路径检查一遍。
- 进入
面板设置→安全设置,确认已开启面板SSL,避免密码在明文HTTP下传输。 - 在
面板设置→别名中改掉默认的8888或自定义入口,减少被扫描器直接命中的概率。 - 进入
面板设置→绑定域名,绑定一个只有自己知道的域名,并开启面板SSH或面板密钥登录。 - 在
安全→SSH管理中,把默认端口22改成非标端口,并禁用root远程登录,新建一个普通用户用于日常登录。
宝塔面板本身没有强制的密码有效期功能,所以密码到期提醒需要自己加一个计划任务。
用计划任务做密码到期提醒
在宝塔面板 计划任务 中新建一个 Shell脚本 任务,执行周期设为每月1号,脚本内容参考下面这段。
#!/bin/bash
# 计算当前日期距离上次记录的天数
LAST_FILE="/root/.last_pwd_change"
TODAY=$(date +%s)
if [ -f "$LAST_FILE" ]; then
LAST=$(cat $LAST_FILE)
DIFF=$(( (TODAY - LAST) / 86400 ))
if [ $DIFF -ge 90 ]; then
echo "管理员密码已使用 $DIFF 天,请尽快修改" | mail -s "密码修改提醒" your@email.com
fi
else
date +%s > $LAST_FILE
fi
这段脚本的逻辑是:记录一次密码修改时间,超过90天就发邮件提醒。
需要服务器已配置 mail 命令或 sendmail,否则可以把 echo 内容改为写入日志,再用其他方式查看。
修改密码后,手动执行一次 date +%s > /root/.last_pwd_change 重置计时。
系统层面的登录失败锁定
不管用不用面板,Linux系统本身建议开启 fail2ban 或 pam_faillock,防止SSH被暴力破解。
以 pam_faillock 为例,编辑 /etc/pam.d/sshd,在 auth 段加入:
auth required pam_faillock.so preauth silent audit deny=5 unlock_time=600
auth [default=die] pam_faillock.so authfail audit deny=5 unlock_time=600
保存后重启SSH服务:systemctl restart sshd。
这样连续输错5次密码,账号会被锁定10分钟。
更简单的方式是直接安装 fail2ban:yum install fail2ban -y 或 apt install fail2ban -y,然后启用 sshd 规则。
容易忽略的避坑点
- 不要把提醒脚本里的邮箱写成不存在的地址,否则脚本会静默失败,自己却以为提醒正常。
- 改SSH端口前先放行新端口,再改配置,否则重启后可能连不上服务器。
pam_faillock配置错误会导致所有人无法登录,改完先保留一个已登录的SSH窗口不要关。- 宝塔面板修改入口后要记住新地址,建议保存到密码管理器,不要只靠浏览器书签。
- 多人共用一个管理员账号时,提醒和锁定策略效果会打折扣,建议每人一个账号,权限按需分配。
怎么验证策略真的生效
- 故意输错SSH密码5次,观察是否被拒绝连接,10分钟后再试应恢复。
- 手动执行提醒脚本,检查邮箱或日志是否收到提醒内容。
- 用
lastb命令查看失败登录记录,确认有记录产生。 - 在宝塔面板中退出登录,用新密码重新登录,确认修改成功。
如果以上步骤都通过,说明密码提醒和账号安全策略已经基本可用。
后续可以再考虑开启二次验证、限制登录IP等更严格的措施。
常见问题
问:提醒脚本一定要用邮件吗?
不一定。可以把提醒内容写入 /var/log/pwd_reminder.log,然后定期用 tail 或日志面板查看,适合没有邮件服务的服务器。
问:改密码后忘记重置计时文件怎么办?
下次提醒会按旧时间计算,可能提前触发。建议把重置命令和改密码步骤写在一起,形成固定操作习惯。
问:宝塔面板本身有密码有效期设置吗?
目前宝塔面板没有内置强制密码有效期功能,需要靠计划任务或第三方工具实现提醒。具体功能以宝塔官方最新版本为准。
问:开启登录失败锁定后,自己会不会被锁?
会。所以修改配置时务必保留一个已登录的SSH会话,或者提前在面板中放行自己的IP。