服务器禁止IP段是抵御恶意流量和非法访问最直接有效的手段,无论你是管理个人博客还是企业集群,掌握iptables或安全组配置都是必备技能,核心思路是:先识别需要封禁的IP范围,再通过防火墙规则或云控制台拒绝其访问,达到阻断攻击的目的。参考2
服务器禁止IP段的原因与必要性
为什么需要频繁封禁IP段?因为服务器一旦暴露在公网,就会持续收到各类扫描和攻击,这些流量往往来自同一供应商或地理区域的IP段,封禁整个段比逐个封禁IP效率高得多,还能减少杂乱规则对性能的影响。参考2
常见攻击来源
– 暴力破解尝试:SSH、RDP、数据库端口被大量随机IP尝试登录,但源IP通常集中在少数C段或B段内,封禁后破解尝试会骤降。
– 爬虫与数据采集:搜索引擎的爬虫会遵守robots.txt,但恶意爬虫会抓取大量页面,消耗带宽和资源,封禁其IP段后,可以立即降低服务器负载。
– DDoS攻击:攻击流量可能来自某些云服务商的IP池,封禁该IP段能快速缓解攻击,但需要确认没有误伤正常用户。
– 地域限制:如果你的业务只面向国内用户,封禁海外IP段是简化安全管理的一步,很多地域性攻击会通过这些IP发起。
封禁IP段对服务器的影响
合理配置下,IP段封禁对正常用户影响极小,但能显著降低安全风险,据业内观察,适当封禁IP段可以减少相当一部分无效请求,让服务器资源专注于处理真实流量,需要避免误封CDN节点或云服务商的IP段,否则可能导致正常用户无法访问,行业共识认为,封禁IP段是服务器安全的第一道防线,但需要结合登录限制、WAF等其他措施形成纵深防御。
服务器禁止ip段怎么设置:两种主流方法
这里介绍最常用的两种方法:运维人员习惯用iptables手动控制,云服务器用户则更依赖安全组,下面分别说明,你可以根据环境选择。
服务器禁止ip段iptables:手动配置步骤
iptables是Linux内置防火墙,几乎所有发行版都支持,要禁止一个IP段如192.168.1.0/24,执行以下命令:
- 禁止入站流量:
iptables -A INPUT -s 192.168.1.0/24 -j DROP
- 禁止出站流量:
iptables -A OUTPUT -d 192.168.1.0/24 -j DROP(用于限制内部访问) - 只禁止特定端口:
iptables -A INPUT -p tcp --dport 22 -s 192.168.1.0/24 -j DROP
规则顺序很重要,建议先添加允许自己IP的规则,再添加禁止规则,使用iptables -L -n查看当前规则计数,确认是否生效。
对于需要封禁大量IP段的场景,建议使用ipset:参考2
ipset create blocklist hash:net
ipset add blocklist 192.168.1.0/24
ipset add blocklist 10.0.0.0/8
iptables -A INPUT -m set --match-set blocklist src -j DROP
这样所有IP段集中管理,规则数量少,内核查找效率高,对系统性能影响也更小。
服务器禁止某个ip段访问:安全组配置
如果你使用的是简米云、酷番云、AWS等云服务器,安全组是最简单的方案,在云控制台找到对应实例的安全组,添加入站规则:
- 动作:拒绝
- 来源:192.168.1.0/24
- 协议:全部
- 优先级:高于允许规则
安全组规则即时生效,无需操作服务器内部,适合非技术人员或需要快速应急的场景,注意安全组也有优先级,拒绝规则必须放在允许规则之前,否则会被允许规则覆盖,安全组默认拒绝所有入站流量,所以通常只需添加允许规则,但如果你需要显式拒绝某个IP段,就需要添加一条拒绝规则。
使用Firewalld或UFW
对于CentOS 7+,使用Firewalld:
“`
firewall-cmd –permanent –add-rich-rule=’rule family=”ipv4″ source address=”192.168.1.0/24″ drop’
firewall-cmd –reload
“`
对于Ubuntu,使用UFW:
“`
ufw deny from 192.168.1.0/24
“`
这些工具底层还是调用iptables,但命令更直观,适合初学者。
服务器禁止ip段命令详解:iptables与ipset实战
这一部分深入讲解常用命令及其变体,方便你举一反三。
基础命令:禁止整个C段或B段
– 禁止所有来源IP段:`iptables -A INPUT -s 10.0.0.0/8 -j DROP`
– 禁止多个不相邻的IP段:可以写多条规则,但建议使用ipset一次性集中管理
– 禁止IPv6段:使用`ip6tables`,格式类似:`ip6tables -A INPUT -s 2001:db8::/32 -j DROP`
使用ipset管理大量IP段
当需要封禁几百个IP段时,iptables规则会变得臃肿,影响性能,ipset是更好的选择,它把IP段集合存储在哈希表中,内核查找效率远高于顺序匹配的iptables规则。
步骤:
- 创建集合:
ipset create blocklist hash:net - 添加IP段:
ipset add blocklist 10.0.0.0/8,ipset add blocklist 192.168.0.0/16 - 创建iptables规则引用集合:
iptables -A INPUT -m set --match-set blocklist src -j DROP - 保存集合:
ipset save > /etc/ipset.conf - 设置开机自动加载:在系统启动脚本中执行
ipset restore < /etc/ipset.conf
规则持久化
iptables规则在重启后丢失,需要保存,不同发行版保存方式不同:
– Debian/Ubuntu:`iptables-save > /etc/iptables/rules.v4`,然后安装`iptables-persistent`工具自动加载。
– CentOS 6及之前:`service iptables save`;CentOS 7+使用Firewalld则无需额外操作。
– 通用方法:将iptables命令写入启动脚本,如`/etc/rc.local`。
| 方法 | 适用场景 | 管理便利性 | 性能影响 |
|---|---|---|---|
| iptables | 所有Linux服务器,规则少时 | 直接,但规则多时繁琐 | 规则多时性能下降 |
| ipset | 大量IP段,频繁变更 | 集中管理,效率高 | 性能好,适合大规模 |
| 安全组 | 云服务器,无需接触系统 | 图形化,操作简单 | 无本地资源消耗 |
| Firewalld/UFW | 日常小规模安全配置 | 命令友好,适合新手 | 底层仍是iptables |
服务器禁止IP段注意事项与避坑指南
配置时稍有不慎,可能把自己也封禁,导致远程连接断开,这里有几个关键点。
避免误封自己
在远程配置时,如果你封禁了自己所在的IP段,会立即失去连接,建议:
– 先
添加一条允许自己IP的规则,放在最前面:`iptables -I INPUT 1 -s 你的IP -j ACCEPT`
– 使用`at`命令设置一个定时任务,在几分钟后冲刷所有规则,作为保险:`at now + 5 minutes <<< "iptables -F"`- 万一被封禁,可通过云控制台的VNC或管理终端进入服务器,删除对应规则。
通过日志分析确认IP段
不要盲目封禁,先查看服务器日志,找出攻击来源的IP段,SSH暴力破解的日志位于`/var/log/auth.log`或`/var/log/secure`,使用`awk`或`grep`提取高频IP,然后判断其所属的IP段,也可以使用`fail2ban`等工具,自动分析日志并动态封禁,它内部也会调用iptables或firewalld。
记录日志后再封禁
在正式封禁前,可以先使用`-j LOG`记录匹配情况,确认无误后再改为`-j DROP`:
“`
iptables -A INPUT -s 10.0.0.0/8 -j LOG –log-prefix “BLOCKED: ”
iptables -A INPUT -s 10.0.0.0/8 -j DROP
“`
这样可以在`/var/log/kern.log`中看到被拦截的流量,避免误伤。
服务器禁止IP段Q&A:常见问题解答
服务器禁止IP段后对方能知道吗?
对方通常不会收到明确反馈,使用`-j DROP`时,连接会超时,对方会等待一段时间后放弃;使用`-j REJECT`时,对方会立即收到连接被拒绝的ICMP消息,DROP更隐蔽,但对方可能通过超时推测出IP被屏蔽,REJECT则直接暴露了规则存在,根据安全需求选择,大多数场景推荐DROP。
禁止IP段和禁止端口有什么区别?
禁止IP段是拒绝来自特定IP范围的所有流量,无论端口;禁止端口是拒绝所有IP对特定端口的访问,两者结合使用更精细,例如你可以禁止某个IP段访问SSH端口,但允许其他端口,实际运维中,通常先封禁IP段减少攻击面,再针对特定端口做限制。
如何验证IP段是否被成功禁止?
从被禁止的IP段内的一台机器尝试访问你的服务器,连接应该无法建立,也可以查看iptables规则计数器:`iptables -L -n -v`,如果匹配次数增加,说明有流量被拦截,使用`ipset list`可以查看集合中的IP段以及匹配统计数据,对于云安全组,可以在控制台查看规则监控,不少云服务商会提供流量拦截日志。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/524261.html



