数字档案馆系统保密资格认证实操落地指南
1. 操作系统层安全加固(基于银河麒麟V10)
数字档案馆系统必须运行在国产化操作系统上,通常推荐使用银河麒麟V10。为了满足保密资格认证中的身份鉴别和访问控制要求,必须对系统进行底层加固。以下操作需在root权限下执行。
1.1 账号安全与密码策略配置
修改系统登录配置文件,强制设定密码复杂度和有效期。这直接对应保密标准中“强密码策略”的要求。编辑/etc/login.defs文件:
备份原文件
cp /etc/login.defs /etc/login.defs.bak
修改密码有效期策略
sed -i 's/^PASS_MAX_DAYS./PASS_MAX_DAYS 90/' /etc/login.defs
sed -i 's/^PASS_MIN_DAYS./PASS_MIN_DAYS 1/' /etc/login.defs
sed -i 's/^PASS_MIN_LEN./PASS_MIN_LEN 8/' /etc/login.defs
sed -i 's/^PASS_WARN_AGE./PASS_WARN_AGE 7/' /etc/login.defs
接下来,配置PAM模块以强制执行密码复杂度检查。编辑/etc/pam.d/system-auth文件,在password部分添加或修改pam_pwquality.so模块:
password requisite pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=
minlen=8 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1
上述参数含义为:最小长度8位,至少包含1个大写字母、1个小写字母、1个数字和1个特殊字符。
1.2 SSH服务安全加固
远程管理是系统的最大风险点之一。必须禁用root直接登录,并强制使用密钥认证。编辑/etc/ssh/sshd_config文件:
禁用Root登录
PermitRootLogin no
禁用密码认证,仅允许密钥认证
PasswordAuthentication no
PubkeyAuthentication yes
限制登录用户(仅允许特定管理组用户登录)
AllowGroups sshadmin
修改默认端口(避免使用22)
Port 2222
修改完成后,重启SSH服务使配置生效:
systemctl restart sshd
1.3 历史命令与核心转储防护
防止敏感操作泄露和内存信息被转储。在/etc/profile文件末尾添加:
设置命令历史记录不保存,或限制条数
export HISTSIZE=0
export HISTFILESIZE=0
禁止核心转储
ulimit -c 0
执行source /etc/profile立即生效。同时修改/etc/security/limits.conf:
hard core 0
soft core 0
2. 数据库层三权分立与审计(基于达梦DM8)
保密资格认证要求数据库必须实现“三权分立”,即系统管理员、安全管理员、审计管理员权限互斥。达梦数据库DM8原生支持此模式。以下步骤演示如何配置及开启强制审计。
2.1 初始化数据库开启三权分立
在初始化数据库实例时,必须指定参数。如果实例已存在且未开启,需重新初始化。使用dminit工具:
./dminit path=/opt/dmdbms/data PAGE_SIZE=16 EXTENT_SIZE=32 CASE_SENSITIVE=y
CHARSET=1 LOG_SIZE=500 DB_NAME=DAMENG INSTANCE_NAME=DMSERVER PORT_NUM=5236
SYSDBA_PWD="Sysdba@123" SYSAUDITOR_PWD="Sysaudit@123"
注意:DM8默认三权分立是开启的,SYSDBA是系统管理员,SYSAUDITOR是审计管理员。你需要额外创建安全管理员SEC_ADMIN。
使用disql工具连接数据库,执行以下SQL脚本来创建安全管理员并剥离SYSDBA的部分权限,确保权限互斥:
-- 连接数据库
./disql SYSDBA/Sysdba@123:5236
-- 创建安全管理员
CREATE USER SEC_ADMIN IDENTIFIED BY "Secadmin@123";
-- 授予安全管理员相关权限(具体权限根据实际业务需求细化,但不应包含审计权限)
GRANT CREATE TABLE, CREATE VIEW, CREATE PROCEDURE TO SEC_ADMIN;
GRANT SCHEMA TO SEC_ADMIN;
-- 确保审计管理员只能做审计操作
-- 注意:SYSAUDITOR默认已配置好,无需额外授权,且不能被授予其他DBA权限
2.3 开启全量审计策略
为了满足“所有操作可追溯”的要求,需要修改dm.ini文件开启审计,并配置审计级别。编辑/opt/dmdbms/data/DAMENG/dm.ini:
[AUDIT]
开启审计
ENABLE_AUDIT = 1
审计文件大小,超过自动切换
AUDIT_MAX_FILE_SIZE = 100
审计文件存放路径
AUDIT_PATH = /opt/dmdbms/data/DAMENG/audit
全量审计(生产环境建议根据具体策略开启,避免IO过高)
AUDIT_POLICY = 15
配置完成后,重启数据库服务:

