企业级云计算与服务器服务
+852 6698 6699admin@92host.com
2026-09-20

香港服务器购买:如何配置防火墙与安全组以防御DDoS与CC攻击

香港服务器

内容摘要: 防御DDoS与CC攻击需采取分层策略:在网络层通过云平台安全组限制非必要端口开放;在系统层利用iptables或firewalld过滤异常IP连接;在应用层部署Fail2ban结合Nginx限流模块拦截高频请求。这种组合拳能有效缓解中小规模攻击,保障业务连续性。

适用对象与准备条件

本文面向已完成香港服务器租用:如何根据CPU与内存配置匹配业务需求选型并交付使用的中小企业、跨境电商卖家及运维人员。读者需具备基础的Linux命令行操作能力,并拥有服务器的root或sudo权限。

在开始配置前,请确保您已备份重要数据,并确认当前业务所使用的端口(如Web服务的80/443,数据库的3306等),以免因规则设置过严导致业务中断。

第一道防线:云平台安全组的最小权限原则

安全组是云服务商提供的虚拟防火墙,位于网络入口的最外层。对于香港服务器而言,由于网络环境复杂,合理的安全组策略能过滤掉大量无效扫描。

操作要点:

  • 默认拒绝所有入站:除非明确允许,否则禁止所有外部IP访问。
  • 仅开放必要端口:例如,若服务器仅作为Web服务器,则只开放TCP 80和443端口。SSH端口(22)建议仅对特定管理IP开放,或修改为非常用高位端口以减少暴力破解尝试。
  • 禁用高危端口:严禁向公网开放3306(MySQL)、6379(Redis)等数据库端口,这些服务应仅通过内网IP访问。

第二道防线:Linux系统防火墙(iptables/firewalld)配置实战

即使通过了安全组,系统层面的防火墙仍是抵御小规模DDoS SYN Flood的关键。以下以CentOS/RHEL常用的firewalld为例进行说明。

步骤1:启动并启用firewalld

systemctl start firewalld
systemctl enable firewalld

步骤2:配置基础规则

允许SSH、HTTP和HTTPS流量:

firewall-cmd --permanent --add-service=ssh
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload

步骤3:限制单IP并发连接数

通过iptables直接添加规则,限制单个IP在60秒内的新建连接数不超过20个,这能有效缓解简单的SYN Flood:

iptables -I INPUT -p tcp --dport 80 -m connlimit --connlimit-above 20 -j REJECT

注意:此命令需在每次重启后重新加载,建议将其写入启动脚本或使用持久化工具。

第三道防线:利用Fail2ban与Nginx缓解CC攻击

CC攻击针对的是应用层,通过模拟正常用户频繁请求动态页面消耗服务器CPU资源。单纯的网络层防火墙难以识别此类攻击,需结合应用层工具。

1. 安装与配置Fail2ban

Fail2ban通过监控日志文件,自动封禁多次失败登录或高频访问的IP。

yum install fail2ban -y
systemctl start fail2ban

创建自定义过滤器 /etc/fail2ban/jail.local,针对Nginx访问日志设置阈值:

[nginx-cc]
enabled = true
filter = nginx-cc
action = iptables-multiport[name=NoCC, port="http,https"]
logpath = /var/log/nginx/access.log
maxretry = 50
findtime = 60
bantime = 3600

上述配置表示:若某IP在60秒内访问超过50次,将被封禁1小时。

2. Nginx限流模块

在Nginx配置文件中添加限流区域:

http {
    limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;
    server {
        location / {
            limit_req zone=one burst=20 nodelay;
        }
    }
}

这将限制每个IP每秒最多处理10个请求,突发流量允许20个,超出部分直接返回503错误,从而保护后端PHP或Java应用不被压垮。

验证方法与常见错误排查

验证方法:

  • 使用fail2ban-client status查看被封禁的IP列表。
  • 使用iptables -L -n检查防火墙规则是否生效。
  • 通过另一台服务器使用ab或wrk工具进行低压测试,观察Nginx是否按预期返回503状态码。

常见错误:

  • 误封管理员IP:在配置Fail2ban时,务必将管理IP加入白名单(ignoreip参数)。
  • 规则冲突:同时使用ufw、firewalld和iptables可能导致规则混乱,建议只保留一种防火墙管理工具。
  • 日志路径错误:确保Fail2ban配置的logpath与实际Nginx日志路径一致,否则无法触发封禁。

回滚与恢复策略

若配置后导致业务无法访问,可通过以下方式快速恢复:

  1. 临时关闭防火墙:systemctl stop firewalld(仅用于紧急排查,确认后需立即重新配置)。
  2. 清除iptables规则:iptables -F 将所有链清空,恢复默认允许状态。
  3. 重启Fail2ban:systemctl restart fail2ban 以解除所有自动封禁的IP。

建议在每次重大变更前快照服务器磁盘,以便在极端情况下快速回滚至变更前状态。

结语与建议

安全防护是一个持续的过程,而非一次性配置。对于香港服务器用户而言,除了上述系统级防御外,选择具备基础DDoS清洗能力的服务商也至关重要。IDC Luma 提供包括云服务器、物理服务器在内的多种产品,其在网络安全架构上的投入能为用户提供更稳定的底层环境。若您正在寻找高防或标准型香港服务器,可参考相关产品线以获取更适合业务需求的解决方案。

常见问题

配置防火墙后网站访问变慢怎么办?

首先检查是否开启了过多的日志记录功能,这会占用I/O资源。其次,检查iptables规则中是否有过于复杂的匹配条件。建议使用top或htop观察系统负载,确认是否为防火墙进程占用过高CPU。

Fail2ban会误封正常的搜索引擎爬虫吗?

有可能。如果爬虫抓取频率过高,可能触发阈值。建议在Fail2ban的ignoreip列表中添加主流搜索引擎的IP段,或在Nginx中通过User-Agent识别爬虫并单独设置更高的限流阈值。

香港服务器需要开启所有端口的UDP协议吗?

不需要。除非您的业务涉及DNS解析、视频流媒体或特定游戏服务,否则建议在安全组和防火墙中默认关闭所有UDP端口,仅按需开放特定端口,以减少攻击面。
Scroll to Top