Re: Mail Protocol Issue: BCC only?

2000-08-30 Thread Len Budney

Scott Sharkey [EMAIL PROTECTED] wrote:
 
 I asked a few weeks ago about known issues with qmail not delivering
 BCC messages.

None I know of.

 After investigating further, the client is claiming that the messages
 that are not delivered have ONLY a BCC (no to, no cc)...So, in theory,
 a message with a BCC only would have no To:, CC:, or Bcc: headers,
 at least in some cases.

Dan thought of this. He puts an empty list in the "cc:" field, so his
messages are definitely valid. It is possible that the client's MTA is
broken, and can't handle empty recipient lists; they look like this:
"CC: recipient list not shown: ;".

Len.

--
Moral: Don't assume that you can omit random pieces of punctuation.
-- Dan Bernstein



Re: Off-Topic: Maildirs as folders

2000-08-29 Thread Bro. Len Budney

"Chris, the Young One" [EMAIL PROTECTED] wrote:
 Quoted from Len Budney:
  Emacs is not a command line interface. Although I often use Emacs to
  read a buch of messages, I don't feel like taking 42 times too long to
  read just *one* message.
 
 Okay, go for nmh then (with no frontend). That's hopefully command-line
 enough, even though I've never used it myself.

:) That's where this thread started. I do indeed use MH mail, as well as
front-ends to MH like Mew, GNUs, xmh, etc. And I really miss vmh. However,
MH is not reliable; concurrent deliveries can destroy .mh_sequnces and
(I've heard) can clobber messages.

I want to put together a CLI which uses maildirs as folders, in the
spirit of MH (but not necessarily a clone). I posted to this list to
see if there was any interest. There is a little, but not as much as
I'd rather hoped.

"Maildir MH" is a non-trivial project; it will be a failure (in my view) if
it doesn't fully support concurrent folder access. Anyone interested in
discusssing the subject can join the mailing list; send an empty message to
[EMAIL PROTECTED] and follow the directions in the
reply.

Also see http://www.pobox.com/~lbudney/linux/mdmh.html.

Len.

--
The concept of ``security-critical'' depends on what you're trying to
protect.
-- Dan Bernstein



Re: Off-Topic: Maildirs as folders

2000-08-29 Thread Len Budney

"Chris, the Young One" [EMAIL PROTECTED] wrote:
 Quoted from Len Budney:
  I want to put together a CLI which uses maildirs as folders, in the
  spirit of MH (but not necessarily a clone).
 
 I'd be interested...Yes, I'll join the mailing list.

Cool!

 I must get to grips with how MH works, but after that it shouldn't be
 hard... I hope.

Well, not too terribly hard. Hmm...it's just now occurring to me that not
many people are already familiar with MH. It was the default at Syracuse
University (until they switched to Pine), so I sort of assumed that every
one had used it at some point in their lives...Don't I feel like a dinosaur.

The paper that Peter van Dijk mentioned is "How to Process 200
Messages a Day and Still Get Some Real Work Done"; it's available from
http://www.nb.net/~lbudney/linux/projects/mdmh/realwork.ps.gz.

Len.

--
"Accept incoming mail? Changes to inbox will be discarded!"
Okay? Cancel? None of the above:
http://www.pobox.com/~lbudney/linux/mdmh.html



Re: Off-Topic: Maildirs as folders

2000-08-28 Thread Len Budney

"Robin S. Socha" [EMAIL PROTECTED] wrote:
 * Len Budney [EMAIL PROTECTED] writes:
  "Robin S. Socha" [EMAIL PROTECTED] wrote:
  * Len Budney [EMAIL PROTECTED] [000825 20:30]:
 
   The problems with that are (1) I *want* a command-line interface...
   (2) I'd like to see the job done right, once...
 
  I don't see the problem, really. Use Gnus http://www.gnus.org/ and
  you're there.
 
  "There" meaning that I'd have an email CLI using maildirs as folders?
  I was unaware that GNUS was a CLI...
 
 Go "xemacs -nw -f gnus" in a shell. Happy reading.

Sigh. I'm not sure you know what "command line" means.

% runtime show cur /dev/null
0.120 sec

% runtime emacs -nw -f save-buffers-kill-emacs
5.053 sec

Emacs is not a command line interface. Although I often use Emacs to
read a buch of messages, I don't feel like taking 42 times too long to
read just *one* message. Advocating emacs to an emacs user, when he
happens to want a CLI, is pretty darned annoying.

Len.

--
The moment you run that, a local attacker can take over your machine.
Isn't security fun?
-- Dan Bernstein



Re: Off-Topic: Maildirs as folders

2000-08-27 Thread Len Budney

"Robin S. Socha" [EMAIL PROTECTED] wrote:
 * Len Budney [EMAIL PROTECTED] [000825 20:30]:
  
  The problems with that are (1) I *want* a command-line interface...
  (2) I'd like to see the job done right, once...
 
 I don't see the problem, really. Use Gnus http://www.gnus.org/ and
 you're there.

"There" meaning that I'd have an email CLI using maildirs as folders?
I was unaware that GNUS was a CLI; I thought it ran inside Emacs.

 Best MUA on earth, anyway.

Yes, I do like it.

 Supports maildir...(tentatively reaching beta status) as a native select
 method.

I can't find anything about this at the GNUS site. Can you give me a more
specific pointer? If GNUS supports maildir as a folder, then that makes three
such mailers (mutt and Pine being the other two).

Note, though, that I'm only interested in mailers which don't break
concurrency. I'm still evaluating the choices, but they do things which make
me nervous, like using collision-prone file names.

 It also speaks IMAP, MIME and basically everything else one needs...

Although I question the wisdom of mailreaders getting into the MTA/MDA
business.

Len.

--
Run two mailreaders; never lose messages!
http://www.pobox.com/~lbudney/linux/mdmh.html



Re: SMTP port 25

2000-08-21 Thread Len Budney

"Brett Randall" [EMAIL PROTECTED] wrote:

 Running on anything other than port 25 is pretty silly considering that
 all applications and all mail relays attempt to deliver to port 25 on
 every mail server in the world...Internally, you could do it, but why?

There are several reasons why this is done, usually amounting to "security
through obscurity". Sometimes an SMTP server on a non-standard port is run
as an open relay, so remote customers can forward outgoing mail through it.
Sometimes spam checking, size limits, or other policies are waived for an
odd-port SMTP server.

Len.

--
Why is modularity ``wholly unreasonable''?
-- Dan Bernstein



Off-Topic: Maildirs as folders

2000-08-19 Thread Len Budney

I know there is a recurring thread, "Which readers use maildirs as
folders?" The problem is, the answer is always the same: mutt. No
other mailer uses maildirs as local folders, although a few can use
maildirs as incoming mail spools. (If I'm wrong about this, please let
me know!)

Yes, mutt is just fine. However, we emacs users are discriminated
against; switching to mutt is just not acceptable because it means
losing all the rest of emacs's features from our mail reader. Also,
fans of MH are out in the cold; there is no command-line interface for
handling messages in maildir folders.

I believe that the solution is a CLI maildir-enabled mailreader, similar
in spirit to MH (but without any defects). The resulting tools should be
easily imbeddable into things like Emacs mailreaders (GNUs, mh-e, and
brand-new readers).

If anyone is interested in exploring this idea, please send an empty email
to [EMAIL PROTECTED] and follow the directions
in the reply.

If anyone knows of such a project already underway, please let me know at
[EMAIL PROTECTED]

For more information, see http://www.pobox.com/~lbudney/linux/mdmh.html.

Len.

--
Don't believe anything RFC 1912 says until you've verified it elsewhere.
-- Dan Bernstein



Re: Help on smtp and rcpthosts !!

2000-06-06 Thread Len Budney

"Xionghui Chen" [EMAIL PROTECTED] wrote:
 This is real urgent:
 
 every time when I send mail via port 25, if the domain of the mail
 address is not belong in the file control/rcpthosts, it says: 553 sorry,
 that domain isn't in my list of allowed rcpthosts (#5.7.1)

 do this mean that I have to put all my possible rcpt domains in the
 rcpthots file? i.e, i have to put yahoo.com in rcpthosts, or else I
 cannot send mail to [EMAIL PROTECTED]

No! (New qmail users often become scared about this; don't worry!)

The rcpthosts file is only for SMTP connections. SMTP connections are
usually for _incoming_ mail. So rcpthosts only lists allowed destinations
for _incoming_ mail. Usually, rcphosts will contain the domains listed
in control/locals as well as control/virtualdomains, and should all be
fully-qualified domain names.

But some of your software uses the SMTP port for _outgoing_ mail as well,
which is what made you ask your question. The answer is found at
http://cr.yp.to/qmail/faq/servers.html#authorized-relay. The magic word
is RELAYCLIENT.

Hope this helps,
Len.

--
Do not confuse complexity with security.  It is a grave mistake.
-- Bruce Schneier



Re: Does someone knows what is this about?

2000-06-05 Thread Len Budney

Peter van Dijk [EMAIL PROTECTED] wrote:
 On Mon, Jun 05, 2000 at 10:48:24AM -0500, Mate Wierdl wrote:
   More evidence that the person running ORBS is incompetent.
 
 He's not. I've spoken to him on several occasions and he is quite
 clueful.

Not to restart another perennial flame-war, but why then does he
blacklist people who block his probes? Is it really his intention to
provide the service of blacklisting both a) open relays and b) people
who disagree with him?

If he is clueful, then his ethics come into question. He's better off
being thought clueless, in my book.

Len.

--
Frugal Tip #16:
Dry clean your wax paper for reuse.



Re: securing pop3 sessions

2000-05-25 Thread Bro. Len Budney

"Louis Theran" [EMAIL PROTECTED] wrote:
 [EMAIL PROTECTED] (Len Budney) writes:
 [ using SSH forwarding to tunnel POP3 ]
  That's a dandy idea. However, once you do that it's not POP3 anymore.
 
 Nonsense.  What exactly would you call the protocol running inside the
 tunnel if not POP3?

Um, the protocol INSIDE the tunnel is POP3. But the protocol YOU MENTIONED
is POP3+SSH. In particular, it cannot be implemented using standard POP3
clients from machines which don't have SSH installed. Which, please note,
is what the original poster asked for.

Len.

--
Frugal Tip #30:
Let a large corporation pay you big bucks to tattoo their company logo
on your bald spot.



Re: securing pop3 sessions

2000-05-24 Thread Len Budney

[EMAIL PROTECTED] wrote:
 
 What's the best way on the server side to prevent passwords from being
 sent as clear text over the network for a pop3 session?

I'm afraid the best way is also the only way, and it doesn't exist. You
cannot use POP3 without sending passwords in the clear.

Len.

--
VENONA traffic was broken by the NSA because the Soviets reused their
one time pads.
-- Bruce Schneier



Re: securing pop3 sessions

2000-05-24 Thread Len Budney

