数字档案馆系统网络安全防护实操技术指南

一、操作系统底层安全加固

数字档案馆系统的基石是服务器操作系统,首先需对Linux服务器(以CentOS 7/Ubuntu 20.04为例)进行底层加固,关闭不必要的端口和服务,防止系统级漏洞被利用。

1. 配置防火墙策略

使用系统自带的firewalldufw仅开放必要端口。档案馆系统通常仅需开放Web服务(80/443)和SSH管理端口。

执行以下命令安装并配置防火墙(Ubuntu环境):

sudo apt update
sudo apt install ufw
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow ssh
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable

2. SSH服务安全配置

默认的SSH配置存在较大风险,必须禁止root远程登录并修改默认端口。编辑配置文件:

sudo vim /etc/ssh/sshd_config

找到以下参数并修改为如下值,若被注释则取消注释:

Port 22222         修改为非标准高位端口
PermitRootLogin no   禁止root直接登录
PasswordAuthentication no  强制使用密钥登录
Protocol 2         仅使用SSH2协议
MaxAuthTries 3      最大重试次数为3

保存并重启SSH服务:

sudo systemctl restart sshd

二、Web服务器与传输加密配置

Nginx作为高性能反向代理,是数字档案馆系统的常见入口。此处重点配置SSL加密及安全响应头,防止数据在传输层被窃听或篡改。

1. 强制HTTPS跳转与SSL配置

首先使用Let's Encrypt获取免费证书,确保全站HTTPS。安装Certbot:

sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d your.archive-domain.com

编辑Nginx站点配置文件(通常位于/etc/nginx/sites-available/default),强制HTTP跳转HTTPS并优化SSL参数:

server {
listen 80;
server_name your.archive-domain.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
server_name your.archive-domain.com;
ssl_certificate /etc/letsencrypt/live/your.archive-domain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/your.archive-domain.com/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
其他配置...
}

2. 配置安全响应头

在Nginx配置的server块中添加以下头部,防御点击劫持、XSS等攻击:

    add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-XSS-Protection "1; mode=block" always;
add_header Referrer-Policy "no-referrer-when-downgrade" always;
add_header Content-Security-Policy "default-src 'self' http: https: data: blob: 'unsafe-inline'" always;

三、应用层防入侵部署(WAF)

仅靠系统防火墙无法防御SQL注入、WebShell上传等应用层攻击。部署Nginx自带的WAF模块ModSecurity是零成本且高效的方案。

1. 安装ModSecurity

sudo apt install libmodsecurity3 modsecurity-common

2. 下载并启用OWASP核心规则集

OWASP CRS提供了覆盖已知攻击模式的规则库。

cd /etc/modsecurity
sudo mv modsecurity.conf-recommended modsecurity.conf
sudo sed -i 's/SecRuleEngine DetectionOnly/SecRuleEngine On/' modsecurity.conf

下载规则集:

数字档案馆系统网络安全防护实操技术指南

cd /etc
sudo git clone https://github.com/coreruleset/coreruleset.git
sudo cd coreruleset
sudo mv crs-setup.conf.example crs-setup.conf

3. 关联Nginx与ModSecurity

在Nginx配置文件的http块或具体server块中引入:

modsecurity on;
modsecurity_rules_file /etc/modsecurity/modsecurity.conf;

modsecurity.conf末尾引入OWASP规则:

Include /etc/coreruleset/rules/.conf

重启Nginx生效:

sudo nginx -t
sudo systemctl restart nginx

四、数据库访问控制与审计

数字档案馆的核心资产存储在数据库中(以MySQL为例)。必须禁止数据库直连外网,并实施严格的权限控制。

1. 账号权限最小化

登录MySQL,创建仅允许本地连接的应用专用账号,禁止使用Root账号运行Web应用。

mysql -u root -p

执行SQL语句:

CREATE USER 'archive_user'@'localhost' IDENTIFIED BY 'Strong_P@ssw0rd!';
GRANT SELECT, INSERT, UPDATE, DELETE ON archive_db. TO 'archive_user'@'localhost';
FLUSH PRIVILEGES;

2. 开启二进制日志审计

编辑MySQL配置文件/etc/mysql/mysql.conf.d/mysqld.cnf,确保以下配置开启:

[mysqld]
log-bin = /var/log/mysql/mysql-bin.log
binlog_format = ROW
expire_logs_days = 7

重启服务:

sudo systemctl restart mysql

五、自动化异地备份策略

为了应对勒索病毒或硬件故障,必须实施“3-2-1”备份策略。此处编写一个Shell脚本,实现数据库和文件目录的每日自动压缩,并上传至异地备份服务器(假设通过SCP传输)。

1. 编写备份脚本

创建文件/usr/local/bin/backup_archive.sh

!/bin/bash
定义变量
BACKUP_DIR="/data/backup"
DATE=$(date +%Y%m%d_%H%M%S)
DB_USER="archive_user"
DB_PASS="Strong_P@ssw0rd!"
DB_NAME="archive_db"
WEB_DIR="/var/www/html"
REMOTE_USER="backup_user"
REMOTE_IP="192.168.100.200"
REMOTE_DIR="/remote/backup"
创建本地备份目录
mkdir -p $BACKUP_DIR
1. 备份数据库
mysqldump -u$DB_USER -p$DB_PASS $DB_NAME | gzip > $BACKUP_DIR/db_$DATE.sql.gz
2. 备份Web文件(排除缓存)
tar -czvf $BACKUP_DIR/web_$DATE.tar.gz $WEB_DIR --exclude=$WEB_DIR/cache
3. 传输到异地服务器
scp $BACKUP_DIR/db_$DATE.sql.gz $REMOTE_USER@$REMOTE_IP:$REMOTE_DIR
scp $BACKUP_DIR/web_$DATE.tar.gz $REMOTE_USER@$REMOTE_IP:$REMOTE_DIR
4. 清理本地7天前的备份
find $BACKUP_DIR -name ".gz" -mtime +7 -exec rm {} \;
echo "Backup Completed at $DATE"

赋予执行权限:

sudo chmod +x /usr/local/bin/backup_archive.sh

2. 配置定时任务

使用Crontab设定每天凌晨2点执行备份:

crontab -e

添加以下内容:

0 2    /usr/local/bin/backup_archive.sh >> /var/log/backup.log 2>&1
AI咨询
热线电话

028-85154420

15388110056

全国售前咨询电话

扫码咨询
安答联动微信公众号二维码

微信扫码关注安答联动

申请试用
热线电话
申请试用

安答联动档案管理系统