| Questions and Answers
 
Bjorn Satdeva 
Well, yet again an attack from the cracker community
has made the 
news. Toward the end of January, the New York Times
ran an 
article that was picked up by many other newspapers.
The story told 
of a "new" kind of attack which left firewalls
virtually defenseless. 
However, this "news" is really "same
old, same old," 
since this kind of attack has been known for a long
time. Robert T. 
Morris wrote a paper about it back in 1985, and Steve
Bellovin wrote 
about it in 1989 (this paper is available from many
places, including 
the COAST security archives via anonymous ftp from coast.cs.purdue.edu,
as /pub/doc/authentication/Steven_Bellovin_TCP_IP.ps.Z).
In 
other words, this kind of attack has been possible for
over ten years, 
but a very recent increase in the number of attacks
is the reason 
for the CERT (CA-95:01, January 23, 1995: "IP Spoofing
Attacks 
and Hijacked Terminal Connections") and CIAC advisories
(CIAC 
Advisory F-08: "IP Address Spoofing and Hijacked
Session"). 
As mentioned above, the newspaper article reported that
many firewalls 
are defenseless against these attacks. In reality, any
well-designed 
firewall will not be vulnerable; unfortunately, however,
many sites 
are connected to the Internet through either homegrown,
inadequate 
firewalls or, in many cases, no firewall at all. Such
sites are vulnerable 
to many kinds of attacks, but might not know that their
security has 
been breached. 
The primary attack uses IP sequence number spoofing,
in combination 
with fake source addresses in the packets. Unfortunately,
the CERT 
advisory was very vague and somewhat misleading, in
that it made many 
people think that the problem was related to source
routing (another 
can of worms waiting on the sidelines). It would have
been very useful 
if the CERT advisory had given a clear description of
the problem; 
on the other hand, in a country where suing each other
is the favorite 
pastime, it is difficult to fault them for being careful. 
In any case, a firewall which completely blocks any
packet for the 
shell port (514) appears to be safe from this specific
kind of attack. 
A firewall which can block all packets to or from the
internal networks 
will be better. The best firewall design for withstanding
this kind 
of attack is probably one based on a combination of
routers and a 
bastion host with application proxies, such as SOCKS
or fwtk. 
[Editor's note: See Chris Hare's "Network Construction:
Using 
a Firewall" on page 8 of this issue for an extended
overview of 
firewalls.] 
Enough about security for now (even though we really
never get enough). 
The next system administration conference is coming
up in April, this 
time the System Administration, Networking and Security
conference 
(SANS). The conference takes place in Washington, DC,
April 24-29. 
Since I have been receiving more e-mail about conferences
and the 
related tutorials than about anything else I address
in this column, 
I have included a short description of the SANS tutorials
in the sidebar. 
For more information about the SANS conference, call
719-599-4303. 
 Our file server has six disk drives all connected
to 
one SCSI controller. Now our hardware support person
has told me that 
I should not attach that many drives to a single controller.
Is he 
right? 
 Depending on the usage pattern of your machine, he
might 
be. In my experience, about four active disk drives
on a SCSI bus 
appear to occupy the bus full time. More active drives
than that, 
and the bus starts to be a bottleneck. The keyword here
is "active." 
If, for example, you use one or more drives to keep
old sources around 
for reference and those drives are rarely accessed,
then they will 
not have much effect on the performance of the SCSI
bus. Based on 
the information above, it sounds like a second controller
may give 
you a better overall performance. However, you will
also need to look 
at the other components of the system, as you will need
that information 
to evaluate if the bottleneck is truly where you think
it is. For 
example, if your CPU is also maxed out, or if it does
not have enough 
memory (both can be checked with vmstat), then adding
the 
second controller will have little or no effect. 
 I work at a small site, where we get our electronic
mail 
over UUCP. I recently read about a utility which allows
sites such 
as ours to send and receive mail, using SMTP across
a UUCP link. What 
kind of software is needed to accomplish this, and where
can I get 
it? 
 What you are referring to is known as Batched SMTP
or 
BSMTP. Using this strategy, e-mail is queued up via
the standard SMTP 
command language, but instead of connecting to the remote
host over 
TCP, commands and data are stored into a text file,
which is then 
queued up for transmission with UUCP. The trick is that
the remote 
site must be able to receive and understand the e-mail
in this format. 
If you are using smail3 (which in my opinion is the
best mailer 
for a UUCP site), you are halfway there, since it already
supports 
BSMTP. However, if the remote site does not run smail
or does 
not support the BSMTP program (which can receive batched
SMTP mail), 
you are out of luck. I recommend that you implement
BSMTP, as it provides 
a much better mail transfer protocol than native UUCP.
UUCP will still 
provide the underlying transport mechanism, but it will
no longer 
be involved in the e-mail address resolution. Gone will
be the bang-addresses 
and the munged e-mail headers. 
 I have been told that ftp is difficult to handle 
in a firewall. Why is that the case? 
 The person who told you this was probably thinking
of 
how ftp uses both a control connection and a data connection,
and how this can create problems for router-based firewalls.
To understand 
this requires looking at how ftp transfers files. 
The control connection is established first, in the
usual manner. 
The server listens to the well-known port for ftp  (21).
When 
the client wants to connect to the server, it will connect
to this 
port. This connection will stay up for the duration
of the ftp 
session, independent of whatever commands are executed. 
Each time a file is to be transferred between the two
machines, a 
data connection will be opened, and the file will be
transferred through 
this connection. The problem is that the client chooses
a random port 
to use for the data transfer. It then listens to the
chosen port, 
and also sends that port number to the server, via the
control connection. 
The server then connects to that port for the duration
of the transfer. 
The problem, with respect to firewalls, is that you
do not know which 
port will be used. Proxy-based firewalls do not have
this problem, 
because the proxy software understands the underlying
protocol. However, 
a firewall which depends heavily on filtering routers
may have such 
problems, even though the filtering capabilities of
the routers are 
being increased all the time. 
 You have previously described how to set up a split
name 
server, using one name server on the firewall and one
name server 
on the inside. We use NIS internally, and I would like
to avoid having 
an inside name server. Is there a way to do this? 
 If your internal hosts need to be able to resolve the
names and addresses of hosts on the Internet, you will
have to bite 
the bullet, and either convert to using the name server,
or set up 
a DNS tunnel for NIS (which is now much easier than
it was a few years 
ago). However, if your firewall is of a type (as, for
example, the 
TIS FIrewall tool kit) where the inside hosts connect
to the firewall 
machine, which in turn connects to the Internet, you
have a reasonable 
way out. 
You'll need to acquire a version of the resolver which
will also use 
/etc/hosts for host name lookup (this version is know
as resolv+), 
and use it when you compile and link the software on
the firewall 
bastion host, which talks to the machines on the inside.
The resolver 
will then use the values in /etc/hosts to identify the
machines. 
The disadvantage, of course, is that you need to keep
the /etc/hosts 
file on the bastion host up-to-date. In my opinion,
you are better 
off converting to DNS internally. This way you only
need to maintain 
the data on your internal primary name server. You can,
of course, 
use the DNS-to-NIS tunnel, but this is a one-way street,
so if you 
do use that solution, you will need to maintain both
the name server 
and the NIS map.  
 
 About the Author
 
Bjorn Satdeva is the president of /sys/admin, inc.,
a consulting 
firm which specializes in large installation system
administration. 
Bjorn is also co-founder and former president of Bay-LISA,
a San Francisco 
Bay Area user's group for system administrators of large
sites. Bjorn 
can be contacted at /sys/admin, inc., 2787 Moorpark
Ave., San Jose, 
CA 95128; electronically at bjorn@sysadmin.com; or by
phone 
at (408) 241-3111. 
 
 
 |