"Louis Theran" [EMAIL PROTECTED] wrote:

 My original comment was merely pointing out that `there is no way'
 is correct only in a narrow sense.

Right; namely, the sense in which the poster asked. He asked for a way
to modify the server ONLY, and end up using POP3 without any passwords
traveling en claire. I replied that THAT is impossible. Other things,
of course, may or may not be impossible.

However, if ``most clients'' actually support SSL, then I may have
simply been wrong. (I'm not gonna quibble that POP3+SSL isn't POP3,
because although it isn't, who cares?)

The original poster needs to know the definition of ``most clients'',
and probably will have to run two POP3 servers--a secure one for savvy
clients, and an insecure one for stupid clients. Unless ``most clients''
is an inclusive enough class.

Len.

--
It will work, and it's probably secure; but I didn't design it to run
setuid, so don't do it.
-- Dan Bernstein



Re: I want to leave this list

2000-05-18 Thread Len Budney

Troy Frericks [EMAIL PROTECTED] wrote:
 
 [footer giving unsubscribe information]
 Has anybody given an explanation as to why this simple change has not been
 implemented on this list.  Kinds of seems silly that it has not been done,
 especially given the extra messages not having it generates.

Sigh; your post is also a FAQ (though it isn't in the FAQ). The answer is
that unsubscribe information is provided in the header of every post (partly
because Dan would like MUA authors to implement list-handling functions which
can easily read headers automatically).

If users will not read the header, they will not pay attention to
the footer either. You will probably get replies from people who've
subscribed to lists which use footers that way, and they will tell you
that the same questions are posted to those lists. Nothing is saved
(though some bandwidth is wasted).

I once actually wrote to a jackass who did exactly that. He replied that
it was a waste of his time to grovel around looking for instructions:
all he had to do was hit ``reply'' and post ``unsubscribe'' messages,
and sooner or later he would be unsubscribed. It was Somebody Else's
Problem (tm).

Len.

--
Frugal Tip #50:
Have everyone in your family agree to share the same toothbrush.



Re: Metering POP related email traffic?

2000-05-15 Thread Len Budney

Peter van Dijk [EMAIL PROTECTED] wrote:
 On Mon, May 15, 2000 at 11:11:17AM -0700, Chin Fang wrote:
  
  I have a strong suspicision as of now, based on some casual snoop
  output reviews, that POP traffic is consuming about 30% of the total
  email bandwidth usage.
 
 Unless people have forwards to more than 1 address, logic dictates that
 POP3 should be at least 50% of your traffic.

This strikes me as a ``Profile. Don't speculate.'' moment. ``Logic''
might argue instead that 30% is about right: one might expect roughly
equal volumes of incoming SMTP, outgoing SMTP, and POP traffic, assuming
no mailing list servers.

The moral: measuring is better.

Len.

--
Frugal Tip #63:
Leave your penny loafers empty. It's cheaper!



Re: ANN: Filtering out already delivered mail

2000-05-09 Thread Len Budney

Jozef Hitzinger [EMAIL PROTECTED] wrote:
 
 Here's a little tool I made to get rid of unwanted mail already
 delivered to ~/Maildir/...It's not meant to replace on-delivery mail
 filtering, but to supplement it.

You might also want to look at maildircmd, my addition to the serialmail
package. http://www.nb.net/~lbudney/linux/software/maildircmd.html

It generally assumes that the maildir is a ``spool'', and that every
message in it will be delivered somewhere (Delivering back to the spool
is a recipe for infinite loops, of course). Since most MUAs use maildir
as a spool, not a folder, you can use maildircmd compatibly with your
existing setup.

As a fringe benefit, it will automatically generate bounces if you want.

Len.

--
Frugal Tip #7:
Manage a multifamily housing complex in the back seat of your SUV.



Re: Open Today.

2000-05-08 Thread Len Budney

Peter van Dijk [EMAIL PROTECTED] wrote:
 
 Not listing themselves in the DUL gives other ISPs _not_ the choice of
 rejecting dial up mail from them.

...rejecting all of my mail, for example. I have no problem resisting
stupidity by not volunteering information.

Casting it as a choice issue is a red herring. For example, what about
my ISPs privacy right? It's nobody's business what runs behind a given
IP. Should they also list OS and version, plus modem make and model, in
the cracker phoneboook?

Len.

--
A good business is not always a good purchase--although it's a good
place to look for one.
-- Warren Buffet, 1983



Re: Open Today.

2000-05-08 Thread Len Budney

"Timothy L. Mayo" [EMAIL PROTECTED] wrote:

 And his ISP won't. :)  Especially since I was a dial-up user when the
 whole "block the dial-ups" discussion started...

I must say, I like my ISP! :) One of these days, I'll have to meet Tim
and buy him a beer.

Len.

--
P.S. ezmlm sent you some mail. Read it. Pay attention this time.
-- Dan Bernstein




RE: FW: FW: VIRUS PEOR QUE MELISSA II *** Importante***

2000-05-08 Thread Len Budney

Kai MacTane [EMAIL PROTECTED] wrote:
 IOW, this is one of the standard hoax email virus warnings that's been 
 littering the Internet for past six years or more, only translated into 
 Spanish.

You mean, I can't find out how to give my cat a colonic?

Len.

--
Frugal Tip #31:
Incrementally reduce your year-to-year operating expenditures while
aggressively recognizing unrealized receivables in the current quarter.



Re: Open Today.

2000-05-07 Thread Len Budney

John White [EMAIL PROTECTED] wrote:
 On Sat, May 06, 2000 at 04:30:54PM -0400, Len Budney wrote:
  (BTW blocking DUL has not interfered with my own email in a couple of
  years now...)
 
 Amazing.  In one year, our office ran across: [7 domains snipped]
 We had to smtproute them all to our dialup provider.  

A glance at your list indicates I haven't written to anybody at any of
those domains in at least a couple of years. If I had, I'd have done
what you did, and smtproute-ed them through my ISP (which uses qmail!).

I'd also send those correspondents an email explaining why their mail
is late whenever I'm on the road.

Len.

--
Frugal Tip #45:
Cheat at cards.



Re: Open Today.

2000-05-06 Thread Len Budney

Johan Almqvist [EMAIL PROTECTED] wrote:
 On Sat, May 06, 2000 at 07:50:44PM +0200, Peter van Dijk wrote:
  - too much qmail users mail from dialups to this list, so blocking dialups
would not be a good thing.
 
 It's not very probable that they'd use list.cr.yp.to as their outgoing
 mail host, is it?

No, they use their own computer as the outgoing mailhost. Thus, their
outgoing mail originates from a dialup. It wouldn't get through at all
if list.cr.yp.to blocks email from dialups.

I for one send my mail directly from my laptop. I don't care about
religious objections that I shouldn't do that; it saves the annoyance
of re-aiming my outgoing mail at the smarthost of whatever connection
my laptop is using at the moment.

(BTW blocking DUL has not interfered with my own email in a couple of
years now. So despite the big talk of folks who use it, I continue to
send mail directly from my machine. DUL blocking only works because it
is a rarely-taken measure.)

Len.

--
That's security through obscurity. The more people know about it, the
more useless it is.
-- Dan Bernstein



Re: accustamp|tailocal|matchup

2000-05-05 Thread Len Budney

"David Dyer-Bennet" [EMAIL PROTECTED] wrote:
 Peter Samuel [EMAIL PROTECTED] wrote:
   
   And you editor can't read in the results of a program?
 
 I can think offhand of a couple of ways of doing it, but all of them
 are grossly inefficient and take lots of keystrokes.  There may well
 be an easy way I'm overlooking, too.  Nothing exotic, I'm an emacs
 user.  I'm not starting a new instance, I'm visiting the log file from
 my existing instance.

rant
``Nothing exotic, I'm an emacs user''? Emacs? Have you heard the
debates whether Emacs was an OS, a shell, or an editor? Have you seen
the emacs mailreaders, shell modes, IRC interfaces, and web browser?
What you want to do is absolutely trivial in emacs, and you can bind it
to a single keystroke.
/rant

Anyway, what you want to do is absolutely trivial in emacs, and you can
bind it to a single keystroke.

Len.

--
You're repeating the same old ``forks are bad and execs are
disastrous'' litany without _profiling_ where your time is actually
going.
-- Dan Bernstein



Re: Qmail filter for ILOVEYOU

2000-05-05 Thread Len Budney

Rodney Edwards [EMAIL PROTECTED] wrote:
 
 This has probably been asked already but I've literally just joined.
 How can I filter and reject ILOVEYOU messages in Qmail?

Congratulations! You may be the first new subscriber whose question is
at least 1) timely, and 2) not a FAQ! You get a cigar!

 Any pointers would be appreciated

Let me point you to the qmail archive: http://www-archive.ornl.gov:8000/.
There have been some quick-and-dirty hacks suggested over the last couple
of days, but since I don't run Windows I haven't paid much attention.
Searching on ``ILOVEYOU'' should turn them up.

Hope this helps,
Len.

--
Frugal Tip #31:
Incrementally reduce your year-to-year operating expenditures while
aggressively recognizing unrealized receivables in the current quarter.



Re: shim before final local delivery?

2000-05-05 Thread Len Budney

Paul Farber [EMAIL PROTECTED] wrote:
 
 Is there a way to insert a shim (or shell wrapper) before qmail-local
 delivers a local message?

Simple; write a wrapper called ``qmail-local'', which in the end
exec's the original qmail-local (which you should rename, of
course). The interface is remarkably simple. From qmail-local(8):

  SYNOPSIS
   qmail-local  [  -nN  ]  user homedir local dash ext domain
   sender defaultdelivery

  DESCRIPTION
   ...
   The standard input for  qmail-local  must  be  a  seekable
   file, so that qmail-local can read it more than once.

See? It's a snap. (If you don't know how, I'll do it for a small fee.)

 It would seem administratively easier to apply these type of filters for a
 large group of users that way rather than ~/.qmail-default 'ing all the
 home dirs.

In fact this latter ``solution'' doesn't work anyway--unless the users
cannot create .qmail files. Extensions for which more specific
.qmail-ext files exist are delivered according to those instructions,
bypassing .qmail-default entirely.

Len.

--
Frugal Tip #19:
Discover the secret to happiness, then sell the franchise rights.



Re: accustamp|tailocal|matchup

2000-05-05 Thread Len Budney

Kins Orekhov [EMAIL PROTECTED] wrote:
 [EMAIL PROTECTED] wrote:
  And can't you look at them by passing them through tai64nlocal each
  time? Can you spell "shell script wrapper"? :)
 
 I *asked* the list about *some program* which can do reverse time
 translation for my *already existing logs* - from Local to TAI.

Correct. And Peter answered your question: ``Can you spell `shell script
wrapper'?''

Translated, he just told you to write a script called ``look-at-old-logs'',
which runs tai64nlocal on the old log files, and then displays
them to you. Then, whenever you want to look at old logs, you run
``look-at-old-logs'', and voila! The magic happens all over again.
That's the wonderful thing about computers: they never get bored.

 And your response(s) (especially last one) never answered my question.

It did. However, to benefit from the answer required some work from you.
If you want somebody to do the work for you, pay them. (I'll do it if
you prepay, in US dollars. Say, $250 for 2.5 hours work, and if I'm done
sooner, I'll refund the difference.)

Len.

--
Frugal Tip #41:
Remember, the best things in life are free. That means if you can resell
them, that's a 100% profit margin.



Re: Limit file size--HELP HELP HELP

2000-05-01 Thread Len Budney

Shakaib Sayyid [EMAIL PROTECTED] wrote:
 
 ...there is one user who wants to send a file thats ~20M. Is there a
 way to do this?

Instruct the user to send it in five pieces.

Such a huge email is likely to jam the recipients' POP accounts; they
will have to ask their ISPs to delete the message so that they can
fetch the rest of their mail.

Multiple pieces are less likely to mess things up. Plus, while the
recipient is waiting for that hour, at least he will see the message
count increase every twelve minutes.

If the recipients use windows, and don't have any split/unsplit
utilities (available from tucows), then have the user stick it in his
web space, and make him pay the over-quota charge for that month.

Len.

--
Anyone can create an encryption algorithm that he himself cannot break.
-- Bruce Schneier



Re: LF Patch

2000-05-01 Thread Len Budney

Mike Lichtenwalner [EMAIL PROTECTED] wrote:
 ...patch qmail (as opposed to the fixcr solution)...

I'm staying out of this; it's sure to provoke a holy war.

However, do please be aware that the patched qmail _will_ corrupt some
messages, in the name of compatibility with software which flagrantly
violates the standards.

Even if you do adopt the solution you mention, please do consider
informing the other postmasters that their software is violating the
standards, and at least suggest that they fix their servers.

Len.

 Millersville, PA

Hey, we're practically neighbors!

--
Frugal Tip #36:
Take the stairs instead of the elevator. No, wait -- that belongs on the
"How to Develop Steely, Rock-Hard Buns" list. Sorry.



Re: E-Mail Address Harvesting

2000-05-01 Thread Len Budney

"Dennis Duval" [EMAIL PROTECTED] wrote:
 
 ...I believe they then compare the bounces ( [EMAIL PROTECTED]
 in this case), against the database of addresses that were sent to...

The method here is perfectly correct. Indeed, using VERP there is no need
for bounce parsing, so the attack can be trivially adapted to attack ALL
mailers.

 ...resulting in a list of valid email addresses of my users.

What on earth do these lists cost these days?!? This method is so
astonishingly inefficient that I can't believe there's a positive
payoff. (Especially since spam listers can sell invalid addresses if
they want--who would ever know?)

I wonder if it isn't something else--like harvesting login names for a
stupid password crack? I'd be a _little_ less flabbergasted if that
were the case.

Len.

--
Frugal Tip #49:
Try owning lots of jewelry, negotiable securities, and tax-free municipal
bonds. Many rich people are known to have them.



Re: Multi-RCPT vs. Single RCPT delivery - logic error?

2000-04-28 Thread Len Budney

Dave Kitabjian [EMAIL PROTECTED] wrote:
 Dave Sill:
 "Say you're an MTA [ sending three messages. you could: ]
 
 1. ...[ send three copies through one connection, ]...then close
the connection.
 2. ...start three processes, each of which...sends a copy of the
message...
 3. ...send a [ single ] copy of the message addressed to all three
users..."

 Dave Kitabjian:
 Clearly, the rank of efficiency is, from best to worst,: 3, 1, 2

That might be true, if the situation you described were complete, but
it's not. The MTA handles hundreds (thousands) of messages per day,
and in typical situations a very small fraction of them are both 1) the
same message, and 2) bound for the same host.

For qmail to implement solution #1 or #3 means that qmail must identify
any mail traffic it can combine, and then must handle it specially. That
takes some work. The extra code becomes a possible source of bugs and
security holes. Does it speed qmail up noticeably?  No, for several
reasons:

  1. Only a tiny percentage of email can even potentially benefit from
 this ``optimization''. Hence, even a large speedup would have a
 small overall effect.

 (The only major exception to this is mailing list traffic. If enough
 of your local users subscribe to a remote mailing list, then it's
 worth your while to set up a sublist.)

 (The other major exception, corporate email, isn't an exception at
 all. Corporate email typically runs at LAN speeds, where the difference
 in speed is negligible.)

  2. Connection caching (strategy #1) is actually terrible for
 performance, because all mails for a given destination are
 serialized.  They would arrive faster if they were delivered in
 parallel, which is what qmail does.

 Connection caching also impairs the remote mail admins' ability to
 limit throughput to levels his server can handle. If his server goes
 down temporarily, for example, then you will probably try to shove
 thousands of emails down his throat as soon as you see he's back
 up. This effect is what Dan calls ``opportunistic bombardment'';
 it's why sendmail typically clobbers recovering mail hosts. (After
 an outage, AOL typically is taken down again, several times, by
 incredible waves of sendmail bombardment.)

 Connection caching is also unfair. It means that once you have a
 connection, you exploit it to send everything you've got. Meanwhile,
 if the server is near capacity, others are completely denied
 service. qmail'l parallel delivery, which at first seems more greedy,
 is actually fairer--admins can easily limit per-site connections,
 causing qmail to wait its turn. Meanwhile sendmail users hog up
 connections, forcing their mail through without waiting their turn.

  3. Option #3 is mainly harder for the outgoing server; it means that
 the server has to notice opportunities to combine emails into one
 message with several recipients.

 a. There are cases where a server will be fooled anyway.

 b. Ignoring that, his work will pay off only in a tiny minority of
cases.

 c. This approach also has privacy implications: if I give a message
with multiple recipients to another SMTP server, and some of
those are BCC recipients, then the upstream server may violate
privacy be recording the complete envelope.

 d. This approach makes things like VERPs impossible. VERPs are why
ezmlm can handle bounces so conveniently. They actually have
convenient uses for individuals, as well: it lets you map bounces
of important emails to the exact address you were sending to
(which may not be the address which caused the bounce).

So your logic is fine by itself, but it misses the bigger picture of
what's going on with email traffic.

Len.

--
Frugal Tip #4:
Keep skipping town two days ahead of the collection agency.



Re: Multi-RCPT vs. Single RCPT delivery - logic error?

2000-04-28 Thread Len Budney

Dave Kitabjian [EMAIL PROTECTED] wrote:
 
 We had a situation with a customer who was consulting for a college. So
 every few days, she had to send a 10MB PowerPoint file to about 50
 recipients at that college. Under qmail, a separate thread was opened up
 for each qmail-remote. 

Warn her, firmly, to send Zip disks by email or to rent space on an
FTP server. If she persists, kill her. Then find and kill the manager
who would email me 6MB presentations, clogging my modem for half an
hour--instead of waiting 45 minutes and giving it to me when I arrived
at work.

 a) That means a total transfer of 500MB rather than simply 10MB. 

Right! That's not what email is for! Not only your pipe is being abused;
the downstream servers are, too.

And think of the poor recipients! If they use modems, then they will
be _extremely_ ticked at the wait. Worse, many POP servers and/or
clients will jam on such large messages, forcing retries. Some will
fail forever, blocking receipt of any further emails until someone at
the ISP deletes the offending message.

This is a MAJOR case for customer education.

Len.

--
Frugal Tip #65:
Get a cushy TMF job where you can get away with making goofy lists like
this one for a living.



