核心交换机S7306X-G上配置了vlan 12 16 20 三个网段 需求是vlan16能访问vlan12 和vlan20 vlan12 和vlan20不能访问vlan16并且也不能互相访问
acl需要如何配置
rule 0 permit ip source 192.168.16.0 0.0.0.255 destination 192.168.12.0 0.0.0.255
rule 5 permit ip source 192.168.16.0 0.0.0.255 destination 192.168.20.0 0.0.0.255
rule 6 permit tcp source 192.168.12.0 0.0.0.255 destination 192.168.16.0 0.0.0.255 established
rule 7 permit tcp source 192.168.20.0 0.0.0.255 destination 192.168.16.0 0.0.0.255 established
rule 8 permit icmp source 192.168.12.0 0.0.0.255 destination 192.168.16.0 0.0.0.255 icmp-type echo-reply
rule 9 permit icmp source 192.168.20.0 0.0.0.255 destination 192.168.16.0 0.0.0.255 icmp-type echo-reply
rule 10 deny ip source 192.168.12.0 0.0.0.255 destination 192.168.16.0 0.0.0.255
rule 15 deny ip source 192.168.12.0 0.0.0.255 destination 192.168.20.0 0.0.0.255
rule 20 deny ip source 192.168.20.0 0.0.0.255 destination 192.168.12.0 0.0.0.255
rule 25 deny ip source 192.168.20.0 0.0.0.255 destination 192.168.16.0 0.0.0.255
rule 30 permit ip
这个是我写的acl 但是只能回应tcp和icmp的报文其他协议的报文回应不了 望指导
问题在于 established 只匹配 TCP,ICMP 只放行了 echo-reply,UDP(DNS、SNMP、syslog 等)和其他 ICMP 类型的回包都没有放行,最终被 deny 掉。ACL 是无状态的,没法识别"回包",只能靠枚举。
方案一:在 ACL 里补 UDP 等规则(简单,但有局限)
UDP 没有 established,只能按源端口放行回包,例如:
rule 11 permit udp source 192.168.12.0 0.0.0.255 destination 192.168.16.0 0.0.0.255 source-port eq 53这样要逐个服务写,且 vlan16 访问 vlan12 的 UDP 端口是随机的,放行源端口等于放开该端口发起的任意流量,不严谨。
方案二(推荐):用 vlan12/vlan20 的入方向做精简,或在三层口上用 ACL 只限制"发起方向"
思路:不要在 12/20 的入方向拦截回包,而是只拦截 12/20 主动访问其他网段的流量。更实用的做法是把策略放在 vlan16 的出方向、12/20 的出方向,但无状态 ACL 本质上仍然区分不了回包。
方案三(根治):使用状态检测设备
核心交换机 ACL 无法做到"单向发起、回包自动放行",需要防火墙做 vlan12/16/20 的网关(或策略路由到防火墙),在防火墙上配置 16→12/20 允许,反向默认拒绝,会话表自动放行回包。
如果坚持在 S7306X-G 上做,较完整的写法:
acl number 3000
rule 0 permit ip source 192.168.16.0 0.0.0.255 destination 192.168.12.0 0.0.0.255
rule 5 permit ip source 192.168.16.0 0.0.0.255 destination 192.168.20.0 0.0.0.255
rule 6 permit tcp source 192.168.12.0 0.0.0.255 destination 192.168.16.0 0.0.0.255 established
rule 7 permit tcp source 192.168.20.0 0.0.0.255 destination 192.168.16.0 0.0.0.255 established
rule 8 permit icmp source 192.168.12.0 0.0.0.255 destination 192.168.16.0 0.0.0.255 icmp-type echo-reply
rule 9 permit icmp source 192.168.20.0 0.0.0.255 destination 192.168.16.0 0.0.0.255 icmp-type echo-reply
rule 10 permit icmp source 192.168.12.0 0.0.0.255 destination 192.168.16.0 0.0.0.255 icmp-type ttl-exceeded
rule 11 permit icmp source 192.168.12.0 0.0.0.255 destination 192.168.16.0 0.0.0.255 icmp-type port-unreachable
rule 12 permit udp source 192.168.12.0 0.0.0.255 destination 192.168.16.0 0.0.0.255 source-port eq 53
(按需添加 snmp 161、ntp 123 等,vlan20 同理)
rule 20 deny ip source 192.168.12.0 0.0.0.255 destination 192.168.16.0 0.0.0.255
...另外几点:
traffic-filter inbound 应用在 vlan12、vlan20 的 VLANIF 口上(流量进入网关时过滤),vlan16 的 VLANIF 不应用,这样 16 访问 12/20 的去程不受影响,只过滤 12/20 发出的流量。
结论:纯 ACL 能满足 TCP/ICMP/DNS 等常见业务,但无法完美实现"单向访问"。如果要求严格,或 16 网段会用到各类 UDP/私有协议,建议上防火墙。
暂无评论
established 是 TCP 专属关键字,UDP、DNS、SCTP、其他 IP 协议没有这个标志位,ACL 静态规则没法自动放行回包,这就是你现在:TCP 正常、ICMP echo-reply 你手动写了可以通、但是 UDP(DNS、NTP 等)回包直接被 deny 的根源H3C。
静态 ACL 是无状态的!S7306X-G 如果想要【由 VLAN16 主动发起访问 12/20,自动放行所有回程报文;禁止 12、20 主动发起访问 16,同时 12 和 20 互相隔离】,正确方案是 ASPF 状态防火墙,而不是手写一大堆 established。
需求再对齐:
你原来的思路缺陷:只能手工枚举 TCP established、icmp echo-reply;UDP、DNS、NTP、其他协议无法覆盖,业务缺回程。
ASPF 是状态化,会建立会话表:只有 16 主动发起的流,回程报文自动放行;12/20 主动发起去往 16 的新建连接直接拒绝H3C。
应用位置:在 Vlan-interface12、Vlan-interface20 的inbound 方向做 ASPF 检测 + ACL 拒绝主动访问。
# 1、创建ASPF策略,开启TCP、UDP、ICMP状态检测
aspf-policy 1
inspect tcp
inspect udp
inspect icmp
quit
# 2、创建高级ACL,用来阻断【12、20主动访问16】的新建流量,同时阻断12和20互访
acl advanced 3000
rule 0 deny ip source 192.168.12.0 0.0.0.255 destination 192.168.16.0 0.0.0.255
rule 5 deny ip source 192.168.20.0 0.0.0.255 destination 192.168.16.0 0.0.0.255
rule 10 deny ip source 192.168.12.0 0.0.0.255 destination 192.168.20.0 0.0.0.255
rule 15 deny ip source 192.168.20.0 0.0.0.255 destination 192.168.12.0 0.0.0.255
rule 100 permit ip # 其余流量放行,交给ASPF做状态控制
quit
# 3、在Vlanif12、Vlanif20入方向绑定:先报文过滤ACL,再开启ASPF
interface Vlan-interface12
packet-filter 3000 inbound
aspf apply 1 inbound
quit
interface Vlan-interface20
packet-filter 3000 inbound
aspf apply 1 inbound
quit
逻辑解释:
- 从 VLAN12、VLAN20 进来的报文:
- 如果是主动发起去往 16:ACL 直接 deny;
- 如果是16 主动访问 12/20 产生的回程报文:匹配 ASPF 会话表,直接放行;
- 12 和 20 互相访问:ACL 直接 deny;
- VLAN16 侧不加任何阻断,16 发起访问 12、20 全部正常,TCP/UDP/ICMP/DNS/NTP 全都能正常回包。
只能把所有回程流量全部放开,但是会带来风险:12、20 的设备可以主动监听端口,被动接收流量,安全弱,只适合简单场景。 思路:允许目的是 16 网段的所有回程报文,只禁止【源是 12/20,目的 16,SYN 新建请求】。
静态 ACL 做不到区分 “主动发起” 和 “回程”,只能妥协放行所有去往 16 的回包。
acl advanced 3000
# 16主动去12、20放行
rule 0 permit ip source 192.168.16.0 0.0.0.255 destination 192.168.12.0 0.0.0.255
rule 5 permit ip source 192.168.16.0 0.0.0.255 destination 192.168.20.0 0.0.0.255
# 放行12、20发给16的所有回程报文(代价:只要包到16就放行,无法区分是不是回包)
rule 10 permit ip source 192.168.12.0 0.0.0.255 destination 192.168.16.0 0.0.0.255
rule 15 permit ip source 192.168.20.0 0.0.0.255 destination 192.168.16.0 0.0.0.255
# 禁止12<->20互访
rule 20 deny ip source 192.168.12.0 0.0.0.255 destination 192.168.20.0 0.0.0.255
rule 25 deny ip source 192.168.20.0 0.0.0.255 destination 192.168.12.0 0.0.0.255
rule 100 permit ip
缺点:12 里面的主机可以主动给 16 发 UDP 报文(比如直接发 UDP 包到 16 网段端口),ACL 拦不住,安全不符合你原始需求,不建议现场用。
rule 6 permit tcp source 192.168.12.0 0.0.0.255 destination 192.168.16.0 0.0.0.255 established
rule 7 permit tcp source 192.168.20.0 0.0.0.255 destination 192.168.16.0 0.0.0.255 established
rule 8 permit icmp source 192.168.12.0 0.0.0.255 destination 192.168.16.0 0.0.0.255 icmp-type echo-reply
rule 9 permit icmp source 192.168.20.0 0.0.0.255 destination 192.168.16.0 0.0.0.255 icmp-type echo-reply
established仅限 TCP,UDP、DNS、NTP、TFTP、其他协议没有这个标记,没有规则放行回包;display aspf session
display aspf statistics
display packet-filter interface Vlan-interface12 inbound
display packet-filter interface Vlan-interface20 inbound
看会话表:只有 VLAN16 主动发起的流,才会生成双向会话。
暂无评论
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作
举报
×
侵犯我的权益
×
侵犯了我企业的权益
×
抄袭了我的内容
×
原文链接或出处
诽谤我
×
对根叔社区有害的内容
×
不规范转载
×
举报说明
暂无评论