Access control lists (ACLs)
Access Control Lists (ACLs) use NP6 offloading to drop IPv4 or IPv6 packets at the physical network interface before the packets are analyzed by the CPU. On a busy appliance this can really help the performance. This feature is available on FortiGates with NP6 processors and is not supported by FortiGates with NP6Lite processors.
The ACL feature is available only on FortiGates with NP6-accelerated interfaces. ACL checking is one of the first things that happens to the packet and checking is done by the NP6 processor. The result is very efficient protection that does not use CPU or memory resources.
Use the following command to configure IPv4 ACL lists:
config firewall acl
edit 0
set status enable
set interface <interface-name>
set srcaddr <firewall-address>
set dstaddr <firewall-address>
set service <firewall-service>
end
Use the following command to configure IPv6 ACL lists:
config firewall acl6
edit 0
set status enable
set interface <interface-name>
set srcaddr <firewall-address6>
set dstaddr <firewall-address6>
set service <firewall-service>
end
Where:
<interface-name>
is the interface on which to apply the ACL. There is a hardware limitation that needs to be taken into account. The ACL is a Layer 2 function and is offloaded to the ISF hardware, therefore no CPU resources are used in the processing of the ACL. It is handled by the inside switch chip which can do hardware acceleration, increasing the performance of the FortiGate. The ACL function is only supported on switch fabric driven interfaces.
<firewall-address> <firewall-address6>
can be any of the address types used by the FortiGate, including address ranges. The traffic is blocked not on an either or basis of these addresses but the combination of the two, so that they both have to be correct for the traffic to be denied. To block all of the traffic from a specific address all you have to do is make the destination address ALL
.
Because the blocking takes place at the interface based on the information in the packet header and before any processing such as NAT can take place, a slightly different approach may be required. For instance, if you are trying to protect a VIP which has an external address of x.x.x.x and is forwarded to an internal address of y.y.y.y, the destination address that should be used is x.x.x.x, because that is the address that will be in the packet's header when it hits the incoming interface.
<firewall-service>
the firewall service to block. Use ALL
to block all services.