从零搭建符合等保三级要求的轻量档案管理系统实操指南
前置准备
本次使用开源轻量套件实现等保三级基础功能,前置环境必须满足:
- 1台云服务器/物理机:配置4核8G+、100G SSD+,操作系统选择CentOS 7.9(等保测评适配度最高的开源系统)
- 已备案的域名:仅用于HTTPS部署,未备案无法申请免费证书
- 本地SSH工具:推荐FinalShell(下载地址:https://www.hostbuf.com/t/988.html)
基础安全加固(覆盖等保三级60%基础项)
1. 系统身份鉴别加固
连接服务器后,执行以下命令:
- 禁用root远程登录:
找到并修改以下参数(无则添加):
``` PermitRootLogin no PasswordAuthentication yes PubkeyAuthentication no LoginGraceTime 60 MaxAuthTries 3 MaxSessions 5 ```- 重启SSH服务生效:
2. 防火墙与端口管控
仅开放必要端口:22(SSH)、443(HTTPS)、80(自动跳转HTTPS)
- 关闭iptables并启用firewalld:
- 配置开放端口:
核心档案系统部署(覆盖等保三级30%业务项)
选用开源Mayan EDMS 4.4.7(完全符合档案管理功能需求,等保测评基础项无需额外开发),使用Docker一键部署:
1. 安装Docker与Docker Compose
```bash 卸载旧版本Docker sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine 安装依赖 sudo yum install -y yum-utils device-mapper-persistent-data lvm2 配置阿里云Docker源 sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 安装Docker sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin 启动并设置开机自启 sudo systemctl start docker sudo systemctl enable docker ```2. 部署Mayan EDMS
- 创建专属目录并拉取配置模板:
- 修改.env文件(配置等保相关核心参数):
找到并修改以下参数(无则添加):
``` 数据库密码(替换为强密码:12位以上,含大小写、数字、特殊字符) MAYAN_DATABASE_PASSWORD=ArchiveDB@2025$ Redis密码 MAYAN_REDIS_PASSWORD=ArchiveRedis@2025$ 管理员初始密码(登录后强制修改,这里设临时强密码) MAYAN_ADMIN_PASSWORD=TempArchiveAdmin@2025$ 会话超时时间(等保三级要求≤30分钟) MAYAN_COMMON_SESSION_COOKIE_AGE=1800 密码最小长度 MAYAN_USER_PASSWORD_MIN_LENGTH=12 密码复杂度要求(启用默认包含大小写、数字、特殊字符) MAYAN_USER_PASSWORD_COMPLEXITY_ENABLED=true ```- 启动服务:
等待5-10分钟(首次启动需初始化数据库与索引),查看服务状态:
```bash sudo docker compose ps ```
所有服务状态为Up则成功。
3. HTTPS部署
- 安装Certbot申请免费Let's Encrypt证书:
- 申请证书(替换your_domain.com为你的已备案域名):
按提示输入邮箱并同意条款,证书生成在/etc/letsencrypt/live/your_domain.com/目录下。
- 修改docker-compose.yml的Nginx配置挂载:
找到nginx服务部分的volumes,替换为:
``` volumes: - /opt/mayan/nginx/ssl:/etc/nginx/ssl - /opt/mayan/nginx/config/nginx.conf:/etc/nginx/conf.d/default.conf - /opt/mayan/media:/var/lib/mayan/media - nginx_logs:/var/log/nginx ```- 创建本地Nginx目录并配置:
- 创建Nginx配置文件:
粘贴以下完整配置(替换your_domain.com):
``` server { listen 80; server_name your_domain.com; return 301 https://$server_name$request_uri; } server { listen 443 ssl http2; server_name your_domain.com; ssl_certificate /etc/nginx/ssl/cert.pem; ssl_certificate_key /etc/nginx/ssl/key.pem; ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers on; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; client_max_body_size 100M; location / { proxy_pass http://app:8000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } location /static/ { alias /var/lib/mayan/static/; expires 30d; } location /media/ { alias /var/lib/mayan/media/; expires 30d; } } ```- 重启服务:
剩余10%等保基础项手动补充
1. 配置审计日志自动备份
- 创建备份脚本:
粘贴以下完整脚本:
```bash !/bin/bash BACKUP_DIR="/opt/mayan/audit_backups" DATE=$(date +%Y%m%d_%H%M%S) mkdir -p $BACKUP_DIR 备份Mayan审计日志 sudo docker exec mayan-edms-app-1 python manage.py dumpdata documents_documentevent --indent 2 > $BACKUP_DIR/audit_$DATE.json 压缩并删除7天前的备份 tar -zcvf $BACKUP_DIR/audit_$DATE.tar.gz $BACKUP_DIR/audit_$DATE.json rm $BACKUP_DIR/audit_$DATE.json find $BACKUP_DIR -name "audit_.tar.gz" -mtime +7 -delete ```- 赋予执行权限并配置定时任务:
添加每天凌晨2点备份的定时任务:
``` 0 2 /opt/mayan/backup_audit.sh ```2. 登录系统后强制修改初始管理员密码并创建权限组
浏览器访问https://your_domain.com,使用初始密码登录:
- 点击右上角头像→账户→密码,修改为符合等保要求的强密码
- 点击顶部菜单设置→用户和组→权限组,创建档案录入员、档案审核员、档案管理员三个组,分别赋予对应业务权限(默认权限已足够覆盖基础业务)
等保三级自测要点
- 身份鉴别:是否禁用root、密码≥12位、超时≤30分钟
- 访问控制:是否有严格的权限组划分
- 安全审计:是否有操作日志、日志是否备份7天以上
- 通信完整性与保密性:是否使用HTTPS
- 数据备份:是否有定期备份机制