想在H3C设备上禁止某个IP访问内网服务器,核心做法是创建ACL规则匹配该源IP,再把规则应用到服务器所在VLAN或接口的入方向,最后执行save force保存配置。 这一套动作在H3C交换机、路由器、防火墙上都适用,只是ACL类型和应用位置略有不同,下面按设备类型拆开讲透。
先分清场景:你要禁止的是外部IP还是内网IP?
很多网管拿到需求就急着敲命令,结果方向搞反,规则不生效还查半天,禁止IP访问内网服务器常见三种情况:
- 禁止外网某个公网IP访问内网服务器,比如封掉一个恶意扫描源
- 禁止内网某个终端、某个部门网段访问服务器,比如访客网段和办公网隔离
- 只允许少数几个IP访问服务器,其他默认全部拒绝
不同场景下,H3C设备配置思路一样,但ACL编号和匹配字段不同,只禁止单个IP,用基本ACL就够,要同时匹配源IP和目标IP,就得用高级ACL,如果还要区分协议端口,更要上高级ACL,理解这一点,后面操作就不会懵。
H3C交换机限制IP访问服务器:创建ACL并应用
交换机是最常见的场景,内网服务器接在某个VLAN,你需要限制另一个VLAN的某个IP或网段访问它,整个过程三步走。
第一步:创建基本ACL匹配源IP
登录H3C交换机,进入系统视图:
system-view
acl basic 2000
rule deny source 192.168.10.25 0
rule permit source any
quit
acl basic 2000创建编号2000的基本ACL,H3C的基本ACL编号范围是2000到2999,只匹配源地址。rule deny source 192.168.10.25 0表示拒绝源IP为192.168.10.25的所有报文,反掩码0代表精确匹配这一个IP,第二条rule permit source any放行其他所有源IP,避免误伤。
规则顺序很重要,H3C按规则编号从小到大匹配,一旦命中就停止往下看,deny规则必须排在permit前面,否则先命中permit any,deny就永远不会生效,很多人第一次配置就栽在这。
第二步:将ACL应用到服务器所在VLAN的入方向
假设服务器在VLAN 100,网关在交换机上:
interface Vlan-interface 100 packet-filter 2000 inbound quit
方向这里最容易搞错,入方向指的是从服务器VLAN外面进来的流量,源IP就是访问者,如果你的服务器直接接在交换机物理口,也可以把ACL应用到那个物理接口的inbound方向,但应用在VLAN接口上更省事,一个VLAN下的所有访问都会被检查。
第三步:验证并保存
display acl 2000
display packet-filter interface Vlan-interface 100
save force
display acl 2000能看到规则和命中计数,如果计数为0但流量确实在走,多半是应用接口或方向不对。display packet-filter interface Vlan-interface 100可以确认ACL是否挂载成功以及方向是否正确。
H3C路由器禁止内网IP访问服务器:和交换机的关键差异
路由器场景稍微复杂一点,内网服务器可能在另一个网段,路由器充当三层网关,这时候禁止某个IP访问服务器,通常用高级ACL更精准。
假设内网用户网段192.168.20.0/24,服务器网段10.0.0.0/24,要禁止192.168.20.55访问服务器10.0.0.8,配置如下:
system-view
acl advanced 3000
rule deny ip source 192.168.20.55 0 destination 10.0.0.8 0
rule permit ip source any destination any
quit
interface GigabitEthernet0/0/1
packet-filter 3000 inbound
quit
高级ACL可以同时匹配源和目标,比基本ACL更适合路由器跨网段场景。rule permit ip放行其他流量,保证网络不中断,应用接口应该选靠近源IP的那个接口,也就是用户网段进来的接口,方向inbound。
和交换机的差异:交换机通常用VLAN接口,路由器用三层物理接口或子接口,防火墙则是另一套逻辑,下面单独说。
H3C防火墙禁止某个IP访问内网:必须分清域间策略
防火墙不能只用ACL,H3C防火墙(如SecPath系列)核心是安全策略,ACL可以辅助,但主流做法是配置安全策略拒绝特定源IP。
典型配置思路:
- 先定义地址对象或直接写源地址
- 创建安全策略,源地址为要禁止的IP,目的地址为服务器地址,动作deny
- 策略放在允许策略之前,因为防火墙安全策略也是从上到下匹配
security-policy ip
rule 10
source-zone untrust
destination-zone trust
source-address 203.0.113.5 32
destination-address 10.0.0.8 32
action deny
quit
rule 20
source-zone untrust
destination-zone trust
action permit
quit
注意防火墙有安全域概念,内网通常是trust域,外网是untrust域,禁止外部IP访问内网服务器,源域就是untrust,目的域trust,如果只是禁止内网某个IP访问服务器,源域可能是trust或自定义域,防火墙配置安全策略时,域和地址必须同时匹配,只写地址不写域,策略不会生效。
H3C ACL禁止某个IP访问内网:完整命令示例
这一节给一个可以直接复制修改的完整示例,需求:禁止IP 192.168.30.10和整个192.168.40.0/24网段访问服务器10.0.0.20,其他流量正常放行。
system-view
acl advanced 3001
rule 5 deny ip source 192.168.30.10 0 destination 10.0.0.20 0
rule 10 deny ip source 192.168.40.0 0.0.0.255 destination 10.0.0.20 0
rule 100 permit ip
quit
interface GigabitEthernet1/0/2
packet-filter 3001 inbound
quit
save force
规则编号用5、10、100拉开间隔,方便后续插入新规则。rule 100 permit ip放在最后,保证其他流量不受影响,应用接口应该选流量进入设备的那个接口,通常靠近源IP一侧。
常见踩坑:为什么规则不生效?
配置ACL后没有效果,大概率是这四个原因:
- 方向搞反:应该在入方向应用,却配成了出方向,源IP访问服务器,流量先进入靠近源IP的接口,在inbound方向检查才有意义。
- 接口选错:把ACL应用到了无关接口,或者服务器不在那个VLAN。
- 规则顺序错误:
rule permit ip写在了deny前面,导致deny永远不匹配,H3C按编号从小到大匹配,编号小的先检查。 - 忘记放行其他流量:只写了deny,没写permit,结果除了被禁IP之外其他流量也不通了,其实H3C默认规则是允许,但有些管理员会手动加deny any,反而自己把自己锁死。
排查时先用display acl查看命中计数,再用display packet-filter interface确认接口和方向,如果计数一直为0,说明流量没经过这个接口的ACL检查点。
表格对比:三种设备配置差异
| 设备类型 | 推荐ACL类型 | 典型应用位置 | 关键命令 |
|---|---|---|---|
| H3C交换机 | 基本ACL 2000或高级ACL 3000 | VLAN接口或物理接口入方向 | packet-filter inbound |
| H3C路由器 | 高级ACL 3000 | 三层接口入方向 | packet-filter inbound |
| H3C防火墙 | 安全策略(可选ACL辅助) | 安全策略规则 | security-policy ip / rule deny |
不同型号的H3C设备命令可能有细微差异,Comware V5和V7都支持上述命令,但部分老版本需要用firewall命令开启防火墙功能后才能应用ACL。
H3C上禁止IP访问内网服务器,本质就是ACL或安全策略的配置,关键在于规则匹配顺序和应用方向,搞清楚流量走向,选对接口和方向,基本就不会出错,配置完成后养成保存和验证的习惯,能少走很多弯路。
Q&A:H3C设置IP不能访问内网服务器的常见问题
H3C交换机怎么设置某个IP不能访问内网服务器但其他IP可以?
先创建基本ACL,用rule deny source <IP> 0拒绝指定IP,再加一条rule permit source any放行其他所有源IP,然后把ACL应用到服务器所在VLAN接口的inbound方向,这样只有被deny的IP无法访问,其他IP不受影响。
H3C ACL禁止IP访问服务器后为什么不生效?
多数情况下是应用方向或接口选错,检查display packet-filter interface确认ACL是否挂在正确的接口且方向为inbound,同时检查display acl里deny规则是否排在permit之前,如果命中计数为0,说明流量没有经过该检查点。
H3C路由器禁止某个IP访问内网服务器需要同时配置入站和出站方向吗?
不需要,在接口的一个方向应用ACL即可,通常只在靠近源IP的接口inbound方向应用,就能在流量进入设备时拦截,出站方向应用反而可能匹配不到源IP,因为源IP不变,但检查位置不同,一个方向足够。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/639549.html





