REJECT patch


From kadlec@blackhole.kfki.hu Mon Sep 17 10:17:31 2001
Date: Wed, 10 May 2000 22:43:34 +0200 (CEST)
From: Jozsef Kadlecsik 
To: Toth Csaba 
Cc: Multiple recipients of list NETFILTER 
Subject: Re: router

Hello,

On Wed, 10 May 2000, Toth Csaba wrote:

> Many people said: "we are talking about firewalls/packet filters but not
> routers"
> 
> I think a linux packet filter is a router box too in most cases!!

But even in that case, it is primarily a firewall and not a router:
side effect.

IMHO, the job for a router is to make all effort to pass the packets to
the right direction. If it fails for some reasons it may drop packets 
and/or may (must?) notify the sender about it by sending back proper ICMP
messages.

However the job for a firewall is to strictly *controll* the traffic
according to the security requirements of the site. To do it properly, it
must drop packets, it must alter packets (NAT, etc.) and do whatever is
appropriate to enforce the security requirements. At dropping packets and
aborting connections, it must do it as efficiently as possible - thus
some of us argue for an option to REJECT with RST.

By the way, in some cases the current REJECT mode (send back an ICMP port
unreachable packet) is equal to DROP, i.e. practically hasn't got the
desired effect. 

In February I tested how a couple of OS react when receiving different
kind of TCP connection rejections. The tests were very simple: telnet from
the given OS and watch wether the telnet session is aborted at once (with
a proper or not so proper error message) or it waits for a timeout at
retrying opening the connection. 

The results were as follows:

Reject with	net unr.    host unr.    proto unr.    port unr.    TCP RST

Tested OS:
Linux 2.x.x	abort 	    abort        abort         abort        abort 
FreeBSD 3.3	abort       abort        abort         abort        abort 
HP-UX 9.01	abort       abort        abort         abort        abort 
ULTRIX 4.3/4.4	abort 	    abort        abort         abort        abort 
Solaris 2.6/7	ignore      ignore       abort         abort        abort 
Windows 98/NT	ignore      ignore       abort         ignore       abort 
AIX 4.2/4.3	ignore      ignore       ignore        ignore       abort 
IRIX 6.2	ignore      ignore       ignore        ignore       abort 
OSF1 4.0	ignore      ignore       ignore        ignore       abort 

In plain English: the given versions of Windows 98/NT, AIX, IRIX and OSF1
give a damn about the current REJECT mode.