申请保密资质(如涉密信息系统集成资质)的核心技术难点在于服务器的“三员管理”与“审计追踪”。本指南以 Ubuntu 22.04 LTS 为例,演示如何从零搭建符合保密要求的基础环境。请确保在一台物理机或独立的虚拟机上操作,切勿使用云服务器公网环境直接处理涉密数据。
更新系统源并安装必要的基础工具:
```bash sudo apt update && sudo apt upgrade -y sudo apt install -y vim curl wget ufw auditd audispd-plugins ```注意:执行完上述命令后,立即设置 root 密码策略,禁止弱口令。编辑 /etc/login.defs 文件,修改以下参数:
```bash PASS_MIN_LEN 12 PASS_MAX_DAYS 90 ```保密资质强制要求系统必须具备“系统管理员”、“安全保密管理员”和“安全审计员”三个独立角色,且权限互斥。以下是具体的创建与配置步骤。
执行以下命令创建三个独立的用户组:
```bash sudo groupadd sys_admin 系统管理员组 sudo groupadd sec_admin 安全保密管理员组 sudo groupadd aud_admin 安全审计员组 ```分别创建三个用户并设置强密码(密码需包含大小写字母、数字及特殊符号,长度至少12位):
```bash 创建系统管理员 sudo useradd -m -s /bin/bash -G sys_admin sysadmin01 sudo passwd sysadmin01 创建安全保密管理员 sudo useradd -m -s /bin/bash -G sec_admin secadmin01 sudo passwd secadmin01 创建安全审计员 sudo useradd -m -s /bin/bash -G aud_admin audadmin01 sudo passwd audadmin01 ```使用 visudo 命令编辑 /etc/sudoers 文件,在文件末尾添加以下权限配置,确保职责分离:
```bash 系统管理员:拥有所有权限(除了审计日志管理) sysadmin01 ALL=(ALL:ALL) ALL, !/usr/sbin/auditd, !/usr/sbin/aureport, !/usr/sbin/ausearch, !/bin/cat /var/log/audit/, !/bin/vim /var/log/audit/ 安全保密管理员:负责用户管理和防火墙策略 secadmin01 ALL=(root) /usr/sbin/useradd, /usr/sbin/userdel, /usr/sbin/usermod, /usr/sbin/passwd, /usr/sbin/ufw 安全审计员:仅负责查看日志和审计状态 audadmin01 ALL=(root) /usr/sbin/auditctl, /usr/sbin/aureport, /usr/sbin/ausearch, /bin/cat /var/log/audit/ ```关键操作:配置完成后,切换到 sysadmin01 用户,尝试执行 useradd 命令应被拒绝;切换到 secadmin01 尝试查看审计日志应被拒绝,以此验证权限隔离生效。
完整的审计日志是现场审查的重中之重。我们需要配置 auditd 以记录文件访问、权限变更及系统调用。
编辑 /etc/audit/rules.d/audit.rules 文件,清空默认内容,写入以下核心规则:
```bash 监控/etc/passwd和/etc/shadow文件的修改 -w /etc/passwd -p wa -k identity_mod -w /etc/shadow -p wa -k identity_mod -w /etc/group -p wa -k identity_mod 监控sudo命令的使用 -w /usr/bin/sudo -p x -k sudo_use 监控系统管理员目录的访问 -w /home/sysadmin01 -p rwxa -k admin_access 监控关键系统目录 -w /etc -p wa -k etc_mod 锁定规则,防止修改 -e 2 ```执行命令使规则生效:
```bash sudo systemctl restart auditd sudo systemctl enable auditd ```验证审计是否正常工作,尝试修改一个用户密码,然后查询日志:
```bash 修改密码触发日志 sudo passwd secadmin01 查看审计日志(需使用审计员账户或root) sudo ausearch -k identity_mod -i ```
如果终端输出了包含“passwd”、“syscall=execve”等详细字段的日志,说明审计系统配置成功。
保密资质要求服务器遵循“最小化原则”开放端口。使用 UFW(Uncomplicated Firewall)配置严格的入站策略。
首先拒绝所有入站连接,允许所有出站连接(根据实际业务需求,出站也可限制):
```bash sudo ufw default deny incoming sudo ufw default allow outgoing ```假设该服务器仅提供 SSH 服务(端口22)和档案管理系统的 Web 服务(端口8080),执行以下命令:
```bash 开放SSH(建议后续修改为非标准端口) sudo ufw allow 22/tcp 开放业务端口 sudo ufw allow 8080/tcp ```检查点:输出结果中 Status 必须为 active,且只列出了 22 和 8080 端口的 ALLOW 规则。
默认的 SSH 配置存在极大风险,必须修改配置文件以符合保密检查要求。
编辑 /etc/ssh/sshd_config 文件,修改或添加以下关键参数:
```bash 禁止 root 远程登录 PermitRootLogin no 禁止密码认证,强制使用密钥认证(请先在三员客户端生成公钥并下发到服务器) PasswordAuthentication no PubkeyAuthentication yes 限制登录用户(仅允许三员登录) AllowUsers sysadmin01 secadmin01 audadmin01 修改默认端口(例如改为 22222,需同步修改防火墙规则) Port 22222 禁止空密码 PermitEmptyPasswords no 登录验证时间限制 LoginGraceTime 60 最大登录尝试次数 MaxAuthTries 3 ```操作细节:在修改 Port 和禁用 PasswordAuthentication 之前,务必确保已经在本地生成了 SSH Key 并将公钥上传到了服务器的 ~/.ssh/authorized_keys 中,否则会导致锁死无法登录。
配置完成后重启 SSH 服务:
```bash sudo systemctl restart sshd ```档案数字化通常依赖数据库。以 MySQL 为例,必须进行初始化安全加固。
安装 MySQL 后,执行安全脚本:
```bash sudo apt install -y mysql-server sudo mysql_secure_installation ```在交互界面中,务必执行以下操作:
进入 MySQL 控制台,创建专用业务数据库并限制访问主机:
```bash sudo mysql -u root -p ``` ```sql -- 创建数据库 CREATE DATABASE archives_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- 创建专用应用用户(不要使用 root 运行业务) CREATE USER 'app_user'@'localhost' IDENTIFIED BY 'Strong_P@ssw0rd!'; -- 仅赋予必要权限 GRANT SELECT, INSERT, UPDATE, DELETE ON archives_db. TO 'app_user'@'localhost'; -- 刷新权限 FLUSH PRIVILEGES; EXIT; ```以上步骤完成了一个具备三员管理、全量审计、网络隔离及服务加固的基础涉密环境。在实际申请资质现场测评时,请确保上述所有配置的日志留存时间满足标准(通常要求至少保存6个月以上)。