本次实操用开源免费的OnlyOffice Community Server 12.0搭建极简档案库,用OpenSSL 1.1.1w生成加密证书,所有操作在Windows 10/11、Ubuntu 22.04 LTS双平台通用(Windows需先安装Git Bash替代CMD执行命令)。
透明加密指用户正常上传下载无需额外操作,系统后台自动加解密。
若使用独立硬盘存放档案:
sudo fdisk -l,找到目标盘(如/dev/sdb)sudo dd if=/dev/zero of=/dev/sdb bs=4M count=10sudo pvcreate /dev/sdbsudo vgcreate vg_archive /dev/sdbsudo lvcreate -l 100%FREE -n lv_archive vg_archivesudo cryptsetup luksFormat /dev/mapper/vg_archive-lv_archive,输入大写YES确认sudo cryptsetup luksOpen /dev/mapper/vg_archive-lv_archive archive_cryptsudo mkfs.ext4 /dev/mapper/archive_cryptsudo mkdir -p /opt/onlyoffice_archivesudo blkid /dev/mapper/vg_archive-lv_archive,记录UUID值sudo blkid /dev/mapper/archive_crypt,记录另一个UUID值sudo nano /etc/crypttab,添加一行archive_crypt /dev/disk/by-uuid/[第一个UUID值] none luks,Ctrl+O保存、Ctrl+X退出sudo nano /etc/fstab,添加一行/dev/mapper/archive_crypt /opt/onlyoffice_archive ext4 defaults 0 2,保存退出
OnlyOffice默认HTTP传输,需替换为OpenSSL自签名证书(生产环境用Let’s Encrypt免费证书,本次演示自签名)。
mkdir -p ~/onlyoffice_sslopenssl genrsa -out ~/onlyoffice_ssl/onlyoffice.key 2048openssl req -new -key ~/onlyoffice_ssl/onlyoffice.key -out ~/onlyoffice_ssl/onlyoffice.csropenssl x509 -req -days 3650 -in ~/onlyoffice_ssl/onlyoffice.csr -signkey ~/onlyoffice_ssl/onlyoffice.key -out ~/onlyoffice_ssl/onlyoffice.crtsudo cp ~/onlyoffice_ssl/onlyoffice.crt /etc/onlyoffice/documentserver/nginx/ssl/,sudo cp ~/onlyoffice_ssl/onlyoffice.key /etc/onlyoffice/documentserver/nginx/ssl/sudo nano /etc/onlyoffice/documentserver/nginx/includes/ds-common.conflisten 80;,替换为:
listen 443 ssl http2;
listen [::]:443 ssl http2;
ssl_certificate /etc/onlyoffice/documentserver/nginx/ssl/onlyoffice.crt;
ssl_certificate_key /etc/onlyoffice/documentserver/nginx/ssl/onlyoffice.key;
ssl_protocols TLSv1.2 TLSv1.3;
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;
server {
listen 80;
listen [::]:80;
server_name _;
return 301 https://$host$request_uri;
}
sudo systemctl restart onlyoffice-documentserver.service onlyoffice-communityserver.service针对Word文档中的身份证号、手机号自动脱敏,不影响档案原文存储,仅借阅/查看时显示脱敏内容。
(function()
{
var oDocument = Api.GetDocument();
var oRange = oDocument.GetRange(0, oDocument.GetCharactersCount());
var sText = oRange.GetText();
// 身份证号脱敏(保留前6后4)
sText = sText.replace(/(\d{6})\d{8}(\d{4})/g, "$1$2");
// 手机号脱敏(保留前3后4)
sText = sText.replace(/(1[3-9]\d)\d{4}(\d{4})/g, "$1$2");
oRange.SetText(sText);
})();
采用“本地增量+云端加密”双备份:本地每日增量备份档案,每周全量备份;云端仅存每周加密全量备份。
Ubuntu端配置每日增量备份到另一非加密逻辑卷/外接硬盘:
sudo nano /opt/archive_backup.sh!/bin/bash
BACKUP_SRC="/opt/onlyoffice_archive"
BACKUP_DEST="/mnt/usb_backup/onlyoffice_incremental"
DATE=$(date +%Y%m%d_%H%M%S)
mkdir -p $BACKUP_DEST
rsync -av --delete --link-dest=$BACKUP_DEST/$(ls -t $BACKUP_DEST | head -1) $BACKUP_SRC $BACKUP_DEST/$DATE
保留最近7天的增量备份
find $BACKUP_DEST -type d -mtime +7 -exec rm -rf {} \;
sudo chmod +x /opt/archive_backup.shsudo crontab -e,添加一行0 2 /opt/archive_backup.sh
档案整理行业认证,这玩意儿到底是不是你的职场“硬通货”?