About the FAQ ============= This FAQ is not an advertisement or endorsement for any product, company, or consultant. The maintainer welcomes input and comments on the contents of this FAQ. Comments related to the FAQ should be addressed to Fwalls-FAQ@tis.com. Contents: ========= 1: What is a network firewall? 2: Why would I want a firewall? 3: What can a firewall protect against? 4: What can't a firewall protect against? 5: What are good sources of print information on firewalls? 6: Where can I get more information on firewalls on the network? 7: What are some commercial products or consultants who sell/service firewalls? 8: What are some of the basic design decisions in a firewall? 9: What are proxy servers and how do they work? 10: What are some cheap packet screening tools? 11: What are some reasonable filtering rules for my Cisco? 12: How do I make DNS work with a firewall? 13: How do I make FTP work through my firewall? 14: How do I make Telnet work through my firewall? 15: How do I make Finger and whois work through my firewall? 16: How do I make gopher, archie, and other services work through my firewall? 17: What are the issues about X-Window through a firewall? 18: Glossary of firewall related terms ------------------------------ Date: Thu Mar 3 12:35:59 1994 From: Fwalls-FAQ@tis.com Subject: 1: What is a network firewall? A firewall is any one of several ways of protecting one network from another untrusted network. The actual mechanism whereby this is accomplished varies widely, but in principle, the firewall can be thought of as a pair of mechanisms: one which exists to block traffic, and the other which exists to permit traffic. Some firewalls place a greater emphasis on blocking traffic, while others emphasize permitting traffic. ------------------------------ Date: Thu Mar 3 12:36:15 1994 From: Fwalls-FAQ@tis.com Subject: 2: Why would I want a firewall? The Internet, like any other society, is plagued with the kind of jerks who enjoy the electronic equivalent of writing on other people's walls with spraypaint, tearing their mailboxes off, or just sitting in the street blowing their car horns. Some people try to get real work done over the Internet, and others have sensitive or proprietary data they must protect. A firewall's purpose is to keep the jerks out of your network while still letting you get your job done. Many traditional-style corporations and data centers have computing security policies and practices that must be adhered to. In a case where a company's policies dictate how data must be protected, a firewall is very important, since it is the embodiment of the corporate policy. Frequently, the hardest part of hooking to the Internet, if you're a large company, is not justifying the expense or effort, but convincing management that it's safe to do so. A firewall provides not only real security - it often plays an important role as a security blanket for management. Lastly, a firewall can act as your corporate "ambassador" to the Internet. Many corporations use their firewall systems as a place to store public information about corporate products and services, files to download, bug-fixes, and so forth. Several of these systems have become important parts of the Internet service structure (e.g.: UUnet.uu.net, gatekeeper.dec.com) and have reflected well on their corporate sponsors. ------------------------------ Date: Thu Mar 3 13:24:13 1994 From: Fwalls-FAQ@tis.com Subject: 3: What can a firewall protect against? Some firewalls permit only Email traffic through them, thereby protecting the network against any attacks other than attacks against the Email service. Other firewalls provide less strict protections, and block services that are known to be problems. Generally, firewalls are configured to protect against unauthenticated interactive logins from the "outside" world. This, more than anything, helps prevent vandals from logging into machines on your network. More elaborate firewalls block traffic from the outside to the inside, but permit users on the inside to communicate freely with the outside. The firewall can protect you against any type of network borne attack if you unplug it. Firewalls are also important since they can provide a single "choke point" where security and audit can be imposed. Unlike in a situation where a computer system is being attacked by someone dialing in with a modem, the firewall can act as an effective "phone tap" and tracing tool. ------------------------------ Date: Thu Mar 3 14:02:07 1994 From: Fwalls-FAQ@tis.com Subject: 4: What can't a firewall protect against? Firewalls can't protect against attacks that don't go through the firewall. Many corporations that connect to the Internet are very concerned about proprietary data leaking out of the company through that route. Unfortunately for those concerned, a magnetic tape can just as effectively be used to export data. Firewall policies must be realistic, and reflect the level of security in the entire network. For example, a site with top secret or classified data doesn't need a firewall at all: they shouldn't be hooking up to the internet in the first place, or the systems with the really secret data should be isolated from the rest of the corporate network. Firewalls can't protect very well against things like viruses. There are too many ways of encoding binary files for transfer over networks, and too many different architectures and viruses to try to search for them all. In other words, a firewall cannot replace security- consciousness on the part of your users. In general, a firewall cannot protect against a data-driven attack -- attacks in which something is mailed or copied to an internal host where it is then executed. This form of attack has occurred in the past against various versions of Sendmail. ------------------------------ Date: Thu Mar 24 13:46:32 1994 From: Fwalls-FAQ@tis.com Subject: 5: What are good sources of print information on firewalls? There are several books that touch on firewalls. The best known are: Cheswick and Bellovin, "Firewalls and Internet Security: Repelling the Wily Hacker" Addison-Wesley, ??, 1994 Garfinkel and Spafford, "Practical UNIX Security" O'Reilly and associates (discusses primarily host security) Related references are: Comer and Stevens, "Internetworking with TCP/IP" Prentice Hall, 1991 Curry, "UNIX System Security" Addison Wesley, 1992 ------------------------------ Date: Thu Mar 3 13:48:14 1994 From: Fwalls-FAQ@tis.com Subject: 6: Where can I get more information on firewalls on the network? Ftp.greatcircle.com - Firewalls mailing list archives. Directory: pub/firewalls Ftp.tis.com - Internet firewall toolkit and papers. Directory: pub/firewalls Research.att.com - Papers on firewalls and breakins. Directory: dist/internet_security Net.Tamu.edu - Texas AMU security tools. Directory: pub/security/TAMU The internet firewalls mailing list is a forum for firewall administrators and implementors. To subscribe to Firewalls, send "subscribe firewalls" in the body of a message (not on the "Subject:" line) to "Majordomo@GreatCircle.COM". Archives of past Firewalls postings are available for anonymous FTP from ftp.greatcircle.com in pub/firewalls/archive ------------------------------ Date: Thu Mar 3 12:38:10 1994 From: Fwalls-FAQ@tis.com Subject: 7: What are some commercial products or consultants who sell/service firewalls? We feel this topic is too sensitive to address in a FAQ, as well as being difficult to maintain an up-to-date list. ------------------------------ Date: Thu Mar 3 12:38:31 1994 From: Fwalls-FAQ@tis.com Subject: 8: What are some of the basic design decisions in a firewall? There are a number of basic design issues that should be addressed by the lucky person who has been tasked with the responsibility of designing, specifying, and implementing or overseeing the installation of a firewall. The first and most important is reflects the policy of how your company or organization wants to operate the system: is the firewall in place to explicitly deny all services except those critical to the mission of connecting to the net, or is the firewall in place to provide a metered and audited method of "queuing" access in a non-threatening manner. There are degrees of paranoia between these positions; the final stance of your firewall may be more the result of a political than an engineering decision. The second is: what level of monitoring, redundancy, and control do you want? Having established the acceptable risk level (e.g.: how paranoid you are) by resolving the first issue, you can form a checklist of what should be monitored, permitted, and denied. In other words, you start by figuring out your overall objectives, and then combine a needs analysis with a risk assessment, and sort the almost always conflicting requirements out into a laundry list that specifies what you plan to implement. The third issue is financial. We can't address this one here in anything but vague terms, but it's important to try to quantify any proposed solutions in terms of how much it will cost either to buy or to implement. For example, a complete firewall product may cost between $100,000 at the high end, and free at the low end. The free option, of doing some fancy configuring on a Cisco or similar router will cost nothing but staff time and cups of coffee. Implementing a high end firewall from scratch might cost several man- months, which may equate to $30,000 worth of staff salary and benefits. The systems management overhead is also a consideration. Building a home-brew is fine, but it's important to build it so that it doesn't require constant and expensive fiddling-with. It's important, in other words, to evaluate firewalls not only in terms of what they cost now, but continuing costs such as support. On the technical side, there are a couple of decisions to make, based on the fact that for all practical purposes what we are talking about is a static traffic routing service placed between the network service provider's router and your internal network. The traffic routing service may be implemented at an IP level via something like screening rules in a router, or at an application level via proxy gateways and services. The decision to make here is whether to place an exposed stripped-down machine on the outside network to run proxy services for telnet, ftp, news, etc., or whether to set up a screening router as a filter, permitting communication with one or more internal machines. There are plusses and minuses to both approaches, with the proxy machine providing a greater level of audit and potentially security in return for increased cost in configuration and a decrease in the level of service that may be provided (since a proxy needs to be developed for each desired service). The old trade-off between ease-of-use and security comes back to haunt us with a vengeance. ------------------------------ Date: Thu Mar 10 16:56:35 1994 From: Fwalls-FAQ@tis.com Subject: 9: What are proxy servers and how do they work? A proxy server (sometimes referred to as an application gateway or forwarder) is an application that mediates traffic between a protected network and the Internet. Proxies are often used instead of router-based traffic controls, to prevent traffic from passing directly between networks. Many proxies contain extra logging or support for user authentication. Since proxies must "understand" the application protocol being used, they can also implement protocol specific security (e.g., an FTP proxy might be configurable to permit incoming FTP and block outgoing FTP). Proxy servers are application specific. In order to support a new protocol via a proxy, a proxy must be developed for it. SOCKS is a generic proxy system that can be compiled into a client-side application to make it work through a firewall. Its advantage is that it's easy to use, but it doesn't support the addition of authentication hooks or protocol specific logging. For more information on SOCKS, see ftp.nec.com: /pub/security/socks.cstc Users are encouraged to check the file "FILES" for a description of the directory's contents. ------------------------------ Date: Mon Jun 6 10:07:36 1994 From: Fwalls-FAQ@tis.com Subject: 10: What are some cheap packet screening tools? The Texas AMU security tools include software for implementing screening routers (FTP net.tamu.edu, pub/security/TAMU). Karlbridge is a PC-based screening router kit (FTP nisca.acs.ohio-state.edu, pub/kbridge). A version of the Digital Equipment Corporation "screend" kernel screening software is available for BSD/386, NetBSD, and BSDI. Many commercial routers support screening of various forms. ------------------------------ Date: Mon Jun 6 10:05:51 1994 From: Fwalls-FAQ@tis.com Subject: 11: What are some reasonable filtering rules for my Cisco? The following example shows one possible configuration for using the Cisco as a filtering router. It is a sample that shows the implementation of a specific policy. Your policy will undoubtedly vary. In this example, a company has Class B network address of 128.88.0.0 and is using 8 bits for subnets. The Internet connection is on the "red" subnet 128.88.254.0. All other subnets are considered trusted or "blue" subnets. +---------------+ +---------------+ | IP provider | | Gateway | | 128.88.254.1 | | 128.88.254.2 | +------+--------+ +------+--------+ | "Red" net ----------+-----------------+---------------------------------- | +------+--------+ | Cisco | | 128.88.254.3 | |...............| | 128.88.1.1 | +---------------+ | ----------------------------+---------------------------------- | "Blue" net +------+--------+ | mail router | | 128.88.1.2 | +---------------+ Keeping the following points in mind will help in understanding the configuration fragments: 1. Ciscos applying filtering to output packets only. 2. Rules are tested in order and stop when the first match is found. 3. There is an implicit deny rule at the end of an access list that denies everything. The example below concentrates on the filtering parts of a configuration. Line numbers and formatting have been added for readability. The policy to be implemented is: - Anything not explicitly allowed is denied - Traffic between the external gateway machine and blue net hosts is allowed. - permit services orginating from the blue net - allow a range of ports for FTP data connections back to the blue net. 1 no ip source-route 2 ! 3 interface Ethernet 0 4 ip address 128.88.1.1 255.255.255.0 5 ip access-group 10 6 ! 7 interface Ethernet 1 8 ip address 128.88.254.3 255.255.255.0 9 ip access-group 11 10 ! 11 access-list 10 permit ip 128.88.254.2 0.0.0.0 128.88.0.0 0.0.255.255 12 access-list 10 deny tcp 0.0.0.0 255.255.255.255 128.88.0.0 0.0.255.255 lt 1025 13 access-list 10 deny tcp 0.0.0.0 255.255.255.255 128.88.0.0 0.0.255.255 gt 4999 14 access-list 10 permit tcp 0.0.0.0 255.255.255.255 128.88.0.0 0.0.255.255 15 ! 16 access-list 11 permit ip 128.88.0.0 0.0.255.255 128.88.254.2 0.0.0.0 17 access-list 11 deny tcp 128.88.0.0 0.0.255.255 0.0.0.0 255.255.255.255 eq 25 18 access-list 11 permit tcp 128.88.0.0 0.0.255.255 0.0.0.0 255.255.255.255 Lines Explanation ===== =========== 1 Although this is not a filtering rule, it is good to include here. 5 Ethernet 0 is on the red net. Extended access list 10 will be applied to output on this interface. You can also think of output from the red net as input on the blue net. 9 Ethernet 1 is on the blue net. Extended access list 11 will be applied to output on this interface. 11 Allow all traffic from the gateway machine to the blue net. 12-14 Allow connections originating from the red net that come in between ports 1024 and 5000. This is to allow ftp data connections back into the blue net. 5000 was chosen as the upper limit as it is where OpenView starts. Note: again, we are assuming this is acceptable for the given policy. There is no way to tell a Cisco to filter on source port. Newer versions of the Cisco firmware will apparently support source port filtering. Since the rules are tested until the first match we must use this rather obtuse syntax. 16 Allow all blue net packets to the gateway machine. 17 Deny SMTP (tcp port 25) mail to the red net. 18 Allow all other TCP traffic to the red net. Cisco.Com has an archive of examples for building firewalls using Cisco routers, available for FTP from: ftp.cisco.com in /pub/acl-examples.tar.Z ------------------------------ Date: Thu Mar 3 13:52:47 1994 From: Fwalls-FAQ@tis.com Subject: 12: How do I make DNS work with a firewall? Some organizations want to hide DNS names from the outside. Many experts disagree as to whether or not hiding DNS names is worthwhile, but if site/corporate policy mandates hiding domain names, this is one approach that is known to work. This approach is one of many, and is useful for organizations that wish to hide their host names from the Internet. The success of this approach lies on the fact that DNS clients on a machine don't have to talk to a DNS server on that same machine. In other words, just because there's a DNS server on a machine, there's nothing wrong with (and there are often advantages to) redirecting that machine's DNS client activity to a DNS server on another machine. First, you set up a DNS server on the bastion host that the outside world can talk to. You set this server up so that it claims to be authoritative for your domains. In fact, all this server knows is what you want the outside world to know; the names and addresses of your gateways, your wildcard MX records, and so forth. This is the "public" server. Then, you set up a DNS server on an internal machine. This server also claims to be authoritiative for your domains; unlike the public server, this one is telling the truth. This is your "normal" nameserver, into which you put all your "normal" DNS stuff. You also set this server up to forward queries that it can't resolve to the public server (using a "forwarders" line in /etc/named.boot on a UNIX machine, for example). Finally, you set up all your DNS clients (the /etc/resolv.conf file on a UNIX box, for instance), including the ones on the machine with the public server, to use the internal server. This is the key. An internal client asking about an internal host asks the internal server, and gets an answer; an internal client asking about an external host asks the internal server, which asks the public server, which asks the Internet, and the answer is relayed back. A client on the public server works just the same way. An external client, however, asking about an internal host gets back the "restricted" answer from the public server. This approach assumes that there's a packet filtering firewall between these two servers that will allow them to talk DNS to each other, but otherwise restricts DNS between other hosts. Another trick that's useful in this scheme is to employ wildcard PTR records in your IN-ADDR.ARPA domains. These cause an an address-to-name lookup for any of your non- public hosts to return something like "unknown.YOUR.DOMAIN" rather than an error. This satisfies anonymous FTP sites like ftp.uu.net that insist on having a name for the machines they talk to. This may fail when talking to sites that do a DNS cross-check in which the host name is matched against its address and vice versa. Note that hiding names in the DNS doesn't address the problem of host names "leaking" out in mail headers, news articles, etc. ------------------------------ Date: Thu Mar 3 21:14:24 1994 From: Fwalls-FAQ@tis.com Subject: 13: How do I make FTP work through my firewall? Generally, making FTP work through the firewall is done either using a proxy server or by permitting incoming connections to the network at a restricted port range, and otherwise restricting incoming connections using something like "established" screening rules. The FTP client is then modified to bind the data port to a port within that range. This entails being able to modify the FTP client application on internal hosts. A different approach is to use the FTP "PASV" option to indicate that the remote FTP server should permit the client to initiate connections. The PASV approach assumes that the FTP server on the remote system supports that operation. (See RFC1579 for more information) Other sites prefer to build client versions of the FTP program that are linked against a SOCKS library. ------------------------------ Date: Mon Mar 7 13:00:08 1994 From: Fwalls-FAQ@tis.com Subject: 14: How do I make Telnet work through my firewall? Telnet is generally supported either by using an application proxy, or by simply configuring a router to permit outgoing connections using something like the "established" screening rules. Application proxies could be in the form of a standalone proxy running on the bastion host, or in the form of a SOCKS server and a modified client. ------------------------------ Date: Thu Mar 3 14:16:12 1994 From: Fwalls-FAQ@tis.com Subject: 15: How do I make Finger and whois work through my firewall? Permit connections to the finger port from only trusted machines, which can issue finger requests in the form of: finger user@host.domain@firewall This approach only works with the standard UNIX version of finger. Some finger servers do not permit user@host@host fingering. Many sites block inbound finger requests for a variety of reasons, foremost being past security bugs in the finger server (the Morris internet worm made these bugs famous) and the risk of proprietary or sensitive information being revealed in user's finger information. ------------------------------ Date: Thu Mar 3 12:40:54 1994 From: Fwalls-FAQ@tis.com Subject: 16: How do I make gopher, archie, and other services work through my firewall? This is still an area of active research in the firewall community. Many firewall administrators support these services only through the character-cell interface provided by telnet. Unfortunately, many of the sexier network services make connections to multiple remote systems, without transmitting any inline information that a proxy could take advantage of, and often the newer information retrieval systems transmit data to local hosts and disks with only minimal security. There are risks that (for example) WAIS clients may request uuencoded files, which decode and modify security related files in the user's home directory. At present, there is a lot of head-scratching going on between the firewall administrators who are responsible for guarding the network perimeters, and the users, who want to take advantage of these very sexy and admittedly useful tools. ------------------------------ Date: Mon Jun 6 10:12:03 1994 From: Fwalls-FAQ@tis.com Subject: 17: What are the issues about X-Window through a firewall? X Windows is a very useful system, but unfortunately has some major security flaws. Remote systems that can gain or spoof access to a workstation's X display can monitor keystrokes that a user enters, download copies of the contents of their windows, etc. While attempts have been made to overcome them (E.g., MIT "Magic Cookie") it is still entirely too easy for an attacker to interfere with a user's X display. Most firewalls block all X traffic. Some permit X traffic through application proxies such as the DEC CRL X proxy (FTP crl.dec.com). ------------------------------ Date: Thu Mar 24 14:05:27 1994 From: Fwalls-FAQ@tis.com Subject: 18: Glossary of firewall related terms Host-based Firewall: A firewall where the security is implemented in software running on a general-purpose computer of some sort. Security in host-based firewalls is generally at the application level, rather than at a network level. Router-based Firewall: A firewall where the security is implemented using screening routers as the primary means of protecting the network. Screening Router: A router that is used to implement part of the security of a firewall by configuring it to selectively permit or deny traffic at a network level. Bastion Host: A host system that is a "strong point" in the network's security perimeter. Bastion hosts should be configured to be particularly resistant to attack. In a host-based firewall, the bastion host is the platform on which the firewall software is run. Bastion hosts are also referred to as "gateway hosts." Dual-Homed Gateway: A firewall consisting of a bastion host with 2 network interfaces, one of which is connected to the protected network, the other of which is connected to the Internet. IP traffic forwarding is usually disabled, restricting all traffic between the two networks to whatever passes through some kind of application proxy. Application Proxy: An application that forwards application traffic through a firewall. Proxies tend to be specific to the protocol they are designed to forward, and may provide increased access control or audit. Screened Subnet: A firewall architecture in which a "sand box" or "demilitarized zone" network is set up between the protected network and the Internet, with traffic between the protected network and the Internet blocked. Conceptually, this is similar to a dual-homed gateway, except that an entire network, rather than a single host is reachable from the outside. Contributors: ------------- mjr@tis.com - Marcus Ranum, Trusted Information Systems leibowa@wl.com - Allen Leibowitz, Warner Lambert Inc. brent@greatcircle.com - Brent Chapman, Great Circle Associates bdboyle@erenj.com - Brian Boyle, Exxon Research