- The Methodical Approach and the Need for a Methodology
- Firewalls, Security, and Risk Management
- How to Think About Risk Management
- Computer Security Principles
- Firewall Recommendations and Definitions
- Why Do I Need a Firewall?
- Do I Need More Than a Firewall?
- What Kinds of Firewalls Are There?
- The Myth of "Trustworthy" or "Secure" Software
- Know Your Vulnerabilities
- Creating Security Policies
- Defense in Depth
What Kinds of Firewalls Are There?
There are four types of firewalls, which are all available on Linux platforms. These are, in order of complexity and features, packet filtering, application proxies, stateful inspection, and hybrid. There are, as we will explain, a few very specialized firewalls for extremely high security environments, trusted guards, and one way filters. Those types of firewalls are beyond the scope of this book, but if you are interested in learning more about them, we have a section on those types of devices at our website (http://www.gotroot.com).
Packet Filtering: These are the first generation of firewalls, generally what you see on modern routers these days. While useful, they are generally trivial to circumvent an attacker using a number of common attack methods.
Application Proxies: This is the second generation of firewall technology, although it could be said this is actually the first in some ways. An application layer firewall is a proxy server, like the HTTP proxy server, Squid, for example. They also provide a layer of granularity into security policy that you won't find in stateful inspection or packet filtering firewalls.
Stateful Inspection: This would be the third generation of firewall technology, this is related to the packet filtering method, but it extends the capabilities of firewalling by continuing to inspect the packets as they pass through the firewall. Netfilter/iptables is a stateful inspection type firewall.
Netfilter/iptables' main features are
stateful packet filtering (connection tracking)
all kinds of network address translation
flexible and extensible infrastructure
large number of additional features as patches
Hybrids: Hybrids are the fourth generation. They are a combination of the previous three, giving the users more control of the methods they intend to employ to carry out their firewall policy.
Basically, an application proxy is an application that runs on your firewall or gateway that relays traffic between you and your destination. The added advantage here is that the traffic is being sent/received between both endpoints by a third-party application, meaning you can enforce very specific guidelines on the way the traffic is crafted between both points.
As stated previously, there are two other types of firewalls that we are not going to cover in this book. Their use is very specialized, and it's not practical to construct them with iptables or ipchains. The other types fall into two categories, trusted guards and one-way firewalls. Trusted guards basically prevent data, in theory, from moving from one domain to another domain. Basically, they are designed to prevent "Top Secret" data, for instance, from moving into a domain that is only rated "Secret," and they accomplish this with specialized hardware and Multi Level Security (MLS) data labeling techniques. With commodity hardware, such as off-the-shelf PCs, it's not really possible to accomplish true compartmentalized security with trusted guards. You need some specialized hardware to protect the memory on the PC and even in some cases, specialized NIC cards. You can accomplish some less trusted attempts at MLS with commodity hardware if you want to tinker, but with that type of hardware the system will never really be "trusted" in the classical computer science sense of the term. Hence, we will not focus on these security models in this book. Regardless, MLS and its use with what are referred to as Compartmentalized WorkStations (CWS) is a really neat and useful concept. It has its uses, but these technologies are rarely used in the commercial world. And, as we alluded to earlier, the capacity to label the data in a manner that would make trusted guards possible without the use of commercial products has only recently entered the standard Linux kernels, and the hardware to support it is not in high supply for the general public. As it is right now, there is no easy way to set up a trusted guard with Linux, but this is likely to change as demand increases. We are fascinated by the improvements in the Linux kernel in this area and are keeping a very close eye on developments. As before, if this topic interests you, feel free to visit our website (http://www.gotroot.com) and join in the forums there on this topic.
Aside from trusted guards, the other type of firewall we will not cover in this book is known as a "one way" firewall. This kind of firewall involves the use of specialized hardware that literally will only transmit data in one direction. This too is a highly specialized form of a firewall because it is designed to prevent a very unique form of attack through all modern firewalls called a "covert channel attack." Briefly, a "covert channel attack" is where someone behind a firewall is able to send data, or possibly to even construct a full data channel, through a firewall in spite of the firewall's policy. It's beyond the scope of this book to go into more detail on this type of attack, but it's a fascinating issue to consider as it may be relevant to your organization's risk management plan. Again, you can always check http://www.gotroot.com for information on this topic or to ask on our forums for more information.
Both of these types of firewalls are in response to risks that classic firewalls, all four of the types discussed at the first part of this section, cannot adequately protect against. We think it's good to point this out because your firewall can only protect against a finite range of risks. It alone cannot protect against all of the current known threats that networks face.