Re: Multi-RCPT vs. Single RCPT delivery - logic error?

2000-04-28 Thread Len Budney

"Len Budney" [EMAIL PROTECTED] wrote:

 Warn her, firmly, to send Zip disks by email or to rent space on an
 FTP server.^

Should be ``mail'', of course. My patented ``matter emailer'' is not
yet on the market. :)

Len.

--
Frugal Tip #14:
Sell your used Q-Tips as modern art.



Re: sorry, that domain isn't in my list of allowed rcpthosts?

2000-04-28 Thread Len Budney

"snowcrash" [EMAIL PROTECTED] wrote:
 
 What do I need to do to allow people on diffrent ISPs to send mail
 through my server to any other domain besides mine?

That's called ``relaying'', and if you relay _indiscriminantly_, then
you will eventually be abused by spammers, and blacklisted by ORBs.
(Just a caution; I know that's not what you're trying to do.)

The quickest ``solution'' is to delete control/rcpthosts, which makes you
a wide-open relay. (Now reread the caution above!)

The second quickest, if you know where your friends send mail to, is
to add those destinations to control/rcpthosts. Since they won't be in
control/me or control/locals, qmail will do the right thing. (This is
only slightly less dangerous than the previous suggestion, unless the
list of target sites is quite small.)

The best solution is to enable relaying, temporarily, from hosts which
authenticate themselves. One approach is the SMTP-after-POP solution;
You can read about it at http://www.palomine.net/qmail/relaying.html.
That page also gives more information about relaying and its implications.
The recommended solution, by Bruce Guenter, is available from
http://em.ca/~bruceg/relay-ctrl/ _after_ you read Chris Johnson's page.

Hope this helps,
Len.

--
Frugal Tip #20:
Take hostages.



Re: temporary failure warning message

2000-04-24 Thread Len Budney

Dave Sill [EMAIL PROTECTED] wrote:
 "J.M. Roth \(iip\)" [EMAIL PROTECTED] wrote:
 
 is it possible to configure qmail to send out a "temporary failure" message
 or something if mail can't be delivered rightaway?
 
 No.

But if you're desperate, you can create this feature easily. Write a Perl
script which either 1) grovels through the queue directories, or 2) runs
/var/qmail/bin/qmail-qread, and sends a report to the original sender for
messages enqueued longer than X minutes/hours/days.

 Some failure messages inbetween would be quite helpful.
 
 That's one of sendmail's more annoying features, if you ask me.

100% agreed. Don't even consider doing what I described above. If an email
is _that_ time-sensitive, follow up using a phone call. Better yet, write
``Let me know AS SOON AS you receive this!'' inside the body of the email.

Len.

--
I'm more worried about real security problems than theoretical
reliability problems.
-- Dan Bernstein



RE: Qmail behind firewall question

2000-04-24 Thread Len Budney

Dave Sill [EMAIL PROTECTED] wrote:
 "Len Budney" [EMAIL PROTECTED] wrote:
 export QMAILUID NOFILESGID
 
 Yes, but there's no need to pass QMAILUID and NOFILESGID to softlimit, 
 tcpserver, or qmail-smtpd. They're only needed by the shell that does
 the exec, and it expands them before doing the exec.

You're right! Thanks for not saying ``Duh!''  Why did I think he was
using envuidgid? Those would still be the wrong variables...

Len.

--
Frugal Tip #7:
Manage a multifamily housing complex in the back seat of your SUV.



Re: temporary failure warning message

2000-04-24 Thread Len Budney

Ian Lance Taylor [EMAIL PROTECTED] wrote:
From: Dave Sill [EMAIL PROTECTED]
Anyone who assumes that An Important Mail has been delivered intact
and read by the recipient simply because they didn't receive a
warning or bounce message deserves what they get.
 
 This is a real indictment of the state of the Internet.

Not at all. Dave said, ``simply because they didn't receive a
warning...''  In other words, you can't assume the message was
received, simply because you WEREN'T told that it WASN'T received. You
can only assume it was received if you HAVE been told it HAS been
received.

 I hope that someday people will trust the Internet the way they trust
 the telephone system.

I know you got my phone call, because I know I heard your voice. I
know you got my fax, because fax machines DO acknowledge when a fax
has been received.

Email has no _general_ confirmation mechanism, except asking the
recipient to ``hit reply so I know you got this.''

Len.

--
There are two people at fault in every computer security breach: the
attacker, and the programmer who let him in.
-- Dan Bernstein



Re: Mailbox/Maildir pop ?

2000-04-22 Thread Len Budney

Les Higger [EMAIL PROTECTED] wrote:
 do i need to convert to Maildir to run pop3d.

Yes.

 i ve got qmail working and have checkpasword working. I  have only 50
 users using e-mail so i didnt use tcpserver. 

It's good exercise anyway; you should try it. See
http://www.pobox.com/~lbudney/linux/security/telnet-tcpserver.html for
a worked-out example: running telnet under tcpserver.

Len.

--
I'm worried about the applications that should exist, not just the
applications that exist today.
-- Dan Bernstein



Re: rcpthosts and morercpthosts

2000-04-21 Thread Len Budney

"Greg Kopp" [EMAIL PROTECTED] wrote:
 
 1. What is morerecpthosts and morercpthosts.cdb? Is there a limit to the
 number of hosts that can be in the rcpthosts file?

morercpthosts is (as the name implies) a supplement to rcpthosts, which is
used by qmail-smtpd to decide whether to accept mail. rcpthosts lists hosts
for which qmail-smtpd is allowed to accept email. morercpthosts, if it
exists, ``is effectively appended to rcpthosts'' [see qmail-smtpd(8)].
morercpthosts.cdb is created by running qmail-newmrh with morercpthosts
as input. You must do this, because morercpthosts.cdb is what qmail-smtpd
actually uses.

The idea here is to make qmail-smtpd faster IF you handle mail for a
very large number of domains. As a rule of thumb, ``large'' means more
than fifty. Putting your most commonly used sites in rcpthosts means
that qmail-smtpd will usually ignore morercpthosts.cdb. When the client
specifies an envelope recipient whose domain is not in rcpthosts, then
qmail-smtpd will check for the domain in morercpthosts.cdb as a fallback.

 2. Do you think it would be safe to use NFS to mount my /var/qmail/control
 directory on our backup MX and then use symlinks of the nfs mounted
 rcpthosts file to the local file? For the number of domains I have, I want
 to avoid having to edit multiple files everytime we add one or delete one.
 Should I also link morercpthosts and morercpthosts.cdb?

If you do this, then the two MX hosts will behave _identically_. In
particular, qmail on the backup MX will try to do local deliveries because
of the shared copy of control/locals. If that's what you want, then you
_can_ do this; just be very sure its what you want.

To my little brain, though, it doesn't make a lot of sense to share
everything in /var/qmail/control. It would make more sense if you put
both hosts IP addresses under the same name, and set your DNS server
to hand out both addresses randomly for load-balancing purposes. You
will also have to NFS-mount the delivery destinations (/var/spool or
users' home directories) so that either host can do local deliveries.

If by ``backup MX'' you really mean ``secondary MX'', then I wouldn't
use this scheme. Instead, I would use ssh and rsync to share carefully
selected files (such as rcpthosts and morercpthosts). Put the right
commands in /var/qmail/control/Makefile on your authoritative host, and
run ``make'' after updating any control files.

Len.

--
Frugal Tip #30:
Let a large corporation pay you big bucks to tattoo their company logo
on your bald spot.



Re: rcpthosts and morercpthosts

2000-04-21 Thread Len Budney

"Petr Novotny" [EMAIL PROTECTED] wrote:
 On 21 Apr 00, at 8:22, Greg Kopp wrote:
  1. What is morerecpthosts and morercpthosts.cdb? Is there a limit to
  the number of hosts that can be in the rcpthosts file?
 
 No real limit; it's just that both files are parsed each time
 qmail-smtpd is run (ie. connection arrives).

morercpthosts is not parsed at all, of course. qmail-smtpd opens the
morercpthosts.cdb file, and uses it, if necessary, directly from the
disk. I'm guessing that's the point: to keep large rcpthosts lists
from turning qmail-smtpd into a memory hog.

 I've heard that 50 lines in rcpthosts makes a good rule-of-thumb.

That's what the manpage says.

Len.

--
Frugal Tip #37:
Check your old financial records and see if you might have accidentally
bought some Berkshire Hathaway stock 30 years ago.



Re: Segmentation faults

2000-04-20 Thread Len Budney

Ian Shaughnessy [EMAIL PROTECTED] wrote:

 ...ls reports a segmentation fault.  Du does as well, and rm -rf also...

There you go, blaming qmail again! :)

In answer, the problem you describe is (as far as I know) unheard of with
qmail. And qmail does _nothing_ to directories except through the side
effects of open(), link(), unlink() and rename().

 You have all of the information i can give you...

Not quite: What OS, what filesystem, local or NFS? That's all I can think
of...now here's my speculation:

Did some tool create a file with a humongous name? On my Linux box,
all of the programs you mentioned catch the error "ENAMETOOLONG" and
exit with an intelligible message. Are you using NFS? Are two systems
disagreeing about what ``too long'' is?

The number of files should not be a problem--at least not to ls, which
you indicated segfaults.

Len.

--
Frugal Tip #17:
Visit the Ford Foundation while disguised as a large, charitable
organization.



Re: qmail deleting Maildir/cur directory (fwd)

2000-04-19 Thread Len Budney

Ian Shaughnessy [EMAIL PROTECTED] wrote:

 All I know is when I checked my mail this morning it was all there,
 but when I checked it this afternoon it wasnt.  Quite confusing...

Granted. At least, then, tell us what mail client you use, what email
address your mail is delivered to, and send us a copy of the relevant
.qmail file. If you use POP or IMAP, then tell us what server you get
your mail from, so we can see if it's running known buggy software.

Mysteries remain mysteries for lack of data.

 ...and like I said, the log files provided no help what so ever.
 They all just read like "blah blah mail message delivered successfuly"

That's because qmail does not delete directories, period. Well, maybe
``doesn't'' isn't the right word; it ``can't'' delete directories,
period. Just look at the qmail source, with ``grep rmdir *'' and see for
yourself.

The moral: qmail IS NOT deleting your Maildir/cur directory. Folks
here already know that for sure, so your subject line is being ignored
(and might get you flamed if you keep saying it). Folks _might_ be
willing to help you figure out what's actually happening, though. Give
all the helpful information you can.

Len.

--
Frugal Tip #27:
Embezzle.



Re: mail-abuse.org

2000-04-17 Thread Len Budney

"Luis Bezerra" [EMAIL PROTECTED] wrote:
 
 It's not a good solution
 
 I prefer QMail

Luis, people have answered your questions. Also, your questions are
already answered in the documentation AND in the qmail archive. Are you
1) thick headed, 2) a troll, or 3) having trouble understanding English?

Or are you an autoresponder? If so, are you available under the GPL?
Maybe I can run you from procmail, to annoy people who annoy me.

Len.

--
Any _widely used_ spam-detection system is a waste of time, because the
spammers can and will avoid it. It ends up doing more harm than good.
-- Dan Bernstein



Re: virtual domain

2000-04-12 Thread Len Budney

fadli syarid [EMAIL PROTECTED] wrote:
 
 i make virtualdomains in /var/qmail/control and then add syarid.com:fadli.
 i add syarid.com to rcpthosts. and then i restart qmail 

With that setup, messages to ``[EMAIL PROTECTED]'' will be delivered
locally to ``[EMAIL PROTECTED]''. This is explained in the manpage
for qmail-send(8).

If ``fadli'' is your user name, then the delivery is controlled by the
file .qmail-fadli if it exists, or by .qmail-default if it doesn't.

If ``fadli'' is not a valid user name, then delivery is controlled by
either ~alias/.qmail-fadli-default or ~alias/.qmail-fadli-fadli.

