Batch of various tiny fixes:
* Replace first Windows occurence with trademarked entity
* Add trademark info for Microsoft Windows and Symantec Ghost.
* Replace "FreeBSD" with &os; and "ports collection" with &ports;,
to keep the capitalization consistent. Also introduce an &os.ports;
entity, which expands to "FreeBSD Ports Collection", to uniformly
refer to the Ports
* Add <emphasis>, <application> and <quote> tags here and there
* Use manpage entities, instead of <literal> for FreeBSD
command-line utility references
* Various minor grammar and syntax nits
This commit is contained in:
parent
f9dd8e24dd
commit
2951ed254b
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=28925
1 changed files with 115 additions and 107 deletions
|
|
@ -5,10 +5,17 @@
|
||||||
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [
|
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [
|
||||||
<!ENTITY % articles.ent PUBLIC "-//FreeBSD//ENTITIES DocBook FreeBSD Articles Entity Set//EN">
|
<!ENTITY % articles.ent PUBLIC "-//FreeBSD//ENTITIES DocBook FreeBSD Articles Entity Set//EN">
|
||||||
%articles.ent;
|
%articles.ent;
|
||||||
|
|
||||||
|
<!ENTITY ports "Ports Collection">
|
||||||
|
<!ENTITY os.ports "&os; &ports;">
|
||||||
|
<!ENTITY frisbee "<application>Frisbee</application>">
|
||||||
|
<!ENTITY ghost "<application>Ghost</application>">
|
||||||
|
<!ENTITY nessus "<application>Nessus</application>">
|
||||||
|
|
||||||
]>
|
]>
|
||||||
|
|
||||||
<article>
|
<article>
|
||||||
<title>Creating a Software Testing Environment Using FreeBSD</title>
|
<title>Creating a Software Testing Environment Using &os;</title>
|
||||||
<articleinfo>
|
<articleinfo>
|
||||||
|
|
||||||
<authorgroup>
|
<authorgroup>
|
||||||
|
|
@ -27,6 +34,8 @@
|
||||||
&tm-attrib.freebsd;
|
&tm-attrib.freebsd;
|
||||||
&tm-attrib.cvsup;
|
&tm-attrib.cvsup;
|
||||||
&tm-attrib.intel;
|
&tm-attrib.intel;
|
||||||
|
&tm-attrib.microsoft;
|
||||||
|
&tm-attrib.symantec;
|
||||||
&tm-attrib.xfree86;
|
&tm-attrib.xfree86;
|
||||||
&tm-attrib.general;
|
&tm-attrib.general;
|
||||||
</legalnotice>
|
</legalnotice>
|
||||||
|
|
@ -42,20 +51,20 @@
|
||||||
<title>Overview</title>
|
<title>Overview</title>
|
||||||
|
|
||||||
<para>From late 2003 until early 2005, I was a tester in an
|
<para>From late 2003 until early 2005, I was a tester in an
|
||||||
all-Windows environment. Although unlikely on the face of it,
|
all-&windows; environment. Although unlikely on the face of it,
|
||||||
FreeBSD became a valuable test tool platform in that context.
|
&os; became a valuable test tool platform in that context.
|
||||||
FreeBSD contains useful and powerful applications for any tester
|
&os; contains useful and powerful applications for any tester
|
||||||
in any environment.</para>
|
in any environment.</para>
|
||||||
|
|
||||||
<para>Unlike Linux, FreeBSD is a single monolithic project rather
|
<para>Unlike Linux, &os; is a single monolithic project, rather
|
||||||
than a collection of disparate parts assembled into a
|
than a collection of disparate parts assembled into a
|
||||||
distribution. And the most attractive part of FreeBSD for a
|
distribution. And the most attractive part of &os; for a
|
||||||
software tester is the FreeBSD ports collection—a very large,
|
software tester is the &os.ports;—a very large,
|
||||||
managed set of software applications with a single simple and
|
managed set of software applications with a single, simple, and
|
||||||
uniform installation procedure.</para>
|
uniform installation procedure.</para>
|
||||||
|
|
||||||
<para>This paper describes several software test tools from the
|
<para>This paper describes several software test tools from the
|
||||||
FreeBSD ports collection that I used to test software and
|
&os.ports; that I used to test software and
|
||||||
systems in an all-Windows environment.</para>
|
systems in an all-Windows environment.</para>
|
||||||
|
|
||||||
</sect1>
|
</sect1>
|
||||||
|
|
@ -66,13 +75,13 @@
|
||||||
<para>Software testing environments are radically more complex
|
<para>Software testing environments are radically more complex
|
||||||
than software development environments. Interconnected systems
|
than software development environments. Interconnected systems
|
||||||
to test, network entities, databases, and filesystems present
|
to test, network entities, databases, and filesystems present
|
||||||
challenges to testers that developers can for the most part mock
|
challenges to testers that developers can, for the most part, mock
|
||||||
out and essentially ignore. Software testers need more tools,
|
out and essentially ignore. Software testers need more tools,
|
||||||
and more complex tools, than do software developers.</para>
|
and more complex tools, than do software developers.</para>
|
||||||
|
|
||||||
<para>On the other hand, software development tools are much more
|
<para>On the other hand, software development tools are much more
|
||||||
highly evolved than software testing tools. There is no Eclipse
|
highly evolved than software testing tools. There is no Eclipse,
|
||||||
or IntelliJ or even Visual Studio aimed at testing. Testers
|
or IntelliJ, or even Visual Studio aimed at testing. Testers
|
||||||
struggle and scratch to find tools appropriate to their test
|
struggle and scratch to find tools appropriate to their test
|
||||||
environments and appropriate to their Systems Under Test (SUTs).</para>
|
environments and appropriate to their Systems Under Test (SUTs).</para>
|
||||||
|
|
||||||
|
|
@ -84,36 +93,36 @@
|
||||||
</sect1>
|
</sect1>
|
||||||
|
|
||||||
<sect1>
|
<sect1>
|
||||||
<title>The FreeBSD Solution</title>
|
<title>The &os; Solution</title>
|
||||||
|
|
||||||
<sect2 id="freebsd-intro">
|
<sect2 id="freebsd-intro">
|
||||||
<title>Introduction</title>
|
<title>Introduction</title>
|
||||||
|
|
||||||
<para>The set of tools available with the FreeBSD Operating
|
<para>The set of tools available with the &os; Operating
|
||||||
System is amazing. The FreeBSD <ulink
|
System is amazing. The &os; <ulink
|
||||||
url="http://www.freebsd.org/ports">ports collection</ulink>
|
url="http://www.freebsd.org/ports">&ports;</ulink>
|
||||||
contains more than thirteen thousand separate applications,
|
contains more than thirteen thousand separate applications,
|
||||||
all of which have a standard installation procedure and
|
all of which have a standard installation procedure and
|
||||||
conform to a set of guidelines that make them reliable without
|
conform to a set of guidelines that make them reliable without
|
||||||
the need to manage dependencies, appropriate versions, and all
|
the need to manage dependencies, appropriate versions, and all
|
||||||
of the other problems that affect even the most well-managed
|
of the other problems that affect even the most well-managed
|
||||||
Linux distribution or the various versions of Microsoft
|
Linux distribution or the various versions of Microsoft
|
||||||
Windows. The monolithic nature of FreeBSD and the FreeBSD
|
Windows. The monolithic nature of &os; and the &os.ports;
|
||||||
ports collection removes much of the trouble of integrating
|
removes much of the trouble of integrating
|
||||||
tools with the test environment, regardless of the OS under
|
tools with the test environment, regardless of the OS under
|
||||||
which the SUT runs. FreeBSD is a highly evolved server
|
which the SUT runs. &os; is a highly evolved server
|
||||||
environment, and contains so many reliable applications, that
|
environment, and contains so many reliable applications, that
|
||||||
every tester should consider adding a FreeBSD machine (or
|
every tester should consider adding a &os; machine (or
|
||||||
several) to their test environment.</para>
|
several) to their test environment.</para>
|
||||||
|
|
||||||
<para>Of course, all of the applications available in the
|
<para>Of course, all of the applications available in the
|
||||||
FreeBSD ports collection will not be appropriate for any single
|
&os.ports; will not be appropriate for any single
|
||||||
test environment. Some of the obvious choices for software and
|
test environment. Some of the obvious choices for software and
|
||||||
systems testing are the six hundred or so system utilities,
|
systems testing are the six hundred or so system utilities,
|
||||||
the more than one thousand network tools, and the fifty-odd
|
the more than one thousand network tools, and the fifty-odd
|
||||||
benchmarking tools. Whether your test environment is Windows,
|
benchmarking tools. Whether your test environment is Windows,
|
||||||
UNIX, Linux, Mac OS, FreeBSD itself, or some combination of
|
UNIX, Linux, Mac OS, &os; itself, or some combination of
|
||||||
any of them, FreeBSD and the FreeBSD ports collection is a
|
any of them, &os; and the &os.ports; is a
|
||||||
great place to look first.</para>
|
great place to look first.</para>
|
||||||
|
|
||||||
</sect2>
|
</sect2>
|
||||||
|
|
@ -121,50 +130,49 @@
|
||||||
<sect2 id="freebsd-ports">
|
<sect2 id="freebsd-ports">
|
||||||
<title>How To Use The Ports System</title>
|
<title>How To Use The Ports System</title>
|
||||||
|
|
||||||
<para>Installing an application from the FreeBSD ports
|
<para>Installing an application from the &os.ports; is a simple matter of: </para>
|
||||||
collection is a simple matter of: </para>
|
|
||||||
|
|
||||||
<screen>&prompt.root; <userinput>cd /usr/ports/foo</userinput>
|
<screen>&prompt.root; <userinput>cd /usr/ports/foo</userinput>
|
||||||
&prompt.root; <userinput>make install</userinput></screen>
|
&prompt.root; <userinput>make install</userinput></screen>
|
||||||
|
|
||||||
<para>and the system does the rest. It reports build status and
|
<para>and the system does the rest. It reports build status and
|
||||||
test status, and installs all the relevant documentation as
|
test status, and installs all the relevant documentation as
|
||||||
well. This aspect of FreeBSD is very attractive to a tester,
|
well. This aspect of &os; is very attractive to a tester,
|
||||||
who typically is pressed for time!</para>
|
who typically is pressed for time!</para>
|
||||||
</sect2>
|
</sect2>
|
||||||
|
|
||||||
<sect2 id="freebsd-testing">
|
<sect2 id="freebsd-testing">
|
||||||
<title>FreeBSD For Testing</title>
|
<title>&os; For Testing</title>
|
||||||
|
|
||||||
<para>The test environment should be more stable than the SUT.
|
<para>The test environment should be more stable than the SUT.
|
||||||
Once the tester decides to use the tools available on FreeBSD,
|
Once the tester decides to use the tools available on &os;,
|
||||||
FreeBSD's long record of reliability makes it an easy choice
|
&os;'s long record of reliability makes it an easy choice
|
||||||
for a test tools platform.</para>
|
for a test tools platform.</para>
|
||||||
|
|
||||||
<para>My own introduction to FreeBSD occurred when I was hired
|
<para>My own introduction to &os; occurred when I was hired
|
||||||
by a major vendor of large-scale network security video
|
by a major vendor of large-scale network security video
|
||||||
services to be their network-testing person in an all-Windows
|
services to be their network-testing person in an all-Windows
|
||||||
environment. My first assignment was to replace the obsolete,
|
environment. My first assignment was to replace the obsolete,
|
||||||
buggy, disk imaging system. I chose to do that with an Open
|
buggy, disk imaging system. I chose to do that with an Open
|
||||||
Source disk imaging system called <ulink
|
Source disk imaging system called <ulink
|
||||||
url="http://www.cs.utah.edu/flux/papers/frisbee-usenix03-base.html">Frisbee</ulink>
|
url="http://www.cs.utah.edu/flux/papers/frisbee-usenix03-base.html">&frisbee;</ulink>
|
||||||
which was implemented originally on FreeBSD. I built the
|
which was implemented originally on &os;. I built the
|
||||||
system—a feature-for-feature replacement for an expensive
|
system—a feature-for-feature replacement for an expensive
|
||||||
proprietary system—but we never actually used it in our
|
proprietary system—but we never actually used it in our
|
||||||
production system.</para>
|
production system.</para>
|
||||||
|
|
||||||
<para>In the meantime, I had discovered the FreeBSD ports
|
<para>In the meantime, I had discovered the &os.ports;
|
||||||
collection and started to use some of those tools for testing;
|
and started to use some of those tools for testing;
|
||||||
and I had discovered the power of disk imaging with Frisbee,
|
and I had discovered the power of disk imaging with &frisbee;,
|
||||||
especially for smoke testing and installation testing; and
|
especially for smoke testing and installation testing; and
|
||||||
FreeBSD became a permanent part of my test lab. The test lab
|
&os; became a permanent part of my test lab. The test lab
|
||||||
I built, and the FreeBSD systems I created still exist, and
|
I built, and the &os; systems I created still exist, and
|
||||||
still provide value to the testers there.</para>
|
still provide value to the testers there.</para>
|
||||||
|
|
||||||
</sect2>
|
</sect2>
|
||||||
|
|
||||||
<sect2 id="freebsd-collab">
|
<sect2 id="freebsd-collab">
|
||||||
<title>FreeBSD For Collaboration: Twiki</title>
|
<title>&os; For Collaboration: Twiki</title>
|
||||||
|
|
||||||
<para>A wiki is a simple set of web pages to allow many users to
|
<para>A wiki is a simple set of web pages to allow many users to
|
||||||
share information and collaborate on any sort of documents.
|
share information and collaborate on any sort of documents.
|
||||||
|
|
@ -199,8 +207,8 @@
|
||||||
itself handled version control for such updates.</para>
|
itself handled version control for such updates.</para>
|
||||||
|
|
||||||
<para>As with all of the examples in this paper, installing
|
<para>As with all of the examples in this paper, installing
|
||||||
Twiki on FreeBSD is fairly simple. It takes just a few
|
Twiki on &os; is fairly simple. It takes just a few
|
||||||
minutes on a FreeBSD system. However, if you want to use Twiki
|
minutes on a &os; system. However, if you want to use Twiki
|
||||||
on a Microsoft Windows platform, I strongly suggest you read
|
on a Microsoft Windows platform, I strongly suggest you read
|
||||||
the Twiki documentation extremely carefully. I know someone
|
the Twiki documentation extremely carefully. I know someone
|
||||||
who installed Twiki on Windows, and it took him several days.
|
who installed Twiki on Windows, and it took him several days.
|
||||||
|
|
@ -208,27 +216,27 @@
|
||||||
also deep knowledge of Cygwin and Perl.</para>
|
also deep knowledge of Cygwin and Perl.</para>
|
||||||
|
|
||||||
<para>Furthermore, at one point in the project I had to migrate
|
<para>Furthermore, at one point in the project I had to migrate
|
||||||
my wiki from a machine running FreeBSD 4.8 to one running
|
my wiki from a machine running &os; 4.8 to one running
|
||||||
FreeBSD 5.3. The migration consisted merely of installing
|
&os; 5.3. The migration consisted merely of installing
|
||||||
Twiki on FreeBSD 5.3; using <command>tar</command> on the FreeBSD 4.8
|
Twiki on &os; 5.3; using <command>tar</command> on the &os; 4.8
|
||||||
machine to gather all of the Twiki data files specific to my
|
machine to gather all of the Twiki data files specific to my
|
||||||
testing; FTPing the gathered files to the new FreeBSD 5.3
|
testing; FTPing the gathered files to the new &os; 5.3
|
||||||
machine; and untarring the file. The complete set of Twiki
|
machine; and untarring the file. The complete set of Twiki
|
||||||
documents migrated with no issues or problems at all. That is
|
documents migrated with no issues or problems at all. That is
|
||||||
the power of a unified system like FreeBSD.</para>
|
the power of a unified system like &os;.</para>
|
||||||
</sect2>
|
</sect2>
|
||||||
|
|
||||||
<sect2 id="freebsd-frisbee">
|
<sect2 id="freebsd-frisbee">
|
||||||
<title>FreeBSD For Disk Imaging: Frisbee</title>
|
<title>&os; For Disk Imaging: Frisbee</title>
|
||||||
|
|
||||||
<para>A disk imaging system is a mechanism for saving and
|
<para>A disk imaging system is a mechanism for saving and
|
||||||
restoring all of the data on a physical disk. The most
|
restoring all of the data on a physical disk. The most
|
||||||
popular commercial system for doing this is probably the
|
popular commercial system for doing this is probably the
|
||||||
product Ghost from Symantec.</para>
|
product &ghost;™ from Symantec.</para>
|
||||||
|
|
||||||
<para>The Frisbee enterprise disk imaging system mentioned above
|
<para>The &frisbee; enterprise disk imaging system mentioned above
|
||||||
had a lot of features I never implemented in the test lab.
|
had a lot of features I never implemented in the test lab.
|
||||||
Using Frisbee and an Open Source tool called PXELINUX, I was
|
Using &frisbee; and an Open Source tool called <application>PXELINUX</application>, I was
|
||||||
able to:</para>
|
able to:</para>
|
||||||
|
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
|
|
@ -239,37 +247,37 @@
|
||||||
<listitem><simpara>Make a set of restore CDs for the client</simpara></listitem>
|
<listitem><simpara>Make a set of restore CDs for the client</simpara></listitem>
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
|
|
||||||
<para>In the test lab, I only needed to boot from the Frisbee
|
<para>In the test lab, I only needed to boot from the &frisbee; CD,
|
||||||
CD, make an image, or lay down an image on the client machine.
|
make an image, or lay down an image on the client machine.
|
||||||
Both Frisbee and proprietary imaging systems allow the user to
|
Both &frisbee; and proprietary imaging systems allow the user to
|
||||||
image individual drives on the client, but I never had a need
|
image individual drives on the client, but I never had a need
|
||||||
to do this.</para>
|
to do this.</para>
|
||||||
|
|
||||||
<para>Installation testing was a large part of my duties at the
|
<para>Installation testing was a large part of my duties at the
|
||||||
company where I used FreeBSD. To do this testing, I would
|
company where I used &os;. To do this testing, I would
|
||||||
typically use Frisbee to make an image of a machine containing
|
typically use &frisbee; to make an image of a machine containing
|
||||||
only a Windows OS, install the SUT, and run a smoke test. The
|
only a Windows OS, install the SUT, and run a smoke test. The
|
||||||
smoke test typically left the test machine in a very bad
|
smoke test typically left the test machine in a very bad
|
||||||
state. But instead of having to painstakingly clean up the
|
state. But instead of having to painstakingly clean up the
|
||||||
mess left by the failed installation, I simply re-imaged the
|
mess left by the failed installation, I simply re-imaged the
|
||||||
machine in question with the bare OS image and started over.
|
machine in question with the bare OS image and started over.
|
||||||
A typical re-image containing only the Windows OS and a few
|
A typical re-image containing only the Windows OS and a few
|
||||||
test tools took less than three minutes. Using Frisbee, we
|
test tools took less than three minutes. Using &frisbee;, we
|
||||||
could run smoke tests on about six builds per day; before
|
could run smoke tests on about six builds per day; before
|
||||||
Frisbee, we could run smoke tests on about three builds per
|
&frisbee;, we could run smoke tests on about three builds per
|
||||||
week.</para>
|
week.</para>
|
||||||
|
|
||||||
<para>Of course, Ghost or other proprietary tools also image
|
<para>Of course, &ghost; or other proprietary tools also image
|
||||||
machines quickly under these circumstances: once you buy the
|
machines quickly under these circumstances: once you buy the
|
||||||
tool, license the software, install it on an appropriate
|
tool, license the software, install it on an appropriate
|
||||||
server, and configure it properly. I prefer Frisbee to Ghost
|
server, and configure it properly. I prefer &frisbee; to &ghost;
|
||||||
because: Frisbee is marginally faster; Frisbee is very easy to
|
because: &frisbee; is marginally faster; &frisbee; is very easy to
|
||||||
install on FreeBSD; and Frisbee is very efficient. Adding a
|
install on &os;; and &frisbee; is very efficient. Adding a
|
||||||
couple of small Perl scripts to the normal Frisbee
|
couple of small Perl scripts to the normal &frisbee;
|
||||||
distribution gave me an imaging environment tailored for the
|
distribution gave me an imaging environment tailored for the
|
||||||
test lab.</para>
|
test lab.</para>
|
||||||
|
|
||||||
<para>I also used Frisbee to preserve the state of a machine
|
<para>I also used &frisbee; to preserve the state of a machine
|
||||||
after I had uncovered particularly complex defects. That is,
|
after I had uncovered particularly complex defects. That is,
|
||||||
if it took a large effort (many steps and/or a long duration
|
if it took a large effort (many steps and/or a long duration
|
||||||
of time) to demonstrate a defect, I could make an image of the
|
of time) to demonstrate a defect, I could make an image of the
|
||||||
|
|
@ -279,64 +287,64 @@
|
||||||
</sect2>
|
</sect2>
|
||||||
|
|
||||||
<sect2 id="freebsd-nessus">
|
<sect2 id="freebsd-nessus">
|
||||||
<title>FreeBSD Security Testing: Nessus</title>
|
<title>&os; Security Testing: &nessus;</title>
|
||||||
|
|
||||||
<para>Whenever you have more than one entity on a network, and
|
<para>Whenever you have more than one entity on a network, and
|
||||||
whenever you expose a server to the wider Internet, security
|
whenever you expose a server to the wider Internet, security
|
||||||
of the machine itself is always a concern. <ulink
|
of the machine itself is always a concern. <ulink
|
||||||
url="http://www.nessus.org">Nessus</ulink> is an Open Source
|
url="http://www.nessus.org">&nessus;</ulink> is an Open Source
|
||||||
remote vulnerability scanner for security and penetration
|
remote vulnerability scanner for security and penetration
|
||||||
testing that consistently is rated among the top products of
|
testing that consistently is rated among the top products of
|
||||||
its type throughout the security industry.</para>
|
its type throughout the security industry.</para>
|
||||||
|
|
||||||
<para>Nessus probes a remote machine over the network for
|
<para>&nessus; probes a remote machine over the network for
|
||||||
security vulnerabilities. It does a port scan, finds which
|
security vulnerabilities. It does a port scan, finds which
|
||||||
ports are open, and investigates the software that has those
|
ports are open, and investigates the software that has those
|
||||||
ports open for a huge number of security risks, for all major
|
ports open for a huge number of security risks, for all major
|
||||||
OSs. It generates detailed reports in a number of formats
|
OSs. It generates detailed reports in a number of formats
|
||||||
that anyone can understand. The number of security probes
|
that anyone can understand. The number of security probes
|
||||||
available in the default installation of Nessus is very large,
|
available in the default installation of &nessus; is very large,
|
||||||
but sophisticated security and penetration testers take
|
but sophisticated security and penetration testers take
|
||||||
advantage of NASL, the Nessus Attack Scripting Language, to
|
advantage of NASL, the &nessus; Attack Scripting Language, to
|
||||||
craft their own attacks using Nessus' available features.</para>
|
craft their own attacks using &nessus;' available features.</para>
|
||||||
|
|
||||||
<para>Of interest is that, while Nessus is a free download for
|
<para>Of interest is that, while &nessus; is a free download for
|
||||||
UNIX-like systems (and is available in the ports collection of
|
UNIX-like systems (and is available in the &ports; of
|
||||||
FreeBSD), it is available on Windows only as a commercial
|
&os;), it is available on Windows only as a commercial
|
||||||
product from a company called Tenable. The Tenable product is
|
product from a company called <emphasis>Tenable</emphasis>. The Tenable product is
|
||||||
NeWT, Nessus on Windows Technology.</para>
|
<application>NeWT</application>, <quote>Nessus on Windows Technology</quote>.</para>
|
||||||
</sect2>
|
</sect2>
|
||||||
|
|
||||||
<sect2 id="freebsd-network">
|
<sect2 id="freebsd-network">
|
||||||
<title>FreeBSD Network Tools</title>
|
<title>&os; Network Tools</title>
|
||||||
|
|
||||||
<para>FreeBSD is most widely used as a robust server platform.
|
<para>&os; is most widely used as a robust server platform.
|
||||||
It follows, then, that tools related to network analysis and
|
It follows, then, that tools related to network analysis and
|
||||||
performance will be highly evolved on FreeBSD. Here is a
|
performance will be highly evolved on &os;. Here is a
|
||||||
brief description of network diagnostic tools that I found
|
brief description of network diagnostic tools that I found
|
||||||
invaluable in testing in a networked environment.</para>
|
invaluable in testing in a networked environment.</para>
|
||||||
|
|
||||||
<para>From the name, one would assume that <ulink
|
<para>From the name, one would assume that <ulink
|
||||||
url="http://www.ntop.org">ntop</ulink> emulates the functions of
|
url="http://www.ntop.org">ntop</ulink> emulates the functions of
|
||||||
the UNIX <command>top</command> command, but for the network
|
the UNIX &man.top.1; command, but for the network
|
||||||
rather than for the local machine. Perhaps the first version
|
rather than for the local machine. Perhaps the first version
|
||||||
did; currently, ntop is capable of providing detailed
|
did; currently, <application>ntop</application> is capable of providing detailed
|
||||||
information about a huge number of hosts and their status and
|
information about a huge number of hosts and their status and
|
||||||
activities on the network.</para>
|
activities on the network.</para>
|
||||||
|
|
||||||
<para>For testing, two features I found very powerful: at a high
|
<para>For testing, two features I found very powerful: at a high
|
||||||
level, <command>ntop</command> shows the amount of network
|
level, <application>ntop</application> shows the amount of network
|
||||||
traffic on the entire network segment minute-by-minute,
|
traffic on the entire network segment minute-by-minute,
|
||||||
hour-by-hour, and day-by-day in a graphical format. Also,
|
hour-by-hour, and day-by-day in a graphical format. Also,
|
||||||
ntop shows information about recent connections between
|
<application>ntop</application> shows information about recent connections between
|
||||||
individual hosts on the network.</para>
|
individual hosts on the network.</para>
|
||||||
|
|
||||||
<para>It is easy to see traffic trends on the network as they
|
<para>It is easy to see traffic trends on the network as they
|
||||||
are occurring; also, if something anomalous appears, ntop
|
are occurring; also, if something anomalous appears, <application>ntop</application>
|
||||||
records detailed information about network connections between
|
records detailed information about network connections between
|
||||||
hosts, including the ports over which the connection happened.
|
hosts, including the ports over which the connection happened.
|
||||||
This was critically important when analyzing software
|
This was critically important when analyzing software
|
||||||
issues. If ntop showed a period of time for which traffic was
|
issues. If <application>ntop</application> showed a period of time for which traffic was
|
||||||
particularly high, I would find out which host was generating
|
particularly high, I would find out which host was generating
|
||||||
the traffic. I would examine the software running on that
|
the traffic. I would examine the software running on that
|
||||||
host, over that port. Often it was a new build with a
|
host, over that port. Often it was a new build with a
|
||||||
|
|
@ -345,22 +353,22 @@
|
||||||
<para><ulink url="http://ettercap.sourceforge.net">Ettercap</ulink> is
|
<para><ulink url="http://ettercap.sourceforge.net">Ettercap</ulink> is
|
||||||
a tool for ARP poisoning which can also decipher passwords on
|
a tool for ARP poisoning which can also decipher passwords on
|
||||||
the fly and corrupt IP traffic by means of a Man In The Middle
|
the fly and corrupt IP traffic by means of a Man In The Middle
|
||||||
(MITM) attack. However, I used ettercap as a performance tool.
|
(MITM) attack. However, I used <application>Ettercap</application> as a performance tool.
|
||||||
In my test labs, all of my FreeBSD machines ran on discarded
|
In my test labs, all of my &os; machines ran on discarded
|
||||||
hardware, Pentium II processors. I found that when I used
|
hardware, Pentium II processors. I found that when I used
|
||||||
ettercap to sniff traffic between two hosts, the lack of
|
<application>Ettercap</application> to sniff traffic between two hosts, the lack of
|
||||||
processing power caused ettercap on the slow MITM machine to
|
processing power caused <application>Ettercap</application> on the slow MITM machine to
|
||||||
start dropping packets, making it look to the client machine
|
start dropping packets, making it look to the client machine
|
||||||
in the SUT as if there was interference or other trouble on
|
in the SUT as if there was interference or other trouble on
|
||||||
the network. And by varying the load on the FreeBSD machine,
|
the network. And by varying the load on the &os; machine,
|
||||||
I could in fact control the number of packets being dropped:
|
I could in fact control the number of packets being dropped:
|
||||||
running ettercap and the UNIX <command>yes</command> utility
|
running <application>Ettercap</application> and the UNIX <command>yes</command> utility
|
||||||
caused 100% packet loss.</para>
|
caused 100% packet loss.</para>
|
||||||
|
|
||||||
<para>This was my most creative use of a FreeBSD tool for
|
<para>This was my most creative use of a &os; tool for
|
||||||
testing. In a more straightforward application, any time a
|
testing. In a more straightforward application, any time a
|
||||||
tester needs to eavesdrop on traffic between two hosts on a
|
tester needs to eavesdrop on traffic between two hosts on a
|
||||||
network, ettercap is an excellent choice because of its power
|
network, <application>Ettercap</application> is an excellent choice because of its power
|
||||||
and ease of use.</para>
|
and ease of use.</para>
|
||||||
|
|
||||||
<para>Perl gets a special mention here because Perl's network
|
<para>Perl gets a special mention here because Perl's network
|
||||||
|
|
@ -368,13 +376,13 @@
|
||||||
languages. Perl <literal>Net::*</literal> modules and
|
languages. Perl <literal>Net::*</literal> modules and
|
||||||
<literal>IO::Socket::*</literal> modules are robust and
|
<literal>IO::Socket::*</literal> modules are robust and
|
||||||
powerful—but they often fail to compile on Windows. It is
|
powerful—but they often fail to compile on Windows. It is
|
||||||
the ease of use of Perl's network utilities on FreeBSD that
|
the ease of use of Perl's network utilities on &os; that
|
||||||
gets Perl the mention in this section.</para>
|
gets Perl the mention in this section.</para>
|
||||||
|
|
||||||
<para>I use Perl's network utilities to impersonate network
|
<para>I use Perl's network utilities to impersonate network
|
||||||
clients and servers for test purposes. On one occasion, I was
|
clients and servers for test purposes. On one occasion, I was
|
||||||
required to test software that was a client to an interface on
|
required to test software that was a client to an interface on
|
||||||
the New York Stock Exchange. Unfortunately, the NYSE test
|
the <emphasis>New York Stock Exchange</emphasis>. Unfortunately, the NYSE test
|
||||||
server was down about nine days out of ten. I wrote a little
|
server was down about nine days out of ten. I wrote a little
|
||||||
network server in Perl to emulate simple functions of the NYSE
|
network server in Perl to emulate simple functions of the NYSE
|
||||||
server in order to test the client software.</para>
|
server in order to test the client software.</para>
|
||||||
|
|
@ -385,7 +393,7 @@
|
||||||
|
|
||||||
<para>I have also used Perl to validate the output from a server
|
<para>I have also used Perl to validate the output from a server
|
||||||
sending to a multicast address. I wrote a simple Perl
|
sending to a multicast address. I wrote a simple Perl
|
||||||
multicast client on FreeBSD to monitor the traffic on a
|
multicast client on &os; to monitor the traffic on a
|
||||||
multicast address. Lincoln Stein's excellent
|
multicast address. Lincoln Stein's excellent
|
||||||
<literal>IO::Socket::Multicast</literal> module made it easy.
|
<literal>IO::Socket::Multicast</literal> module made it easy.
|
||||||
(Note: I never got <literal>IO::Socket::Multicast</literal> to
|
(Note: I never got <literal>IO::Socket::Multicast</literal> to
|
||||||
|
|
@ -397,12 +405,12 @@
|
||||||
<sect1 id="conclusion">
|
<sect1 id="conclusion">
|
||||||
<title>Conclusion</title>
|
<title>Conclusion</title>
|
||||||
|
|
||||||
<para>I used tools from the FreeBSD ports collection in four
|
<para>I used tools from the &os.ports; in four
|
||||||
areas: in the network, where the operating system has very
|
areas: in the network, where the operating system has very
|
||||||
little impact on how software behaves; for remote security
|
little impact on how software behaves; for remote security
|
||||||
testing and performance testing in order to manipulate remote
|
testing and performance testing in order to manipulate remote
|
||||||
machines over the network regardless of the operating system;
|
machines over the network, regardless of the operating system;
|
||||||
for disk imaging of Windows, Linux, and FreeBSD machines; and on
|
for disk imaging of Windows, Linux, and &os; machines; and on
|
||||||
the webserver, where Twiki was my collaboration tool of choice.</para>
|
the webserver, where Twiki was my collaboration tool of choice.</para>
|
||||||
|
|
||||||
<para>Because the installation procedure for all of these tools is
|
<para>Because the installation procedure for all of these tools is
|
||||||
|
|
@ -412,32 +420,32 @@
|
||||||
information located in just a few places. I kept all of my
|
information located in just a few places. I kept all of my
|
||||||
potentially dangerous security tools on a single machine, which
|
potentially dangerous security tools on a single machine, which
|
||||||
made my presence on the network tolerable to the company's
|
made my presence on the network tolerable to the company's
|
||||||
network management staff. And the compatibility between FreeBSD
|
network management staff. And the compatibility between &os;
|
||||||
versions made it fairly simple to upgrade and to manage multiple
|
versions made it fairly simple to upgrade and to manage multiple
|
||||||
FreeBSD machines. And of course, I could rely on the
|
&os; machines. And of course, I could rely on the
|
||||||
correctness of my test results, because the system itself is so
|
correctness of my test results, because the system itself is so
|
||||||
reliable.</para>
|
reliable.</para>
|
||||||
|
|
||||||
<para>I have tried using Linux in a similar way, but my experience
|
<para>I have tried using Linux in a similar way, but my experience
|
||||||
is that package management quickly becomes tedious if not
|
is that package management quickly becomes tedious if not
|
||||||
overwhelming. The FreeBSD ports collection handled that for me.
|
overwhelming. The &os.ports; handled that for me.
|
||||||
And many of these tools are simply not available on Microsoft
|
And many of these tools are simply not available on Microsoft
|
||||||
Windows. And when they (or their equivalents) are available,
|
Windows. And when they (or their equivalents) are available,
|
||||||
their cost, both financial and in terms of overhead, was simply
|
their cost, both financial and in terms of overhead, was simply
|
||||||
too high.</para>
|
too high.</para>
|
||||||
|
|
||||||
<para>FreeBSD's simple installation procedures and robust ports
|
<para>&os;'s simple installation procedures and robust &ports;
|
||||||
collection makes it easy to experiment with the huge number of
|
makes it easy to experiment with the huge number of
|
||||||
tools available. I often find myself browsing the ports
|
tools available. I often find myself browsing the &ports;
|
||||||
collection looking for interesting applications to install, just
|
looking for interesting applications to install, just
|
||||||
to see how they work. (I found ettercap by browsing the ports
|
to see how they work. (I found <application>Ettercap</application> by browsing the &ports;,
|
||||||
collection, a tool that became very useful very quickly.) It
|
a tool that became very useful very quickly.) It
|
||||||
became clear that the more tools I used on FreeBSD, the more
|
became clear that the more tools I used on &os;, the more
|
||||||
economical became the management of those tools.</para>
|
economical became the management of those tools.</para>
|
||||||
|
|
||||||
<para>The next time you need to reach into your toolbox for some
|
<para>The next time you need to reach into your toolbox for some
|
||||||
sophisticated, reliable, and powerful testing tools, I hope you
|
sophisticated, reliable, and powerful testing tools, I hope you
|
||||||
find them in FreeBSD.</para>
|
find them in &os;.</para>
|
||||||
</sect1>
|
</sect1>
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue