前置操作说明
本次加固步骤无需额外专业设备,仅需要数据库管理权限、Nginx(或Apache)配置权限,所有操作均可在系统后台或服务器终端完成,零技术门槛。
第一步:替换明文/弱密码为加密强密码
所有档案系统默认采用弱密码或明文存储,需立即执行以下操作:
- 登录系统数据库(以MySQL为例,终端执行):
```bash
mysql -u root -p
```
输入数据库密码后进入命令行界面
- 找到用户表(默认为user),执行以下SQL语句替换密码:
```sql
-- 替换默认管理员密码(以admin为例,替换为bcrypt加密字符串)
UPDATE user SET password='$2a$10$N.zmdr9k7uOCQb376NoUnuTJ8iAt6Z5EHsM8lE9lBOsl7iAt0ITU' WHERE username='admin';
-- 替换所有用户密码为bcrypt加密(需提前生成bcrypt哈希,工具:https://bcrypt-generator.com/)
UPDATE user SET password=PASSWORD('你的强密码') WHERE 1=1;
```
必须执行的规则:密码长度≥12位,包含大小写字母、数字、特殊符号,禁止使用姓名、生日等个人信息;所有密码必须采用bcrypt或Argon2加密,禁止MD5、SHA1等弱加密算法。
第二步:开启多因素认证(MFA)
多因素认证可大幅降低账号被暴力破解的风险,以PHP架构系统为例,实操如下:
- 安装Google Authenticator扩展(终端执行):
```bash
pecl install google/authenticator
在PHP配置文件中添加扩展(PHP版本8.1,路径为/etc/php/8.1/cli/php.ini)
echo "extension=google_authenticator.so" >> /etc/php/8.1/cli/php.ini
重启PHP-FPM
systemctl restart php8.1-fpm
```
- 绑定用户MFA:
1. 后台进入「用户管理」→「账号详情」,点击「绑定MFA」
2. 系统生成16位密钥,用Google Authenticator App扫码绑定
3. 点击「验证」,输入APP生成的6位验证码,完成绑定
- 修改登录验证逻辑(完整代码):
```php
query("SELECT FROM user WHERE username='$username'")->fetch();
if (!$user) { die("账号不存在"); }
// 验证密码
if (!password_verify($password, $user['password'])) { die("密码错误"); }
// 验证MFA
require_once 'vendor/autoload.php';
$authenticator = new Google\Authenticator\Authenticator();
if (!$authenticator->verifyCode($user['mfa_secret'], $mfaCode, 2)) { die("MFA验证码错误"); }
// 验证通过,设置会话
$_SESSION['user_id'] = $user['id'];
header("Location: /dashboard.php");
?>
```
操作要求:必须要求所有用户绑定MFA,管理员账号强制启用,禁止跳过绑定步骤。
第三步:限制登录IP与频次

通过Nginx配置限制登录请求,防止暴力破解,完整配置如下(在/etc/nginx/nginx.conf的http段添加):
```nginx
定义登录频次限制规则
limit_req_zone $binary_remote_addr zone=login_zone:10m rate=1r/s;
定义IP连接限制
limit_conn_zone $binary_remote_addr zone=addr:10m;
server {
listen 80;
server_name archive.yourdomain.com;
登录接口限制规则
location /login {
limit_req zone=login_zone burst=5 nodelay;
limit_conn addr 1;
仅允许公司内网IP登录(替换为实际办公网段)
allow 192.168.1.0/24;
deny all;
}
}
```
操作要求:登录失败5次后锁定账号15分钟,禁止删除IP限制规则,否则无法抵御暴力破解。
第四步:删除公开测试账号与接口
默认测试账号与接口是黑客攻击的突破口,实操如下:
- 登录系统后台「账号管理」,删除所有名为test、demo、guest的测试账号
- 删除或禁用未使用的系统接口(以SpringBoot架构为例,修改application.properties):
```properties
禁用Debug模式
debug=false
禁用所有公开的管理端点
management.endpoints.web.exposure.exclude=
禁止暴露敏感配置
management.endpoint.env.enabled=false
```
操作要求:接口删除后需验证系统功能,防止影响正常业务。
第五步:定期审计认证日志
日志审计是发现异常登录的关键,实操如下:
- 查看认证日志(默认路径/var/log/archive/login.log,终端执行):
```bash
tail -f /var/log/archive/login.log
```
日志必须包含字段:时间、用户名、IP地址、登录结果(成功/失败)
- 每7天导出一次日志,用grep命令排查异常:
```bash
排查陌生IP登录记录
grep "登录成功" /var/log/archive/login.log | grep -v "192.168.1."
```
操作要求:异常日志必须24小时内处理,拉黑对应IP,锁定异常账号。