当前位置:首页 > 云服务器 > 正文

服务器禁止ip段访问

器通过配置安全策略,将特定 IP段加入黑名单,实现对该网段 访问请求的拦截与禁止

为何需要设置服务器禁止IP段访问

在网络安全管理中,限制特定IP地址或网段的访问是常见需求,主要出于以下目的:

  • 防御恶意攻破(如分布、暴力免费);
  • 合规性要求(屏蔽非法地区或未授权用户);
  • 资源保护(避免爬虫占用带宽);
  • 内部策略管控(隔离测试环境与生产环境)。

通过配置防火墙规则或Web应用防护系统(WAF),可精准阻断风险流量。

服务器禁止ip段访问 第1张

主流服务器系统的实现方法对比

操作系统/软件 配置方式 示例命令/路径 生效时机
Linux(iptables) 添加DROP规则至INPUT链 iptables -A INPUT -s 192.168.1.0/24 -j DROP 立即生效
Windows防火墙 通过图形界面创建“阻止规则”,选择“自定义IP范围” 控制面板 > Windows Defender防火墙 → 高级设置 保存后自动应用
Nginx反向代理 在server块中使用deny指令 allow all; deny 10.0.0.0/8; 重启服务使配置生效
云服务商安全组 登录控制台手动添加黑名单CIDR区块 阿里云/西西安全等的安全组管理页面 实时同步到底层设备

️ 注意:修改前务必备份原始配置!建议先在测试环境验证效果。


操作步骤详解(以Linux+iptables为例)

查看现有规则集

sudo iptables -L -nv --line-numbers

记录当前编号便于后续插入新规则时定位位置。

添加拒绝策略

# 格式:协议目标 + 源地址范围 + 动作类型 sudo iptables -I INPUT <位置序号> -p tcp --dport <端口号> -s <被禁网段CIDR> -j DROP

例:禁止整个私有网络A类地址访问SSH端口

服务器禁止ip段访问 第2张

sudo iptables -I INPUT 1 -p tcp --dport 22 -s 10.0.0.0/8 -j DROP

保存持久化配置

不同发行版差异较大:

| CentOS/RHEL | service iptables save |

| Ubuntu/Debian | iptables-persistent save |

| Alpine Linux | 需手动导出至/etc/iptables.conf文件 |

验证有效性

使用工具模拟攻破测试:

服务器禁止ip段访问 第3张

curl -v telnet://目标服务器IP:被禁端口 --connect-timeout 5

若返回”Connection refused”则表示成功拦截。


常见问题排查指南

现象 可能原因 解决方案
规则未生效 顺序错误(靠后的规则优先匹配) 调整规则插入位置(用-I代替-A)
误杀合法请求 CIDR掩码过短导致覆盖正常用户 缩小子网掩码精度(如改用/24替代/16)
性能下降明显 大量细碎规则影响匹配效率 合并相邻网段为汇总路由
日志无记录 未开启审计功能 启用LOG目标并指定syslog设施


相关问题与解答

Q1: 如果我只想临时禁用某个IP段几个小时怎么办?

A: 可采用两种方案:

  • 方案一(推荐):使用iptables -m time模块设置定时失效规则, sudo iptables -A INPUT -s 恶意网段CIDR -m time --timestart "202X-MM-DD hh:mm" --timeout 3600 -j DROP
  • 方案二:通过crontab定时任务自动删除该规则,到期后由系统自动清理。

Q2: 如何批量导入多个需要禁止的IP列表?

A: 推荐使用文本文件配合脚本自动化处理:

  1. 准备CSV格式文件blacklist.csv,每行包含一个CIDR块;
  2. 编写Shell脚本循环读取并执行添加操作: while read line; do sudo iptables -A INPUT -s "$line" -j DROP done < blacklist.csv
  3. 高级玩法:结合Ansible Play

0