The present invention provides a firewall that achieves maximum network security
and maximum user convenience. The firewall employs "envoys" that exhibit the security
robustness of prior-art proxies and the transparency and ease-of-use of prior-art
packet filters, combining the best of both worlds. No traffic can pass through
the firewall unless the firewall has established an envoy for that traffic. Both
connection-oriented (e.g., TCP) and connectionless (e.g., UDP-based) services may
be handled using envoys. Establishment of an envoy may be subjected to a myriad
of tests to "qualify" the user, the requested communication, or both. Therefore,
a high level of security may be achieved. The usual added burden of prior-art proxy
systems is avoided in such a way as to achieve fall transparency-the user can use
standard applications and need not even know of the existence of the firewall.
To achieve full transparency, the firewall is configured as two or more sets of
virtual hosts. The firewall is, therefore, "multihomed," each home being independently
configurable. One set of hosts responds to addresses on a first network interface
of the firewall. Another set of hosts responds to addresses on a second network
interface of the firewall. In one aspect, programmable transparency is achieved
by establishing DNS mappings between remote hosts to be accessed through one of
the network interfaces and respective virtual hosts on that interface. In another
aspect, automatic transparency may be achieved using code for dynamically mapping
remote hosts to virtual hosts in accordance with a technique referred to herein
as dynamic DNS, or DDNS.