This is all explained in the manpage dot-qmail(5).

 i trying to send email to [EMAIL PROTECTED] and get error message like this
 Sorry, no mailbox here by that name. (#5.1.1) 

You haven't created one of .qmail-fadli or .qmail-default, so there
really is no such mailbox. Create one of those files. Presumably, you
want both .qmail-fadli and .qmail-fadli-default so that you can use
address extensions like [EMAIL PROTECTED]

Note, though, that you can't use other addresses @syarid.com, unless you
create .qmail-default. If you also want to use [EMAIL PROTECTED] as
an address, then you should have used a different prepend in virtualdomains,
such as ``fadli-syarid''.

 i expect i can use [EMAIL PROTECTED] for my email adress

You need one more thing to use that email address: you need an MX record.
How does everyone know where to send mail for syarid.com? They don't,
unless the DNS has an MX record stating that mail for syarid.com is
handled by your machine. Your ISP can set up an MX record for you for a
charge.

Hope this helps,
Len.


--
The moment you run that, a local attacker can take over your machine.
Isn't security fun?
-- Dan Bernstein



Re: qmail relay opened

2000-04-05 Thread Len Budney

Luis Bezerra [EMAIL PROTECTED] wrote:

 Peter Pan...

Luis Bizarre, please get it right. His name is Peter van Dijk.

 I not want your opinion. I want one solution

Than ask the question intelligently. Don't just say ``my qmail MTA is
accepting mails...''

  1. Provide a transcript of the SMTP conversation with your qmail host.
  2. Provide everything in your qmail logs relating to that conversation.

You will no doubt see something like the following:

  ...starting delivery 17: msg 4025 to local [EMAIL PROTECTED]
  ...delivery 17: failure: Sorry,_no_mailbox_here_by_that_name._(#5.1.1)/

As Peter said,

  Unless you did something wrong, it is not delivering these mails.
  It is therefore not a problem.

He knows what he's talking about. Now apologize to the nice man for
your rudeness.

Len.


--
Remember that most encryption in this world does not take place inside
a Pentium, but on a smart card or other 8-bit processor.  Key bits are
VERY expensive.
-- Bruce Schneier



Re: Poor documentation of anti-spam options?

2000-04-01 Thread Len Budney

"Patrick Bihan-Faou" [EMAIL PROTECTED] wrote:
 
 The problem with spam is that there is no reliable way to split spam from
 legitimate mail.

Bingo!

 If you try to filter-out spam, you will always end-up filtering out
 proper mail as well.

Bingo!

 The key is to try to keep track as much as possible of what is accepted
 and what is rejected.

Why? To satisfy your curiosity? Or do you then track down all senders of
legitimate email, and tell them what happened?

 ...the tolerable lost email / killed spam ratio is somewhat a personal
 decision...

The tolerable ratio is zero. If you are an ISP and think differently, then
your customers should abandon you. They might even have grounds to sue
you. (``The computer threw your job offer away. Sorry.'') They probably
won't, because they don't understand. (``Oh. Those darn computers!'')

Len.

--
E-mail encryption is a perfect application where cascades are reasonable.
Pretty much no one cares if they have to wait 10 milliseconds or 50
milliseconds for the encryption to occur.
-- Bruce Schneier



Re: Poor documentation of anti-spam options?

2000-04-01 Thread Len Budney

"Patrick Bihan-Faou" [EMAIL PROTECTED] wrote:

 The only thing I am pointing out is that the choice of doing spam
 filtering is a personal one, and one has to understand that it will
 kill legitimate mail as well.

Okay, sorry for the warm response. If ``personal'' means the same thing
to you that it does to me, then we agree perfectly.

(For example, ISPs unilaterally rejecting emails for their customers,
without specific authorization is not a ``personal'' decision--and it's
unacceptable. Even RBL use, which makes sense, should not be done without
informing customers.)

Len.

--
Experience has shown again and again that Microsoft regards security
problems as public relations problems.  Hence, I would not trust any
claims that Microsoft makes about changes in PPTP that it has, or will,
make.
-- Bruce Schneier



Re: qmailanalog and UNIX basics

2000-03-30 Thread Len Budney

"S.P. Hoeke" [EMAIL PROTECTED] wrote:
 
 Specifically I don't know how to "feed your log through" the awk line.
 Same goes for "feed the matchup output through any of the" scripts

You ``feed a file through'' a program when you arrange for the file to
be the input of the program. Three obvious ways of doing that are:

1. Input redirection:

   awk 'SCRIPT'  FILE

2. Pipes:

   cat FILE | awk 'SCRIPT'

3. Command line arguments:

   awk 'SCRIPT' FILE


Option #3 only works for programs which take a file as an argument, but
most programs do. For example, awk, perl, sed, grep, more, less, tail,
head, etc., all take a file as an argument. I have a silly personal
prejudice against using #3: for operating on a single file, I usually
use #1 instead; for operating on many files, I usually use #2 instead.

Using #2 for a single file will win you Don Libes's "Useless Use of Cat
Award". It wastes a whole process over solution #1. For multiple files,
however, #2 is a useful use of cat.

The fundamental concept of UNIX is the "filter". Any program which reads
from the standard input, does something, and writes to the standard output
is a filter. They can be assembled in "pipelines", which are probably
the single most powerful concept in UNIX (though probably originally a
MULTICS concept).

To advance out of newbie-hood, you need "The UNIX Programming Environment"
by Kernighan and Pike. Buy it, read it, live it. It's $34.00 US from
http://www.us.buy.com/books/product.asp?sku=30014507. Kernighan, by the
way, is the "K" in AWK, one of the authors of the C language, and one of
the inventors of UNIX.

Len.


--
The pitiful state of "secure code" is shocking. (Actually, I
just wrote an essay on the topic. Get a copy for yourself at:
http://www.counterpane.com/pitfalls.html.
-- Bruce Schneier



Re: how do you use a deferral host in qmail?

2000-03-30 Thread Len Budney

Jeremy Hansen [EMAIL PROTECTED] wrote:
 
 You're cocky and absolutely useless.

And you're a jerk.

Actually, Dave is arguably one of the most useful people around when
it comes to qmail. Until the long-awaited O'Reilly book comes out, his
"Life with qmail" is pretty much the qmail bible.

If you don't understand what he's telling you, then go ahead and ask
questions--but you really ought to be respectful or at least polite.
As Dave said, this isn't rocket science.

Finally, Dave is correct that Dan won't add any "feature that seems to
be useful" to qmail. Remember, the SMTP server is one of the primary entry
routes for crackers, thanks to Eric Allman. Dan will not risk security or
reliability for any old feature you dream up. As Dan said before:

   In general, I'm not going to blindly copy sendmail features---even
   useful features. I want to understand what problem they're trying to
   solve; then I'll provide the best solution for that problem.

Len.

--
On the bright side, if a local user notices the system slowing down,
he can monitor the drop directory, decide that it's probably a spammer,
and destroy all new messages, without bothering to wake up the sysadmin.
``It's not a security disaster; it's an anti-spam feature!''
-- Dan Bernstein, about Postfix



Re: Error 550 ?

2000-03-28 Thread Len Budney

Psabs® [EMAIL PROTECTED] wrote:
 Thanks for any help !!  And sorry my bad english :)

That's okay. However, Dan's English is extremely good. He never wrote
an error message which said, ``Don't is possible deliver message for
us''. It would help very much if you copied the error message exactly.

 the domain is test.com  and host is serv1...

Is this you, then?

   [budney@goshawk budney]$ nslookup test.com
   Server:  duckling.swoop.local
   Address:  192.168.0.1

   Non-authoritative answer:
   Name:test.com
   Address:  207.206.9.99

test.com does not have any mx record for serv1; nor can I find any
information on serv1.test.com in DNS. Can you give more information
about your setup? If your domain is not really test.com, then you
should give the proper name. The people on this list can help you;
they will not hack your server when you give its right name. They
_will_ yell at you when you lie about its name.

 what is this ??  is DNS ?? this server is under of firewall with NAT !!  

You need to make your question clearer. Please tell 1) what you did,
2) what the computer did, and 3) what you expected the computer to do.

Len.

--
When a user's mail has been destroyed, do you explain to him that he
was in an extremely esoteric and rare situation?  Reliability means
never having to say you're sorry.
-- Dan Bernstein, author of qmail



Re: Closing: Running qmail on a 4x Xeon 550MHz system

2000-03-27 Thread Len Budney

Andreas Aardal Hanssen [EMAIL PROTECTED] wrote:

 ...I also removed some unnessecary fsync()s as they were
 slowing down everything very much...

Be careful; if you mean that you've removed fsync()s from Dan's code,
then you have definitely thrown away reliability in order to gain
throughput. In your application, is it acceptable for emails to be
silently lost under a power failure? Where did you get the idea that
they were "unneccesary"?

BTW you could get the same result--indeed, better results--without
tampering with Dan's code, if you simply add memory and mount a
ramdisk on /var/qmail/queue.

If that revolts you, then you might want to put the fsync()s back.

 ..IO is obviously the problem here, not how-to-interpret-that
 damn-uptime-load...

Correct. But Dan is not stupid; when he accepted the I/O cost, it was
to gain a benefit. Before you refuse the cost, you should be sure you
know what the benefit was--and that it doesn't outweigh the cost.

Len.


--
This has nothing to do with qmail or with trademarks. Someone could
distribute patches for sendmail that relabel it as ``Dan Bernstein's
mailer---yell at [EMAIL PROTECTED] when your system is broken into.''
-- Dan Bernstein, author of qmail



Re: Closing: Running qmail on a 4x Xeon 550MHz system

2000-03-27 Thread Len Budney

Andreas Aardal Hanssen [EMAIL PROTECTED] wrote:

 Who said I removed fsync()s from Dan's code? Please read my
 closing and see if I've said that. You see, you're really
 taking words out of my mouth.

Just FYI, the correct expression is ``putting words into my mouth'',
and I didn't do that. You did notice the ``if'', I trust? All the rest
of my remarks were predicated on the conditional:

  Be careful; _IF_ you mean that you've removed fsync()s from Dan's
  code, then you have definitely thrown away reliability in order to
  gain throughput.

I'm glad you solved your problem.

I am somewhat surprised, though: if you call fsync() twice in a row, I
would think that the second one would not do anything. The kernel
knows that the file has been flushed, and wouldn't bother to do it
again, would it? However, profiling doesn't lie--if you've seen
performance improve, then you've improved performance.  :)

Len.


--
This is one of many serious bugs in the Solaris ucb libraries. Do not
use /usr/ucb/cc. One way to prevent mistakes is to move
/usr/ucbinclude to /usr/ucbinclude-broken.
-- Dan Bernstein



Re: Qmail accepting spawm

2000-03-21 Thread Len Budney

Jorge Rocha [EMAIL PROTECTED] wrote:
 
 Ok, but my server was included in abuse.net and i need to correct
 this problem.  To remove my server from banned list, it need to be
 tested by an application from them...

soapbox
Just another example of the collateral damage from common "anti-spam"
mechanisms. The test is in error, but the burden is upon you to prove
that you deserve to send email.

There is a fine line between such stupidity and genuine fascism. ORBS
blocks mail from servers which block ORBS's scanners. In a slightly
different arena, CyberPatrol blocks websites which criticize them or
censorware in general.

I'll save you from the bad stuff! (And anything I don't like...hehe.)
/soapbox
/post

Len.

--
When a user's mail has been destroyed, do you explain to him that he
was in an extremely esoteric and rare situation?  Reliability means
never having to say you're sorry.
-- Dan Bernstein, author of qmail
 



Re: Multiple To:

2000-03-20 Thread Len Budney

Christian Wiese [EMAIL PROTECTED] wrote:
 
 [our Qmail SMTP HUB]
 1. Fetchmail fetch the mail from POP3 mailbox at our ISP
 2. The HUB transfers the mail to our internal Qmail server.

 [internal Qmail server]
 3. our internal Qmail server delivers the mail into the local mailbox of
"mailuser", but there are still messages that the qmail server can't
treat local
 4. the internal qmail server transfers the outgoing messages back to HUB

 [HUB]
 5. outgoing messages will be transferd via maildirserial to our ISP's
SMTP server

This is the fault of fetchmail. More specifically, you're using fetchmail
wrong. It has nothing to do with using "To:" instead of "Cc:" at all.

You're letting fetchmail forward popped mail through qmail, to all of
the recipients in the headers. But that's exactly what the original,
remote sender already did! So you're letting your mail server do
something which is properly none of its business.

Your only real option, if you want to use fetchmail in this setting,
is to do one of the following:

  1. Scan the email's headers for specific local users addresses. This
 is hard; in fact for mailing list emails or BCC-ed emails, it is
 basically impossible. (If your ISP uses qmail, then you can do it
 after all, since qmail writes the envelope at the top of every
 message.)

  2. Give each local user a separate POP account at your ISP; run
 fetchmail separately for each user. Deliver to that specific
 user. This prevents you from using mailboxes with addresses like
 user+extension@ or user-extension@, which is a major bummer.

Since most mailers discard envelopes (or record them in a hard-to-parse
way), you will have big problems mixing a push-protocol (SMTP) with a
pull-protocol (POP3).

A better alternative is to get your ISP to set up AutoTurn for your
maildrop. In that scenario, it is the ISP's problem to keep all mail
envelopes straight. All you have to do is perform the local delivery.

Len.

--
You're deluding yourself if you think that these anti-reliability
features actually affect the spammers.
-- Dan Bernstein



RE: Multiple To:

2000-03-20 Thread Len Budney

"Don Wright" [EMAIL PROTECTED] wrote:
  From: Len Budney [mailto:[EMAIL PROTECTED]]
   ...qmail writes the envelope at the top of every
   message...
 
 I'm looking at setting up a qmail server for a midsize corporation. Are
 you saying that all delivery addresses that were supposed to be
 hidden by the BCC and mailing list functions would be exposed to
 all recipients?

Definitely not. As you say, that would be a very bad privacy problem. Each
recipient gets a copy of the message which tells _only_ the final
envelope recipient--in other words, what address resulted in delivery
to that recipient. (The envelope sender is also included, but that has
no security implications.)

 In the case of large mailing lists, that could add hundreds of kilobytes
 to each message being sent, resulting in excessive bandwidth charges.

What qmail does, specifically in order to honor BCC and mailing lists, is
send out one copy of the message per recipient. That's why other MTAs have
leaked BCC information, but qmail never has.

In general, this does not lead to excessive bandwidth consumption over
other mailers, for several reasons. Among them:

 1. Other mailers waste so much bandwidth on redundant DNS queries that
they completely negate savings in transferred message bytes.

 2. Other mailers are not able to take advantage of multiple envelope
recipients on the same host nearly as often as people imagine.
Except possibly certain scenarios involving mailing lists, a tiny
fraction of all deliveries consist in the same message to many
recipients at one host.

 3. Other forms of traffic, particularly HTTP, completely blows away
the much smaller bandwidth consumption of SMTP traffic.

Dan will not change this feature in qmail, despite periodic holy wars,
for all of the above reasons, and more besides. Among them:

 1. The pathological case of mailing lists has a much better solution.
Set up a sublist nearer to the cluster of subscribers, and subscribe
the sublist to the main list.

Consider your corporation. If most of your employees are subscribed
to the same foreign mailing list, then setting up a sublist on
your internal mail server lightens the load on the main server,
enhancing throughput. It also moves all of your employees to the
``front of the list'', enhancing perceived performance. Finally,
it means that for each list post, exactly one email passes through
your external connection.

If few of your employees subscribe to a given list, then you can
ignore it. Who cares about the minimal traffic that entails?

For purely internal lists, LAN bandwidth is all you care about--your
Internet connection is involved only minimally, if at all. LAN
bandwidth is hardly touched if your mailing list server is on or
near the mail server box.

