[Raw Msg Headers][Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: 2.99.48 smtpserver won't accept()?

> In case anyone else runs into this, I'll document the problem:
> On Sat, 3 May 1997, I wrote:
> > I just updated one of my Linux (2.0.26) systems from zmailer 2.99.38 to
> > 2.99.48pl2.
> > 
> > Now the SMTP server won't accept any connections.  Strace shows it
> > sitting in an accept() even after I've attempted to connect to it
> > from a variety of machines.  The TCP connection actually never gets
> > established.  It looks to me like there's something wrong with the
> > bind() or some ioctl on the socket before the accept().
> Matti figured it out.  I should have recognized the symptoms.  Prior to the
> 2.0.27 Linux kernel, large arguments (larger than 8 bits - 255) caused
> select() to hang and never return.  The new smtpserver is using
> select(2000) to combat denial of service attacks.

	Sorry, Andy mixed things.   It is   listen(sock, LIMIT)  where
	the limit value has traditionally been limited to 5, and on those
	systems that have it fixed, no matter how high the parameter is,
	it will be 5. (Or lower, minimum is 1, I think.)

	With newer systems the LIMIT value can be higher, and I did reason
	that as my Linux 2.0.27 works just fine with 2000 (and is SYN-attack
	resilient), and Solaris 2.5.1 and DEC/UNIX work too, I should be
	"home free" with it.

	It surprises me that  limit(sock, 2000)  is too high for Linux
	kernel version 2.0.26.

	The whole excercise has been for getting the system to be SYN-attack
	resilient in the SMTP service -- at those systems capable to be such.

> -Andy
> Global Auctions

	/Matti Aarnio <mea@nic.funet.fi>