从零搭建企业级档案安全管理系统 全流程实操落地完整指南
一、前期准备
硬件要求:2核4G云服务器/物理机,SSD硬盘根据档案存储量配置,最低100G。
软件依赖:JDK 11、MySQL 8.0、Redis 6.x、Maven 3.6+。
开源档案安全管理系统源码下载地址:https://gitee.com/smallc/ArchivesManagement,可直接克隆或下载ZIP包。
二、环境部署实操
2.1 基础环境安装
以下为CentOS 7/8系统下的安装命令,其他系统可对应替换包管理命令:
安装JDK11:yum install -y java-11-openjdk-devel,执行java -version返回openjdk 11.x版本即为成功。
安装MySQL8.0:
``` rpm -ivh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm yum install -y mysql-community-server systemctl start mysqld systemctl enable mysqld ```初始密码获取命令:grep 'temporary password' /var/log/mysqld.log,登录后执行以下命令修改密码并创建数据库:
安装Redis6.x:
``` yum install -y epel-release yum install -y redis systemctl start redis systemctl enable redis ```执行redis-cli ping返回PONG即为安装成功。
2.2 系统部署配置
1. 克隆代码:git clone https://gitee.com/smallc/ArchivesManagement.git
2. 导入数据库SQL:mysql -uroot -p你设置的MySQL密码 archives_security < ArchivesManagement/sql/archives.sql
3. 修改配置文件:打开ArchivesManagement/src/main/resources/application.yml,替换为以下完整可直接使用的配置:
``` server: port: 8080 spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://127.0.0.1:3306/archives_security?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai username: root password: 你设置的MySQL密码 redis: host: 127.0.0.1 port: 6379 password: 若设置Redis密码则填写,无则留空 servlet: multipart: max-file-size: 1024MB max-request-size: 1024MB 若需配置告警邮件可添加以下配置 mail: host: smtp.qq.com username: 你的邮箱地址 password: 你的邮箱授权码 port: 465 properties: mail: smtp: ssl: enable: true 档案安全核心配置 archives: security: enable-encrypt: true encrypt-key: 自定义32位AES密钥(例:a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6) enable-watermark: true watermark-content: "内部档案 禁止泄露" log-retention-days: 180 ```4. 编译打包:进入项目根目录执行mvn clean package -DskipTests,编译成功后得到jar包:target/archives-management.jar

5. 启动系统:执行nohup java -jar archives-management.jar &,启动后访问http://你的服务器IP:8080,默认管理员账号admin、密码123456,登录后第一时间修改默认密码。
三、核心安全功能配置实操
3.1 三员分立权限配置
登录后进入【系统管理】-【角色管理】,新建三个互斥角色,分别配置权限:
- 系统管理员:仅负责系统配置、基础用户创建
- 安全管理员:仅负责档案加密、权限分配、安全策略配置
- 审计管理员:仅负责操作日志查看、审计报表导出
进入【用户管理】分别创建三个对应用户绑定角色,禁止三员账号权限交叉,禁止超管账号日常使用。
3.2 加密存储与防泄露配置
上传一份测试档案,进入服务器默认存储目录/opt/archives/,查看存储的文件后缀为.enc、直接打开为乱码即为加密成功,系统内预览时会自动解密。
进入【安全管理】-【防泄露配置】,按需开启:禁止非授权用户下载、预览时禁止右键保存、IP白名单限制(仅允许指定内网IP访问系统)。
3.3 操作审计配置
进入【安全管理】-【审计配置】,勾选登录、上传、下载、预览、删除、修改权限所有操作项,设置告警阈值,比如单次下载超过10份档案自动给安全管理员发送邮件告警。
四、上线前安全校验
1. 越权测试:用普通用户账号直接访问管理员接口http://你的IP:8080/system/user/list,确认返回无权限错误即为正常。
2. 加密校验:下载服务器上的.enc加密文件到本地,确认无32位AES密钥无法打开即为正常。
3. 漏洞扫描:使用开源xray工具执行xray webscan --url http://你的系统IP:8080 --html-output archives-security-report.html,扫描结果无高危、严重漏洞即可上线。
4. 自动备份配置:执行crontab -e添加以下定时任务,每天凌晨2点自动备份数据库和档案文件:
五、常见问题排查
1. 启动报错端口占用:执行netstat -tunlp | grep 8080找到占用进程kill即可,或修改application.yml的port字段更换端口。
2. 大档案上传失败:检查application.yml的max-file-size配置,若配置了Nginx反向代理,需确认Nginx的client_max_body_size配置大于上传文件大小。
3. 权限不生效:退出账号重新登录、清除浏览器缓存,确认用户绑定的角色权限配置正确。
4. 加密档案预览失败:检查encrypt-key配置是否为32位字符,确认配置未被随意修改。