(Dan's ezmlm, plus the IDX patches, can even work as a sublist of
non-ezmlm foreign lists. Check http://www.ezmlm.org/ for details.)

 2. Another pathological case is hyper-restricted bandwidth at your
Internet connection. The best solution to that is to use serialmail
with QMTP to store-and-forward outgoing email, and AutoTurn at your
ISP. Since your corporation is ``mid-sized'', your bandwidth concerns
can't possibly be that stringent.

 3. If you consider serialmail sending two copies of the same message, and
wish you could shrink the bandwidth even further, then consider an
experiment recommended by Dan himself:

 wc -c MESSAGE
7752

 gzip -c MESSAGE | wc -c
3548

 gzip -c MESSAGE MESSAGE | wc -c
3651

In other words, ganging messages by recipient host is a piddly attempt
to conserve bandwidth which still consumes over twice the bandwidth
that a real solution, i.e. compression, would consume. If bandwidth
were _that_ tight for you, then it would be easy enough to use
compression to achieve some _real_ savings.

Hope this helps,
Len.

--
Do you really expect us to believe that you completely misunderstood
what Henders said, don't know what ``queue'' means, and can't speak
English?
-- Dan Bernstein, author of qmail



Re: Qmail Relay Question

2000-03-17 Thread Len Budney

"Steve Wolfe" [EMAIL PROTECTED] wrote:
 
  I have been watching this list for a few weeks now. And the people
  on here are the most un-helpful people I have seen. Your typical
  answer to a question is man this or man that.

 When I first signed up to this list, I wondered why people didn't just
 give answers, then I realized: ... Simply shoveling out information
 does a disservice to the asker, the responder, the list member, and
 the world at large ...

Amen. And very well put.

(When I first signed up, back in '96, I was completely clueless about email
and asked utterly inane questions, which were mercifully ignored. The
experience was quite embarrassing, but ultimately was very helpful.)

  "I don't have the time for you because you are not as smart as me"
 
 That attitude isn't at all typical of linux administrators, it's typical
 of a few high-profile Unix programmers (who shall remain nameless).

If you mean Dan, I beg to differ. Dan ignores most stupid questions,
patiently answers a few, and usually bites hard only after explaining
something and being contradicted. In this respect he's just like any
Math professor/competent mathematician I've ever known--he reserves his
scorn for people who've had a chance to RTFM but refuse and then continue
to bother him.

 Then, the "Ooh, I want to be cool like {Insert High-Profile Name}"
 people try to emulate it.

I'm certainly an ``Ooh, I want to be as knowledgable and competent as Dan''
person. Many of us are. And maybe some of Dan's style rubs off, as well as
some of his knowledge. But mostly people hate to answer the same question
over and over; your previous excellent explanation nailed it.

Len.

--
Unfortunately, spammers deliberately subvert priority mechanisms,
making their ``bad'' messages indistinguishable from ``good''
messages.
-- Dan Bernstein, author of qmail



Re: Why fstat() in qmail-send.c:markdone()?

2000-03-10 Thread Len Budney

"Fred Lindberg" [EMAIL PROTECTED] wrote:
 It's obviously important or it wouldn't be there. Can anyone explain
 why?

Forgive my speculation--if I'm wrong, somebody correct me! My guess is
that fstat() follows open() because of system-specific open() bugs.

On NFS, for example, open() will sometimes return a descriptor, but
subsequent write() calls will fail with EACCESS. This condition can be
detected through error slippage by calling fstat(), which will also
fail with EACCESS.

Len.


--
The whole point of modern `standards' is to preserve the existing
oligopoly. A few vendors band together to produce a `standard' that
is precisely the disjoint union of their existing implementations,
including all their warts.
-- Henry Baker



Re: moving from mbox to maildir.

2000-03-07 Thread Len Budney

"Russell P. Sutherland" [EMAIL PROTECTED] wrote:
 * Eric Lalonde ([EMAIL PROTECTED]) [ 6 Mar 2000 22:09]:
 
  ...where do i copy currently unchecked email in /var/spool/mail,
  so that this mail will be listed under Maildir as 'unchecked' email?
 
 See for example: http://madhaus.utcs.utoronto.ca/qmail/mbox2maildir
 for a perl script written by Ivan Kohler.

Or, if you're more anal about strict conformity to the maildir algorithm,
you can try safecat:

  http://www.pobox.com/~lbudney/linux/software/safecat.html

Use formail to split the mbox into messages, and safecat to filter each
one. There's a one-liner on the one-liners page, reachable from the
main safecat page.

The point of safecat is that it returns success if and only if the
message is delivered successfully. You should arrange to catch the
exit status of safecat, and try again for any mbox for which safecat
fails (which is unlikely to happen in the first place).

Len.

--
Use prime numbers so that the hashing works well. (``Oh, that's what
/usr/games/primes is for.'')
-- Dan Bernstein



Re: qmail-pop3d not conforming to RFC1939?!

2000-03-01 Thread Len Budney

iv0 [EMAIL PROTECTED] wrote:
 Russell Nelson wrote:
  
  Yeah, but you're still serving up the Bugtraq posting with the
  qmail-pop3d patch in it.
 
 Funny thing. After reading that bugtraq posting again, I don't agree
 with the contents. So I've taken it down. We orignally put it up to
 be complete.

That was very honorable, since those comments tended to exhonorate
your software at the expense of Dan's. I congratulate you!

Len.


--
Peterson's basic problem is that he wasn't aware that ``radix sort''
could refer to anything other than LSD radix sort. Now he's going on an
ad hominem rampage, attacking me to try to cover up his own ignorance.
-- Dan Bernstein



Re: Encryption and t-shirts

2000-02-29 Thread Len Budney

"Mark E. Drummond" [EMAIL PROTECTED] wrote:
 
 How about djb's "There are two kinds of interfaces ..." quote?

You mean:

I have discovered that there are two types of command interfaces in the
world of computing: good interfaces and user interfaces.
-- Dan Bernstein

:)

Len.

PS I'll take one too; XL, preferably light colored but heavy weight.

--
When you talk about every use of a person's name as ``ad hominem''
you simply make yourself sound illiterate.
-- Dan Bernstein



O-T: Announce: safecat-1.2 is available

2000-02-29 Thread Len Budney

Safecat 1.2 is available.

Changes: Complete rewrite using DJB libraries, including buffered
I/O. Speedup of about 1.4 for actual email messages. Now writes
"Delivered-To:" and "Return-Path:" headers when DTLINE and RPLINE
environment variables are set.

Of interest:

http://localhost/~lbudney/linux/software/safecat/performance.html A
summary of the recent performance discussion on qmail.

http://localhost/~lbudney/linux/software/safecat/COPYING.txt My own
solution to the problems of Dan's unclear licensing. It boils down to,
``If you don't bother Dan, he probably doesn't care.''

Len.


--
I'm criticizing one program. That program is disgustingly insecure. It
shouldn't just be ridiculed---it should be taken out and shot.
-- Dan Bernstein, author of qmail



Re: O-T: Announce: safecat-1.2 is available

2000-02-29 Thread Len Budney

Oops,

"Len Budney" [EMAIL PROTECTED] wrote:
 http://localhost/~lbudney/linux/software/safecat/performance.html
 http://localhost/~lbudney/linux/software/safecat/COPYING.txt

"localhost" should be "www.pobox.com", of course. Sorry for any
inconvenience.

Len.


--
Methinks you're exaggerating; 100,000 messages per minute would be
144,000,000 messages per day. AOL isn't _that_ big.
-- Dan Bernstein



Re: Maildir and procmail and safecat

2000-02-25 Thread Len Budney

Sam [EMAIL PROTECTED] wrote:
 On Fri, 25 Feb 2000, Paul Jarc wrote:
  
  Sorry, no.  You're not looking at *the* putc macro; you're looking at
  *a* putc macro.  One implementation need not resemble another at all
 
 However, since I'm using *MY* implementation, I'm going to look at *MY*
 macros, thankyouverymuch.

[various stupidity snipped]

Out of thine own mouth will I judge thee. Benchmarking *YOUR* macros
is pointless, when you're talking about the performance of *MY*
program. Why don't you benchmark my program, stupid?

``I do not need to benchmark obviously inefficient code just to prove that
it's inefficient.'' Who needs to profile, when Sam can calculate runtime
profiles without even glancing at the code? Just tell Sam an anecdote
about your program, and he'll give you a thumbs up or down. Jackass.

 I wonder how many times I have to report the same results (twice
 apparently isn't enough) before everyone finds something else to do,
 besides splitting hairs.

Okay, consider your results. One program writes a byte repeatedly, and
the other immediately segfaults. What was that supposed to tell us
about safecat? Considering your utterly inept approach to profiling,
it certainly appears you don't do it that often.

I'll repeat, for the last time: safecat, on my system at least, runs
within a factor of two of /bin/cat.

Len.


--
You're repeating the same old ``forks are bad and execs are
disastrous'' litany without _profiling_ where your time is actually
going.
-- Dan Bernstein



Re: Safecat challenge

2000-02-25 Thread Len Budney

Just for fun, why not put your money where your mouth is? I'll give
you $250 if you can write a program which 1) Exactly conforms to the
maildir protocol (including fsync()), and 2) runs 50 times faster than
safecat, in an independent benchmark using actual emails, and 3) runs
at least 20 times faster on a Linux machine with an ext2 filesystem
mounted async, like mine. Since this is such a lock for you, you can
dictate terms: what will you pay me after you fail?

Sam [EMAIL PROTECTED] wrote:
  Considering your utterly inept approach to profiling, it certainly
  appears you don't do it that often.

 Correct, professor.  I prefer to write efficient code right from the
 start.  What a novel concept!

The prosecution rests, your honor. We've heard from Dijkstra, Knuth,
and other expert witnesses. The defendent has confessed to the crime
of total boobery.

  I'll repeat, for the last time: safecat, on my system at least, runs
  within a factor of two of /bin/cat.
 
 And on other systems, it benchmarks at 1/50th the speed of
 efficiently-written code.

1. You benchmarked safecat? You saw somebody else's benchmarks? No. So
   shut up.

2. I said ``/bin/cat''. You said, ``efficiently written code'', by which
   you meant ``something I'm imagining right now in my head, which isn't
   safecat, which I've never profiled. There's a profiler in my head!''

Beep! Thanks for playing; take your booby prize at the door. (I'm done
abusing the list with this off-topic thread.)

Len.

PS A speedup of 2 is nothing to sneeze at. It's closer to 3 on an unloaded
system; again nothing to sneeze at. I'll be rewriting safecat Real Soon
Now.



Re: Maildir and procmail and safecat

2000-02-24 Thread Len Budney

Russ Allbery [EMAIL PROTECTED] wrote:
 Len Budney [EMAIL PROTECTED] writes:
 
  Yes, but 5-6 orders of magnitude less expensive than physical
  writes. If I had incurred, but discounted, physical latencies, I would
  be a jackass. Instead I simply made a decision you don't care for,
  which I would reverse in the face of actual performance data.
 
 W. Richard Stevens did that benchmark in _Advanced Unix Programming_
 quite a while back; as I recall, the difference between single-character
 writes and buffered writes in his data was an order of magnitude or two.

Sounds believable. I benchmarked safecat using write(,,1) and putc(),
and got a factor of at worst 2 (in wall-clock time). My benchmarks
weren't terribly exhaustive, since they didn't cover a range of
filesystems, and no control was exercised over system load/application
mix.

I'll probably rewrite safecat on general principles anyway, but so far
nobody has reported that it was their bottleneck. Mr. Sam's ``I can't
even emulate putc correctly, and I'm too stupid to simply _use_ putc''
benchmark was pretty underwhelming.

Len.


--
Finally, anti-spam rules are vulnerable to the anti-fax effect: they are
useful only if they aren't very widely used.
-- Dan Bernstein



Re: Maildir and procmail and safecat

2000-02-24 Thread Len Budney

You've been worked over pretty thoroughly already, but anyway...

Sam [EMAIL PROTECTED] wrote:
 On Thu, 24 Feb 2000, Len Budney wrote:
 
  However, they have about the similar wall-clock runtime as each other
  and as /bin/cat. The best expectable speedup would be a factor of
  about 2, not 1,000,000.

[Completely bogus straw-man code snipped]
 Both of these have "similar wall-clock runtime" too.

1. In my benchmark, I ganged 1,390 runs using actual, distinct email
   messages as input. Thus I didn't see 00.00elapsed, and didn't think
   to myself, ``Gee, buffered writes take no time at all!''

2. I benchmarked _safecat_, not some sort of bogus loop which doesn't
   do anything. Why didn't you, since we were talking about safecat?

3. If you're making claims for putc(), why didn't your non-safecat program
   _use_ putc? Why did you need to ``emulate putc()'s implementation
   as closely as possible''? If you really did need to, why were you so
   dismally incapable of it?

 Still, one version doesn't even register -- executes in less than a clock
 tick.

Amazing! You've discovered how to do useful work in zero time!

 Now, multiply that by hundreds of thousands of messages per second.

True; writing 100,000 messages in 0 seconds is mighty fast! You _are_
a guru!

  HP/UX, for example, they are (were) written so poorly that returns
  from a signal handler dropped back inside the macro.
 
 Anyone who has two brain cells to rub together knows enough not to
 mix stdio and signal handling together.  stdio is not guaranteed to
 work at all in conjunction with signal handling.

Thanks for the tip! That might have something to do with why I didn't
use stdio. (``grep sigaction *.c'')

  How do I know why putc() fails when it fails?
 
 Check errno.  Always works for me.

This is guaranteed on which platforms? Broken on which? Which standard
requires the use of errno? Why don't the manpages say so? Finally, how
did you verify that it ``always works'' for you?

 I recall that the original excuse for this absurd logic was that it's
 too gosh darn difficult to properly check the return value from a
 multicharacter write() call.

Wrong again. It's true I don't see the point in implementing something
whose need is not established. ``Profile, don't speculate.'' By the way,
try ``man 2 write''. Suggesting I can't handle return codes, when you
can't even supply correct arguments, is hilarious.

Thanks anyway.

Len.


--
There is no dispute that the proposed code fails in exactly the situations
that I said. There are simply religious claims that I shouldn't care
about that type of breakage.
-- Dan Bernstein



Re: Maildir and procmail

2000-02-24 Thread Len Budney

Tracy R Reed [EMAIL PROTECTED] wrote:
 
 :0
 * ^[EMAIL PROTECTED]
 * ^Subject: test
 test.`/bin/date +%m%y`/new
 
 Mail to me with a subject of test goes to the specified maildir. Is it
 really necessary to append /new to the name of the Maildir?

Yes, unless you 1) use a patched procmail, or 2) use an external
delivery program. Ideally, you should use one with similar reliability
guarantees to qmail itself. Trusting procmail to deliver reliably seems
a little dangerous, in my opinion.

I recommend safecat, which you can find at
http://www.pobox.com/~lbudney/linux/software/safecat.html. Using the
embedded script `maildir', your rule would be rewritten as:

  :0w -- Needed for reliability
  * ^[EMAIL PROTECTED]
  * ^Subject: test
  |maildir test.`/bin/date +%m%y` -- Absolute path is better


 Before procmail would create the new mbox files for me automatically. It
 won't automatically create Maildirs for me. Anyone have a solution?

Two points for the modular approach! Wrap `maildir' in the following
script:

  #!/bin/sh
  # Create a Maildir, if it doesn't already exist
  if test ! -d "$1"
  then
maildirmake "$1" || exit 1
  else
if test ! -d "$1"/tmp -o ! -d "$1"/new
then
  echo "$1" exists, but is not a maildir. 12
  exit 1
fi
  fi
  exec maildir "$1"

