This is useful if you do not want external users to access a particular host or service
within your site. Much of the complexity comes from the fact that
you want to allow different kinds of access to different external users,
ranging from the general public, to business partners, to remotely located
members of your organization. A firewall may also impose restrictions
on outgoing traffic to prevent certain attacks and to limit losses if an
adversary succeeds in getting access inside the firewall.