./DmServiceDMSERVER restart
3. 网络通信加密与访问控制
数字档案馆系统严禁明文传输数据。必须在应用服务器(如Nginx或Tomcat)配置SSL/TLS加密,并在操作系统防火墙层面做严格的端口控制。
3.1 生成并部署SSL证书
如果已申请过权威机构证书,直接跳过生成步骤。此处演示生成自签名证书用于内部加密传输(内部系统通常使用自签名或内部CA签发):
openssl genrsa -out server.key 2048 openssl req -new -key server.key -out server.csr -subj "/C=CN/ST=Beijing/L=Beijing/O=MyOrg/OU=IT/CN=archive.internal.com" openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt
将生成的server.crt和server.key移动到Nginx配置目录,通常为/etc/nginx/ssl/。
3.2 Nginx强制HTTPS配置
编辑Nginx配置文件/etc/nginx/nginx.conf,配置SSL并强制跳转。这是满足保密认证中“传输保密性”的关键步骤:
server {
listen 80;
server_name archive.internal.com;
强制所有HTTP请求跳转至HTTPS
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name archive.internal.com;
SSL证书配置
ssl_certificate /etc/nginx/ssl/server.crt;
ssl_certificate_key /etc/nginx/ssl/server.key;
安全协议与加密套件配置(禁用弱加密算法)
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384';
ssl_prefer_server_ciphers on;
安全响应头
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always;
location / {
应用代理配置
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
配置检查并重启Nginx:
nginx -t
systemctl restart nginx
3.3 防火墙白名单策略
使用firewalld配置仅允许必要的IP访问应用端口和数据库端口,拒绝所有其他入站连接:
启动防火墙
systemctl start firewalld
systemctl enable firewalld
默认拒绝所有入站(慎用,确保SSH端口已放行或已配置其他管理方式)
firewall-cmd --set-default-zone=drop
放行SSH端口(假设已改为2222)
firewall-cmd --permanent --add-port=2222/tcp
放行HTTPS
firewall-cmd --permanent --add-service=https
放行数据库端口,仅允许特定应用服务器IP(例如192.168.1.100)
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="5236" accept'
重载配置
firewall-cmd --reload
4. 应用层安全与防篡改
针对数字档案馆应用本身,必须配置防篡改和会话安全。这通常涉及应用服务器配置和Web应用防火墙(WAF)策略。
4.1 Tomcat会话安全配置
如果应用基于Java Tomcat,需配置conf/server.xml,确保连接器使用安全配置:
同时,在conf/web.xml中配置会话超时时间,防止长时间未操作导致泄露:
15
COOKIE
4.2 核心文件防篡改设置
利用Linux的chattr命令锁定核心配置文件和程序目录,防止被非授权篡改(包括被黑客或病毒修改):
锁定Nginx配置文件
chattr +i /etc/nginx/nginx.conf
锁定应用核心目录(假设应用在/opt/archive)
chattr -R +i /opt/archive/core
注意:使用chattr +i后,连root用户也无法直接修改或删除文件,除非先使用chattr -i解锁。这能有效防止勒索病毒加密关键文件。
5. 终端与外设管控策略
保密资格认证要求对终端输入输出进行严格控制。必须禁用不必要的USB存储和光驱。
5.1 禁用USB存储设备
编辑/etc/modprobe.d/blacklist-usb.conf文件,添加以下内容:
禁用USB存储
blacklist usb_storage
install usb_storage /bin/true
执行depmod -a更新模块依赖。此时插入U盘将无法被系统识别。若需临时使用,需root权限移除该配置并重启。
5.2 屏蔽Ctrl+Alt+Del重启
防止误操作或恶意重启。在CentOS/Kylin系统中,注释掉/etc/inittab中的ca::ctrlaltdel:/sbin/shutdown -t3 -r now行,或使用systemctl mask ctrl-alt-del.target命令:
systemctl mask ctrl-alt-del.target