Note that `maildirmake' must be on the PATH given to procmail, and you
should be conscious of the path to your maildir. safecat doesn't care
whether paths are relative or absolute; I recommend absolute.  Just
prepend "$HOME/Mail/" to the maildir in the recipe above.

Len.


--
Exim seems to exhibit all the security design mistakes Sendmail has
made, only Exim handles them even more poorly than Mr. Allman does...
-- Dan Bernstein, author of qmail



Re: Managing the Queue

2000-02-24 Thread Len Budney

"Peter Samuel" [EMAIL PROTECTED] wrote:
 On 24 Feb 2000, D. J. Bernstein wrote:
 
  Peter Samuel writes:
   Under certain conditions it can leave the queue in a corrupt state.
  
  No, it can't. See INTERNALS in the qmail package for the complete story.
 
 I _know_ what INTERNALS says Dan, but try this test and you'll see
 that it does leave the queue in a corrupt state...qmail-queue exits
 with a 91 and does NOT unlink the mess or intd file.

That doesn't mean that the queue is ``corrupted''. If todo/INODE exists,
the message is queued. If not, the message is not queued. Period. Qmail
returns success to the caller only if the message is queued.

Lots of failures can leave various files in the queue tree--INTERNALS
discusses that at great length (for Dan). If qmail-queue is killed in
state S3, both mess/INODE and intd/INODE will exist--but the message is
not queued.

That's what qmail-clean is for. It's called by qmail-send to clean up
any lint in the queue tree. Note, though, that this takes at least 36
hours. qmail-send doesn't delete younger files, because they might
represent a message presently being queued. It's all documented in
INTERNALS.

Len.


--
Shared libraries work wonders with hulking monoliths of code. Most
programs today are hulking monoliths of code.  A kluge whose value rests
on the popularity of poor programming practice is a valuable kluge indeed.
-- Dan Bernstein



Re: Maildir and procmail and safecat

2000-02-24 Thread Len Budney

Curtis Generous [EMAIL PROTECTED] wrote:
 
 I'm trying to use safecat on a very busy email server, and noticed
 while looking at the output of truss(1) that all writes to the file
 are being done a single character at the time...

That may be excessively draconian on my part! Back when I wrote safecat,
I used 1-byte writes when possible, because it eliminated the need for
logic handling the case that 0write(n)n, in which it's necessary to back
up and rewrite the missing characters. When n=1, the result of write()
must be one of error (-1), temporary failure (0), and success (1).

I've assumed that most filesystems are block-buffered anyway, and safecat
doesn't call sync() until it's finished writing the entire file. Has
this caused a measurable performance problem in your setting?

I haven't revisited that in some time; if anyone has a comment or insight
please let me know. Otherwise, I'll look into updating safecat Real Soon
Now. It needs one or two minor things anyway.

Thanks,
Len.

PS One of the things safecat needs is to write the "Delivered-To:" and
"Return-Path:" lines when DTLINE and RPLINE are set. If you're using
qmail-pop3d or serialmail, that's a more serious problem for you--which
I plan to fix RSN.

PPS Switching to substdio/stralloc would also eliminate that problem.
I might do that, now that I've decided to stop worrying about Dan's view
of people reusing his code in their projects. As long as I handle any
maintenance costs, I'm assuming Dan doesn't care one way or the other.

--
Security is completely separate from functionality, and no amount of
beta testing can ever uncover a security flaw.
-- Bruce Schneier



Re: Maildir and procmail and safecat

2000-02-24 Thread Len Budney

Sam [EMAIL PROTECTED] wrote:
 On Thu, 24 Feb 2000, Len Budney wrote:
  I've assumed that most filesystems are block-buffered anyway,
  and safecat
 
 They are, however switching to/from kernel mode is extremely expensive.

Yes, but 5-6 orders of magnitude less expensive than physical writes. If
I had incurred, but discounted, physical latencies, I would be a
jackass. Instead I simply made a decision you don't care for, which I
would reverse in the face of actual performance data.

Under my own benchmarks, safecat with buffering is more CPU intensive
than without. However, they have about the similar wall-clock runtime
as each other and as /bin/cat. The best expectable speedup would be a
factor of about 2, not 1,000,000.

In particular, it is extremely unlikely that safecat is the source
of Mr. Generous's performance problems. If actual performance metrics
indicate otherwise, I will happily rewrite the program to accomodate
his needs.

 The reason getc/putc buffer single characters into big chunks, before
 calling read/write, is not because some programmer had some free time
 one afternoon, and decided to write all those convoluted macros and
 functions.

The reason for my idiom, and the reason I don't use those convoluted
macros and functions, is not because I got religion at an anti-libc
tent revival.

The getc/putc macros are, in general, a portability nightmare. Under
HP/UX, for example, they are (were) written so poorly that returns
from a signal handler dropped back inside the macro. Result: your
friends the ``convoluted macros'' degenerated to infinite loops upon
receipt of non-terminal signals.

Question: why didn't the fellow you admire so, who wrote these convoluted
macros, see fit to give proper error information? Why didn't he use errno?
How do I know why putc() fails when it fails?

Len.


--
It's not an opinion. It's a statement of fact. And it's wrong.
-- Dan Bernstein



RFC: Command-line MUA for Maildirs?

2000-02-15 Thread Len Budney

Magnus Bodin [EMAIL PROTECTED] wrote:
 
 Mutt is _the_ client for Maildir. There is patches for Pine too.
 I haven't hear of a command line mail reader for Maildir boxes.
  ^^

Speaking of which, is anyone interested in building such a thing? Or,
would anyone use such a thing if it existed?

I still use MH, with all its drawbacks, because it offers the
most flexibility.  Emacs/Mew for awesome MIME handling, GNUs
for...well...reading GNUsly, command-line MH for quick handling of
individual messages.

Does anybody wish for a command-line interface to maildirs, on the idea
of MH? If it were architected right, the result would be some simple tools
which would facilitate other MUAs jumping on the maildir bandwagon...

Len.


--
There's a fine opportunity here, but the IETF is institutionally incapable
of taking advantage of it. I think it's safe to say that the DRUMS specs
will be even more widely violated than RFC 822.
-- Dan Bernstein



Re: qmail on FFS with softupdates

2000-02-14 Thread Len Budney

Anand Buddhdev [EMAIL PROTECTED] wrote:

 Dan does not recommend the use of a softupdates file system for the
 queue. If FFS+softupdates = standard FFS+faster, then there should be
 no harm in using it.

This is something I _can_ comment on. In fact, I already did, in
message 42203 on this list:

"Len Budney" [EMAIL PROTECTED] wrote:
 [EMAIL PROTECTED] wrote:
  Using softupdates under *BSD gives you the reliability of sync
  (somewhat more, actually), with nearly the speed of async.
 
 In October of 1999, that wasn't quite true...
 
``In particular, if you put a mail queue on a softupdates filesystem,
you can lose mail when the power goes out, just as if you were using
Linux.''   -- Dan Bernstein, http://x38.deja.com/getdoc.xp?AN=539496358
 
 From Dan's other comments in that thread, it appears that the rename()
 call returns success before the rename was committed to disk. Dan said
 ``mail programs'' rely on rename() to tell the truth. A look at the
 source code suggests that qmail is not one of them--qmail-queue doesn't
 use the rename() call.
 
 If link() is subject to the same complaint as rename(), then qmail
 probably _does_ have the same reliability problem on a softupdates
 filesystem as on an async filesystem.

Len.


--
Some people are suffering from the delusion that program modularity is
incompatible with good performance.
-- Dan Bernstein



Re: egg on MY face

2000-02-12 Thread Len Budney

Andre Oppermann [EMAIL PROTECTED] wrote:
 Appearantly you mixed something up here. FFS never did journaling and
 neither does softupdates.

Indeed. :( Apparently, I misread the following about two years ago,
and never looked back:

   qmail's queue (except for bounce message contents) is crashproof if
   the filesystem guarantees that single-byte writes are atomic and that
   directory operations are synchronous. These guarantees are provided by
   the BSD FFS and its derivatives, and by typical journaling filesystems.

I'll call you back when I learn to read,
Len.

--
When the OS already provides a simple, widely used, thoroughly tested
mechanism, it makes no sense to give every program a half-assed
imitation of the same mechanism.
-- Dan Bernstein



Re: qmail on FFS with softupdates

2000-02-11 Thread Len Budney

(This post is still on-topic, but hanging by a thread.)

Magnus Bodin [EMAIL PROTECTED] wrote:
 On Thu, Feb 10, 2000 at 11:21:08PM -0500, Len Budney wrote:
  ...the reliability impact of soft updates on FFS--giving us a good
  example of both a reliable journalled filesystem, and an unreliable
  journalled filesystem.
 
 Thanks. Yes. Let's make the clarification. FFS with soft updates is NOT a
 journaling file system.

Thanks for the correction. Do you have a reference for that? I couldn't
find one.

It is possible to use soft update technology while still maintaining a
journal of metadata. I assumed, apparently incorrectly, that FFS did
this. (If the metadata journal has been discarded, I would have thought
that the filesystem would be different enough to warrant a new name.)

 It DOES NOT MEAN that rename() is no longer an atomic operation in respect
 to other applications, but if you get a crash between the rename() and the
 fsync() you cannot be sure that the rename has been done when you come up
 again. 
 
 The impact of qmail is however dim to me. 

qmail-queue never calls rename; only link. If I'm wrong in assuming
that your remarks transfer to link, please let me know. With that
disclaimer, here's how qmail-queue enqueues a message:

 1. Create a file in a temporary directory (queue/pid). It's inode
becomes the message number (say 457).
 3. Link the tempfile to queue/mess/457.
 4. Write the message to queue/mess/457 (via the open file descriptor
in queue/pid). fsync().
 5. Create queue/intd/457, and write the envelope to the file. fsync().
 6. link queue/intd/457 to queue/todo/457.

If the link in #6 succeeds, qmail-queue will return success. If the link
in queue/todo later vanishes, then so does the mail message.

 Do we have to add extra fsyncs here?

I'm not sure. In your other post (subject: ``fsync semantics''), you
didn't supply the arguments to fsync.

Is it necessary to open each of queue/mess, queue/intd and queue/todo
and fsync them? In that case we need three more fsyncs (under FFS with
softupdates, at least).

Does fsyncing an open file descriptor sync not only metadata but hard
links as well? In that case fsyncing queue/intd/messnum again after
#6 suffices.

Len.


--
In general, I'm not going to blindly copy sendmail features---even
useful features. I want to understand what problem they're trying to
solve; then I'll provide the best solution for that problem.
-- Dan Bernstein, author of qmail



Re: qmail on FFS with softupdates

2000-02-11 Thread Len Budney

Andre Oppermann [EMAIL PROTECTED] wrote:
 Len Budney wrote:
 
   1. Create a file in a temporary directory (queue/pid). It's inode
  becomes the message number (say 457).
   3. Link the tempfile to queue/mess/457.
   4. Write the message to queue/mess/457 (via the open file descriptor
  in queue/pid). fsync().
   5. Create queue/intd/457, and write the envelope to the file. fsync().
   6. link queue/intd/457 to queue/todo/457.
  
  If the link in #6 succeeds, qmail-queue will return success. If the link
  in queue/todo later vanishes, then so does the mail message.
 
 And should be resent later by the sending MTA because qmail did not
 say "250 ok". Transaction not completed, roll-back.

I'm not sure if we're communicating. Does FFS offer the guarantee that
when link() succeeds, the hard link exists on the physical disk?

If not, then you are incorrect. When the link in #6 above succeeds,
qmail-queue returns success. qmail-smtp interprets that as success,
and returns "250 ok". The client interpets that as success, and
discards the message. All of this occurs if link() returns success.

If link() can return success, yet the link itself vanish after a reboot,
then mail can be lost. Where does that leave us?

Len.



Re: Egg on my face

2000-02-10 Thread Len Budney

Sam [EMAIL PROTECTED] wrote:
 On Thu, 10 Feb 2000, Russell Nelson wrote:
 
 Well, hell, you'll probably lose mail even if you're running a
 journaling filesystem, like that.  Contrary to popular belief, a
 journaling fs does not guarantee that all of your data is intact,
 just that the integrity of the fs itself will not require a refsck
 after a crash.

False. Mail will not be lost if if rename() or link() (depending on
the software) offers the correct semantics: they should return only
after the operation has completed _on hardware_. That's true even with
soft updates (in which writes are ganged based on physical proximity
on disk).

Your point applies specifically to journalling filesystems with soft
updates which don't honor the traditional semantics.

Len.


--
Today's processors are not 1000 times bigger, they're 1000 times smaller.
The processors on your desktop are an abnormality.  Look at the ones in
your car.
-- Bruce Schneier



Re: Journalling and email loss

2000-02-10 Thread Len Budney

Sam [EMAIL PROTECTED] wrote:
 On Thu, 10 Feb 2000, Len Budney wrote:
 
  Sam [EMAIL PROTECTED] wrote:
   On Thu, 10 Feb 2000, Russell Nelson wrote:
   
   Well, hell, you'll probably lose mail even if you're running a
   journaling filesystem...
  
  False. Mail will not be lost if if rename() or link() (depending on
 
 Who said anything about the message already being on the filesystem?

Then your comment was utterly inane. Any MTA which returns success
before writing a message to the filesystem, and syncing it, should be
thrown away. Any MUA which doesn't check exit status of the MTA should
be thrown away. Authors of such junk should be flogged.

(My remark applies to qmail 2, as well. Zeroseek will build compressed
journals, but the journal entry had better be on disk before success
is returned.)

Len.


--
Cryptographic systems are broken constantly, but the attacks are almost
never against the algorithms.  The really difficult problems in security
systems are key distribution, management, reliability, robustness, etc.
-- Bruce Schneier



Re: Journalling and email loss

2000-02-10 Thread Len Budney

(Sam)
 Well, hell, you'll probably lose mail even if you're running a
 journaling filesystem...

   (me)
False. Mail will not be lost if if rename() or link() (depending on
   
  (Sam)
   Who said anything about the message already being on the filesystem?
  
 (me)
  Then your comment was utterly inane. Any MTA which returns success
  before writing a message to the filesystem, and syncing it...
 
(Sam)
 Which only syncs the data.  close() then updates the metadata, which
 may remain buffered for some time before getting flushed out.

Which brings us back to link() or rename(), of course. Writing data
directly to the target queue/file is a mistake, unless you want
queued, incomplete messages after a failure.

Is it late at night where you are? I'm certain you know all this; you
must be tired.

Len.


--
Look at it this way: sendmail is a whale, and qmail is a shark. Perhaps
you're impressed by the size of the whale; perhaps, if you grew up
surrounded by whales, you find it hard to imagine a big sea creature
without tons of blubber.
-- Dan Bernstein



Re: maildir access

2000-02-10 Thread Len Budney

Marek Narkiewicz [EMAIL PROTECTED] wrote:

 How do i go about reading from a maildir without ncroaching on the
 security of the maildir?

Depends what you mean by ``security''. If you really mean ``security'',
then the answer is: only do it if they're your emails (or you're
authorized).

If you mean ``reliability'', then there's no issue: go ahead and read
any file in maildir/new or maildir/cur. Don't touch any files you see
in maildir/tmp--unless they're older than 36 hours, in which case you
should delete them.

 Also where can i find the spec for maildirs like an rfc or similar.

The best spec is the manpage maildir(5), included with qmail. It tells
you everything you need. It also refers you to a page on Dan's website
with a little more information for MUA implementers.

 ie what is the procedure for reading emails

If you mean, ``What MUA uses Maildirs as folders?'' then as far as I
know the only one is mutt. For spot use, ``more'' or ``less'' should
be good enough.

Len.


--
The moment you run that, a local attacker can take over your machine.
Isn't security fun?
-- Dan Bernstein



Re: Journalling and email loss

2000-02-10 Thread Len Budney

Sam [EMAIL PROTECTED] wrote:
 On Thu, 10 Feb 2000, Len Budney wrote:
  
  Which brings us back to link() or rename()...
 
 And, if close() does not update the metadata, there's no reason why link
 or rename should either.
 
 What this REALLY brings us back to is the fact that the only thing that
 journaling guarantees you is that you won't have to refsck everything
 after a reboot...

Journalling is absolutely orthogonal to the reliability issue. The
reliability issue is: What are the semantics of fsync(), link() and
rename()? If they return after the requested operation completes to disk,
we can guarantee reliability. If not, we can't.

Which brings us back to your mistake; you make a claim about ``journalling
filesystems'' which is true for some, and false for others. FFS had
those semantics, for example, but happened to break them when soft
updates were added.

Len.


--
256-bit keys will forever be immune from brute-force attacks until
computers are made up of something other than matter and occupy something
other than space.
-- Bruce Schneier



Re: maildir access

2000-02-10 Thread Len Budney

Marek Narkiewicz [EMAIL PROTECTED] wrote:

 Now in order for the java server to update the client when new mail
 is available it needs some way of knowing which mails have already
 been read by the web client.

The easiest way, if your maildir clients all play nice, is that files
in maildir/new are new, and files in maildir/cur have been seen (which
isn't the same as read, exactly, but I'm just nitpicking). So just inform
your Java client when there are files in maildir/new.

 Does qmail-pop3d currently offer anything outside rfc 1460 that can
 mark messages as read?

When a message has been popped, qmail-pop3d _does_ move it to maildir/cur,
which effectively marks it as read. So you're all set.

 If not can anyone think of the most logical way to utilise that info
 field? I would like to then improve on the functionality to offer imap
 style folders but virtually based on a code in the info.

I can't help you there; I don't know much about IMAP. The main concern
is that scanning a directory can be slow if the folders are too full
(where too full has been estimated at 25K emails). I don't know if the
concern is reasonable, since I don't know if anybody ever has folders
so full.

Len.


--
How about the B1H problem, when your body temperature goes above
100 degrees? Or the L1m problem, when the lira dips below one
millicent? Casinos worry about the D52C problem, when there are more
than 52 cards in a deck. This could be the start of something big.
-- Bruce Schneier



Re: school filtering of student e-mail

2000-02-06 Thread Len Budney

"Barry Smoke" [EMAIL PROTECTED] wrote:
 I work for Bryant Public Schools, Bryant  AR...

 1. how do we filter [email] content, and what do we filter?(is there
 a programare there rules for words, catch phrases, content, url's,
 attachments...)

It's not clear what you're after here. Are you worried about incoming
mail (e.g., spam)? Or outgoing mail (e.g. mail abuse by students)?

If you're worried about spam, you should (at bare minimum) set up
rblsmtpd, and use the Realtime Blackhole List http://maps.vix.com/rbl/.
You might also want to subscribe to the Open Relay Blocking System
http://www.orbs.org/.

If you're worried about abuse _by students_, then the most important
measure is to be highly responsive to messages to abuse@ reporting
misbehavior. Actually interfering with student mail may have legal
implications, especially 1st amendment and 4th amendment issues.

For example, any filter which watches for pornographic text will
probably flag some fraction of emails between a boyfriend and a girlfriend
within the same school. Acting on those emails may raise legal problems
(censorship); failing to act may also raise legal problems (contributing
to the delinquency of a minor).

The bottom line: before interfering with outgoing email, you should
probably check with a lawyer (which I am not). This appears to be a
legal issue, not a techinical one. Hastily implementing a technical
solution would be ill-advised.

Len.

PS Consider my remarks retracted if the school system has already
formulated a legal policy here. It doesn't sound like it, though, or
your question would not have been so vague. In particular, ``the bad
stuff'' needs to be defined before it can be filtered, and ``bad''
here must necessarily be defined by law and policy.

--
In 1995 Matt and I presented a cipher called MacGuffin at FSE 2 (an
algorithms workshop). It was broken even before we presented it, by the
hosts of the conference. This is the way the science works.
-- Bruce Schneier



Re: school filtering of student e-mail

2000-02-06 Thread Len Budney

"Barry Smoke" [EMAIL PROTECTED] wrote:

 We will need to allow students to use this only to do research, recieve
 valid attachments (ie...research pictures, zip files containing valid
 material, etc.).  We do not have the staff to police the proper use
 of this though, and any porn links, dirty pictures, etcwill not
 be tolerated.  Please concider this a technical question, and not an
 ethical/legal one.

Ahh--that's easier. You can't do what you've just described.

If students can receive legitimate pictures, but not illegitimate
ones, then you need a way to distinguish the two. There may be AI which
can, for example, identify photos of naked women, but there is nothing
out there of practical use which can do it.

If there were, then you would still have a problem; if your students are
researching classical art, then they will not be able to view (presumably
legitimate) paintings of nudes.

So you can forget about spotting ``bad'' photos, video, audio, and the
like. The only way to catch these is to forbid all attachments of that
class.

As for zip files--you can't examine the contents without unzipping them.
That alone will significantly impair mail performance. However, you can do
it. Once you do, the above objection applies to photos, video, etc.

That leaves text. By ``text'', I mean pdf, postscript, plain text, html,
Word documents, and possibly more. Each of these can be converted to plain
text, at fairly significant performance cost. If you're not daunted yet,
we can just call them ``text''.

Then yup, you can scan text for a list of forbidden words and phrases.
As Steve Wolfe said, you can log the matches, forward them to admins,
whatever you want.

Of course, scanning on racial epithets will flag children reading Mark
Twain. Ordinary cuss-word scanning will flag most literature.

Bottom line: your goal still needs some clarification.

Len.


--
Gee. What if the spammer keeps trying to send more messages---forever?
What if you get billions of connections from faked IP addresses?
...Please don't waste my time on nonexistent efficiency problems.
-- Dan Bernstein



ORBS not recommended

2000-02-06 Thread Len Budney

[EMAIL PROTECTED] wrote:
 
 I would strongly recommend *against* using ORBS, because it blocks a
 lot of legitimate mail.

Agreed. (I cut a similar caution for space reasons; should've just omitted
mention of ORBS.)

Fascism is seductive to techies--in particular, the ORBS fellow does
seem to have a bit of a god complex. http://www.orbs.org/bugtraq.html
gives a good example.

Len.

--
Unfortunately, spammers make their ``bad'' messages indistinguishable
from ``good'' messages. Whatever you try, they will avoid it.
-- Dan Bernstein, author of qmail



Re: Linux kernel turning for mail performance?

2000-02-03 Thread Len Budney

[EMAIL PROTECTED] wrote:
 
 I strongly _dis_recommend mounting ext2fs filesystems sync. The system
 I described earlier had _terrible_ performance at first, it turned
 out this was because I followed the FAQ and mounted it sync.

Agreed; that's a serious issue. I would recommend switching to a better
synchronous filesystem, though, rather than using ext2 async.

Unfortunately, Linux offers few choices there.  The BSD fs would be great
if it wasn't so immature under Linux; raiserfs might be just as good
(I don't know). It's rumored that ext3 will be journalled, synchronous
and real real fast--we'll see.

 Yes, mounting it async is bad for reliability, so decide for yourself.

The question underlying my recommendation to mount sync was: Would a
speed test be completely valid if reliability corners were cut?

Since a Linux box seldom goes down, you could 1) buy a 2-hour UPS, and 2)
mount a ramdisk on /var/qmail/queue (untested). Still ``pretty'' reliable,
but I bet that queue performance goes sky-high.

Len.

PS Then again, ``Profile--don't speculate.'' Mounting ext2 async might
approximate the performance of a ramdisk, since that's roughly what
``async'' means.


--
There's an engineering term for systems like that: ``garbage.''
-- Dan Bernstein



Re: Linux kernel turning for mail performance?

2000-02-03 Thread Len Budney

[EMAIL PROTECTED] wrote:
 
 On Thu, 03 Feb 2000 09:05:35 -0500 , "Len Budney" writes:
  
  Unfortunately, Linux offers few choices there.  The BSD fs would be
  great if it wasn't so immature under Linux;
 
 Using softupdates under *BSD gives you the reliability of sync (somewhat
 more, actually), with nearly the speed of async.

In October of 1999, that wasn't quite true. Softupdates is less likely
than async to produce an inconsistent filesystem, but is still vulnerable
to data loss.

   ``In particular, if you put a mail queue on a softupdates filesystem,
   you can lose mail when the power goes out, just as if you were using
   Linux.''   -- Dan Bernstein, http://x38.deja.com/getdoc.xp?AN=539496358

From Dan's other comments in that thread, it appears that the rename()
call returns success before the rename was committed to disk. Dan said
``mail programs'' rely on rename() to tell the truth. A look at the
source code suggests that qmail is not one of them--qmail-queue doesn't
use the rename() call.

If link() is subject to the same complaint as rename(), then qmail probably
_does_ have the same reliability problem on a softupdates filesystem as on
an async filesystem.

Len.


--
Translate the patents into English and you will see that there is
nothing new in the Sperry patent. The only way that Unisys can make
money off this patent is by convincing gullible people to pay them.
-- Dan Bernstein



Re: Linux kernel turning for mail performance?

2000-02-03 Thread Len Budney

[EMAIL PROTECTED] wrote:

 In my past 7 years of using Linux I have never seen an ext2 filesystem
 that fsck could not fix.

In my 7+- years, I haven't either. My worst experience was the time I
had to use the -b option (fsck told me to, so I did, and it worked). I've
lost about 3 files in that time to ext2 inconsistency--not too bad.

 Getting back on topic, I use an ext2 async filesystem for qmail.

I use ext2 sync for /var/qmail/queue. But I handle so little mail, that
the fs doesn't visibly impact latency.

 The chances of my machines going down at the exact moment that
 email could be lost seems pretty small.  For high volume sites with
 reliability requirements a journalling filesystem like ext3 should
 probably be used.

Sounds exactly right to me. (For 'reliability requirements' I'm reading,
'handles other peoples email'.)

Len.

--
Early to bed and early to rise makes a man tired and grumpy.
-- Dan Bernstein



Re: Linux kernel turning for mail performance?

2000-02-02 Thread Len Budney

Jeremy Hansen [EMAIL PROTECTED] wrote:
 
 Is there any kernel sysctl or otherwise parameters suggested for
 performance using qmail on Linux?  Open file handle limits, share
 memory, whatever?  I have a goal to send at least 1 million emails in
 a 24 hour period from a single machine.

The main suggestion has already been made: raise concurrencyremote to
255 and buy lots of memory.

If money is not an object, you can also install several SCSI drives
and stripe /var/qmail/queue across those disks. (Mount the filesystems
with the "sync" option, for reliability.) Disk I/O is a potential queue
bottleneck, especially on one-disk Linux boxen. Also, you might want to
look for faster filesystems than ext2--but what, I'm not sure.

If money _is_ an object, then save memory every way you can. That
includes,

  * Never running X on the qmail server.

  * Deactivating inetd. Turn on _critical_ services using tcpserver and
supervise, with _very_ low connection limits (e.g., 2 simultaneous
telnet connections).

  * Turn off all unused daemons. This probably includes lpd, nfsd, mountd,
the portmapper and RPC daemons, Apache, ftpd, and most services run
from /etc/inetd.conf. (For security's sake, you might turn on sshd and
throw away telnetd entirely. Throw away sshd if remote admin is not an
issue--not!)

  * Throw away or reconfigure ``locate''. The locate database is rebuilt
daily, causing a several-minute spike in disk usage.

I'd be surprised if _kernel_ tuning were an issue. The reason qmail smokes
is that it is extremely thrifty of system resources.

You might tinker with priorities, though. Re-nice-ing one or more of the
qmail daemons may keep qmail running strong during times of system load.
After all, that's what priority means!

Good luck!
Len.


--
Huh? There are lots of packages with compiled-in pathnames. Ever tried
moving X?
-- Dan Bernstein



Re: open relay problem

2000-01-26 Thread Len Budney

Jeff Mayes [EMAIL PROTECTED] wrote:
 
 192.168.1.:allow,RELAYCLIENT=""
 127.:allow,RELAYCLIENT=""
 
 According to what I've read, this should allow only users with 192.168.1.*
 to use my server as a relay.

That's correct.

 But when I test remotely, the test messages are allowed through.
 Any input would be much appriciated.

Were the test messages addressed to local users on your qmail server?
If so, qmail wasn't _relaying_ mail; it was just accepting _incoming_
mail.

With the above tcprules, connecting from a remote host, mail addressed
to _other remote_ servers should be refused.

(You did tell qmail-smtpd to use those rules, right? You need to invoke
it with the options "-x /etc/tcp.smtp".)

Len.


--
``It's the delivery speed, stupid.''
-- Dan Bernstein, author of qmail



Re: Restrict Times

2000-01-26 Thread Len Budney

Mark Delany [EMAIL PROTECTED] wrote:
 
 What made you think you had to use a qmail specific feature to achieve
 this result rather than something general to Unix?

Exactly right. As someone well-known once said, ``This is UNIX. Stop
acting so helpless.''

However, killing the POP listener was just an example--I wouldn't
recommend it.

If you happen to use qmail-pop3d, you could write a replacement for
checkpassword which, instead of checking the password, prints out
"-ERR pop server offline between 2pm and 4pm daily" and exits.
Using cron, you could change a symlink to point to it, instead of
checkpassword, at the right times.

(Disclaimer: if you write this, make sure it plays nicely with qmail-popup!
It will run as root; make it bug free. Check qmail-popup for proper
exit codes, whether you _must_ read stdin, etc.)

Len.



RE: Negatives in grammar

2000-01-20 Thread Len Budney

Dave Sill [EMAIL PROTECTED] wrote:
 
 For example, if you boast, ``I can build a Linux mail server in under
 an hour,'' I might reply, ``So can't my mother.''
 
 Which most of the English speaking world would interpret as "My mother
 can't do that",

Perhaps. But who cares about ``most of the English speaking world'' when
I am speaking with fellow New Englanders?

 This type of idiom leads to ambiguity, and is a barrier to
 communication--its only purpose is to be cute.

Not. It's correct usage of the local dialect, and perfectly clear to its
native speakers.

In many contexts, standard American English is the correct dialect
for clear communication. But that hardly makes it the best choice in
every context. I've met speakers of many dialects who do not understand
standard English. You're free to call them slack-jawed morons if you
wish, and ignore them--but the best way to communicate with them is in
their native dialect.

As for ``That is true, isn't it?'' you are still wrong. The idiom is in
fact good standard American English. So despite your logicians quibble,
it causes no ambiguity--except for people who don't understand standard
English.

Len.

PS My last post on this thread. We've abused the list charter enough.



RE: Negatives in grammar

2000-01-20 Thread Len Budney

Dave Sill [EMAIL PROTECTED] wrote:

 UTC is GMT, right?
 
 Since the assertion is false, the answer is clearly negative ("no" or
 "wrong"). Throwing the "not" before the assertion reverses it:
 
 UTC is GMT, not right?

You are being pedantic, are you not? Yes--and you're mistaken.  This
particular use of 'not' is purely idiomatic. (Indeed, many languages
have an identical idiom. There is something linguistically significant
going on here.)

In English, ``Is that true?'' and ``Isn't that true?'' and ``Is that
not true?'' all mean exactly the same thing: the opposite of ``Is that
untrue?'' The 'not' in the latter two sentences is a particle of emphasis,
not a negation.

In other words, ``Is that true?'' carries no connotation concerning
whether you think it is or is not true. But ``Isn't that true?''
carries the connotation that, though you are asking, you already believe
it to be true. You are asking for confirmation, rather than information.
A look at the original post will confirm that this exactly how Mr. Yelich
was using the idiom.

Len.


PS We New Englanders use negatives in other contexts as particles of
emphasis. For example, if you boast, ``I can build a Linux mail server
in under an hour,'' I might reply, ``So can't my mother.''

(For non-New Englanders, the reply means, ``My mother also can, so
what's the big deal?'' The idiom is most often used in the sentence,
``So can't anybody!'' The usage is sarcastic, and for that reason
adults generally don't use it.)



Re: store and forward? - firewall - not final destination

2000-01-19 Thread Len Budney

Jennifer Tippens [EMAIL PROTECTED] wrote:

 So mail comes to our firewall, no problem.

Big problem, if you were running sendmail. You don't want anyone
owning your firewall!

A better idea, if you have the resources, is to create a DMZ, put your
mail server in it (running qmail), and pass packets for firewall:25
through to mailserver:25 with your filtering/forwarding rules.

Since your outside firewall should consider the DMZ untrusted, losing
your mail server to crackers doesn't directly endanger your entire
network.

 What we would like to do is have all mail forwarded through the firewall
 to an internal machine.  I understand that I could do this with .forward
 or fastforward...

A better way is my suggestion above: don't forward messages; forward
at the connection level.

 but I thought that if I did that and the internal mail server went
 down for any weird reason that the mail would bounce.

Only if it goes down and stays down for several days. MTA's know about
temporary failure, and they try again.

 What I would like is for the mail to spool up on the firewall if the
 internal server is down.

It already spools up on the MTA machines; why bring the resource cost
upon yourself? Hopefully, your internal mail server is approximately
as reliable as your firewall, of course. It's not in a public cluster,
being used to play freecell, right?

 What is the best way to handle this?  We have a lot of users.

Best or not, my suggestion dramatically saves resources. It likely
enhances security, as well. Your firewall shouldn't even have normal
users (except one for you).  Qmail is invulnerable, but moving your
mail queue inside reduces exposure and avoids duplication of queues,
and the need for a big disk on your firewall box.

HTH,
Len.


--
Are they aware that the Internet doesn't _have_ a reliable receipt
mechanism? Netscape is advertising a feature that it can't deliver.
-- Dan Bernstein



Re: MUA's, Maildir and folder formats

2000-01-12 Thread Len Budney

Kristina [EMAIL PROTECTED] wrote:

 Which MUA's are not compatible with the Maildir format?

Stephen Mills mentioned pine, elm, mutt and mew. He missed pgnus, and
maybe other MUAs.

But "MUA support of Maildir" can mean two things. It can mean that the
mailer allows _folders_ to be maildirs, or it can mean that the mailer
allows _spools_ to be maildirs. AFAICT all mailers (except possibly
mutt) take the latter approach. They receive mail _from_ maildirs _into_
their native folders.

FWIW, Dan once argued that maildirs are good as spools, but not great as
folders. He suggested that a folder be a single file, with each message
compressed separately, plus an index file locating the start of each
message. It's a pretty good suggestion. Does any mailer support anything
like this?

On the other hand, I have thought maildir a _good_ folder format; it
tolerates asynchronous updates very well. In the past my practice involved
1) mail incorporated asynchronously, 2) me using an emacs MUA, and 3) me
using a CLI from home, possibly with emacs still running at work.

The only format flexible and resilient enough for all that is mh-mail.
Does anyone know something better?

Len.


--
This thread is cross-posted to comp.security.unix, where we take a dim
view of ignorant programmers writing security-critical software.
-- Dan Bernstein



Re: Maildir format

2000-01-12 Thread Len Budney

Kristina [EMAIL PROTECTED] wrote:
 
 Do I need a .qmail file to configure the maildir format.

No. If you make "./Maildir/" the default delivery instruction, then
it will work even if nobody has a .qmail file.

BUT! qmail can _deliver to_ a maildir. It can't _create_ a maildir.
For existing users, you must do the following (as root):

   su - ~USER
   /var/qmail/bin/maildirmake Maildir

You can arrange for new users to get a maildir automatically. Just create
a maildir in /etc/skel (or wherever your system keeps its home-directory
template).

Len.


--
I'm not going to spend code space blindly duplicating sendmail features.
-- Dan Bernstein, author of qmail



Re: PGP Server authentication and DUL list

2000-01-12 Thread Len Budney

"Subba Rao" [EMAIL PROTECTED] wrote:
 
 ...to avoid the wrath of being rejected by the Dialup Users List (DUL)?

Has DUL rejection been a problem for you personally? In my own experience,
it hasn't. (My home machines do use a smarthost. My laptop does direct
SMTP, because changing smarthosts as I travel is a pain. Yes, that distorts
the statistics somewhat.)

If you are afraid of DUL, but have not actually seen it cause many bounces,
then you can try the following:

  1. Set your machine for direct SMTP delivery.

  2. When an email bounces, decide whether you care.
 * If no, do nothing. Perhaps tell the person why you won't write
   to them anymore.

 * If yes, add an smtproute for that domain through your smarthost.
   Perhaps tell them why their mail will experience delays (in my
   case, up to a week if I'm on the road).

  3. Using qmailanalog, estimate how much of _your_ mail is actually
 affected by this heavy-handed "spam fighting technique". Laugh
 to yourself.

Len.


--
I don't care what Keith does to messages that really _are_ spam. But I
am not willing to accept collateral damage from his anti-spam
software.
-- Dan Bernstein



Re: spam filters

2000-01-12 Thread Len Budney

Tonino Greco [EMAIL PROTECTED] wrote:
 
 I would like to know how to get spam filters set up?

RBL blocks mail from domains which either 1) have been reported for
relaying spam, or 2) are willing to relay _any_ mail, which of course
includes spam. Using RBL blocks some spam, and some legitimate mail. The
point is to put social pressure on bad Internet citizens.

 I have installed rblsmtp and it is running  - but it does not seem to
 be blocking??

How do you know? Do you mean that mail from a blacklisted domain is
getting through? Or do you mean that you are still receiving spam?

Understand: you will not prevent all spam from reaching you. Spammers
try to make their mail look exactly like "good" email: _you_ can tell
the difference, but often your _computer_ can't.

Ad hoc filters, can trap some spam. Stricter filters, more spam. BUT
strict filters will throw away legitimate email. Some examples:

  1. Messages whose headers violate RFC 822 (can discard good mail)
  2. Blind carbon copies (_will_ discard mailing list postings)
  3. Messages with all-caps subjects (might discard good mail)
  4. Messages with exclamation marks in subjects ("You're an uncle!")
  5. Messages with "unsubscription information" inside (probably OK)
  6. Mail with "money" or "$" in the subject ("We got the deal! Big money!")
  7. Mail from anyone not on your "approved" list
  8. Mail which doesn't contain the day's password in the subject
  9. Mail containing any word in a dictionary of bad words
  ...

Only you can decide whether to shoot in self-defense; it's only your
problem if in so doing you shoot your daughter.

Len.


--
You seem to think that spam is a pattern-recognition problem. It isn't.
You're ignoring the anti-fax effect: anti-spam rules become useless when
enough people start using them. Spammers adapt.
-- Dan Bernstein



Re: MUA's, Maildir and folder formats

2000-01-12 Thread Len Budney

[EMAIL PROTECTED] wrote:
 On Wed, Jan 12, 2000 at 12:38:55PM -, Lorens Kockum wrote:
  On the qmail list [EMAIL PROTECTED] wrote:
  On the other hand, I have thought maildir a _good_ folder format; it
  
  It is deathly slow on big folders.

True. Then again, many mbox clients are also deathly slow--around 1,000
messages, VM under emacs becomes intolerable (it's part of why I switched
to MH; bad or not, it scaled better).

  I think a seperate index file would be a good idea, shouldn't be
  too hard to do correctly.
 
 That would require locking, which goes against the Maildir-philosophy.

It would not require locking unless messages are archived asynchronously,
which they need not be.

The maildir philosophy is for _safe spooling_. Lorens is replying to
my post about _efficient archival_.

Len.


--
Security through obscurity, without the obscurity.
-- Dan Bernstein



Re: MUA's, Maildir and folder formats

2000-01-12 Thread Len Budney

Russell Nelson [EMAIL PROTECTED] wrote:
 Len Budney writes:
   FWIW, Dan once argued that maildirs are good as spools, but not great as
   folders.

Misquote alert! My fault! Dan didn't say that maildirs are "not great
as folders". I don't have the exact quote, but what he said was that
maildir was never intended as a format for message archival. I don't
think Dan defined "archival", but I believe he meant long-term storage,
with maildir as the folder structure for recent messages.

Pardon me for conflating "recent messages" with "spooling"; I badly
overstated what Dan actually said.

 What if you want mail to be deliverable into folders, using extensions?

Maildir is of course the way to go.

As I remember it, Dan was suggesting that an archival format should
save space [and inodes], and allow faster mailbox scanning. The format
he alluded to accomplishes this.

For asynchrony, maildir rules the world. But uses space and inodes, and
scans slowly.

A hybrid solution, involving both, would be highly desirable.

Len.


--
There are two people at fault in every computer security breach: the
attacker, and the programmer who let him in.
-- Dan Bernstein



Re: off-topic: Dan's engineering methods

2000-01-07 Thread Len Budney

Sam [EMAIL PROTECTED] wrote:
 There are already existing tools out there

Read what I wrote, including references. Reading the archives, I
already learned your opinion. You argued at length that autoconf and
automake are better. That wasn't my question.

 the necessary resources to build a module hierarchy

http://www.canb.auug.org.au/~millerp/rmch/recu-make-cons-harm.html.
Peter Miller argues cogently why recursive make subverts dependency
checks.  His solution is GNU-make dependent, which subverts portability.
Probably on purpose, Dan's method solves the same problem yet is portable.

 It's quite convenient to package standalone modules as individual
 subdirectory

I already know that. I also know how common it is to link against the
wrong version of a library. "rm config.cache" (your suggestion) and/or
"make distclean" (Russ Allbery's) are not the right way to ensure
correct dependencies. Make, a triumph of AI, was designed for that
purpose already.

Len.



Re: off-topic: Dan's engineering methods

2000-01-07 Thread Len Budney

Sam [EMAIL PROTECTED] wrote:
 You question was how to create and use reusable code modules.  I told
 you how.

I'm sorry to see that you can't read.

  Has Dan has revealed enough about his engineering methods for others
  to duplicate them? Does anybody want to, possibly producing sharable
  tools? Given the quality of his results, his methods might be worth
  imitating.   ^^
  ^^

  I already know that. I also know how common it is to link against
  the wrong version of a library.
 
 Really?  Has that happened to you, or are you just theorizing again?

It is indeed a major source of support calls from IT departments [1],
yes. "Did you try 'make distclean;make'?" When I have enough influence
on a project, I make sure that Makefiles have an 'over' target, which
depends on 'distclean' and 'all'. Customers quickly adopt the
convention of trying 'make over'.

If make could check dependencies accurately, this would not be
necessary. Make was designed to save time [2]; it should do the right
thing. Rebuilding _everything_ (or just the libraries), every time,
because make can't see all dependencies, is asinine. For that a trivial
shell script would suffice.

Len.

PS Unless you learn to read, I will not reply to you again. I don't want
to waste everyone's time--this stuff has been explained to you before.

--
[1] I generally work for systems integrators. Our customers, steel
mills and such, still have IT departments. They demand source code
with deliverables, and have for over 20 years. They handle maintenance
in-house, using the integrators for support.

[2] Dan's configuration trick works an order of magnitude faster than
autoconf. Screwing with dependencies means another iteration of 
'rm config.cache;./configure;make' which incurs the cost all over again;
Dan's way, the right dependencies are rechecked. Build time is
dramatically faster Dan's way than yours. Which is what make was built
for.



Re: 7 bit ascii qmail

2000-01-06 Thread Len Budney

Sam [EMAIL PROTECTED] wrote:
  ..."dropped"..."bounced"...slandering AOL.
 
 Sue me.

Are you worth it?

Seriously, my point was 1) clarify what you meant before, and 2) say
what you mean in the future. If you don't, the cost/benefit ratio in
talking to you drops way low.

Len.



Re: 7 bit ascii qmail

2000-01-06 Thread Len Budney

Sam [EMAIL PROTECTED] wrote:
  the cost/benefit ratio in talking to you drops way low.
 
 Boo-hoo.

Fine; build your own MTA which conforms to your own vague requirements and
doesn't do the *something* that you don't like (drop messages? bounce
messages? burn messages?). And make sure it interoperates with a
_majority_ of _existing_ clients and servers.

Len.

--
I don't have a killfile; I'm just ignoring you.



  1   2   >