家用住宅主机Linux GDPR合规跨境站点服务器配置
从零开始:家用主机与GDPR的适配工作
如果你有一台运行 Linux 的家用主机(比如旧笔记本或树莓派),想用它来部署一个面向欧盟访客的跨境站点,就必须考虑 GDPR(通用数据保护条例)的合规要求。
GDPR 强调数据最小化、访问控制、日志限制、用户知情权等。
本文会带着你一步步完成基础的安全与隐私配置,让站点既能正常服务,又不会踩到合规红线。
适合谁看:手头有家用 Linux 主机、想低成本搭建跨境网站且需要满足 GDPR 基本要求的零基础用户。
基础安全防线配置
1. 启用 UFW 防火墙
家用主机通常暴露在公网,必须先限制入口。
以 Ubuntu/Debian 为例:
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
只开放 SSH、HTTP 和 HTTPS,其他端口一律关闭。
检查状态:sudo ufw status verbose。
2. 配置 Let's Encrypt SSL 证书
GDPR 要求传输加密,使用 Nginx 并申请免费 SSL:
sudo apt install nginx certbot python3-certbot-nginx
sudo certbot --nginx -d yourdomain.com
完成之后强制跳转 HTTPS。
编辑站点配置,在 server 块中添加:
return 301 https://$host$request_uri;
然后 sudo nginx -t && sudo systemctl reload nginx。
数据保护与隐私合规操作
3. 日志策略:限制保留时长
家用主机磁盘有限,且 GDPR 要求日志不得无期限保存。
配置 logrotate 让 Nginx 访问日志只保留 14 天:
sudo nano /etc/logrotate.d/nginx
内容调整为:
/var/log/nginx/*.log {
daily
rotate 14
compress
delaycompress
missingok
notifempty
create 0640 www-data adm
postrotate
[ -f /var/run/nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid`
endscript
}
保存后手动测试:sudo logrotate -d /etc/logrotate.d/nginx。
4. 数据库加密与自动备份
如果站点使用 MariaDB 或 PostgreSQL,务必启用透明数据加密(TDE)或全盘加密。
对于家用主机,推荐使用 LUKS 加密整个数据目录。
但这步较复杂,作为入门方案,至少确保备份文件加密:
sudo apt install restic
restic init --repo /backup/restic
restic backup /var/www --password-file /etc/restic-pass
备份脚本建议每天执行,并保留最近 30 天的快照。
5. 添加 Cookie 同意与隐私政策
在站点页面底部引入 Cookie 同意弹窗,并放置包含以下声明的隐私政策页:
- 收集哪些数据(IP、浏览器、行为)
- 数据用途(仅用于服务与安全)
- 数据存储时限(与日志轮转一致)
- 用户可请求删除数据的联系方式
代码可参考开源库如 CookieConsent(记得根据实际情况调整)。
常见踩坑提醒
- 家用 IP 可能被反向 DNS 标记:如果 ISP 分配的 IP 过去被用于发送垃圾邮件,部分欧盟邮件服务会拒收。建议使用 Cloudflare CDN 隐藏源站 IP,并通过 CDN 的 WAF 增强安全。
- 忘记设置日志自动轮转:站点运行一周就可能堆积上 GB 日志,不仅撑爆磁盘,还违反 GDPR 数据最小化原则。务必配置并测试 logrotate。
- 备份未加密:如果备份文件直接存放在本地或网盘,一旦泄露就构成数据泄露事件。必须用 restic、gpg 或类似工具加密。
- SSL 证书到期:记得设置 cron 自动续期:
sudo crontab -e添加0 3 * * * /usr/bin/certbot renew --quiet。
验证服务是否到位
执行以下检查清单:
- 防火墙:
sudo ufw status确认只有 22、80、443 开放。 - SSL:浏览器访问
https://yourdomain.com,点击小锁查看证书有效且为 Let's Encrypt。 - 日志轮转:运行
sudo logrotate -f /etc/logrotate.d/nginx后检查/var/log/nginx/下是否有.gz压缩文件且数量 ≤14。 - 备份:
restic snapshots查看是否有近期的快照。 - 隐私页面:手动检查 Cookie 弹窗是否出现,隐私政策是否包含联系方式和数据保留期限。
完成以上步骤后,家用主机上的跨境站点在安全性上基本满足 GDPR 的常见要求。
如果你遇到具体的报错或需要进一步调整,可以在此思路基础上查阅官方文档或留言交流。