群晖 + Arch Linux 联动安全架构与防病毒方案

很好 👍 那我来帮你整理一份 《群晖 + Arch Linux 联动安全体系架构与防病毒方案》,这份指南主要针对你目前的使用场景:

群晖 NAS(24 小时开机) + Arch Linux 笔记本(管理与同步)
并且你曾遇到 root 被感染执行恶意程序的问题(sshc 木马)。


🧱 群晖 + Arch Linux 联动安全架构与防病毒方案


🧩 一、总体架构思路

目标:

Arch 笔记本
    ↓ SSH (公钥登录)
群晖 NAS(内网)
    ↑ rclone / rsync / scp 定向同步

🔐 二、安全分层设计

层级 设备 关键防护点
网络层 群晖 仅允许内网访问,公网只通过 FRP 或 Nginx 转发
账户层 群晖、Arch 禁止 root 登录,普通用户使用 sudo 提权
SSH 层 双方 禁止密码登录,仅允许密钥
系统层 群晖 移除可疑文件、锁定关键目录
存储层 群晖 关键目录快照 + 外接盘异地备份
同步层 Arch 定期执行备份脚本(rsync/rclone)并生成日志
审计层 群晖 启用系统日志、监控进程异常 CPU 负载

⚙️ 三、SSH 安全互联配置

✅ 群晖端配置

编辑 /etc/ssh/sshd_config

PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
AllowUsers ding
PermitEmptyPasswords no

重启 SSH 服务:

sudo systemctl restart sshd

💡 群晖 DSM 的 SSH 端口建议改为 2222:

sudo vi /etc/ssh/sshd_config
Port 2222
sudo systemctl restart sshd

✅ Arch 端配置公钥认证

  1. 生成密钥:

    ssh-keygen -t ed25519 -C "arch@home"
    
  2. 上传公钥到群晖:

    ssh-copy-id -p 2222 ding@192.168.2.108
    
  3. 验证:

    ssh -p 2222 ding@192.168.2.108
    

⚠️ 确认可以无密码登录后,再执行:

sudo ufw deny 22/tcp
sudo ufw allow 2222/tcp comment 'SSH custom port'

🧱 四、数据备份与安全同步

✅ 群晖 → Arch:重要数据备份

在 Arch 上创建备份脚本(例如 ~/scripts/syno-backup.sh):

#!/bin/bash
REMOTE_USER=ding
REMOTE_HOST=192.168.2.108
REMOTE_PORT=2222
SRC_DIR="/volume1/photo/"
DST_DIR="/mnt/nas_backup/photo/"
LOG_FILE="/var/log/syno_backup.log"

rsync -avz --delete -e "ssh -p ${REMOTE_PORT}" \
  ${REMOTE_USER}@${REMOTE_HOST}:${SRC_DIR} ${DST_DIR} \
  >> ${LOG_FILE} 2>&1

设置定时任务(systemd timer 或 cron):

sudo crontab -e
0 3 * * * /home/ding/scripts/syno-backup.sh

💡 每天凌晨 3 点自动备份群晖相册目录到 Arch 本地。


✅ Arch → 群晖:配置同步与恢复

可使用 rclone 挂载群晖 WebDAV:

rclone config
# 新建 remote: syno
# 类型:webdav
# URL: https://your-frp-or-domain:5006/
# 用户:ding
# 密码:加密输入

挂载示例:

rclone mount syno: /mnt/syno --vfs-cache-mode full

然后同步:

rsync -aAXv ~/.config/ /mnt/syno/config_backup/

🧩 五、病毒防护与异常检测

✅ 1. 检查木马残留

群晖系统中执行:

sudo find /root -type f -perm /111 -size +50k 2>/dev/null
sudo find /etc /usr /lib /tmp -type f -mtime -2 2>/dev/null
sudo netstat -antp
sudo ps aux --sort=-%cpu | head

若发现异常文件(如 /root/.md/sshc/tmp/kdevtmpfsi),立即:

sudo systemctl stop ssh
sudo kill -9 $(pidof sshc)
sudo rm -rf /root/.md

✅ 2. 安装 ClamAV 杀毒(群晖有可选套件)

sudo apt install clamav
sudo freshclam
sudo clamscan -r /volume1/

🔒 六、系统强化

✅ 只读保护关键目录

sudo chattr +i /etc/ssh/sshd_config
sudo chattr +i /etc/passwd /etc/shadow

🔓 修改配置时可临时取消:

sudo chattr -i /etc/ssh/sshd_config

✅ 限制进程运行范围(AppArmor 或 Synology 自带安全中心)

确保只允许系统自带进程运行,不允许 /root/.md//tmp 下文件执行。


✅ 监控 CPU/内存异常进程

安装 atophtop

sudo pacman -S htop
sudo systemctl enable --now atop

查看高负载原因:

htop

定期导出日志:

htop -b -n 1 > /var/log/sys_perf_$(date +%F).log

🧮 七、灾备与恢复策略

目标 方案 存放位置
群晖系统快照 Hyper Backup 外接 USB 或第二块盘
相册/文件 rsync 同步 Arch 笔记本
重要配置 Git + rclone 云端(如 Cloudflare R2)
应急还原 仅读取备份数据,不直接执行旧盘文件 /mnt/recovery

⚠️ 八、安全提醒与操作习惯

  1. 永不使用弱密码(如 1、123456)

  2. 不信任任何 /root/tmp 下新文件

  3. 不执行来历不明的脚本(特别是 curl + bash 一类)

  4. 定期执行:

    sudo find / -perm /111 -type f -size +50k 2>/dev/null
    
  5. 群晖上不要长期暴露 SSH 端口到公网;
    如果需要,必须用 FRP + 密钥登录 + 防火墙白名单


是否希望我帮你把这整套方案做成一个 Markdown 文档(方便放进你的知识库或 Obsidian)?
可以包含命令示例、风险说明和表格结构,便于长期存档和维护。