CORE software : netl(8)

table of content

NAME

netl - customizable network logger and sniffer

SYNOPSIS

netl [options] ['config rule'] [...]

DESCRIPTION

netl is a customizable low level network logger.

netl can be configured to look for particular TCP, UDP or ICMP packets, or can be setup to look for generic IP packets or even raw ethernet frames.

netl's TCP filters allow individual SYNs and ACKs (or any combination of flags) to be logged, or dumped into a file for later perusal. the companion program neta (1) is used to disassemble those packets in a human readable form. typically, when a packet is dumped, it is sent into /usr/local/lib/netl/dump, which should be readable only to root.

netl is customizable and extendable. version 1.02 introduces a highly modular design, which allows you to write your own low level filters and action modules in c. for more information see the netl_module (1) man page.

netl deals with low level packets and is not concerned with source or destination addresses. by default, these fields in a IP packet are not checked, so netl can be used as a sniffer, in order to examine packets which are caught by the interface, but not necessarily intended for your machine. sniffers are legitimate software, so long as you don't misuse them. DO NOT MISUSE netl , IT IS FORBIDDEN BY THE AUTHOR.

netl can be configured in one of three possible ways. the first, and most common is through a configuration file. see netl.conf (5) for specific details on the format of that file. the second is by specifying a rule on the command line. in this case, the configuration file will not be read, and only rules specified on the command line will be used. this is typically useful for debugging netl and constructing new rules for testing. the -z option is suggested in this case. the final method of configuring netl is to write a filter or output module your self. this is by far the most efficient, but also the most time consuming, as such modules must be written in C. see the netl_module (1) man page for details.

OPTIONS

all boolean options can be followed by a + or - to turn the value on or off (respectively). the default is to turn the option on, even if the default value is also on.

-f filename , --file filename

use an alternative config file. if this option is not specified, then /etc/netl.conf shall be used.

-z , --foreground , --background

run netl in the foreground, and send output to stdout.

-o filename , --tee filename

when used with -z, this option sends output to filename as well as stdout.

-r , --resolve , --dont-resolve

resolve IP numbers into fully qualified internet addresses, when logging packets. by default this is on.

-d , --debug

print out configuration and quit.

-h , --help

print out usage and quit.

-i module , --input module

use module as the input module. by default, the module default is used (which should be a symbolic link to the appropriate module on your architecture).

-L dir , --lib-dir dir

specify an alternate module directory. by default, /usr/local/lib/netl is used.

--generate-c

generate a netl module in c format which can then be compiled by gcc. typically, this is done through the netl compiler, netlcc (1) .

--output-name filename

when generating a c file (via that --generate-c option), this option specifies the c file name. this is generally invoked by netlcc (1) .

--stdout

combination of --generate-c and --output-name which sends the C code to stdout.

--dump-dir directory

specify a directory to put dumped datagrams into. this is by default /usr/local/lib/netl/dump

-6

use experimental IPv6 filters. netl has special IPv6 filters which it uses when this option is invoked. netl will still filter IPv4 packets correctly. see netl.conf (5) for more information.

PORTABILITY

an older version of netl reportedly dumps core on sparc linux. i do not have access to this platform so i have no idea why. if someone could help me out in this area i would appreciate it.

netl should work on any linux platform. however i've only been able to test it on intel and alpha linux. i have made consideration of the possibility that the platform netl is compiled on may not in fact be little endian. the big endian code is actually simpler and leads me to think big endian hardware is better for networking--but i have no bid endian hardware to test this on.

netl probably will not work on any other unix platform with out a lot of work. if you are successful in porting netl to other platforms, please let me know what you did and i can add the appropriate code to my netl source. what you will need to do, is create an input module for your platform. take a look at in/stub.c for a stub module. the rest of the code is pretty good portable ANSI C code.

i have attempted porting netl to Windows 32, but have failed miserably. i have never in my life encountered an operating system which was more programmer hostile in my life. i have experience with VMS mind you.

CREDITS

tyler parsons

i couldn't have done this program without the networking knowledge of tyler parsons. even after that, his alpha/beta testing has been extremely useful in making netl what it is today.

gordon lyon

fellow computer science student, and handy dandy beta tester.

jeff thompson

early versions of netl were heavily derived from a program by jeff thompson which didn't even quite work right. i had to debug and correct it. when i got deeper in to the problem i discovered that his `synlogger' (as it was called) was highly specialized and didn't have to be. netl was thus born.

graham the ollis

my name is graham the ollis, i'm a computer science/math major at the university of arizona. or private contractor working as CORE software. if you have anything relevant or non-relevant to say about netl then i would certainly like to hear from you. especially if you have improvements for netl.

SEE ALSO

netl (8) , netl.conf (5) , netlcc (1) , netl_install (1) , netl_module (1) , neta (1) , hwpassive (8) , hwlookup (1) , dcp (1) and xd (1)

BUGS

there are almost certainly bugs, please report them to me. send bugs and bug fixes to netl@netl.org. the netl home page is at http://www.netl.org,which should contain up to date information on netl .

i have attempted to write pretty readable documentation, however, i'm not really the best technically writer. if you are, maybe we could colaborate?

COPYING

Copyright 1996, 1997, 1999 Graham THE Ollis

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

AUTHOR

Graham THE Ollis

----------------------------------------------------------------------

Contact Information

You can contact the netl team at netl@netl.org.

----------------------------------------------------------------------
[ Tarquin Hill | CORE | netl ]
----------------------------------------------------------------------
ollisg (netl@netl.org)
(c) 1999 CORE software international