Теперь, когда у меня есть IPv6-подключение к моей сети, я ищу базовую конфигурацию брандмауэра IPv6 для IOS.
Раньше мы могли полагаться на NAT, чтобы «скрыть» внутренние (читай: только исходящие соединения) машины, но, к счастью, у нас больше нет NAT, чтобы выполнять эту работу за нас.
Каков разумный набор конфигураций / списков контроля доступа IOS для небольшой внутренней сети?
Вот что я придумал. Это работает, хотя я не уверен, оптимально ли это. Предложения приветствуются!
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
Для тех из вас, кто не знаком с рефлексивными списками доступа, это способ отслеживания соединений с отслеживанием состояния. Другими словами, это то, что позволяет ответам на эти исходящие соединения возвращаться к вам.
Я бы действительно рекомендовал использовать инспекцию вместо рефлексивных списков доступа - например:
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 покажет вам все исходящие сеансы, для которых разрешен обратный трафик.