现在我的网络已具备 IPv6 连接,我正在寻找适用于 IOS 的基本 IPv6 防火墙配置。
我们过去可以依靠 NAT 来“隐藏”内部(读取:仅传出连接)机器,但幸运的是我们不再需要 NAT 来为我们完成这项工作。
对于小型内部网络来说,一套合理的 IOS 配置/ACL 是什么样的?
答案1
这是我的想法。虽然我不确定它是否最佳,但它确实有效。欢迎提出建议!
interface IncomingTunnel0
ipv6 traffic-filter exterior-in6 in
ipv6 traffic-filter exterior-out6 out
interface LocalLan0
ipv6 traffic-filter interior-in6 in
ipv6 traffic-filter interior-out6 out
ipv6 access-list exterior-in6
evaluate exterior-reflect sequence 1
permit ipv6 any host EXTERNAL_ROUTER_ADDRESS sequence 10
permit tcp any host INTERNAL_ROUTER_ADDRESS eq 22 sequence 11
permit tcp any host INTERNAL_SERVER_ADDRESS eq 22 sequence 100
permit icmp any any sequence 800
deny ipv6 any any sequence 1000
ipv6 access-list exterior-out6
sequence 10 permit ipv6 MY_ASSIGNED_SUBNET::/48 any reflect exterior-reflect
ipv6 access-list interior-in6
permit ipv6 fe80::/10 any
permit ipv6 INTERNAL_LAN_SUBNET::/64 any
ipv6 access-list interior-out6
permit ipv6 any any
对于那些不熟悉反射访问列表的人来说,这就是您进行状态连接跟踪的方式。换句话说,它允许对这些传出连接的响应返回给您。
答案2
我真的建议使用检查而不是反射访问列表 - 例如:
ipv6 inspect name IPV6FIREWALLINSPECT tcp
ipv6 inspect name IPV6FIREWALLINSPECT udp
ipv6 inspect name IPV6FIREWALLINSPECT icmp
int IncomingTunnel0
ipv6 inspect IPV6FIREWALLINSPECT out
ipv6 traffic-filter IPV6FIREWALL in
ipv6 access-list IPV6FIREWALL
sequence 10 permit (explicit inbound traffic)
sequence 20 deny ipv6 any any
更清晰的配置。sho ipv6 inspect session 将向您显示所有允许返回流量的出站会话。