1.
概览:为何需要评估与防护
说明:家宽服务器公开到互联网面临端口扫描、暴力破解、DDoS 等风险。
目标:在不依赖昂贵硬件的情况下,使用软件、配置和可用服务把风险降到可接受水平。
准备:一台运行 Linux(推荐 Ubuntu 22.04 LTS)的设备、路由器管理权限、SSH 密钥、动态域名(DDNS)或固定公网IP。
2.
第一步:资产盘点与威胁建模
1) 列出暴露服务(例如 SSH、HTTP、游戏服务器)。
2) 为每个服务标注重要性、是否必须对公网开放、可替代性(可否迁到云)。
3) 确定最坏情景(例如持续大流量 DDoS 导致家庭网络瘫痪)。
3.
第二步:路由器与 ISP 检查
1) 登录路由器后台,记录WAN IP,检查是否为 CGNAT(若 WAN IP 私有则无法被动连接)。
2) 若为 CGNAT,联系 ISP 申请公网 IPv4 或使用端口转发中继(例如 VPS 反代);记录路由器固件版本并升级到最新稳定版。
3) 关闭 UPnP(可被滥用)并启用防火墙/NAT 日志。
4.
第三步:系统加固(SSH 为例)
操作步骤(在服务器上执行):
1) 生成 SSH 密钥并禁用密码登录:ssh-keygen -t ed25519 ; 将公钥放入~/.ssh/authorized_keys。
2) 编辑 /etc/ssh/sshd_config:PermitRootLogin no,PasswordAuthentication no,Port 改为非标准端口(例如 2222)。重启:sudo systemctl restart sshd。
3) 测试另一个终端确保能登录后再断开当前会话。
5.
第四步:基础防火墙(ufw 示例)
安装与配置:
1) 安装:sudo apt update && sudo apt install ufw -y。
2) 允许必要端口:sudo ufw allow 80/tcp ; sudo ufw allow 443/tcp ; sudo ufw allow 2222/tcp。
3) 默认拒绝入站:sudo ufw default deny incoming ; sudo ufw enable。
4) 查看状态:sudo ufw status verbose。
6.
第五步:防暴力与入侵检测(fail2ban)
安装与配置:
1) 安装:sudo apt install fail2ban -y。
2) 新建本地配置 /etc/fail2ban/jail.local 示例内容:
[sshd]
enabled = true
port = 2222
maxretry = 5
bantime = 3600
3) 重启服务:sudo systemctl restart fail2ban。
可通过 sudo fail2ban-client status sshd 查看被封列表。
7.
第六步:DDoS 监测与快速判断
必装工具:iftop、vnstat、ss、tcpdump;安装:sudo apt install iftop vnstat iproute2 tcpdump -y。
流程:遇到疑似 DDoS 时,运行 sudo iftop -i eth0 观察瞬时带宽占用;sudo ss -nt state established to :PORT 查看连接数;sudo tcpdump -n -i eth0 'tcp' -w /tmp/shot.pcap 捕获包以便分析。
根据源IP分布判断是否为分布式攻击。
8.
第七步:即时应对 DDoS 的本地规则
谨慎执行,先备份 iptables:sudo iptables-save > ~/iptables.bak。
示例限速规则(TCP SYN 限制):sudo iptables -N SYN_FLOOD ; sudo iptables -A INPUT -p tcp --syn -m limit --limit 30/s --limit-burst 200 -j RETURN ; sudo iptables -A INPUT -p tcp --syn -j DROP。
使用 connlimit 模块限制每个 IP 并发连接:sudo iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 50 -j DROP。
9.
第八步:长线方案 — 反向代理与云端缓解
推荐:将公网入口放在有 DDoS 缓解能力的第三方上。方案A:使用 Cloudflare(HTTP/HTTPS)
步骤:1) 在 Cloudflare 注册并添加域名;2) 开启 Proxy(橙云)后将 A 记录指向你的公网 IP;3) 在服务器上仅允许 Cloudflare IP 段访问(通过 iptables 或 ufw 过滤)。
方案B:若需非HTTP服务,可使用 VPS 做反向 TCP 代理或使用 Cloudflare Tunnel / cloudflared。
10.
第九步:应用与 Web 安全基线
1) 安装并配置 HTTPS(Certbot + Nginx):sudo apt install certbot python3-certbot-nginx -y ; sudo certbot --nginx -d example.com。
2) 做漏洞扫描:sudo apt install nmap nikto -y;nmap -sV --script vuln example.com;nikto -h http://example.com。
3) 定期更新:sudo apt upgrade,配置自动安全更新(unattended-upgrades)。
11.
第十步:日志、备份与应急流程
日志:集中收集重要日志(/var/log/auth.log、nginx/access.log),可用 logrotate 管理。
备份:将关键配置与数据定期 rsync 到外部 VPS 或云盘,示例:rsync -avz /var/www/ user@vps:/backup/。
应急流程:发生大规模 DDoS 时的步骤:1) 暂时将域名指向备用 CDN/VPS 或启用 Cloudflare Under Attack Mode;2) 通知 ISP;3) 切换到只读模式或下线非必要服务以减少带宽。
12.
第十一步:与 ISP 合作与法律合规
1) 如果 DDoS 超出家用能力,记录流量样本并联系你的 ISP 请求上游过滤/黑洞。
2) 在新加坡,保留对受攻击证据的时间戳和 pcap 文件,必要时联系警察或相关 CERT。
3) 遵守服务供应商的使用条款,避免将受保护能力用于恶意用途。
13.
第十二步:性能优化与成本权衡
评分标准:可用性、安全性、成本三项权衡。
建议:对关键服务优先采用云缓解(付费),可把低风险服务继续托管在家中。
小技巧:使用 HTTP/2、gzip 缓存与 nginx 缓存减少带宽消耗。
14.
问:家宽服务器如何判断是否在被 DDoS 攻击?
答:观察两点:一是带宽急剧饱和(用 iftop/vnstat),二是大量来自不同源的短连接或大量 SYN(用 ss/tcpdump/nmap 分析)。记录时间、源 IP 分布与流量曲线作为证据。
15.
问:在家宽上做服务器,如何在不花大钱的情况下应对 DDoS?
答:优先把对外入口放在 CDN/反代(Cloudflare 免费层可抵御小量攻击);对非 HTTP 服务使用 VPS 反向代理或 cloudflared 隧道;在本地做限速、connlimit、fail2ban 配合路由器黑名单;遇到无法处理的流量及时联系 ISP。
16.
问:对普通用户最关键的三条安全建议是什么?
答:1) 禁用密码登录、使用 SSH 密钥并关闭 root 登录;2) 打开并严格配置防火墙(只开放必要端口);3) 使用第三方云代理(如 Cloudflare)保护 HTTP 服务并在遭到攻击时联系 ISP。
来源:新加坡家宽服务器推荐包含安全性评估和DDoS防护建议