群晖 + Arch Linux 联动安全架构与防病毒方案
很好 👍 那我来帮你整理一份 《群晖 + Arch Linux 联动安全体系架构与防病毒方案》,这份指南主要针对你目前的使用场景:
群晖 NAS(24 小时开机) + Arch Linux 笔记本(管理与同步)
并且你曾遇到 root 被感染执行恶意程序的问题(sshc 木马)。
🧱 群晖 + Arch Linux 联动安全架构与防病毒方案
🧩 一、总体架构思路
目标:
-
群晖 作为主存储设备(安全、稳定、少暴露)
-
Arch Linux 作为控制端(备份、管理、自动任务)
-
两者间仅通过 加密通道 + 非 root 用户 + 公钥认证 通信
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 端配置公钥认证
-
生成密钥:
ssh-keygen -t ed25519 -C "arch@home" -
上传公钥到群晖:
ssh-copy-id -p 2222 ding@192.168.2.108 -
验证:
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/内存异常进程
安装 atop 或 htop:
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、123456)
-
不信任任何
/root或/tmp下新文件 -
不执行来历不明的脚本(特别是 curl + bash 一类)
-
定期执行:
sudo find / -perm /111 -type f -size +50k 2>/dev/null -
群晖上不要长期暴露 SSH 端口到公网;
如果需要,必须用 FRP + 密钥登录 + 防火墙白名单。
是否希望我帮你把这整套方案做成一个 Markdown 文档(方便放进你的知识库或 Obsidian)?
可以包含命令示例、风险说明和表格结构,便于长期存档和维护。