A
firewall is a device (usually a computer running a specially written
or modified operating system) that isolates an organization's
internal network from the Internet at large, allowing specific
connections to pass and blocking others. Ideally, firewalls are
configured so that all outside connections to an internal network go
through relatively few well-monitored locations. In so doing,
firewalls are part of an organization's overall security
strategy.
Unfortunately, many organizations have seized upon firewall
technology as their sole security strategy. We have seen
organizations that realize they have serious security problems on
their internal networks鈥攁nd then attempt to "solve"
this problem by simply using a firewall to block external access.
Because firewalls are frequently misused, we are ambivalent about
them. We have too often seen firewalls as a substitute for real
problem fixing. And because many attacks come from disgruntled or
dishonest employees, and not from outsiders, firewalls divert
attention from the real problems of network and host vulnerabilities,
poor planning, and lack of organizational policies. Thus, firewalls
often improve security only a small amount and, in the process, give
their owners a false sense of security.
There are some real situations in which to use firewalls. One is that
some organizations must use older "legacy systems" that cannot be
secured: a firewall can be used to control access to these systems.
(Such firewalls should probably be used to control all access to
these systems, rather than merely access from outside the
organization.) Another reason to use a firewall is that it is much
more difficult to track down an attacker who comes from outside a
network than one who comes from inside.
Thus, a firewall should only be used to gain additional security that
works in conjunction with internal controls鈥攁nd never as a
replacement for them.
If
your organization uses a firewall to protect its internal network
from external attacks, you have a number of choices of where to
locate your web server: