|
What Are Firewalls and Do I Really Need One?
by Brian McConnell
Security is one of the greatest concerns expressed by businesses which are connecting
their internal Local Area Networks (LANs) to the internet. The internet is a global network of networks,
and because of its underlying design, is inherently insecure. Data is often sent across
the network as clear text (i.e., is not encrypted or scrambled). It is also easy to
impersonate someone else while you are online. While there is presently a great deal
of paranoia about internet security, the good news is that there are some very good
tools available for securing your network against unauthorized intrusion.
This tutorial focuses on the subject of firewalls, and is aimed at end users who
are relatively new to the internet.
A firewall is a device or software application which serves as a flexible barrier
between the computers on your internal network and the outside world
(i.e., the internet). Firewalls apply a set of rules to decide who gets to connect to
which machines and to what services they are authorized to use. When set up
properly, a firewall provides an excellent means for protecting your network and the machines
connected to it.
A firewall's primary purpose is to prevent outside users from accessing machines other
than those set up for public access (i.e., your web server, FTP servers, etc.). They do
this via several different tools:
- Packet Filtering - here the firewall discards data before it ever reaches a particular
machine. For example, you might want to deny access to a specific machine from outside
your LAN. Using packet filtering, you tell the firewall to discard all
packets destined to a specific machine. (See notes on this below.)
- Client Access Lists - here the firewall is given a list of client PCs
(outside IP addresses) which may access machine(s) on your LAN.
- Server Access Lists - here the firewall is given a list of servers which can be
accessed from outside your LAN.
- User Authentication - here the firewall prompts outside users for a user name
and password, and has an opportunity to grant or deny access to services on your network.
- Address Obfuscation - here the firewall masks the IP addresses of your internal
machines and makes them appear to outside users to be on different IP addresses. This
makes it very difficult for hackers to access these machines without knowing their real IP addresses.
IP addresses, ports, and other items
Before going into a detailed description of these techniques, it is first helpful to
explain how the internet addressing system works. There are 2 basic terms to understand
here. Each machine on the internet has an IP address. This is the internet equivalent of a
telephone number. An IP address identifies a specific device, workstation, etc., on the
network. Behind each IP address, you can have several thousand port addresses. A port
address is the internet equivalent of a telephone extension. For example, you might
call 1-800-444-3556 to reach Hello Direct and then extension 8148 to reach Mike in sales. Likewise,
if you connect to www.hellodirect.com on port (extension) 133, you'll be talking to the
web server.
Port addresses are generally used to identify services. For example, a single workstation
may provide many different services. It may be a worldwide web server, e-mail server, IRC
(chat) server, etc. Each service typically listens for incoming requests on a specific
port address. The HTTP protocol (basic building block of the worldwide web) usually
monitors port 80.
This arrangement makes it possible to selectively block access to some services
on a specific machine and not others. This is an important concept which we will
return to shortly.
The majority of the data transmitted across the internet is not encrypted, it
is sent as clear text. This means that if somebody is able to monitor the raw data
coming in and out of your network, they will be able to see quite a bit. The good
news is that most of the data transmitted on the net is "junk" data (i.e., images in
web pages, routine correspondence, etc.). In order to find valuable information, someone
would need to have physical access to your LAN, to your ISP, or a channel through which
most of your data passes. They would also need to screen a lot of data to fetch the
interesting traffic.
Encryption enables you to close this loophole by rendering the data unreadable to
outsiders. Strong forms of encryption, such as Rivest-Shamir-Adleman (RSA) public key encryption, are virtually
unbreakable even to computer scientists with access to supercomputers capable of
cycling through key combinations very rapidly. There are several different types of
encryption in use, ranging from simple, easily cracked substitution algorithms, to
DES, to public key encryption. Even very weak encryption is still very useful as it
prevents casual observers from accidentally stumbling upon useful information. Strong
public key encryption is secure enough for military applications (one of the reasons the
U.S. Government has sought to prevent the export of public key encryption technology).
Currently, encryption is usually employed only on a selective basis (i.e., for handling
secure web orders). In the future, the next generation version of the TCP/IP protocol
(the basic foundation of the internet), will incorporate support for low level encryption
of network transmissions, as well as the authentication of IP addresses (this will make
spoofing, the impersonation of someone else's IP address, more difficult). The available
security technology today is very good, and will soon be in widespread use throughout
the internet.
Packet filtering
Packet filtering is probably the easiest way to secure your internet connection. It lets you
permit certain services to cross your LAN internet connection (i.e.,
e-mail, HTTP/worldwide web, IP phone calls, etc.), while blocking connections to services
such as FTP, TFTP, Telnet, etc. (services which can potentially be used to compromise or
break into a workstation). The general rule of thumb used is to deny access to everything
except for common services such as web access, e-mail, etc., and then allow other types of
traffic to pass through upon request. The basic idea is to start with a restrictive policy,
then expand the list of permitted services as needed. This conservative approach makes
it unlikely that someone will be able to exploit a weakness in a service like FTP.
A typical packet filtering arrangement will permit services such as HTTP (web), SMTP
(e-mail), POP3 (e-mail), and DNS (address name resolution service) to traverse your
firewall, while blocking data bound for other services. For example, there is usually
no reason to allow users to access FTP services on personal workstations, especially
since FTP can be used to access the file system on a computer. So, unless an individual has
a specific need for people to be able to FTP files to and from his/her workstation, it is
best to filter these services. Also, many PC operating systems, UNIX in particular, will
often have undocumented services which run on oddball port addresses. Applying a generic
filter to block access to normally unused ports further reduces the likelihood that someone
will exploit an undocumented security gap in this manner.
One thing to be careful about, if you go overboard with packet filtering, you will block
legitimate as well as illegitimate traffic. Primarily, you will want to block access to
services like FTP, and to undocumented ports, while not restricting access to ports used
for basic TCP/IP services such as worldwide web access, e-mail send/receive services, etc.
Client access lists
Another useful tool for securing your network are client access lists. These allow you
to grant restricted or unrestricted access to all or part of your LAN based on the IP
address of the outside party. This technique has its limitations since it is relatively
easy to spoof (imitate) somebody else's IP address. This is most useful for securing
workstations which do not normally receive requests from outside your LAN, or which
service infrequent sessions from outside your LAN.
Note: IP address filtering gives you a good way to prevent spammers from taking over your
company's mail server. Most internet e-mail servers are designed to accept e-mail from
any e-mail address, to any e-mail address. The service used to deliver e-mail on the internet,
simple mail transfer protocol (SMTP), has essentially no built-in security features, and
so it is very easy to trick somebody else's e-mail server into sending your junk mail
(while making it appear to originate from a third party's network). This is not only
very annoying, but it can be damaging when irate people start blaming you for somebody
else's junk e-mail. Using IP address filtering, you can filter incoming SMTP requests from
problem domains (i.e., cyberpromo.com).
Server access lists
This is a variation of packet filtering. Here you are defining a list of servers
which can be accessed from outside your office. This makes it relatively easy to
declare certain workstations verboten, and even to conceal their existence from the
outside network.
User authentication
User authentication is a helpful tool in environments where it is not practical to
globally block access to specific workstations or services. Telecommuters, for example,
may have a legitimate need to FTP files to and from their machines at the office. Your
network administrator may decide to work from home several days a week.
User authentication comes in both weak and strong forms. The weak form prompts the user
for a user ID and password pair. This information may or may not be encrypted when
transmitted across the internet. The strong form either employs public key encryption,
or uses a key card (handheld LCD card which generates a random series of access codes,
so a different PIN is used to access the network for each session). The latter scheme
is very difficult to break without assistance from insiders.
Address obfuscation
Address obfuscation is another technique for securing your network. This is a great
example of the premise of "security through obscurity." If an intruder has no idea where
a particular resource is located, it will be difficult to compromise. Address obfuscation
does this by altering your computers' IP addresses to appear different than they actually
are to outside users. Inside your LAN, users will see your machines' real IP addresses.
Users outside your LAN will see different IP addresses. By making it difficult for
intruders to obtain the real IP addresses of machines inside your network, you make
it difficult for someone to access your workstations through indirect means (i.e., by
installing a malicious program on your web server which is used to leapfrog into other
machines inside your LAN). This in and of itself is a fairly weak defense, but when used in
combination with these other techniques it makes it even more difficult to compromise
your computers.
Different types of firewalls
Firewalls come in several different forms. Some are standalone appliances which
connect directly to an Ethernet LAN. Some are software toolkits which can be installed
on Windows NT or UNIX workstations. Some are integrated into internet access devices
(i.e., routers).
- Standalone network appliances - standalone firewalls are a good choice if you are
already connected to the internet, and do not want to replace your router, or if you need
a high-capacity firewall. These units typically have 2 Ethernet jacks, one for your
internal LAN connection, one for your external WAN/internet connection.
- Software-based firewalls - these products turn a PC into a firewall. The benefit
of software-based firewalls is that they can be used to convert an existing machine
into a firewall device. Usually, all you need to do is to install a second Ethernet
adapter in a workstation to turn it into a firewall. The only problem with this is
that if the host PC is not set up correctly, it can be compromised. If your firewall
can be compromised, then so can the rest of your network. Only go this route if you
thoroughly understand the networking services offered by the operating system you'll
be installing this on.
- Integrated firewall/router combinations - most router manufacturers now include
firewall capability as a software upgrade. This enables you to get integrated internet
connectivity and security services from a single appliance which connects directly to
your LAN. These devices, since they do not run on top of a PC operating system, are
highly secure when they are set up correctly. This is usually the easiest and most cost-effective way to go.
Do you even need a firewall in the first place?
Chances are, if you are a small business, you may not even need a firewall.
If you are using a dial-up modem connection, or are using an on-demand ISDN
connection to the internet, a firewall is usually not necessary. This is because
your internet connection is only operating when you need it. If your internet connection
is down, then an outsider has no way of connecting to your LAN via the internet, and
so a firewall is unnecessary.
Here's an example to illustrate this point. Let's assume that your office has an
internet access appliance such as Webramp or Netopia. When someone on your LAN needs
to access the internet (i.e., to browse a web page, fetch e-mail, etc.), it brings your
internet connection up, and then drops it once the connection is no longer needed.
This minimizes the cost of your internet connection, and it also makes it very difficult
for an outsider to connect to your computers. Not only must he correctly guess the IP
address of your machine (it often varies from session to session with dial-up and ISDN
connections), but he must also have guessed your user account and password, AND he must
correctly guess exactly when you have an active connection to the internet. If you are an
occasional internet user, and your connection is down most of the time, it will be very
difficult for somebody to compromise your computer if you are using a dial-up connection.
If you have a dedicated internet connection, one which is up 24 hours a day, then putting
a firewall in place is probably a good idea since a hacker could systematically try to
break into your machines in the early morning hours when you are least likely to detect
it. (Most break-ins usually go undetected unless the intruder damages or erases files
from a machine).
Selecting a firewall
I recommend buying a router that has a firewall built into it. This is
usually the most cost-effective solution, is easy to set up and administer, and does
not require the purchase of superfluous hardware. If you already have a router in place,
a stand-alone firewall may also be a good idea, especially now that low-cost turnkey
units are starting to appear. Unless you are an expert in networking software, I generally
don't recommend software-based firewalls.
Most router vendors now offer basic firewall services either as a basic feature or
as an optional upgrade. Ascend, for example, has a firewall upgrade for their Pipeline 50
series of ISDN routers. It only adds $100 or so to the cost of the router, and so it's
a great value compared to buying a standalone appliance.
Some additional security tips
Besides installing a firewall there are a number of simple things you can do which
will further enhance the security of your network. Here are a few examples.
- Put sensitive data on a machine which cannot be accessed via TCP/IP - most PC operating
systems support multiple networking protocols, such as NetBEUI, IPX/SPX, TCP/IP and others.
One technique for sequestering sensitive data is to put it on a machine which has no TCP/IP
connectivity, and instead talks to other machines using a LAN protocol such
as NetBEUI. If your router is programmed to prevent non-TCP/IP data from exiting your LAN,
this makes it very difficult for an outsider to access this machine. If there's no need for
the machine to be networked, you may want to consider isolating the machine altogether if
the data is especially sensitive.
- Disable drive mapping on servers which can be accessed from outside your LAN - many
operating systems allow you to view hard drives on remote machines as local disk drives.
While this is convenient, it is also a security loophole. For example, if your FTP server
can see remote disk drives on other machines as local drives, an outsider can sometimes use
FTP to access those remote drives, as well as the FTP server's own disk. This can be a recipe
for disaster. In general, it is good to limit FTP access anyway, but always make sure drive
mapping is disabled on publicly visible machines.
- Get rid of lightweight operating systems - Windows 3.1 and Windows 95 have pretty
weak security services compared to higher end operating systems like Windows NT and UNIX.
Seriously consider upgrading to a more secure OS on machines where sensitive data or
services may be located. Windows NT is highly rated for its security features. If you
properly utilize them, you can make each workstation very secure, so even if someone does
get past your firewall, they will then have to correctly guess a privileged password on
each workstation (not easy without insider help).
- Disable unnecessary services - most TCP/IP services are relatively harmless even
if they are abused. However, some provide direct access to your computer's console or
to the file system. FTP is one such service. It is used to view and transfer files between
internet hosts. It is a very useful service, but if compromised, someone can potentially
access the entire disk drive of the affected machine. If you don't need FTP on a particular
machine, just disable it. If you do need FTP on a machine, it is a good idea to set up
accounts which can only be used during specific time periods (i.e., deny connections after
normal business hours, disable accounts if more than 3 invalid passwords are given in a
row, etc.).
- Don't use obvious passwords - many people just use their name as a password, this is
not a good idea. The best passwords consist of a combination of letters (upper and
lower case) and numbers. This makes it very difficult to guess a password. For example,
"bingo" would not be a good password since it could be guessed easily by a password
cracking program. "75BinGO" would, on the other hand, be a good password because of
the combination of numbers, lower case, and upper case letters. This will be difficult
to guess, especially if an account is frozen after 3 invalid login attempts.
|
|